H30.11.12 DCモーターバギー スマホで操作

 いろいろテストしてみて不確かだがスマホとマイクロビットをペアリングすることに慣れてきた、ようだ。結論としては、マイクロビットにインストールするプログラムが大きかったらダメみたい。簡単なプログラムは問題なくペアリングできた。DCモーターとスマホ上のゲームパッドを利用したプログラムくらいも問題なくペアリングできた。けれど、360度サーボモーターで走りながらATP3011にランダムに10フレーズほどお喋りさせるとか、BME280のデータを取るとかを組み込んでしまったプログラムでは、ペアリングの最後のところでつながらないのだった。マイクロビットのメモリー領域が足りなくなっているのだろうか。

 とりあえずペアリングできたDCモーターで動いている動画をここで見ることができます。

 また、ペアリングの手順を詳細にたどった覚書を木曜日までには提示できると思います。


H30.11.10 DCモーターバギー

 いやいや悩みました。片方のモーターが思う通りにならない。電源を入れたら直ぐに動きだす。正転はできるが逆転ができない。という症状でした。配線&半田付けはできていましたよ。

 しかし、ふと思ってマイクロビットのピンを交換してみました。ブレークアウト基板の配置で、まとまりが良かったP16とI2CのP19・P20を使っていたのだけれど、これが失敗の原因でした。何も他に使っていないP8・P12・P16の3本のピンを使ったら、コントロールできるようになったのです。I2Cのピンは内部で何かやっているのかな。ラズベリーパイではI2Cピンを他の用途でよく使っていたのでこれっぽっちもマズイとは考えなかった!

 水平に出す基板が余っていたのでこれを使い、その下にモータードライバ。電源としての乾電池は車体の裏に取り付けた。

 ただ、左右のモーターの出力がどうも若干違うので、真っ直ぐ進まないのが難点。PWMの値を左右で変えるかな? これをコントロールするのにもう一台マイクロビットを購入するかな? 一度だけ、スマホでコントロールできたのが忘れられないのだけれど.....


 スマホでコントロールすることができた! 忘れてしまうので、覚書。

 ブロックでプログラムするときには、追加パッケージでBluetoothとBluetooth接続機器をダウンロードしておく。「最初だけ」にP2・P18ピンに割り振るPWM信号をアナログで値を指定する。この時、最大は1023なので、加減すれば直線で走ることができるかもしれない。
 モーターへはP0・P1とP12・P16の2セットで2つのモーターをコントロールしている。デジタルの値0か1で指定するのだが、モーターにつなげる2本の配線を変えれば、正転・逆転も変わってしまうので、気をつける。

 問題なのは、プログラムを変更してマイクロビットにダウンロードしたり、マイクロビットの電源を切ったりすると、もうスマホはマイクロビットを認識してくれないので、再度ペアリングする必要がある。この時、前回ペアリングしたマイクロビットを削除しなければならない、と思うがどうだろう。面倒なので、あまり使わないかもしれない。