ゆるく楽しむプログラミング

プログラミング・フォロをカメラ付きリモコン・ロボにしてみた

プログラミングできるフォロ、プログラミング・フォロAtomS3で操作することができましたが、
AtomS3をAtomS3Rカメラキットに置き換えると、プログラミング・フォロを簡単にカメラ付きリモコン・ロボにする事ができます。

プログラミング・フォロ制御用マイコンボード

プログラミング・フォロは基本的に、micro:bitかELEKITのマイコンボード(エッジコネクタはmicro:bit互換)で操作できます。

なので、micro:bitと同じ形状のユニバーサル基板にAtomS3Rカメラキットを載せれば、カメラ付きリモコン・ロボにする事ができます。
この基板の作成方法は AtomS3で操作した時と同じモノで大丈夫です。
 

 micro:bitとプログラミング・フォロのインターフェイスは▼の通り
PIN フォロの機能
P0 スピーカー
P1 フォロ右側の赤外線センサーの値を取得
P2 フォロ左側の赤外線センサーの値を取得
P12 フォロ搭載赤外線LEDの制御
P13 足のモーターの制御(正転)
P14 足のモーターの制御(逆転)
P15 腰のモーターの制御(正転:左回転)
P16 腰のモーターの制御(逆転:右回転)
PIN フリー 正転 逆転 ブレーキ
P13/P15 0 1 0 1
P14/P16 0 0 1 1

コレに合わせてM5Atomとmicro:bitユニバーサル基板のエッジコネクタを対応を決めます。
ピン数が足りないので、micro:bitの[A][B]ボタンはG2ピンで処理します。
M5Atomには5Vの電源が必要なので、micro:bitエッジコネクタの3V端子に5V昇圧コンバータを接続して5V電源を作っています。
カメラ/WiFi/モーター駆動と消費電力が多めで電池の消耗が激しいです。
アルカリ乾電池だと出力不足になりやすい様なのでエネループの使用を使用をお勧めします。
 P12は+5V電源に直結でも良いと思う。
赤外線LEDをOFFにする意義はないように思いますし・・・

そうすれば、G2ピンが空くのでスピーカーも操作できる。

GROVEコネクタは入手困難なので、手持ちのコードを切って変換コネクタを作っています。

スケッチ

公式サイト で配付している AtomS3R CAM - Web CAM (Arduino) をベースに作成。
QVGA(320x240)のJPEGを連続して表示しています。

Webサーバ(AtomS3R)へのリクエストは Ajuxを使用して GET モードで 送信しているので、画面の再描画が起こりません。
WiFiルータにClientとして接続するSTA MODEとAtomS3RをWiFi親機にするAP MODEが選べます。
AP MODEで使用する場合は、SSID:AtomS3Rに接続し、http://192.168.4.1にアクセスしてください。

FOLOの制御部分は AtomS3用に作成したFOLO制御スケッチをベースに、リモコン操作できるように修正しています。
自動操作/手動操作の切り替えを設け、自動操作時にはAtomS3で操作した時と、基本的に同じどうさになります。

YuruPuro/AtomS3R-CAM-FOLO

解説動画