秋月電子 Arduino互換ボードの使い方
by ボクにもわかる地上デジタル
このページは秋月電子 Arduino互換ボード AE-ATmegaの製作に関するメモです。本製作でAE-ATmegaが「Arduino Duemilanove互換ボード」になります。

秋月電子 Arduino互換ボード
- AE-ATmegaをArduino Duemilanove互換ボードにするための必要部品
- マイコン(IC1)はATmega328Pを使用する。
- 水晶振動子(クロック)は16MHzを使用する。(秋月キットの20MHzは使用しない)
- USBシリアル変換モジュールAE-UM232R(秋月製)。
- ダイオード(D1)はACと直流が同じ方向から取り出せるブリッジダイオードを使用。
- 一例として、DF06M(Fairchild)やDI1510(PANJIT)。
- 電解コンデンサC5とC6は超小型(高さの低いタイプ)が必要。(シールドに干渉しない大きさ)
- 回路図では100uFが使用されているが容量が大きすぎて小型品の入手が困難である。
- 使用するレギュレータ(IC2)のデータシートに合わせて容量を調整する。
- 一般的に、入力のC5は1uF程度から、出力のC6は10uF程度からである。
- C6の容量が必要以上に大きい場合は、逆電圧防止ダイオードをレギュレータICの入出力間に挿入する必要がある。
- LEDは全て高輝度タイプを使用する。一例として、PWRを緑に、その他は黄色に。
- LEDのうちRXとLを赤色にすると見やすくなる。また、秋月ボードのRXは送信時に点灯する。
- 純正Arduino基板ではボードの送受信の方向に合わせてFT232RLのTXLEDをRX、RXLEDをTXとしている。
- しかし、秋月ボードではArduinoとは逆になっているので基板の表示も逆になっている(ので逆にした方が良い)
- 高輝度タイプでは無いLEDを使用する場合は電流制限抵抗の値を低くする必要がある。
- なお、既に半田付けしてしまった人は、FTDIの設定ツールFT_PROGを使用して、C0をRXLED、C1をTXLEDに設定しても良い(と思う)。
- プラネジ+6角スペーサ(6箇所)。
- 秋月ボードには電解コンデンサC5の位置にビス穴が無い。
- ボードの足としてスペーサを使用する場合に基板がアンバランスになる。
(安定して使用することが出来ない)
- ↓こんなのでは、若干!?、使いにくい。

- その他の部品は秋月電子のサイトを参照。
- AE-ATmegaをArduino Duemilanove互換ボードにするための改造部分(注意点)
- シールドを使用する場合、USBシリアル変換モジュール(AE-UM232R)上のジャンパーJ1とJ2が接触する。
- モジュール上のJ1とJ2のピンヘッダを取り外してリード線でジャンパー線を半田付けする。
- 秋月の説明書(2011年2月)の写真でJ1が1-2ピン間に接続されているが2-3ピン間に接続すること。
(1-2ピン間の接続だとFT232RLのIOが3.3V動作になってしまい、ATmegaの5.0Vと合わなくなる)
- ↓左側のジャンパーがJ1、中央付近がJ2。

- USBシリアル変換モジュールは直接実装する。
- 秋月の部品リスト(2011年1月)でICソケットを使用しているがシールドに干渉する。
- LEDのPWRとレギュレータ(IC2)との間にプラネジ用のビス穴をあける。(傾いたまま使用したくない人のみ)
- ボードの足にスペーサを使用するために、取付用の穴をあける。
- パターンを切らないように穴をあけて(左図)、プラスチックのスペーサとネジを取り付ける(右図)
穴をあける
プラビス追加
- ATmega328PにArduinoブートローダを書き込む(次節を参照)
USBシリアル変換モジュールを用いたBitBang法でArduinoブートローダを書き込む
- 秋月ボード上の端子X3(CTS,DSR,DCD,RI)からICSP(MISO,SCK,MOSI,RESET)に接続する。
- X3端子(1:CTS) -> ICSP端子(1:MISO)
- X3端子(2:DSR) -> ICSP端子(3:SCK)
- X3端子(3:DCD) -> ICSP端子(4:MOSI)
- X3端子(4:RI) -> ICSP端子(5:RESET)
X3端子(秋月)
1:CTS
| 2:DSR
| 3:DCD
| 4:RI
|
ICSP
1:MISO
| 2:VCC
|
3:SCK
| 4:MOSI
|
5:RESET
| 6:GND
|
- シリアルポートのCOM番号はCOM1~COM9の間の番号に設定する。
- BitBang法およびAVRライタソフトGUI版は下記のサイト等に詳しく紹介されている。
- ArduinoソフトウェアはArduinoサイトからダウンロードする。
- Arduinoマイコンに書き込む「ブートローダ」は上記ArduinoソフトウェアのArduinoフォルダに入っている下記HEXファイル。
- C:\Program Files\Arduino\hardware\arduino\bootloaders\atmega
ATmegaBOOT_168_atmega328.hex
- 書き込み前に前記サイトで説明されているFUSE値の設定が必要である。
FUSE設定は低速モードで行う。コマンドラインオプションに「-P ft0 -B 4800」を指定しておく。FUSE設定後に「-P ft0」にする
Arduino 互換機
| Fuse設定
| 使用ファームウェア
|
Hi Byte (hFuse)
| Low Byte (lFuse)
| Ex Byte (eFuse)
|
Duemilanove(本機)
| DA
| FF
| 05
| ATmegaBOOT_168_atmega328.hex
|
Arduino 168P 16MHz
| DD
| FF
| 00
| ATmegaBOOT_168_diecimila.hex
|
Japanino(内部クロック)
| DE
| D2
| 00
| 書き込み済
|
Japanino(外部クロック)
| DD
| C6
| 00
| (ATmegaBOOT_168_pro_8MHz.hex)
|
- 書き込み後にLock Bitを05(ロック)に設定する。解除するばあいは3Fに設定する。
- 最後にC3端子とICSP端子の4本の接続を切断する。
Arduinoを始める
- 既にダウンロードしたArduinoソフトウェアのZIPフォルダを解凍(復号)する。
- arduino-xxxxフォルダの中にあるarduino.exeを実行するだけで、とても簡単な統合開発環境が起動する。
- Tools(ツール)メニューのBoard(マイコンボード)でDuemilanove(注意:Diecimilaではない)を選択し、また、Serial Port(シリアルポート)でArduinoが接続されている仮想シリアルポート(FTDIのドライバのCOMポート)を選択する。
- FlieメニューのExamplesから適当なソース(スケッチ)を呼んできて、Uploadすればボードにソフトが転送される。
まずは使ってみよう
まずは温湿度計を製作してみます。ハードウェアの製作方法は「Arduinoで湿度を測定する温湿度ロガー」を参照してください。
ここではArduinoのソフトの使い方について簡単に説明します。まずは、Arduinoの開発環境(Arduino IDE)を起動します。そして、「ファイル」メニューの「環境設定」を開き、「.inoファイルをArduino IDEに関連づける」にチェックを入れます。次に、温湿度ロガーのソフトウェアを、前述の「温湿度ロガーのページ」からダウンロードします。ZIP圧縮されていますので.inoで終わるファイルを展開します。この.inoで終わるファイルがArduino用のソースコード(スケッチ)です。この.inoファイルをダブルクリックするとArduinoが起動します。また、.inoファイルをフォルダに保存するメッセージが出ますので「はい」をクリックすれば、ソースコードが表示されます。
最後に、PCに接続したArduinoのハードの設定を行います。既に「Arduinoを始める」で述べたとおり、「ツール」メニューから「マイコンボード」で「Duemilanove」を選択し、同じ「ツール」メニューから「シリアルポート」でArduinoが接続されているCOMポートを選択します。
Arduinoへのソフトの書き込みは、ウィンド上部に並んでいる左から2番目の「右矢印」のアイコンボタンをクリックします。このボタンでコンパイルとArduinoへの書き込みの両方を行います。左の「チェック」のアイコンはコンパイルだけを行う時のボタンです。
格安プロトシールド(ミニブレッドボードシールド)の製作
Arduino用のプロトシールド、ユニバーサルシールド、バニラシールドなどにミニブレッドボードを取り付けることで、ちょっとした回路を簡単に製作することが出来ます。ところが、これらの元となるシールド基板が高価です。
ところが、秋月電子の「ATMEGA168/328用マイコンボード」だと、1枚150円と安価です。この基板を使って、(1)ピンの長さが長いピンソケットを4か所に半田付けして、(2)ピンソケットから本基板へ接続されている不要な配線パターンをルーターやカッターで全て切断し、(3)ミニブレッドボードを両面テープで張り付けるだけで、簡単なプロトシールドが製作できます。

秋月基板を使った格安プロトシールド
ボクの格安プロトシールドは、もう少しだけ手を入れています。上図の右側にある白いスイッチはリセットスイッチです。左側にある3個のLEDは左から順にシリアルの動作信号、ポート13出力、電源です。シリアル用のLED信号は秋月USBシリアル変換モジュール(AE-UM232R)上のピンヘッダに、ピンソケットで接続していますので、格安プロトシールドを脱着することが可能です。左上の金メッキの端子はGNDです。テスターやオシロに接続するのに便利です。
これらの改造を行った場合の配線を下図に示しますが、面倒な方は省略してください。この改造によって、ものすごく便利になるというわけではありません。また、抵抗R6の上側のラインもルータで切断しておかないと電源がショートしてしまいますので、ご注意ください。

秋月基板を使った格安プロトシールド(背面)
その他のArduino
半田付けが苦手な方は純正ArduinoのUNOを購入するのが良いでしょう。また、マイコンが初めての方には「大人の科学」のシリーズでJapaninoと呼ばれるArduino互換製品(商品=送料込¥3,360円)もあります。カラー写真の多い書籍が付属しているので、これからマイコンやArduinoを始めるには良いでしょう。ただし、Japaninoの性能(クロック、メモリー)はUNOやDuemilanoveの半分くらいであったり、通信TX/RXが使用できないのでXBeeとの接続が出来ないといった制約があります。

学研 Arduino互換ボード Japanino
Arduino互換機の性能比較表
性能
| 秋月電子 Duemilanove 互換 (本ページ)
| 学研 大人の科学 付録基板Japanino
| 秋月電子 ATmega マイコン ボードキット
|
互換性
| Duemilanove
| Sparkfun 168P Pro
| -
|
マイコン
| ATmega328P
| ATmega168V
| ATmega168P
|
クロック
| 16MHz
| 8MHz
| 20MHz/16MHz
|
フラッシュ
| 32KB
| 16KB
| 16KB
|
RAM
| 2KB
| 1KB
| 1KB
|
EEPROM
| 1024Bytes
| 512Bytes
| 512Bytes
|
USB IF
| FTDI FT232RL
| SiliconLab CP2104
| FTDI FT232RL
|
Arduinoと秋月電子の液晶との接続
秋月電子の液晶やその他の市販液晶シールドとの接続については当サイト内の「Arduino用液晶シールド」にて詳しく説明しています。

Arduinoと秋月電子の液晶との接続
ArduinoとXBeeとの接続
XBeeとの接続例を下図に示しますが、これは決して簡単に製作できる例では無い。より簡単に接続できるXBeeシールドが売られているからだ。開発環境を構築するために、ボクの手持ちの基板を組み合わせたに過ぎないのです。

XBeeと接続したZigBee Coordinator(親機)
まず、左上の基板がXBeeをRS-232Cレベルに変換する基板です。その右にRS-232Cレベルを5V CMOSに変換する基板があります。つまり、CMOS 3.3VのXBeeの信号を、一度、RS-232Cレベル(±15V)に変換してからCMOS 5Vに変換しています。とても無駄だが、5V系のArduinoに3.3V系のXBeeを直結するよりはマシである。
左下にはSDカードのレベル変換があります。ここでもSDの3.3Vを5Vに変換しています。電子工作ではH8マイコンなどを使用した場合も5V系を用いることが多いので、3.3V系と5V系の変換の機会が多い。Arduinoでも、こういった過去の資産を役立てることで、てっとり早く評価を開始できると思います。今後は3.3V系が中心になるだろうが。
真ん中の手前にあるのがArduino互換機です。その右にはキャラクタ液晶を接続しています。
ボクは、この開発環境で管理用ライブラリ ZB Coordinatorの製作を行っています。元々、パソコン用/H8マイコン用に開発したものをArduinoに移植しているのです。ただ問題もあります。元の開発言語がC言語で、H8用とArduino用をなるべく共用しようとしていて、そこに時間がかかってしまっています。Arduino用に一から書き直した方が早いことにも気づいているのですが、ボクにとっては省電力に動作させる設定を熟知したH8マイコンも使いやすいので、両対応しつづけています。Arduinoを標準ライブラリだけで省電力で動かせるようになったら、H8マイコンは捨てるかもしれません。
Arduinoメインメニューへ戻る
XBeeメインメニューへ戻る
地デジトップへ戻る
Arduinoで湿度を測定する
Arduinoで一酸化炭素やメタンを測定
Arduino用液晶シールド
Arduinoで8X8マトリクスLEDに文字表示
Arduino 赤外線リモコンコード解析
Arduino用Wi-Fi無線LAN
Arduino用 EasyVR Shield で音声認識
ArduinoとXBeeとの接続