商品名 | Arduino Uno用ブートローダスケッチライタシールドキット | |
税抜き小売価格 | 1440円 | |
販売店 | スイッチサイエンス |
2015年10月20日 | 暫定公開。 |
2015年10月31日 | 正式公開。 |
完成したArduino Uno用ブートローダスケッチライタシールドを用いて、ATmega328PにArduino Unoのブートローダを書き込む方法を説明します。
なお、Arduino Unoのブートローダを書き込んだATmega328Pを動作させるには、外部クロック源として16MHzの水晶振動子が必要になります。
以下の手順に従って、ブートローダを書き込んでください。
Arduino IDE 1.0.Xの場合
注:Arduino IDE 1.6.Xまたは1.7.Xをお使いの場合は、ツール→ボードメニューになります。
Arduino IDE 1.6.Xおよび1.7.Xの場合
Arduino IDE 1.0.Xの場合
注1:上の図ではCOM3を選んでいますが、実際にはご自分の環境に合わせてポート番号を指定してください。
注2:Arduino IDE 1.6.Xまたは1.7.Xをお使いの場合は、ツール→ポートメニューになります。
Arduino IDE 1.6.Xおよび1.7.Xの場合
下の図の様に、右矢印ボタンをクリックして、ArduinoISPのスケッチをArduino Unoに書き込みます。
ArduinoISPのスケッチが正常に書き込めると、HeartbeatのLED(LED2)が明るくなったり暗くなったりを繰り返します。
下の写真のように、マイコンをソケットに挿入してから、レバーを倒して固定します。
ブートローダの書き込み中は、ProgrammingのLED(LED4)が点灯します。
しばらくすると、ブートローダが書き込めるはずです。
ブートローダの書き込みが終わったら、ProgrammingのLEDは消えます。
もし、ブートローダの書き込みに失敗すると、ErrorのLED(LED3)が点灯して書き込みが中断します。その場合は、正しい手順で書き込んでいるか再確認の上、もう一度ブートローダを書き込んでください。
注:エラーの発生の状況によっては、ErrorのLEDが点灯しない事もあります。必ず画面のメッセージを確認してください。
ZIFソケットのレバーを立ててからマイコンを取ってください。
続けて別のマイコンにブートローダを書き込む場合は、手順9~11を繰り返してください。
前章のATmega328PにArduino Unoのブートローダを書き込む方法において、手順8と手順9の間で、ツール→マイコンボードメニュー(Arduino IDE 1.0.Xの場合)でArduino Diecimila or Duemilanove w/ ATmega168を選ぶと、ATmega168にArduino Duemilanoveのブートローダを書き込めます。
なお、Arduino Duemilanoveのブートローダを書き込んだATmega168を動作させるには、外部クロック源として16MHzの水晶振動子が必要になります。
注:末尾にPの付いたATmega168Pという型番のAVRマイコンがありますが、それにはここに書いた方法でブートローダを書き込めません。後述する方法で書き込んでください。
Arduino IDE 1.0.Xの場合
Arduino IDE 1.6.Xまたは1.7.Xをお使いの場合は、ツール→マイコンボードメニューで一旦Arduino Duemilanove or Diecimilaを選んでから、ツール→プロセッサメニューでATmega168を選びます。
Arduino IDE 1.6.Xおよび1.7.Xの場合
Arduino IDE 1.6.Xおよび1.7.Xの場合
Arduino IDEの画面に「ブートローダの書込みが完了しました。」と表示され、シールドのErrorのLEDが点灯していなければ、基本的にはブートローダが書き込めているはずですが、実際にブートローダを起動して動作を確認する方法を説明します。
そのための一番簡単な方法は、例えばATmega328PにArduino Unoのブートローダを書き込んだ場合なら、Arduino Unoに載っているATmega328P-PUを、自分でブートローダを書き込んだものに交換してみる方法です。ただし、Arduino Unoでも、表面実装のATmega328Pを使用しているタイプは、マイコンの交換ができませんので、ここで説明する方法は使えません。
下の写真を参考に、ATmega328P-PUを交換して、何か適当なスケッチを書き込んでみてください。ブートローダが正常に機能していれば、スケッチが書き込めて、その後、そのスケッチが動作し始めるはずです。(スケッチの例の中にある01.BasicsのBlinkという、Arduino内蔵LEDを点滅させるスケッチを書き込めば、Arduino単体でスケッチの動作まで確認できるのでお勧めです)
なお、ATmega168にArduino Duemilanoveのブートローダを書き込んだ場合は、もちろんArduino Duemilanoveに搭載されているATmega168(あるいはATmega328P)と交換すれば、ブートローダの動作試験ができるのですが、Arduino Duemilanoveがなくても、Arduino UnoのATmega328Pと交換することで、ブートローダの動作試験が行えます。
ICソケットに挿入されたマイコンを交換時には、リード(足)を傷めないように気をつけることが重要です。
ICを引き抜くための工具も市販されていますが、100円ショップの精密ドライバーセットに入っている小型のマイナスドライバーでも綺麗にICを引き抜けます。ICソケットとICの間にマイナスドライバーをこじ入れて、少しずつICを浮かせていきます。ICの両端を交互に少しずつ浮かせていくのがコツです。
また、新品のICは、両側のリードが平行になっておらず、ハの字型に広がっています。あらかじめ平行に整形しないと、ICソケットに挿入できません。ICのリードを整形する工具もあるのですが、机の平面を使っても、ICとリードが垂直になるように整形できます。ただし、静電気でICを壊す恐れがあるので、机にICのリードを押し当てるのは本来好ましい方法ではありません。
ATmega328PにArduino Unoスケッチを書き込んだ場合は、のATmega328P-PUを交換してみて、無事にスケッチが書き込めるようなら、元のATmega328P-PUに戻してもいいですし、新しい方のATmega328P-PUをそのままArduino Unoで使ってもいいです。(ICの交換回数が減るので、後者がお勧め)
もしスケッチがうまく書き込めないなら、元のATmega328P-PUに戻してください。ブートローダがうまく書き込めていないATmega328P-PUは、もう一度ブートローダを書き直して見ましょう。
なお、Arduino Unoに使われているバネ式のICソケットは、あまり耐久性がなく、何回もICの交換を繰り返していると接触不良などの不具合が発生します。そういう意味では、Arduino Unoをブートローダの動作試験に使うのは好ましくありません。2、3回ブートローダの書き込みと動作試験をやってみて、書き込みに自信が出てきたら、Arduino Unoを使って動作試験をするのは止めましょう。
次のページでは、ATmega168/328Pに、ブートローダを利用せずにスケッチを書きこむ方法を説明します。
商品名 | Arduino用ブートローダ/スケッチライタキット | |
税抜き小売価格 | 3000円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino用ブートローダ/スケッチライタキットサポートページ |
商品名 | Arduino用ブートローダ/スケッチライタ(完成品) | |
税抜き小売価格 | 3600円 | |
販売店 | スイッチサイエンス マルツ | |
サポートページ | Arduino用ブートローダ/スケッチライタ(完成品)サポートページ |
商品名 | AVRマイコンICSP用6Pケーブル | |
税抜き小売価格 | 190円 | |
販売店 | スイッチサイエンス | |
サポートページ | AVRマイコンICSP用6Pケーブルサポートページ |