手持ちArduinoまとめ(2)2012/12/15 23:03

● オシロスコープ専用互換機

[マイコン]:ATmega328P
[クロック]:16MHz(外部)
[電源]:5V
[フラッシュ]:32kバイト
[シリアル変換IC]:PL2303HX
[Fuse値]:
 hFuse = DE
 lFuse = FF
 eFuse = 05
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard
############################################################
[その他]:
九州工業大学が公開している、簡易オシロスコープソフト専用Arduino互換機



● 4桁7セグLED搭載互換機

[マイコン]:ATmega328P
[クロック]:8MHz(内蔵RC)
[電源]:5V
[フラッシュ]:32kバイト
[シリアル変換IC]:なし
[Fuse値]:
 hFuse = DE
 lFuse = F2
 eFuse = 05
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
atmega328o8.name=[Optiboot] ATmega328P 8MHz
atmega328o8.upload.protocol=arduino
atmega328o8.upload.maximum_size=32256
atmega328o8.upload.speed=115200
atmega328o8.bootloader.low_fuses=0xf2
atmega328o8.bootloader.high_fuses=0xde
atmega328o8.bootloader.extended_fuses=0x05
atmega328o8.bootloader.path=optiboot
atmega328o8.bootloader.file=optiboot_atmega328_pro_8MHz.hex
atmega328o8.bootloader.unlock_bits=0x3F
atmega328o8.bootloader.lock_bits=0x0F
atmega328o8.build.mcu=atmega328p
atmega328o8.build.f_cpu=8000000L
atmega328o8.build.core=arduino
############################################################
[その他]:
7segduinoのSsegライブラリを利用して表示を行う。
カソードコモンの7セグを使ったので mySseg.setKcommon(); と宣言する。
使える入出力ピンは、D5,A0~5の6本。
ブートファイルの作成方法は、
\arduino-1.0.1\hardware\arduino\bootloaders\optibootに移動し、
>omake atmega328_pro8



● 8×2LCD搭載用互換機

[マイコン]:ATmega328P
[クロック]:16MHz(外部)
[電源]:5V
[フラッシュ]:32kバイト
[シリアル変換IC]:なし
[Fuse値]:
 hFuse = DE
 lFuse = FF
 eFuse = 05
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard
############################################################
[その他]:
LCDは、8×2行キャラクタ表示液晶モジュール ACM0802C-NLW-BBH。
1ピン - GND、2ピン - VCCなので注意が必要。
LCD接続端子は、D5,6,9,10,11,12ピン。

手持ちArduinoまとめ(1)2012/12/14 23:27

● Japanino

[マイコン]:ATmega168V
[クロック]:8MHz(外部)
[電源]:5V
[フラッシュ]:16kバイト
[シリアル変換IC]:CP2104
[Fuse値]:
 hFuse = DD
 lFuse = C6
 eFuse = 00
[ArduinoIDEの\hardware\arduino\boards.txt の内容]:
############################################################
japanino.name=Gakken Japanino
japanino.upload.protocol=stk500
japanino.upload.maximum_size=14336
japanino.upload.speed=19200
japanino.bootloader.low_fuses=0xc6
japanino.bootloader.high_fuses=0xdd
japanino.bootloader.extended_fuses=0x00
japanino.bootloader.path=lilypad
japanino.bootloader.file=LilyPadBOOT_168.hex
japanino.bootloader.unlock_bits=0x3F
japanino.bootloader.lock_bits=0x0F
japanino.build.mcu=atmega168
japanino.build.f_cpu=8000000L
japanino.build.core=arduino
############################################################



● ちびでぃ~の2

[マイコン]:ATmega328
[クロック]:16MHz(外部)
[電源]:5V or 3V (ジャンパピンで設定)
[フラッシュ]:32kバイト
[シリアル変換IC]:PL2303HX
[Fuse値]:
 hFuse = DE
 lFuse = FF
 eFuse = 05
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard
############################################################

[その他]:
LCD接続ピン、SoftUSBコネクタ搭載。
LCD接続端子は、D5,6,9,10,11,12ピン。



● ちびでぃ~のPRO328

[マイコン]:ATmega328
[クロック]:16MHz(外部)
[電源]:5V
[フラッシュ]:32kバイト
[シリアル変換IC]:なし
[Fuse値]:
 hFuse = DE
 lFuse = FF
 eFuse = 05
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard
############################################################

[その他]:
2台目はLCD接続用端子、可変抵抗を搭載(リセットボタンは無し)。
LCD接続端子は、D5,6,9,10,11,12ピン。
ただし、製作ミスによりA7、D13ピンが使えない。



● ちびでぃ~のPRO

[マイコン]:ATmega8L
[クロック]:8MHz(内蔵RC)
[電源]:5V
[フラッシュ]:8kバイト
[シリアル変換IC]:なし
[Fuse値]:
 hFuse = DC
 lFuse = 94
 eFuse = 00
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
atmega8o8.name=[Optiboot] ATmega8 8MHz
atmega8o8.upload.protocol=arduino
atmega8o8.upload.maximum_size=7680
atmega8o8.upload.speed=115200
atmega8o8.bootloader.low_fuses=0x94
atmega8o8.bootloader.high_fuses=0xDC
atmega8o8.bootloader.path=optiboot
atmega8o8.bootloader.file=optiboot_atmega8-8m.hex
atmega8o8.bootloader.unlock_bits=0x3F
atmega8o8.bootloader.lock_bits=0x0F
atmega8o8.build.mcu=atmega8
atmega8o8.build.f_cpu=8000000L
atmega8o8.build.core=arduino
atmega8o8.build.variant=standard
############################################################



● ちびでぃ~の壱

[マイコン]:ATmega8
[クロック]:8MHz(内蔵RC)
[電源]:5V
[フラッシュ]:8kバイト
[シリアル変換IC]:なし
[Fuse値]:
 hFuse = DC
 lFuse = 94
 eFuse = 00
[ArduinoIDEの\hardware\arduino\boards.txt の内容]
############################################################
atmega8o8.name=[Optiboot] ATmega8 8MHz
atmega8o8.upload.protocol=arduino
atmega8o8.upload.maximum_size=7680
atmega8o8.upload.speed=115200
atmega8o8.bootloader.low_fuses=0x94
atmega8o8.bootloader.high_fuses=0xDC
atmega8o8.bootloader.path=optiboot
atmega8o8.bootloader.file=optiboot_atmega8-8m.hex
atmega8o8.bootloader.unlock_bits=0x3F
atmega8o8.bootloader.lock_bits=0x0F
atmega8o8.build.mcu=atmega8
atmega8o8.build.f_cpu=8000000L
atmega8o8.build.core=arduino
atmega8o8.build.variant=standard
############################################################

[その他]:
ISP端子搭載。AVRチップ用ライターとして使える。

車のカギの電池交換2012/12/12 23:16

ロードスターのカギを洗濯してしまった。

当然、開錠キーを押しても反応なし。
壊れたかなー。

とりあえず電池交換してみようと、ホームセンターでCR1620という
電池を買って来て、カギを分解してみた。
こんな感じ。

ロードスターの鍵

分解の仕方は取説に書いてあるし、ココにもある。

さっくり交換して開錠キーをおすとLEDが点滅してくれた。
生きてた!

だけど、たまにLEDが点滅しっぱなし・・・
マツダに持っていったほうがいいかなぁ。

LCD搭載Arduino互換機作成2012/12/11 21:54

小型LCD搭載のArduino互換機を、ユニバーサル基盤で作った。
LCDは、8×2行キャラクタ表示液晶モジュール ACM0802C-NLW-BBH。
HD44780コンパチブルタイプなので、LiquidCrystalライブラリ使って簡単に表示できる。
ピン配置は下記のようになっている。

 1ピン - GND
 2ピン - VCC
 3ピン - V0
 4ピン - RS
 5ピン - R/W
 6ピン - E
 7ピン - DB0
 8ピン - DB1
 9ピン - DB2
10ピン - DB3
11ピン - DB4
12ピン - DB5
13ピン - DB6
14ピン - DB7

今持ってる他のLCDと、1ピン、2ピンが逆なので注意が必要だ。

Arduinoとの接続は、4ピンモードで行う。

(自作機)   (LCD)
  GND -   1ピン(GND)
  VCC -   2ピン(VCC)
  D5   -   4ピン(RS)
  D6   -   6ピン(E)
  D9   -  11ピン(DB4)
  D10 -  12ピン(DB5)
  D11 -  13ピン(DB6)
  D12 -  14ピン(DB7)

LCDの3ピン(V0)には、可変抵抗を接続してコントラストの調整を行えるようにする。

そして互換機の制作。
マイコンはATmega328Pを使い、16MHzのクリスタルで駆動させる。
ブートローダはOptibootにしたので、Uno互換機になった。

LCD付Arduino互換機_1

下記のようなスケッチをコンパイルして書込み。

#include <Arduino.h>
#include <LiquidCrystal.h>

// instanciate the library and pass pins for (RS, Enable, D4, D5, D6, D7)

LiquidCrystal    lcd(5,6,9,10,11,12);

void setup(){
  lcd.begin(8,2);
   lcd.clear();
}

void loop(){
  int i,t;
  for(i=16;i>0;i--){
    lcd.setCursor(0,0);
    for(t=0;t<i;t++) lcd.print(" ");
    lcd.print("Arduino");
    delay(200);
  }

  for(i=5;i>0;i--){
    lcd.setCursor(0,1);
    lcd.print(" by T
.S");
    delay(1000);
    lcd.setCursor(0,1);
    lcd.print("        ");
    delay(300);

  }
}

LCDを接続して電源を入れたが・・・■■■■■■■■って表示されるだけ。
配線ミスを疑ってテスター当ててみたけど正常。
実は当初外付けクリスタル付けてなかったから、それを疑ってクリスタル点けたけど変化なし・・・

途方にくれながらネットで情報探してみたら、このLCDはR/W端子に信号を入れてやらないと駄目と書いてある。
そこでR/W端子をGNDに繋いでやったら、あっさり表示してくれた。

LCD付Arduino互換機_2

最終的なLCDとの接続はこんな感じ。

(自作機)   (LCD)
  GND -   1ピン(GND)
  VCC -   2ピン(VCC)
  D5   -   4ピン(RS)
  GND -   5ピン(R/W)
  D6   -   6ピン(E)
  D9   -  11ピン(DB4)
  D10 -  12ピン(DB5)
  D11 -  13ピン(DB6)
  D12 -  14ピン(DB7)
 (LCDの3ピン(V0)に、可変抵抗を接続)

これを作った後で知ったけど、ストロベリーリナックスでもっと小さいLCDが買えるようだ。
I2C液晶だし、端子ピッチが狭いから苦労しそうだけど、これも試してみたいな。

ちびでぃ~の壱2012/12/10 23:36

ちっちゃいものくらぶさんで、あたらしいArduino互換機の頒布をやっていた。
「世界一安い 組込機器の開発環境」を謳う、ちびでぃ~の壱。

USBシリアルモジュール付で800円(送料込)。
ATMEGA8Lを搭載した互換機で、AVR書込み用ISP端子がついている。
外部クリスタル発信子は付いていないけど、後付けが出来るみたい。

他のAVRマイコンにプログラムを書込む事に特化した、ちびでぃ~のって事か。

さっそく組立完了。
ピンヘッダ/ソケットの足を曲げる所に手間取ったくらいで、他はさっくり終了。

次にArduinoIDEの設定。

arduinoフォルダの中にある、hardware\arduino\boards.txt の末尾に下記を追加。

############################################################
atmega8o8.name=[Optiboot] ATmega8 RC8MHz
atmega8o8.upload.protocol=arduino
atmega8o8.upload.maximum_size=7680
atmega8o8.upload.speed=115200
atmega8o8.bootloader.low_fuses=0x94
atmega8o8.bootloader.high_fuses=0xDC
atmega8o8.bootloader.path=optiboot
atmega8o8.bootloader.file=optiboot_atmega8-8m.hex
atmega8o8.bootloader.unlock_bits=0x3F
atmega8o8.bootloader.lock_bits=0x0F
atmega8o8.build.mcu=atmega8
atmega8o8.build.f_cpu=8000000L
atmega8o8.build.core=arduino
atmega8o8.build.variant=standard
############################################################

ArduinoIDEで「ツール」- 「マイコンボード」 - 「[Optiboot] ATmega8 RC8MHz」を選択。
「ファイル」 - 「スケッチの例」 - 「ArduinoISP」を開いて、コンパイル → 書込み を行う。
これでちびでぃ~の壱がAVR書込み装置になってくれた。

ちびでぃ~の壱のISP端子とターゲットAVRマイコンのつなぎ方は下記。

(ちびでぃ~の壱)   (ターゲットAVRマイコン)
    1ピン --- MISO(18ピン)
    2ピン --- VCC(7,20ピン)
    3ピン --- SCK(19ピン)
    4ピン --- MOSI(17ピン)
    5ピン --- RESET(1ピン)
    6ピン --- GND(8,22ピン)

ピンソケットを正面に見て、左上が1ピン、その下が2ピン、右下が6ピンになる。
実際に接続するとこんな感じ。
左がちびでぃ~の壱で、右が生ATmega328P。

ちびでぃ~の壱

avrdude-GUIを起動してFuse値を見てみる。
・Programmerに、「Atmel AVR ISP (avrisp)」を選択
・Deviceに、「ATmega328P(m328p)」を選択
・Command Line Optionに、「-B 19200」と記入
・Portに、「COM4」を選択 (←自分の環境に合わせる)

Fuse欄の「Read」を押してみると、値が正常に読み込まれた。

Avrdude

あとは、FlashにArduinoのブートローダなり、Atmel Studioで作ったHEXファイルなりを指定して書き込めばいいみたい。
いずれATtinyでも買って、ArduinoじゃないAVRマイコン開発やってみたいな。