てきとうなさいと べぇたばん

秋月電子のAtmega168/328用マイコンボードキットからArduinoを作る

マイコンボード組み立てキット 抵抗をつけた。 LEDをつける。向きに注意 コンデンサを付ける 水晶振動子をつける。20Mhzと16Mhzが付属していて、互換性のため今回は16Mhzを実装。 3端子レギュレーターを実装。 スイッチとダイオードを実装。 DCジャックとピンヘッダを実装。ピンヘッダはペンチで折った。飛び散りやすいので注意。 ソケットの実装。付け替えとか気にしなければ、別にAVRそのままハンダ付けでも構わない。 ソケットの上からAVRマイコンをはめた図。 電解コンデンサの実装。 ピンソケットとモジュールの実装。 ショートピンを入れて完成。 AVRISP mkIIをつなぐならば、こうなる。

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)が光ったり消えたりするはず。

参考