エレクトロニクス工作室
No.160 Arduinoのブートローダー書込器
1.はじめに
No.147では初心者として、Arduinoの互換機を作製しました。この時には本家ArduinoのUNOを使い、ジャンプワイヤーで接続してブートローダーを書き込みました。このような方法は、半年もすると(いや3日か)きれいに忘れてしまうものです。探してみると、ブートローダー書込器がとても安く(500円)入手できます。そこで、aitendoでAKIT-SBWというキットを購入しました。これは写真1のような、シールド基板です。Arduinoで遊び始めたので、まず手当たり次第に互換機やシールド基板を作った、というのが実情でしょう。この他に極めて酷似した、P-SBWというキットもあります。基板は同じように見えますし操作手順も同じですので、何が異なるのかは良く解りません。恐らく、ほとんど同じと思います。
写真1 UNOの上に乗せた「ブートローダー書込器」のシールド基板です。
ブートローダーはAVRのICに直接書込みます。従って、写真2のようなタイプには書き込み不可能です。その理由は、説明する必要もないでしょう。写真3のような、DIPタイプのAVRを使っている基板がターゲットになります。
写真2 このようなArduino互換機もあるのですが、これは書き込み不可能です。
写真3 このようなDIPタイプを使う互換機が対象です。
2.シールド基板
高周波の場合ですと、金属で囲ってしまいたくなるのですが、Arduinoの場合は上から差し込む基板の事を言います。このブートローダーのほかに、カラー等のLCDやスイッチなどのシールド基板があります。専用のユニバーサル基板もありますので、自作も容易です。機能を多くするために2階建て、3階建てにする事が可能です。
3.ブートローダー書き込みキット
写真4のようなaitendoのキットを使いました。キットの部品も写真5のように僅かです。キットとしては500円ですが、ゼロプレッシャーソケットまで付属していました。普通のICソケットのタイプもあり、更に安く290円でした。
写真4 このようなキットです。
写真5 入っている部品はこれだけ・・。
このキットの他にArduinoの本体が一台必要になります。普通はUNOですが、もちろん互換機でも使えます。前回まとめて作っておいた互換機の基板とも思いましたが、ここは起点にもなるので本家の「UNO」にしました。
キットと言ってもハンダ付けなどの工作は、ほんの僅かで完成してしまいます。とても簡単なキットですが、使うのにソフトが絡みます。使用するには、それなりの手順があります。
4.作成
ハードの作製としては、このように終わってしまいます。気が付いた点としては、ヘッダーピンがフルに付いておらず写真6のように必要最小限しかありません。フルであればUNO本体に間違って入れる心配はないのですが、これだとズレても入ってしまいます。普通は気が付くと思いますが、注意が必要です。もちろんUNOを1台専用に使うのであれば関係ありません。少々このコネクタでは・・と不安があったため、写真7のように手持ちの部品で追加してしまいました。もちろん、追加する必要性はありません。
写真6 ヘッダーピンも最小限です。
写真7 手持ちを使って追加してしまいました。
ちょっとした事ですが、写真8のようにLEDの足がUNOのICSPピンにニアミスしてしまいます。実際には接触しないので良しとしましたが、LEDのハンダ面は極力足を短くしてハンダ付けするのが良さそうです。カプトンテープなど貼って置いた方が良いかもしれません。
ソフトの準備としては、UNOに専用のスケッチ「optifix」をダウンロードします。これを解凍して書き込みます。次に上側にシールド基板としてこのキットを乗せると完成になります。このままでは少々心もとないので、写真9のようなカラフルなUNO用ホルダーをケース代わりに下に付けています。ホルダーといっても、UNO下側のハンダ面を覆うだけです。しかも少々精度に難点があり、多少基板を削ったりしないと収まりませんでした。また、タッピングタイプの3mmネジが別に必要です。しかし、このネジが一か所どうしても入りません。コネクタに接近し過ぎのためで、特に無理する必要もないので諦めました。
写真8 LEDの足がICSPピンにニアミスします。
写真9 UNO用のホルダーを使いました。
これで書き込み器として完成しました。写真10が完成した基板とUNO+専用ホルダーです。色が同じようなので、ホルダーは見にくいのですが・・。
写真10 完成した基板とUNO+専用ホルダーです。
5.使用感
もちろん、ブートローダーを入れるべきAVRが無い事にはテストになりません。AVRには普通のDIPタイプのATmega328Pを使いました。これが普通UNOに使われるCPUだからです。ATmega168Pでも使えますが、この場合には書込むスケッチを修正しなくてはなりません。Arduino互換機として色々な種類ができてしまうと後々面倒となるため、ATmega328P以外は使わない事にしています。その方が無難でしょう。
操作は簡単ですが、それでも忘れてしまいます。そこで写真11のように手順を印刷してラミネートし、同じ袋に入れて保管しています。
写真11 手順をラミネートし、同じ袋に保管しました。
写真12が書き込みをしている様子です。これでいとも簡単にArduino用のAVRが作れるようになりました。UNO互換機が基板は別として、IC的にはどんどん作れてしまいます。
写真12 ブートローダーの書込みをしている様子です。