中野島ロボット

小さなロボットの自作記事を書いています。

週刊中ロボ213 小さいロボット PicoWalker ソフトウェア公開

はじめに
今週は先週モデルを公開した小さなロボットの Arduinoのスケッチを清書して公開しました。3Dモデル共有サイトの同じページに XaioWalker.ino ファイルを同梱してあります。

www.thingiverse.com

ちょこっと解説
このスケッチは Seeeduino XAIO 専用となっています。
使っているライブラリは
 Sarvo.h
 Seeed_vl53l0x.h

の二つです。
Tof(とふ:Time to Flite )センサのVL53L0X用のライブラリは 沢山ありますが、Seeduino XAIO でまともに動くのは、同じ Seeed Studio のライブラリだけでした。
これをArduino IDEのライブラリマネージャからインストールしています。

この部分のソースコードは、ほぼそのまま流用しています。
動作
プログラムの動作は単純で、

1. 起動したら基本ポジションで3秒程停止

2. 距離を計測しながら歩き出す。

3. 壁にある程度近づくと減速してゆっくり歩く

4. いよいよ壁に当たりそうになると、急いでバックして、方向転換する

と言う簡単なものです。

調整
もし真っすぐ歩かなかったら、サーボモータのセンターがずれていると思うので、1の時に止めて、足が機体とできるだけ90度になるようにサーボホーンをはめ直して下さい。
丁度良い所に止まらない場合は、角度を計ってソフトウェアで補正します。

初期状態で前後とも90度にしていますが、

const int8_t servoCenter[MAX_SERVO_NUM] = {90,90};  // servo center position

この数値を変えて調整します。
これでだいぶまともに歩くようになると思いますが、後は歩かせてみてセンターの数値を微調整してみて下さい。
修正するかも
二台作って動作確認していますが、以下の点をそのうち修正するかもしれません。
1.VL-53L0X センサホルダ
このセンサの固定に3mmのプラスチックネジで止めているのですが、センサの横に小さなチップ部品(抵抗)が乗っていて、外れてしまいました。


半田付けし直しましたが、この止め方では他の人も抵抗を飛ばしそうなので、何とかしようと思います。
2. 足の長さ
イメージが変わらない程度に少し短くするかもしれません。自分の3Dプリンタで印刷する場合は問題ありませんが、足が長いと外部に造形に出した場合の金額が上がってしまいます。DMM.makeに見積もり依頼したら、「ナノ四駆」よりも高くなっていました。

www.nakarobo.com

おわりに
今回は昆虫ぽい足にしましたが、足を変えてモーションを変えると色々なロボットが作れると思います。またこのモデルは二軸しかないのに、モーションを工夫するともっと早く歩けたり、跳ねたりして結構遊べます。その場合は真ん中の補脚は外した方が良いでしょう。
そう言えばこのモデルの「和名」を考えていませんでした。。。もう少し悩みます。
おしまい

購入品情報
使っているコントローラは、Seeduino XAIOです。

測距センサはこのGY-530を使っていますが、小さすぎて固定が難しいです。固定用の穴はねじ止め用ではなくて、単なるガイドかもしれません。普通の3mmネジでは、センサの横のチップ抵抗と干渉する可能性が高いので注意です。

バッテリーホルダーは単四二本のものを左右振り分けして搭載しています。
単四バッテリホルダーには固定の穴位置が微妙に違うものが多いので、もし合わなかったら現物合わせでドリルで穴をあけて固定して下さい。

電源スイッチは小さな三端子のものが必要です。