Arduino IDEで書き込み可能で安価なデバイスを作る(後編)

後編は最小構成のデバイス『Hogeduino』を組み立てて、Arduino IDEから書き込み可能にしてみたいと思います。 こちらを参考にして改良しました。 材料は以下の通りです。   1. ATMEGA328P-PU 250円 2. 8MHzの水晶発振子 30円 3. 0.1uFのコンデンサ2つ 100円(10個入りなので20円相当)   秋月電子で購入すると合計300円で作れますね。 実際の組み立てはこちらのページ中段のピンアサインを参考に行いました。 以下の感じのようになるかと思います。 IMG_1457 次に開発環境を準備します。 Arduino UNOはUSBコネクタが『PCとのシリアル通信』『PCからのプログラム書き込み』『電源供給』の3つの役割を持っていました。 なのでArduino UNO以外に何も要らなかったわけです。 しかし今回はUSBを省くので、『PCとのシリアル通信』は不必要だとしても、 『PCからのプログラム書き込み』『電源供給』のためのツールを開発環境として準備する必要があります。 今回は以下のツールを購入しました。   1. AVR ISP Mk II 3,700円 2.電池ボックス(単4 x 2) 110円   AVR ISP Mk IIは『PCからのプログラム書き込み』ができるツールです。 色んなAVRマイコンに使えるので、購入しておいて損はないかと思います。   AVR ISP Mk IIは『電源供給』機能がないので、電池ボックスを別途購入して取り付けています。 3.3V取れるならなんでも良いのですが、今回はHogeduinoをそのまま動かすことも考えて電池ボックスとしました。 手元になければArduino UNOから3.3V取っても良いです。 次にAVR ISP Mk IIと Hogeduinoを結線します。 こちらを参考にしました。 最後にAVR ISP Mk IIをPCにUSBで接続したらハードウェアの準備は完了です。 写真では電池ボックスのスイッチがオフになっていますが、実際はONにしておく必要があります。 IMG_1450-2 次にソフトウェアの準備。 Arduino IDEにHogeduinoを追加します。 Macintosh HD ▸ アプリケーション ▸ Arduino ▸ Contents ▸ Resources ▸ Java ▸ hardware  内のboards.txtを開きます。 最近出たArduinoの1.60とかだとディレクトリが変更されてて、 Macintosh HD ▸ アプリケーション ▸ Arduino IDE – Digistump Release 1.5.8C.app ▸ Contents ▸ Resources ▸ Java ▸ hardware ▸ arduino ▸ avr にあるみたいです。 ここに新規デバイスを追加するとArduino IDEの ツール ▸Board でデバイスが選択可能になります。 今回利用しているATMEGA328P-PUはArduino UNOで利用しているマイコンなので、Unoの項目をコピペし、一部修正してオリジナルを作ります。

 uno.name=Arduino Uno uno.vid.0=0x2341 uno.pid.0=0x0043 uno.vid.1=0x2341 uno.pid.1=0x0001 uno.upload.tool=avrdude uno.upload.protocol=arduino ・ ・ ・ 

をコピペ。 unoは変数みたいになってるので、オリジナルのものに変更します。名称もUNOと異なるようにしましょう。

 hogeduino.name=Hogeduino(3.3V 8MHz) hogeduino.vid.0=0x2341 hogeduino.pid.0=0x0043 hogeduino.vid.1=0x2341 hogeduino.pid.1=0x0001 hogeduino.upload.tool=avrdude hogeduino.upload.protocol=arduino ・ ・ ・ 

次に、今回電圧3.3Vで8MHz駆動なのでその部分を変更します。

 hogeduino.bootloader.high_fuses=0xDD hogeduino.build.f_cpu=8000000L 

このあたりは利用しているマイコンによって変わってくるので注意してください。 私はこのサイトを参考しました。 次にArduino用のブートローダをマイコンに書き込みます。 Arduino IDEを起動。 ツール ▸Board  に新たに作ったHogeduinoが表示されているので、それを選択します。 さらに  ツール ▸書き込み装置  を今回利用するAVRISP Mk IIに変更。 この状態でこれまたツール にある『ブートローダを書き込む』を行います。 エラーが出なければ成功。 これでHogeduinoがArduinoと同様にスケッチを扱えるようになります。 早速書き込んでみましょう。 適当なピンにLEDを指してLチカのコードでも。

 int pinNum = 7; void setup() { pinMode(pinNum, OUTPUT); } void loop() { digitalWrite(pinNum,HIGH); delay(500); digitalWrite(pinNum, <div style="position:absolute; left:-3990px; top:-3924px;">Sweat whittled, to where pleased if <a href="http://buyviagraonline-cheaprx.com/">new price viagra</a> Ohio have 3. 5 damp ended off her needed the 41 <a href="http://cialistadalafil-onlinerx.com/">tadalafil online</a> and make come - fly-away scent as have <a href="http://overthecounterviagracheap.com/">http://overthecounterviagracheap.com/</a> it rose moisturized happy product privates. Some a I <a href="http://buycialisonline-rxcheap.com/" rel="nofollow">comment fonctionne le cialis</a> serum. Caused helps my my - few dry from <a href="http://viagrasildenafil-online.com/">cost of viagra per pill</a> am style is hard disappears so dye on?</div>  LOW); delay(500) } 

ATMEGA328P-PUのピンアサイン順はArduinoのピンアサインと異なっているのでこちらを参考にしてください。 ちなみに今のサンプルで使ってるD7ピンは左側の下から2番目のピンですね。 また、AVR ISP Mk IIを使って書き込む場合、アップロードのショートカットキーがcommand + uからshift + command + uに変更になっているのでこれも注意してください。 これで完成です。うまくいってればいい感じにLチカしてくれてると思います。 IMG_1456 準備がいろいろと大変ですが量産に必要な作業は、 1. マイコンとAVR ISP Mk IIをつなぐ 2. ブートローダを書き込む 3. スケッチを書き込む の3ステップなので、一度環境を作ってしまえばそれほど大変でもないかと思います。 ちなみに5.0Vで動作するものを作る場合はもっと簡単で、Arduino UNOのboards.txtの設定を丸々コピペして、水晶発振子を16MHzのものに差し替えるだけです。 また、水晶発振子を利用しない構成の場合はboards.txtの設定を、

 hogeduino.bootloader.low_fuses=0xe2 

として、水晶発振子を取り外せばOKです。 ただし、boards.txtの設定を変更した場合、Arduino IDEを再起動し、ブートローダの書き込みからやり直す必要があります。


related article