Arduinoは普通に買うと高いので、互換品を作ってしまいます。
目次
Arduino高いお
Mega328Pを積んだArduino Unoですら2,940円します.互換ボードなるものも存在しますが,それでも1,000円超えは当たり前です.
Arduinoを使う利点
楽.それに尽きる.タイマーやUSART等,主要なペリフェラルについては予め関数が用意されています.
例えば,シリアル通信をするプログラムの場合,Arduinoなら以下の様な直感的で簡潔なプログラムで済みます.
void setup() { Serial.begin(9600); } void loop() { if(Serial.available() > 0){ byte incomingByte = Serial.read(); Serial.write(incomingByte); } }
正規品を使う利点・欠点
利点
- ない.
欠点
- 高いので,逝くと損失額がでかい.
- DCプラグにつなぐ電源の推奨電圧が7~12V.
- 余計でありがた迷惑な部品が多い.
Arduino互換物に必要なもの
以下,Mega328Pを使った,水晶発振子不要8MHz駆動のArduino互換物を作っていきます.
- Mega328P
- コンデンサ …… パスコンとデカップリングコンデンサの他に,0.1μF(パスコンと同じ値).
- (任意)抵抗 …… 約10kΩと約1kΩ
- (任意)ダイオード …… 汎用の適当なもの(1N4148等)で良い.
- USBシリアル変換モジュール …… DTR線が使えるもの.
下準備
Mega328Pにブートローダーを書き込みます.
- Arduino IDEのインストールフォルダの
arduino-1.x.x\hardware\arduino\avr\bootloaders\atmega
にあるATmegaBOOT_168_atmega328_pro_8MHz.hex
をライターを使って普段と同じように書き込む. - 上位(Low)ヒューズビットを
0XDA
(BOOTRST
のチェックを付ける.BOOTSZ
を1024W_3C00
),下位(Low)ヒューズビットを0XE2
(CKDIV
のチェックを外す)にする.
USBシリアル変換モジュールとの接続
右図では,USBシリアル変換モジュールとMega328Pとの接続が示してあります.Mega328P周りの配線(電源やパスコン・デカップリングコンデンサ)はいつも通り行なってください.
Arduinoとして使う
ボードの設定をする
Arduino IDEを開いたら,設定をします.
- 「ツール>Board>Arduino Pro or Pro Mini」を選択して下さい.
- 「ツール>Processor>ATmega328(3.3V,8MHz)」を選択して下さい.電源が5Vでも「3.3V,8MHz」と書いてある方を選択せねばなりません.
- 「ツール>シリアルポート」から適切なポートを選択してください.普通『COM3』辺りでしょう.
以上が済んだら,ウィンドウ下部に「Arduino Pro or Pro Mini,ATmega328(3.3V,8MHz)on COM?」と記載されていることを確認して下さい.
ピンの対応
Mega328PのArduinoとしての各ピンの役割は,右図の通りです.例えば,14番ピンの「digital pin 8」を出力にしたいのであれば,pinMode(8, OUTPUT);
とすれば良いです.
トラブルシューティング
書き込みができない
stk500_getsync(): not in sync: resp=0x00
等のエラー・メッセージが出た場合,以下の可能性があります.
接続が誤っている
TXDとRXDが逆になってはいないか,0.1μFコンデンサの接続は正しいか,ダイオード(任意)の向きは正しいか確認して下さい.
ボードの設定が正しくない
「Arduino Pro or Pro Mini,ATmega328(3.3V,8MHz)on COM?」とウィンドウ下部に表示されているか確認し,間違っていたら再び正しく設定してください.他の設定では動きません.
リセット周りが不安定
リセットピンに繋がっている0.1μFコンデンサの影響で書き込みができないことがあります.コンデンサを短絡させて放電し,再度トライしてください.リセットピン周りのダイオード・抵抗を配線していない場合,しばしばこの現象に見舞われるようです.
ヒューズ設定が正しくない
BOOTRST
のチェックが付いているか,BOOTSZ
が1024W_3C00
になっているか,CKDIV
のチェックが外れているか確認して下さい.ヒューズビット値を数値で書き入れた時,下位と上位を逆にしている可能性もあります.
いろいろなArduino
Arduino Mega
Mega2560を積んだモデル.ピン数がとても多く,サーボを大量に使ったり,とにかく沢山ピンが欲しい時に重宝する.Mega2560にはDipパッケージが存在しないので,配線の手間が省けるという意味でもArduino Megaは必要な場合には大いに購入に値する.
Arduino Due
AtmelのARMマイコンであるATSAM3X8Eを積んだ,高性能モデル.クロック周波数80MHz位で動く.8ビットマイコンに比べて圧倒的性能.配線の手間は勿論だが,高機能になればなるほど煩雑になりがちなプログラムもArduinoである以上非常に簡潔に済む.ただし,マイコンの動作電圧が3.3Vであるので,ピンに5Vとか加えた段階で御臨終する.それなりにお高いので取り扱いは慎重に……
Arduino Yun
Linuxチップ搭載.強そう
Intel Edison
Arduinoではないが,名前の通りIntelのAtomプロセッサーを積んだモジュール.遂に電子工作で気軽にIntel CPUが使える時代が来た.