お久しぶりです。青木です。
好評発売中のPi:Co Classic ver3ですが、Pi:Co[Piece Compatible]と名がついている通り、Pi:Co Classic ver2とも互換を持って作成されています。
Pi:Co Classic ver2のCPUボードをRT-RX631に乗せ換える方法を紹介しますが、RT-RX631に変更することでどんなメリットが生まれたのかを先に紹介します。
Pi:Co Classic Ver3の変更点の特徴としてマイコンがSh7125からRX631になったことでマイコンの処理能力がDMIPS換算で2.5倍アップしています。処理能力だけではなく、RX-631を採用したことになり、いろいろなメリットが生まれました。
1点目:データ格納用フラッシュメモリ(E2データフラッシュ)が追加されたこと。
2点目:A/Dの分解能が10bitから12bitに上がったこと。
3点目:浮動小数点の演算が実装されたこと。
4点目:USB接続が可能になったこと。
5点目:最近の通信機能が内蔵されたこと。
1点目のE2データフラッシュの追加が大きなメリットとなります。そのメリットのご紹介をします。
まず、E2データフラッシュですが、書き込む最小単位が2Byte、イレーズ(消去)が32Byte、ブロック数が1024と扱いやすくなっています。イレーズサイズが小さいほどデータの書き換えが楽になります。たとえば、センサの前、横のリファレンスの値を保存するとして、1つのセンサが2byteのデータを持っている(ADが12bitなので0~4095までの値)ので、2byte × 4 = 8byteのデータ領域が必要になります。書き込みは2byte単位で書き込めるので、何も気にせずセンサのリファレンスの値を保存することができます。問題になるのがイレーズです。8byteだけ書き換えたい(書き換えるには一度イレーズしてからでないと書き変わらない)のにイレーズの単位が32byteなので、32byteごっそり消去されます。もし、同じブロックに削除してはまずいデータがある場合、一旦RAMにデータをコピーしてからイレーズし、書き戻す作業が発生します。ブロック数が1024個あるので、豪華に使うこともできます。1ブロック目は、前の右のセンサの値、2ブロック目は前の左のセンサの値といった感じで使うこともできます。この方法なら、1ブロック1データなので、気にせず書き換えができます。
センサのリファレンスの値を保存する例に出しましたが、センサのリファレンスの値の保存ができるとセンサの調整に使用していたPCが必要なくなるのです。
先日中部初級者大会にお邪魔し、一度もPCを使わず、センサの調整をして、完走してきました。
センサデータの書き換えの方法の例として、Pi:Coを迷路の真ん中に置いて、その値をE2データフラッシュに書き込めば姿勢制御の目標値となります。
もう一つ、迷路情報が保存できるようになると、Pi:Co Classic Ver2までは、最短走行で途中でぶつかったら、仮想的にスタートまで戻ってくるまで操作ができませんでした(電源を切ると迷路情報が消えてしまう仕様でした)が、迷路情報がE2データフラッシュ上に残っていれば、ぶつかった瞬間に電源を切っても、E2データフラツシュから迷路情報を呼び出せば最短走行から開始できます。
2点目のADの分解能が上がったことでPi:Co Classic Ver3のセンサ基板がシンブルになりました。
実装密度が薄くなったことで、半田ブリッジが起きにくくなったはず?
左がPi:Co Classic Ver2のセンサ基板 右がPi:Co Classic Ver3のセンサ基板
3点目の浮動小数点の演算が実装されたことにより、SIN関数やCOS関数を使ってもそれなりの速度で処理ができるようになりました。
4点目:USB接続が可能になったことで、プログラムの転送時間が体感速度で10倍ぐらいになりました。10倍と大げさだと思われますが、シリアル通信では57600bpsでやり取りしているようですが、USBなら理論上12Mbps(RX631はフルスピードまでしか出ません)なので、10倍もあながち嘘ではないのです。
5点目:最近の通信機能が内蔵されていますが、Pi:Co Classic Ver3で使用すると、最近の通信機能が使えないという悲しい事実があります。
RT-RX631ボード単体ならSPI通信などができますが、USBを使っている関係からI2Cのポートと被ってしまいI2C通信はできません。
やっと本題のPi:Co Classic Ver2でRT-RX631を使う方法の紹介にたどり着けました。
Pi:Co Classic Ver2とPi:Co Classic Ver3の各ヘッダピンの機能は同じにしていますが、ロジックの電圧がマイコンに合わせて変更しています。Pi:Co Classic ver2は5V、Pi:Co Classic ver3は3.3Vになっています。マイコンボードをそのまま置き換えてしまうとRT-RX631のマイコンが壊れてしまいますので改造が必要になります。
Pi:Co Classic ver2でRT-RX631を使用するには、電源基板にある3端子レギュレータの交換が必要になります。
矢印で指しているところが3端子レギュレータになります。これを3.3Vの3端子レギュレータに変更します。同じサイズで同じピン配置の 東芝 TA48M033Fがあります。秋月電子通商で購入が可能です。
取り外す3端子レギュレータの足にニッパーが入れば、ニッパーで切って、残った足を取り除いた方が作業が簡単です。ニッパーが入る余地がないならば、裏から、半田をモリモリと付けて、三本の端子を同時に温めます。軽く引っ張るとするとはずれます。あとは、購入したTA48M033を取り付けるだけです。
この状態で、Pi:Co Classic Ver2でRT-RX631を使用することできるようになりましたが、おそらく、センサの調整をしてもしっくりこないかも?
つづく。