秋月電子のAtmega168/328用マイコンボードキットからArduinoを作る
TOP > てきとうにこらむ > ゲーム作りとプログラミング日記 > 秋月電子のAtmega168/328用マイコンボードキットからArduinoを作る
Arduinoがもう一つほしい
Arduinoでラジコンをつくったが、Arduinoでもっと色々試してみたい。もう一台Arduinoがあると便利だなとは思ったが、UNOをもう一つ買うのもなんか無駄なような気がする。
そこで、秋月電子にある、Atmega168/328用マイコンボードキットを使ってArduinoを作ることに挑戦してみた。少しだけコストも抑えられるし。
なので、この内容はとりあえずArduinoを購入して使ってみたという前提。あと、AVRマイコンも弄ってみたというのも前提。
組み立て
組み立ては、手順書のとおりにすれば大丈夫。ただ、ピンソケットX4をショートピンでつないでおかないと、Arduinoでスケッチ出来ない(シリアル通信が出来ない)。ここで結構ハマっちゃった。
あと、AVRとの接続には今回はソケットを使用。水晶振動子は16Mhzのものを採用。
Arduino化
Arduino化の方法は2種類。
- USBシリアル変換モジュールとマイコンをメスのジャンパピンでつなぐ方法(bitbangモードを使用する方法)
- AVRマイコンのライタ、AVRISP mkIIを使用する
メスのジャンパピンがなくて、AVRISP mkIIがあったので、後者のAVRISP mkIIを使う方法を採用。
接続
AVRISP mkIIのコネクタを繋ぐ。1番が内側になっているので、コネクタに「▼」があるところを合わせる。それでUSBにつないでおく。この状態では、AVRISP mkIIのインジケーターは赤のまま。
マイコンボードにも電源が必要なので、USBシリアル変換モジュール部分からUSBにつないでおく。これで黄緑になる。
書き込み
AtmelStudio 6を起動する。
「Open」→「File」→「Arduinoのディレクトリ\\hardware\\arduino\\bootloaders\\atmega\\ATmegaBOOT_168_diecimila」を選択して開く。
Device Programmingを選択して、ToolをAVRISP mkII、DeviceをATmega168P、InterfaceをISPとする。確認できたら、Applyをクリック。
Device sigunatureをReadにクリック。エラーがなければ何かが表示される。
エラーが出た
ここで以下のようなエラーが出たことがあった。AVRとソケットの部分との接触不良のようで、クイッと押すことで解決した。
Unable to enter programming mode. Verify device selection, interface settings, target power and connections to the target device.
Memories
左側の「Memories」を選択して、FlashがATmegaBOOT_168_diecimila.hexのパスになっていることを確認して、Programをクリック。
Fuses
Fusesには、EXTENDEDに0xF8、HIGHに0xDD、LOWに0xFFを選択。下のProgramをクリック。
Lock bits
Lock bitsにはLOCKBITに0x3Fを選択。下のProgramをクリック。
Arduino IDE
さて、これでArduinoになったので、Arduino IDEでBlinkを使ってLチカをしてみる。
Arduino IDEの「ツール」→「マイコンボード」→「Arduino Diecimila or Duemilanove w/ ATmega168」を選択。
この時、「シリアルポート」は接続しているArduinoのCOMを選択する。
「ファイル」から「スケッチの例」→「01.Basics」→「Blink」を開き、マイコンボードに書き込む。
これでLED(Lの場所にあるLED)が光ったり消えたりするはず。