秋月のArduino UNO互換基板

投稿日 2021/01/04

ひところはちょっとした実験や小物を作るときにPICを使っていましたが、その回数も少なくなり、たまにしかプログラミングしないと初期設定などをすっかり忘れてしまい最初から調べなおすはめになります。それがなかなか面倒です。その点AVRマイコンは、手っ取り早く動くところまでくみ上げるには重宝します。使用例が多いArduino UNOと、充実したライブラリーや簡単な開発環境(Arduino IDE)のおかげで非常に取っ付きやすいからです。

とはいえ、数千円もする純正Arduino UNOを購入する気もしませんので、なんとか安く済ませたい。CNの通販サイトやAMZでも、数百円というUNO互換器が販売されているようですが、それはそれとして、今回は秋月電子のUNO互換基板AE-ATmegaと在庫部品で格安Arduino UNO互換器を作ってみました。AE-ATmegaの価格は150円です。一応Arduino UNOがあれば、簡単な実験はいつでも出来ますし、UNO用のシールドも多く販売されていますので何かと便利です。もちろん秋月の基板を使わなくてもArduino UNOの回路は簡単ですので、配線も自分でやることも出来ますが、そこは市販基板で手間を省くことにしました。
 

ArduinoUNO_Board

秋月のArduino UNO互換基板AE-ATmegaへの実装の様子

​外部電源用の部品は組み込んでいない

○用意する主な部品

 

秋月電子のArduino UNO互換基板(AE-ATmega) https://akizukidenshi.com/catalog/g/gP-04399/

AVRマイコン ATMega328P (ブートローダ書き込み済みのもの) https://akizukidenshi.com/catalog/g/gI-12774/

USB-RS232変換モジュール https://akizukidenshi.com/catalog/g/gK-06693/

16MHzのXTAL、タクトスイッチ、LED、抵抗、コンデンサー、ピン付きソケットその他


使用部品の詳細や回路図は、秋月電子のAE-ATmegaのページにリストで掲載されているので、それを見て揃えると便利です。当局の場合はすべて在庫がありました。

○組み立て

組み立ては簡単です。出来上がった基板ですので、部品を差し込んで半田付けするだけです。PCからUSBケーブルをUSB-RS232変換モジュールに接続すると5Vが供給されるため、今回は外部電源部は組み込んでいません。必要になったらいつでも組み込めます。他に、必要なければRS232信号のLEDや、ICSPのピンなどは省略できます。ATMega328Pはソケットにしておいたほうが後々便利です。


○プログラム開発環境はArduino IDEを使用する

Arduinoの便利な点として開発環境のArduino IDEがあることです。シンプルながら最低限の機能がありライブラリも充実しています。スケッチ例なども参考になります。RS232のCOMシリアルモニターもあり、デバッグなどに便利です。また、UNOだけではなくさまざまなAVRボードにも対応できます。コンパイラーはC++でオブジェクト指向のようです。マイコンへの直接書き込みも簡単な操作で出来ますし、バイナリー(HEX)でファイル出力することもできます。

このArduino IDEからマイコンに直接書き込むにはマイコンをArduino化(一般にこう呼ばれているが違和感あり)しておかなければなりません。Arduino化とは、すなわちマイコンにブートローダーを書き込んでおくことです。ブートローダーが書き込まれていないマイコンにはICSPピンを使用してAVRISPmk2などの専用書き込み器で書き込まなければなりません。それでは利便性に欠けるため、まだ機器に組み込んでいないマイコンの場合は、ブートローダーを書き込んでArduino化した上でUNOとArduino IDEを組み合わせた開発環境で開発したほうが効率がよいでしょう。
 

秋月ArduinoUNO互換基板1.JPG

Arduino UNOには便利なシールドがいくつも市販されている

これは2.4インチTFTタッチディスプレイ

ソケットに差し込むだけ(ワイヤー配線無し)ですぐに使える

○Arduinoにするにはブートローダーを書き込む必要がある

前述のようにArduino IDEから直接書き込みを行うには、マイコンにブートローダーを書き込んでおく必要があります。生のATMega328PではArduino IDEから直接書き込みができません。これはArduino IDEがICSPを使わずRS232の信号を用いて書き込みを行うようになっているためです。

ではブートローダーはどうやって書き込むのかというと、ICSPピンを使ってAVRISPmk2のような専用書き込み器を使って書き込まなければなりません。そのAVRISPmk2は3000円くらいするものですので論外です。(Arduino UNOを使用して書き込むこともできるが(Arduino ISP)) このため秋月電子が販売しているブートローダー書き込み済みのATMega328Pを購入するのが手間と費用面で有利です。

○簡単なプログラムは既存スケッチをベースにすればすぐ動く

アプリケーションプログラムのほとんどはADコンバータから読み込んだデータを解釈したり、I2C制御のセンサーから得たデータを加工してLCDに表示したり、IOピンをON/OFFしたり、COMポートに出力したり、LEDを点灯させたりと、やっていることに大きな差はありませんので、動作確認されているスケッチ例をベースにすると便利です。また、市販本やネットをググれば多くのサンプルが出てきます。このあたりがArduinoを使う最も大きなメリットでしょう。

TFT_DISPLAY_2.4inch.JPG

サインカーブを描いてみました

○出来上がったプログラムにブートローダーは必要ない

ついでですが、ブートローダを書き込んだATMega328Pは、Arduino IDEの書き込み機能が使えて大変便利ですが、ブートローダは出来上がったプログラムの実行には関係が無く、ただメモリ容量を消費しているだけです。ブートローダーが占有しているメモリ領域もプログラムで使いたいという場合は、Arduino IDEでのコンパイル結果をバイナリ(HEX)ファイルに出力し、AVRISPmk2などの書き込み器でプログラムのみを書き込んで(書き込みはArduino Studioの書き込み機能を使用する)使用することができます。

 

 

 

 

(JF1VRR)