Arduino始めました2012/11/17 13:23

ふと大人の科学を購入し、Aruduino互換のjapaninoを手に入れた。
電子工作なんて大学のとき以来なんだけど、なかなか楽しい。

で、今度はちっちゃいものくらぶさんが頒布されている、
「ちびでぃ~の2」と「ちびでぃ~のPRO」を購入。
初心者につきスキル不足なんで、ブートローダ書込み済の奴にした。

早速組み立てたがちびでぃ~のPROで躓いたので、覚書程度にまとめてみる。
(下写真のちびでぃ~のPROには、ピンヘッダを追加している。)

ちびでぃ~のPRO

まずはUSBSerialモジュ~ルのドライバをPCにインストール。
HPを参考に組み立てたあと、これまたHPを参考にarduino-1.0.1の設定を
行う。

下記はHPの抜粋
1)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=0×94
atmega8o8.bootloader.high_fuses=0xDC
atmega8o8.bootloader.path=optiboot
atmega8o8.bootloader.file=optiboot_atmega8-8m.hex
atmega8o8.bootloader.unlock_bits=0×3F
atmega8o8.bootloader.lock_bits=0×0F
atmega8o8.build.mcu=atmega8
atmega8o8.build.f_cpu=8000000L
atmega8o8.build.core=arduino
atmega8o8.build.variant=RCduino
####################################
2)hardware/arduino/variants/standard/pins_arduino.hを
 hardware/arduino/cores/arduinoフォルダにコピー
3)マイコンボードに[Optiboot] ATmega8 8MHzを選択
ここまで抜粋

設定終わったんで、USBSerialモジュ~ルを繋げてPCと接続。
接続の向きに注意。
とりあえずBLinkを読み込み、コンパイルする→成功
ちびでぃ~のPROに書き込みする→下記のエラー
avrdude: stk500_getsync(): not in sync: resp=0x00

組立ミスは無いようだし、PCとの接続時にちびでぃ~のPROのLEDも
点滅する。
これで2時間くらい試行錯誤するけど進展なし。

ふとHPを見ると
>この設定でarduinoIDEからスケッチをアップロードする場合、
>電源は5V動作にします。
>USBSerialモジュ~ルとの接続は、以下のように、3V電源ピンをはずして、
>パターンショートして5Vを供給します。

!!!
ってことで、ちびでぃ~のPROの3V電源ピンを切断してパターンショート。
どきどきしながら書き込みを行うと、無事終了してLEDが点滅を
繰り返してくれた。
ちびでぃ~のPRO裏

やっぱ、隅から隅まで取説(今回はHPだけど)を読むのは基本だな。

ドタバタしながらも、やっとちびでぃ~のPROが動いてくれたんだけど、
ちいさいってのはそれだけで魅力的だね。
追加購入しようかな。


ちびでぃ~のPROのピンアサイン2012/11/19 21:52

ちびでぃ~のPROのピンアサインが分からない。
ちっちゃいものくらぶさんのHPにも、全てのピンアサインは載っていない。

ってことで調べたんで記録しとく。
(当然のことだけど、内容を保障するものではない。)

ちびでぃ~のPROピンアサイン

基盤に書いてあるのとちょっと違うけど、こっちが正しいんじゃないかな。
特にA6とA7が基盤印刷と逆だけど、実際にスケッチして調べた結論だ。

けど間違っていたらごめん。

Arduino自作してみた2012/11/20 00:38

次は自作に挑戦。

通販で注文してたATMega328PとかFT232RL シリアル変換モジュール等が、
今日やっと来た。

生のATMega328PにArduinoを書き込む方法としては、他のArduinoを使う方法
とかもあるみたいだけど、今回はシリアル変換モジュールでやってみる。

・avrdude-serjtag
・avrdude-serjtag用設定ファイル:avrdude.conf
・avrdude-GUI

上記3つをダウンロードして、vrdude-GUIを起動後に下記の設定。

・avrdude.exe Fileに、avrdude-serjtagのavrdude.exeを選択
・Programmerに、「FT232R Synchronous BitBang (diecimila)」を選択
・Deviceに、「ATmega328P(m328p)」を選択
・Command Line Optionに、「-P ft0 -B 4800」と記入
・Portは空欄

ATMega328PをセットしてFuse欄のReadボタンを押したら、hFuse,lFuse,eFuseにそれぞれ数値が入力されるはず。(数値は忘れた)

で、今回はATMega328Pなので、
hFuse = DA
lFuse = FF
eFuse = 05
と入力し、数値に間違いが無いか確かめた後Fuse欄の「Write」ボタンを押す。
これで高速クロックモードに切り替わったので、
Command Line Optionの「-B 4800」を削除する。

いよいよ書き込み開始。

Flash欄にATmegaBOOT_168_atmega328.hexを選択して、
「Erase - Write - Verify」ボタンを押す。
1分くらいで書き込み完了するはず。

書き込み終わったら、Lock Bit欄に「0F」と入力して「Write」ボタンを押す。

ATMega328PへのArduino書き込み完了!

あとは、Arduino互換機の作り方を紹介しているHPを見ながらもくもくと作成。
Arduino IDEのマイコンボード選択では「Arduino Duemilanove w/ ATmega328」を選んだらうまくいった。

自作Arduino


自作ArduinoのUno化2012/11/21 20:45

昨日作ったArduino互換機がバージョンアップ。

Arduino IDEの \arduino-1.0.1\hardware\arduino\boards.txt を見てたら
気になる項目が。
(boards.txtは、Arduino IDEのマイコンボード用設定ファイルっぽい)

昨日マイコンボートとして選んだ「Arduino Duemilanove w/ ATmega328」の
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex って、
昨日作った互換機に入れたブートローダのファイルだよな。

ってことは、「Arduino Uno」に書いてある
「optiboot_atmega328.hex」っての書き込んだら、Uno互換機になるのかな?
調べてみると、optibootは容量が小さい(512Byte)からプログラム容量が
1.5kByte増えるらしい。

ってことで、早速入れてみた。

ブレッドボードを書き込み用の回路に直してから、avrdude-GUI起動し、
hFuse欄に「DE」と入力して「Write」ボタンを押す。
(↑ブートローダサイズが変わったから)
Flash欄に「optiboot_atmega328.hex」を選択して、
「Erase - Write - Verify」ボタンを押す。
Lock Bitがまた「3F」に戻ったから、「0F」と入力して「Write」ボタンを押す。
これで完了。

ブレッドボードを組みなおした後、Arduino IDEを起動して
マイコンボートを「Arduino Uno」に選択。
基本のBlinkを書き込んで・・・成功!

昨日作ったとき参考にしたHPは、Unoが出る前に書かれたんだろうな。
最新ボード互換機になったし、optibootになったからメモリも節約できたし。
なによりちょびっとスキルアップしたのが嬉しい。

ちびでぃ~の2作成2012/11/22 23:41

先週末組み立てたちびでぃ~の2の事をつらつらと。

今回は、LCD他がついてくるフルセット版を購入。
これで1500円とは安すぎだと思う。

組立はHP見ながらやれば、ほとんど問題なく完成すると思う。
ただ、可変抵抗の取付方向がHPと90°ずれてるのにとまどった。
基盤の3本穴に入るように取り付ければ問題なし。

組み立て終わったら、HPにあるようにPCに
USBシリアルPL2023HXデバイスドライバーをインストール後、ケーブル接続。

あとはArduinoIDEで「Arduino Uno」を選択したら、
すんなりスケッチも書き込みできた。

ちびでぃ~の2

実は一昨日ちびでぃ~のPRO328を注文してたんだが、早くも今日届いた。
明日はこの組み立ての事を書こうかな。