前のページで紹介したとおり、OnBoardはdensikit.comさんの開発されている、ブレッドボードを使ったプロトタイピングに特化したArduino互換機です。OnBoardの写真を次に示します。
OnBoardの最大の特徴は、I/Oピンなどが、2.54mmピッチで1列に並んでいる事です。この事により、ブレッドボードを使って回路の試作をする時に、配線がすっきりとします。これまでも、ブレッドボードに刺して使えるArduinoは、Arduino Nanoなどいろいろありましたが、ピンが1列に並んでいないために、配線が長くなってしまうという問題がありました。
OnBoardには9V前後のACアダプタの電源電圧を5Vに落とすための3端子レギュレータが載っていません。これは必ずしもデメリットとは言い切れず、5Vの電源電圧を与えれば5V動作、3.3Vの電源電圧を与えれば3.3V動作という具合に、電源電圧に柔軟性を持たせることができるメリットだとも考えられます。Arduino Unoに採用されているマイコン(ATmega328P)は、クロック周波数を落として、少し設定を変えれば、1.8Vから動作するので、電池駆動に向いています。(リチウム電池1個とか、ニッケル水素電池2個などでも動作する) OnBoardは、電池駆動のマイコン回路を、Arduinoの開発環境を使って開発するのに向いたツールだといえます。
そういうこともあってOnBoardでは、内蔵CR発振器を使って8MHz動作をさせることが基本となっています。(電源電圧とクロック周波数を落とすと消費電力が減り、電池の消耗がゆっくりになる) これにより、回路の部品数が減り、またI/Oピンが2つ(D20とD21)増えるメリットがあります。ただし、CR発振器は周波数精度が低いため、正確なタイミングを必要とする回路には向きません。
ただオプションでセラミック発振子をつなげられるようになっており、周波数精度の必要な8MHzクロックや16MHzクロックの回路の開発もできるようになっています。
USB-シリアル変換回路が内蔵されていないため、FTDI BasicなどのUSBシリアル変換器を使ってスケッチを書き込みます。5VのFTID Basicを使えばOnBoardも5V動作になります。また3.3VのFTDI Basicを使えばOnBoardも3.3V動作になります。
他にも、汎用のタクトスイッチが2個付いていたり、電流測定用の端子が付いていたりと色々特徴はありますが、詳細は省略します。
以上のように、OnBoardは色々な特徴を持ったArduino互換機ですが、今回OnBoardに注目した理由はブレッドボードの配線を簡略化したい点につきますから、割り切って、OnBoardを「端子が1列に並んだArduino Uno互換機」として使うことにします。
前のページでArduino Unoを使って行ったのと同じ配線を、今度はOnBoardを使って行ってみます。
今回はOnBoardをArduino Unoの互換機として動作させるため、若干の準備が必要となります。
まず、ATmega328PのブートローダをUno用の物に変更する必要があります。OnBoardに添付されているATmega328Pは、内蔵CR発振器で8MHzのクロックを生成して動作するように、ブートローダ(やヒューズビット)が書き込んであります。これを、Arduino Uno用のブートローダ(およびヒューズビット)に書き換える必要があります。OnBoardに添付されているATmega328Pを書き換えてもいいのですが、私の手元にはArduino Uno用のブートローダを書き込んだATmega328Pが多数ありますので、それに差し替えることにしました。Arduino Uno用のブートローダ(およびヒューズビット)の書き込み方については、Arduino Uno用ブートローダライタの製作の記事に詳しい説明があります。
商品名 | Arduino Uno用ブートローダスケッチライタシールドキット | |
税抜き小売価格 | 1440円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino Uno用ブートローダライタシールドキットサポートページ |
また、Arduino Unoと同じ16MHzのクロックを生成するために、16MHzのセラミック発振子が必要となります。秋月電子で売っているYIC社製のセラミック発振子を使ったところ、問題なくクロックを生成できました。(YIC社のサイトを見ても、内蔵負荷容量などの情報が載っていないので不安でしたが、問題なかったようです)
これに5VのFTDI Basicを接続すると、ほぼArduino Uno互換機として使用できます。(「ほぼ」と書いたのは、9V前後のACアダプタから電源の供給を受けて動作する機能などがないから) Arduino Uno互換機の状態のOnBoardの写真を次に示します。
これにブレッドボードを組み合わせてSG12864ASLB-GBの駆動回路を組み立てると、次の写真のようになります。比較のために、前のページに載せたArduino Unoを使った場合の写真も再掲します。
OnBoardを使う方が、短い配線でコンパクトに組み上がることが分かります。また、実際に配線作業をやった際に、OnBoardの方が配線が楽でした。
この記事を書いている時点ではOnBoardは試作機の段階です。まだ改良の余地があると思われます。ここでは、簡単に私が気づいた点を説明します。
まず、使用するピンヘッダと基板の厚さの関係についてです。OnBoardでは、ブレッドボードとの接続に、秋月電子の細ピンヘッダを使うように指定しています。このピンヘッダの短い方の金属部分は、樹脂パーツから1.8mmしか長さがありません。一方でOnBoardは1.6mm厚の基板を使っているようです。(ノギスで測定したら1.60mmだった) よって計算上、ピンヘッダの金属部分が基板から0.2mmしか頭を出さないことになります。これでは少し半田付けがしにくそうです。そこで、私は細ピンヘッダではなく、丸ピンIC連結ソケットを使いました。(下記写真を参照)
ただ、今回用いた丸ピンIC連結ソケットは40Pで1本180円もします。できれば同じ40Pで1本40円の細ピンヘッダで済ませたいところです。強度に影響しない範囲で基板を薄くしていただければ、細ピンヘッダでも半田付けしやすくなるのではないかと思います。
それから、これは他の人も指摘されていた事ですが、セラミック発振子のつながる信号線の引き回しが長いのが気になります。特に、その信号線がブレッドボードまで延びてしまっているのが問題です。セラミック発振子は、pF単位の寄生容量が付くだけで発振が不安定になります。ブレッドボードは隣の列との間に数pFの寄生容量を持っていますから、セラミック発振子のつながっている信号線は、ブレッドボードとは切り離すべきだと考えます。ヘッダピンとソケットを使ってもいいですし、パターンカットや0Ωのチップ抵抗を使ってもいいですが、セラミック発振子使用時は、何らかの形でその信号線を基板外に出さないように工夫できないでしょうか?
他にも配線ミスでSDAとSCLの信号線がつながっていないという報告が他の人からなされていますが、これは改版時に訂正されるようなので、問題ないでしょう。
いくつか気になる点はあるものの、OnBoardはブレッドボードでの試作時の配線が簡略化される点や、電源電圧やクロック周波数を変更できる点で、プロトタイピングには便利な基板だと思いました。正式な版がリリースされるのを楽しみにしています。
次のページでは、SG12864ASLB-GBの制御用ソフトウェア(MGLCDライブラリ)について説明します。
商品名 | Arduino Uno用ブートローダスケッチライタシールドキット | |
税抜き小売価格 | 1440円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino Uno用ブートローダライタシールドキットサポートページ |
商品名 | Arduino用ブートローダ/スケッチライタキット | |
税抜き小売価格 | 3000円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino用ブートローダ/スケッチライタキットサポートページ |