動き系のセンサーは、どんなものか調べてみるのと、動力系と合わせて倒立振子をつくってみようと思ってます。
どんなものかは、Youtubeに沢山出てます。
センサー情報を元にモーターを制御するのはいろいろと難しい感じですが、結構サンプルもあるのでなんとかなりそうな感じです。目に見えて動くものはわかりやすいのでお勉強にはよろしいかと。
購入したのはBOSCH社BMX055です。めちゃくちゃ小さいです。3つ並んだ真ん中のチップに3つのセンサーが入ってます。他は電源レギュレータと信号線のレベル変換器です。
I2Cのアドレスや駆動電圧により、ジャンパーが必要です。
JP1,JP2,JP3はすべてオープンのため、I2Cアドレスは以下のとおりです。
加速度 | 0x19 |
ジャイロ | 0x69 |
磁気 | 0x13 |
JP6オープン,J7ショート,J8オープンとして、電源は3.3V,信号レベルは3.3Vに設定しました。J7は基盤の裏面を半田でジャンパーします。写真わかりにくいですがAEの右上を半田でジャンパーしてます。
ESP32基盤はこんな感じでいろいろと乗っかってます。
動作確認はmicropythonで実施します。先人の知恵をGithubで見つけました。すんなりいくかと思えばそうはいかずです。Pybordで動いたコードのようで、ちょっと修正が必要です。センサーは、I2Cアドレス3つでそれぞれ読み出さないといけないので、加速度、ジャイロ、地磁気センサーそれぞれを1つのデバイスに入れた感じです。コードもそのようになっていて、センサー毎にライブラリになってました。
こちらを参考に
https://github.com/micropython-IMU/micropython-bmx055
bma2x2.py→加速度センサ
bmg160.py→ジャイロセンサ
bmm050.py→地磁気センサ
それぞれがライブラリになっていて、importで読み込む必要があります。
今日のところは、加速度とジャイロまで読み取れるところまで出来ました。
uPyCraftの画面キャプチャーです。下の黄色枠に加速度の3軸(x,y,z)、ジャイロの3軸(x,y,z)計6個の値を0.5秒毎にESP32が読み取って表示しています。
地磁気は次回に。この値だけではよくわからないので、時間変化とともにわかるように可視化も必要です。センサー動かさなくても値が微妙に変わっているので、感度の調整や値の補正も必要なのかもです。
シリアルにセンサー情報をprintするためのpythonコードです。いろいろといらない部分もありますが。
多数の情報があるとはいえ、結構な難題に挑戦中ですね。完成時の自立した結果だけでなく、実験とともに少しづ改善する様子の動画があれば面白そう、、、
返信削除そうなんですよ。調べれば調べるほど壁が出てきます。少しずつ動画も記録しながら進めたいと思います。
削除モータは何を使う予定ですか? DCモータまたはステッピングモータの2種類があるようです。赤道儀ではステッピングモータを使っています。フォーカス制御もステッピングモータでした。回転速度と方向を、倒れないように制御が間に合うかどうか不明ですが、安価なステッピングモータは、例えばAmazonで売っていて、私も持っています。
返信削除https://www.amazon.co.jp/Longruner-Longruner-5%E5%80%8B%E3%82%BB%E3%83%83%E3%83%88-arduino%E7%94%A8-%E9%9B%BB%E5%9C%A7DC-5V-%E3%82%B9%E3%83%86%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC-28BYJ-48-ULN2003%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%86%E3%82%B9%E3%83%88%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%9C%E3%83%BC%E3%83%89-%E9%9B%BB%E4%BD%9C%E3%82%AD%E3%83%83%E3%83%88-LK67/dp/B06XCSCD8T/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=1LV6MBUEAPR10&keywords=%E3%82%B9%E3%83%86%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC+%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90&qid=1554263557&s=gateway&sprefix=%E3%82%B9%E3%83%86%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%83%A2%E3%83%BC%E3%82%BF%2Caps%2C240&sr=8-6
タミヤのギアセットとDCモーターの予定です。発注済です。
削除ステッピングモータと9軸センサーでとりあえず回転方向を制御する実験してみました。モータの回転速度が遅いため、このままでは倒れてしまいそうな予感。https://youtu.be/27XcT2aLcA4
返信削除Youtube拝見しました。お試し早いですね。この回転数だと振子を短くしないと確かに倒れそうです。
削除DCモータの到着が楽しみですね!
削除とりあえず、週末はモータを搭載する箱を作ってみます。
まずはDCモーターの正転と逆転をmicropythonからできるように頑張ります。
削除3Dプリンターで箱と車輪を作り、バラックで組んでみました。自立しそうな雰囲気で動いていますが、バッテリーも搭載し、基盤等もきちん搭載してみないと、ほんとうのところはわかりません。ダメならもっと速いステッピングモータもありますが、5Vでは動作しないので、電源を含め、ちょっと大変かも、、、、
返信削除https://youtu.be/kZW1r6-mSik
動画見ました。倒立してそうな、してないような。ここまでできればパラメータの調整で乗り切れるか、駄目ならモーター交換ですね。動きモノは、電源2つ必要なのがちょっと面倒です。
削除