技術情報・開発日誌

Pi:Co Classic Ver3 改造例(1)

Pi:Co3が発売されて、もう1.5か月が過ぎようとしています。
皆さんは、どのくらいマイクロマウスの開発が進みましたか?
さて、本日は、Pi:Co3のデバックの方法について語ります。
通常、マイコンの開発のデバックというと、JTAGという端子を使ってマイコン内部のレジスタの内容を見たり書き換えたり途中で中断することができるエミュレータという機械を使っています。
Renesas_E1

マイクロマウスの場合、止まっているときと動ているときの状態があります。止まっているとき、エミュレータを使ってデバックすることが可能ですが、動いているときにエミュレータをもってデバックすると、エミュレータのケーブルに引っ張られて走行の挙動がちがってしまいほしいデータが取得できないことがあります。

Pi:Coの場合は、LEDが前方に4つあるので走行中でも0~15の値を表示するとは可能です。しかし、0~15しか表示できないため、センサの値を表示することはできません。なぜならば、Pi:Co3のセンサの値は、50~2500ぐらいまで変化することと、4つのセンサがあるからです。Pi:Co3にはシリアル通信やUSBがあるではないか?と思いますが、有線の場合は、先ほどのエミュレータと同じ結果になります。

上級者はどのようにしてデバックをしているのかというとデバックの方法の1つして、マイコン内のSRAMやEEPROMなどにログを記録してあとで、吸い出して解析しています。今回は、ソフトウェアによるデバックの方法ではなく、ハードウェアを使ったデバック方法を紹介します。

Pi:Coで使用できるLEDは最大6個(前方のLED4つと電源監視用LED2色)。これでは、表示できるものは少ないです。そこで、7セグという表示機能を使用してみました。7セグは7個のLEDで0~9までの数字とそれなりのアルファベットを表示することができます。RT-RX631の余りのピンで7セグの制御することがぎりぎり可能ですが、7セグ1つでは、先ほどと同じように表示できることが少ないため、複数使用したくなります。
そこでPIC16F687を使用して、7セグを3つ制御するようにしました。RX631には、I2CやSPIなどの最新の通信機能が内蔵されていますが、Pi:Co3の余りポートに、I2CやSPI機能を用意していないため、むかしながらのUART(SCI)を使ってPICにデータを送っています。

IMG_1864
7セグに電圧を表示(.はまだ未実装)

実験的に製作したため7セグの明るさが少し暗いですが、7セグがあるのとないのとでは別次元になります。
特に2進数を読むことに苦労している方は、お~という感動があると思います。
IMG_1861
LEDに2進数の”13″と7セグに”13″を表示されてみました。
一目瞭然ですよね。

いま、この7セグを使って改良したプログラムのデバック中です。

他にいろいろと、改造をしているので、続きは後ほど。

タイトルとURLをコピーしました