Bluetoothとラジコンサーボに特化したオリジナルのマイコンボードを作ってみようという企画です。
つくりたいもの
ロボット用マイコンボードです。スマホやPCから操縦できるようにBluetoothを搭載します。BluetoothはUART接続のモジュールを使うのが簡単ですが、高価ですし技適の問題があったりするので、USBドングルを使うことにします。USBドングルはマイコンで扱うのがすこし難しいですが、安価なうえに技適に関する心配がありません。またRCサーボを9個程度PWM制御できるようにして、ボード上にコネクタを設けます。電源はNi-MH電池4セル〜6セル(4.8V〜7.2V)またはLi-Po電池2セル(7.4V)を想定します。
Bluetoothとラジコンサーボのパルス制御に特化するということで、BluePulsar(ぶるーぱるさー)と命名します。
マイコンの選定条件
btstackについて
Bluetoothスタックはbtstackを利用するとしましょう。btstackは、Matthias Ringwaldさん作のBluetoothスタックです。リソースの乏しいマイコンでも利用できるのが特長で、4kBしかRAMがないMSP430でも最低限SPPは動くらしいです。
で、マイコンへのポーティングですが、MSP430へのポーティングのみ上記の本家サイトで配布されています。それ以外のマイコンへのポーティングが各自でおこなう必要があります。ありがたいことに@hrdakinoriさんがPIC24FとGR-SAKURA(RX63N)にポーティングしたものを公開されています。GR-SAKURA版は私もすでに茶運び人形ロボットで利用しました。
PIC24Fを採用
RX63Nは高価だし、技術的にもハードルが高そうなので、PIC24Fを採用することにします。トランジスタ技術2012年9月号に@hrdakinoriさんの記事が載っており (第9章 1,000円でどこでも買える無線モジュールで作れる! 1Mbpsが数十m飛ぶ! Bluetooth対応のワイヤレスPICマイコンI/O基板)、ここではDIPパッケージのPIC24FJ64GB002を使われています。DIPパッケージは、ユニバーサル基板やブレッドボードで使えるのがメリットですが、今回はせっかく基板を起こすのでリソースに余裕がありピン数も多いPIC24FJ256GB106(TQFP64パッケージ)を採用することにします。
BluePulsar概要
BluePulsar回路図
回路図エディタはいままでBSchを使っていましたが、今回ははじめての基板設計ということで、基板CADに統合されたものに移行したいと思います。基板CADはEagle、KiCAD、DesignSpark PCBあたりを検討中です。いずれにしても初めてのCADを習得することになるので、今回はまず回路設計は紙で下書きしておくことにします。
- 5V(USB)と3.3V(PIC)が必要なので、LDOレギュレータで作ります。バッテリーがNi-MH4セル(4.8V)の場合、LDOで5Vは作れないので別途給電とします。昇降圧DC/DCも考えましたが、高価なので断念しました。
- 推奨はできませんが、経験上、Ni-MH4セルを直接給電してもBluetoothドングルは動作しました。(USBの規格ではVbusは4.75〜5.25Vの範囲とされているので、まあ動きます。)
- これら電源系の経路を切り替えるためにジャンパJ1,J2を設けました。6V以上の単電源をデフォルトとします。
- 内蔵クロックでもUSBの動作に必要な精度は満たせるようですが、いちおう外付け水晶発振子のためのパターンを用意することにします。ただし、とりあえず未実装とします。
- RE0〜7とRF0の9ポートをラジコンサーボのPWM用とします。
- RB0〜15とRD0〜RD11を拡張コネクタに出します。ただし、RB6とRB7はPICkit3との接続に使用するので除外します。
- LED3個をボード上に載せ、RF3〜5で駆動します。
- 開発用にPICkit3用コネクタを設けます。