LabIIアスラボと読みます。プログラミングを中心に行っています。趣味のパワーエレクトロニクス系では、テスラコイルやコイルガンなどを製作・評価・改善を繰り返しています。興味を持って頂ければ幸いです。アドバイスや質問、感想などございましたらコメント欄にお願いします。私のブログは背景が暗めの設定を想定しているため、白背景では文字が読みづらい点があります。VOLTAGE!!このブログには生命に関わる危険な記事が含まれています。記事を参考にされる際は、全て自己責任でお願いします。マイクロマウス始めました。前回の更新では基板にある程度の部品を付けて電源を投入し、バッテリー電圧とジャイロの値がPCへ送れるところまでやりました。今月の進捗は一応ハードが完成して、DCモーターの基本的な制御ができるようになりました。長すぎで切らないといけない物理的な作業が残っているからです。えると邪魔なので近いうちに切ろうと思っています。Faulhaberの1717という高価なものを使っているので、ケーブルの切断を躊躇ってしまいます...ASmouse_Earのスペックは以下の通りです。マイコン:RX631センサー:ST-1KL3A(フォトトランジスタ)MPU6000(ジャイロ)IE-512(エンコーダ)モーター:Faulhaber_1717バッテリ:LiPo_2S(7.4V)120mAh重量:100g(バッテリー含む)サイズ:100*69*24(ケーブル除く)モーターマウントはCNCで切削しました。使用したマウスでは、モーターマウントやピニオンギヤ云々で、ある程度トレッド幅が決まってしまいます。先輩たちのトレッドより9mm程狭くして設計してみました。リップしても壁に当たる率を落とせるのではないかと考えました。共立電子のモジュール0.5_12枚歯の穴径φ2mmのピニオンギヤを購入します。モジュール0.5_12枚歯穴径φ1.5mmのギヤの入手が難しかったので、手元にあるギヤで解決しようとしたらトレッドが狭められそうだなと思ったのがきっかけです。1717のシャフトはφ1.5mmなので、共立のギヤでは填らないんです。そこでポムをφ2mm,長さ5mmの円柱にCNCで切削して、ギヤに圧入します。簡単そうですが、小さすぎるので力が入らず難しいです。先輩に相談すると、バイスに両面テープを張って、ポムとギヤを両側に張り付けて位置を微調整をしながら圧入するといいとアドバイスをいただき、ゆっくりと圧入していくことにしました。すると見事に填ってくれました。次にピニオンギヤを5mm厚から2.5mm厚までCNCで薄くします。スパーギヤが2mmなので、ピニオンも2mmにしようかと思いましたが、あまり薄くするとピニオンギアが滑って信頼性に欠けるので、気持ち太めにしました。最後にφ1.5mmの穴を中心に空ければ1717に填るピニオンギヤの完成です。製作費は25円!モーターマウントにモーターとタイヤを取り付け、スルスル回ることを確認して一安心です。作ってからわかったのですが、設計が甘いせいで色々と隙間ができたので、まだ3mmほどトレッドを狭められそうです。次回作では修正します。この画像では仮止めなのでベアリングが入っていませんが、完成形ではタイヤ1つにベアリングを2つ入れて両持ちにしています。その二つのベアリングの間にスペーサーを入れたり、両外側にもスペーサーを入れることによって、ネジを強く締めても引っ掛かりが軽減されます。このことについては他の方が詳しくまとめられているので割愛します。4輪になっていますが、最初の内は2輪で行こうと思います。4輪だと再現性があまり良くないとのことなので、壁補正や壁切れ補正等できるようになってからにします。2輪でゼロフィードバックをやってみました。宴会芸と言われているものです。角速度をゼロに近づけるようにPID制御を掛けています。実質PI制御になっています。ゲイン調整の問題なのか根本的に数式が違うのかはまだ分かっていません。何か勘違いしていると思います。こんな制御では誤差が貯まり過ぎてまともに使えません。Alca@Haido_Netジャイロを使った角速度フィードバック。Dゲインの調整が上手くいかないからPI制御でやってる。23:56:03動画の中で箱を前後に振る様子がありますが、これはエンコーダーを使い、機体の位置もPIDで0に近づけている確認です。エンコーダーを使って機体の速度を求め、ジャイロを使って角速度を測定し、ゼロからの差分を実測値の角速度とします。目標値と実測の角速度を使えばPID制御が組めると思います。直径が少しくらい違っても、自分で補正を掛けながら真っすぐ走ってくれるようになります。走ってくれているみたいです。<補足>先ほど先輩から電話でご指摘がありました。「タイヤとホイールはタミヤの既製品を使っているのであれば、直径が違うなんてことはそうないから、この場合はギヤの干渉の違いとかタイヤの締め付け具合などの要因を疑うべき。タイヤの直径が違うだけならその分タイヤの直径値をソフトで調整してやればいいだけ。変に干渉する問題を解決するためにゼロフィードバックを使うといい」とのことです。ご指摘ありがとうございます。パルス(※1)を出力する高分解能であれば、1msで計算させてもある程度正確な速度が求められています。高分解能なエンコーダーでも、自分で取り付けるとなるとズレが生じるので、そこはサンプリングタイムを伸ばして移動平均を取ったり、カルマンフィルタを使うなど、少し面倒なことをしないと使える値が取れないらしいので、最初の内はエンコーダー付きの既製品を買った方がいいかもしれません。(※1)2相のパルスのエッジを検出させているので、実質4倍の分解能で計算しています。22:39:22これは最初の動画でやっていた角速度補正を掛けつつ、前後に台形加速させてゆらゆらしている様子です。→500ms減速→500ms後ろに加速→500ms減速をループしています。モード選択はタイヤを回してエンコーダー値を足し引きして設定します。モード数に応じた値をLEDを使って2進数表示させていますが、バッテリーに隠れて見えません!スイッチもそうですが、バッテリーが邪魔で押しづらいです。製作に当たって手こずったことは、センサー値が4個中2個取れなかったことです。原因はセンサーが死んでいることによる不具合でした。正常なフォトトランジスタは、太陽光を当てると抵抗値が変化するのに対し、不良品のフォトトランジスタは全く抵抗値が変化しません。このセンサーの入手先はEabyなので文句は言えません。10個買ったのですが、そのうち5個が不良品でした。Eabyで半導体を購入したら、まずは個別に動作チェックをしてから実機に取り付けるようにしないと無駄に時間を取られてしまいます。左が本物ですが、寸法や見た目は大体同じです。刻印のされ方が違います。同じ環境に置いての抵抗値も本物と違います。それでも偽物は偽物でまとまった値を返してくれているので、動作品を選別すれば使えそうなので使っています。壁の判別や補正等、問題なさそうな値が得られているので、今作はこれで行きます。これから迷路を走らせるためにプログラムを組んでいきたいのですが、応用数学と量子力学と原子力の中間テストがあったり、物理学IIIと一般教養のレポートがこの時期にあるのでマウスをやっている時間があまり取れません。(今は量子力学より古典力学の方が必要なんだよ...)それでいて来週はマイクロマウス合宿でプチ大会に応募しているため、マップ記憶とかそんなレベルは望んでないので、とにかく迷路を隈なく走り回れるようなプログラムを組まないといけません。右手法や左手法では完走できないコースにしてくると思うので、ダンゴムシのように左に曲がったら次は右みたいな独特なものにしても面白いと思いますし、曲がる方向をランダムにして運任せに進めるのも面白いかもしれません。運任せだと一発で最短経路を行ける可能性も・・・!ということで、一週間後にはある程度走れるようになってることに期待して今月の進捗報告とします。マイクロマウス始めました。Haido_Ele非公開コメント管理人へ直接コメントされたい方はこちらからお願いします。