読者です 読者をやめる 読者になる 読者になる

Arduinoもどき

Arduinoは普通に買うと高いので、互換品を作ってしまいます。



index


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にブートローダーを書き込みます.

  1. Arduino IDEのインストールフォルダのarduino-1.x.x\hardware\arduino\avr\bootloaders\atmegaにあるATmegaBOOT_168_atmega328_pro_8MHz.hexをライターを使って普段と同じように書き込む.
  2. 上位(Low)ヒューズビットを0XDABOOTRSTのチェックを付ける.BOOTSZ1024W_3C00),下位(Low)ヒューズビットを0XE2CKDIVのチェックを外す)にする.

USBシリアル変換モジュールとの接続

右図では,USBシリアル変換モジュールとMega328Pとの接続が示してあります.Mega328P周りの配線(電源やパスコン・デカップリングコンデンサ)はいつも通り行なってください.

Arduinoとして使う

ボードの設定をする

Arduino IDEを開いたら,設定をします. 1. 「ツール>Board>Arduino Pro or Pro Mini」を選択して下さい. 2. 「ツール>Processor>ATmega328(3.3V,8MHz)」を選択して下さい.電源が5Vでも「3.3V,8MHz」と書いてある方を選択せねばなりません. 3. 「ツール>シリアルポート」から適切なポートを選択してください.普通『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のチェックが付いているか,BOOTSZ1024W_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ではないが,名前の通りIntelAtomプロセッサーを積んだモジュール.遂に電子工作で気軽にIntel CPUが使える時代が来た.

広告を非表示にする