これです。コレをつくりました。
初めての3Dプリンタ、初めてのCAD、初めてのM5 Stack、キットじゃない工作、、、と初めてだらけで大変でしたが、一旦手動で倒立することができました。
レシピがこちらで購入できるのです。すばらしい。
購入してつくってみました。部品を集めて、3Dプリンタでいろいろ部品を出力してみました。まだまだ、自動での倒立はできないですが一旦立ったので書きます。
一万円の3Dプリンタでの出力に限界があるので形を変更
とにかく、筐体を作らないといけません。そこで、こちらを購入しました。
本体はこれです。
フィラメントはこれを買いました。
入門にはとても良いのではないでしょうか。調整など必要で、出力に癖はありますがそのへんを考慮して調整すれば、ぼちぼちきれいに出力されます。そして、元々レシピで掲載されている3Dデータで出力してみたのですが、イマイチきれいに出力できませんでした。
どうも、実験してみると面が大きいものを出力するときれいに出力されないみたいです。グニャグニャのちんちくりんです。
結果、面が小さくなるようにデータを作成して出力しました。こちらの三浦さまの筐体のデザインがかっこいい感じで、面も少なくよさそうなので、参考にさせていただきました。
外部電源レスで起き上がり倒立ができるように。@H0meMadeGarbage さんのSHISEIGYO-1のクローンは完了したので、バッテリー乗るような設計で作り直してみました。#リアクションホイールへの道 https://t.co/dwpDJuMPdh pic.twitter.com/GTMD9JdnwH
— 三浦琢(荒miu) (@miu_robo) September 20, 2020
AutoDeskのFusion360というのを利用してみました。個人利用なら無料で利用できます。
面の部分を少なくして、なるべくきれいに出力されるようにいろいろ書き出してみました。いいと思います。
通常の部品は秋葉原で購入
モーターとバランサー以外は、秋葉原に行って買い集めました。車やバイクで20分くらいで秋葉原に行けるのが嬉しいと思いました。ほぼ普通に買い集めることができました。電子工作をちょっとしたことある人であれば、問題なく買い集めることができると思います。
ただ、初心者には難しかった点が一個ありました。レシピのショットキーバリアダイオードが秋葉原の有名所のお店には、同じ型の部品が売っていなかったです。結局、モーターからのでかい電圧、電流が来たときに、いろいろ逆流しなければ良いだけのはずなので、ショットキーダイオードで、電圧がだいたい収まってれば大丈夫だろう、と似たような特性のものを買いました。
他にも代わりの部品も以下見ながら買ったりすることができました。
あとは、ハンダゴテやらの基本の道具を持っていれば大丈夫だと思います。この辺のがあれば大丈夫です。基本道具の項目になります。
初心者で回路なんてほとんど作ったことがないので、やり直しが何度もできるように、ちっこいブレッドボードとピンを多用して間違っても大丈夫なようにしました。これが正しいのかどうかはわからないですが、結構間違ったりしていたので、結果としてとても良かったです。勘所がないから、間違いが多い。
モーターとホイール部品の購入に時間がかかる
モーターとバランサーはAliExpressを利用しました。1ヶ月経過してやっと届きました。まぁ、個人輸入になるので仕方ないですね。
プログラムの調整
サンプルのプログラムがあります。とても良くできた素晴らしいプログラムです。まずは手動ですが立たせるところまで目指します。プログラムのパラメータを調整する必要がありました。デフォルトのパラメータだと、全く立つ気配がありません。。。まぁ、そもそも筐体も小さくなっているし、センサーの位置も違うし、、、
取り急ぎ、今の手動で立つところまでの値です。
Kp = 3.19
Kd = 1.61
Kw = 0.28
DutyIni = 2198
感覚的に以下のような感じでした。全然違うかもしれないですが。。
・Kp 直立しているとき、姿勢を保持する値
・Kd 倒れてきたとき、復帰するときの値
・Kw 上記をどれだけ強くするか。実はまだよくわかっていない。
・DutyIni 直立しているときに、ぶぶぶぶぅぅぅ。。とブルブルなるときは値を大きくする。ぶぶぶぶ。。にならないギリギリのところを攻める。
以下を見ながら理屈を自分なりに理解して調整しました。調整しまくって、手動でやっと立つようになりました。でもまだフラフラしています。一生立たないかと思ったよ。
Blynkすごい
あと、Blynkというのを利用して、スマートフォンからパラメータを調整できるようにしました。このソフトウェアすごいです。リモコンがすぐにできる。プログラム改造は難なくできました。
登録、接続まではこちらを参考にしました。ただ、パーツは全く違います。
サンプルプログラムにヘッダBlynkSimpleEsp32_BLE.hをインクルードして、以下を追加しました。
V0~V3までをそれぞれ、アプリのスライダーパーツをおいて設定すればその値が対象のところに入ります。
BLYNK_WRITE(V0) {
Kp = param.asFloat();
}
BLYNK_WRITE(V1) {
Kd = param.asFloat();
}
BLYNK_WRITE(V2) {
Kw = param.asFloat();
}
BLYNK_WRITE(V3) {
DutyIni = param.asInt();
}
第1段階は完了
というところで、素晴らしいですね。初めてバランスとって立ったときは、嬉しかったです。
部品点数も少なく、とてもよくできた電子工作のレシピだと思います。ただ、あくまでもレシピなので自分で色々判断しながら、部品や状況を確認しながら作っていく必要があります。
次に目指すのは、モバイルバッテリーで動くようにするのと、自動で倒立するようにすることですね。
普通の電子工作キットよりも少し難易度が高めの工作になると思いますが、稼働するととても楽しいと思いました。ぜひ、試してみて下さい