Viola!

(´⊙ω⊙`)まいくろまうす

全日本前!ピニオンくるりんぱ/デバッグ!

昨日からモーターのPI制御を行なっていました。データシート日本語なのに読めない事案が多発。なんということでしょう(^o^)/

 

はい。で、まぁ、設定も完璧!プログラムもおっけー!!でも…??

 

右は制御を感じるのに

 

左は

 

制御が

 

存在感薄い。

 

 

ってなってました。ゲインを上げても変わらず…

 

 さらに、書き込めなくなりましたwww

 

デバッグおじさんに見せたところ、デバッグおじさんはまず書き込みピンソケが折れてることを発見。

 

「これピン折れてない?ういてるよ?」

 

「(´⊙ω⊙`)折れとるがな」

 

書き込みソケットなおしなおし。

モーター回すだけのプログラムを書き込み実行。

「モーター普通に回ってますよ?」

 

「ピニオン滑ってない?」

 

ピニオン滑ってました。

 

つらい。

 

(ここまでは昨日の私が書いたんです、寝落ちました。)

 

はい!!全日本直前ですね!!

ジャイロ死んでるしもうとりあえず台形加速ぅう!!うぉおぉ!!!

 

台形加速実装しました。(まっすぐ走れるとは言っていない)

 

超信地旋回、ダメです。

 

 

はい、ここから本題です。

最近先輩にデバッグとかを色々してもらったり、自分でしてて思ったんです。

デバッグ手順をメモしといて、その手順に沿ってデバッグすれば、自分だけでもパニクらずにプログラムをデバッグできるのでは???

 

というわけで

 

デバッグ手順〜

再現性があるか確かめる。

再現性が高ければ大体人為的ミスですよね…プログラムのせいかハードのせいなのかはいまいちわからないですが。

 

②myprintfで挙動がおかしい値とそこに関係している値を出力する。

明らかに変な値が出てたらプログラムが悪いですが、変な値は出てないのに…って感じだったらハードの問題ですね。ジャイロ配線ハゲて導通とかピニオン滑りとか絶対に許さない。

あとforで回してるのに入れる変数間違ってて配列が全然0しか入ってないこともあったんです。私のバカ!><

 

③どの動作を入れたら挙動が怪しくなったのか、もしくはどの段階の動作が挙動が怪しいのかを調べる。

挙動がどこからか突然怪しくなってる感じだったらもう大体プログラムのバグですよね。つらい。普遍的におかしい場合はハードの不良か、もしくは初期設定が間違ってるとかですね。初期設定疑うの結構忘れるんです…今までやったことのない初期設定は特に疑った方がいいです。絶対何か忘れてます。

 

④プログラムのアルゴリズムが本当にあっているのかを確かめる。

アルゴリズムがあってるか、入れる変数はあってるのか、型はあってるのか、チェックチェックチェック!AD変換してる値はint,物理量はfloat型ですよ。とりあえず全部volatileつけとくと安心しますね。

 

アルゴリズムがあってそうだったらオシロスコープで出力波形を見る。

アナログジャイロ、電源にノイズのっててクッソブレッブレでした。出力波形を見るとVddの電圧ノイズがそのまま来てたりしたんでほんと見た方がいいです。あとモーター駆動の波形見たら、周期がうなってたりしてた。設定がゴミだったんです。つらい。解決してよかった。

 

⑤までくるとハンダを温め直す、初期設定を疑う、とかそんな感じですね。

 

書いてて思ったんですけど、やっぱり今まで様々なバグに直面してきてる人の方がデバッグできると思うんで、先輩方これからもよろしくお願いします!!!

 

明日明後日、Miceだけではなく他の大学や海外の方々のマウスもとても楽しみにしております。

 

ちなみに明日の目標はスタートを切って2区画ぐらい走ったらいいなぁ、です。来年のフレッシュマンもよろしくお願いします(^o^)/

 

書いてるうちに明日が今日になっちまったぜ

というわけで今からカツ丼食います。おやすみなさい。

 

 

P.S.マウスの写真載せ忘れてました。ワロタ。f:id:M_vi_o_la:20161119010000j:imageかわいいでしょ?

 f:id:M_vi_o_la:20161119010015j:imageリポ付きの重さ。

全日本大会前ですね

もうすぐ全日本大会ですね。進捗ダメです。

 

機体は完成してますが、初期設定も多分出来てるのですが、、、

 

 

なんと!!!道具が使えないィ!!!

 

はい。初期設定を無理やりしたはいいものの使い方が全くわからないわけです。

猿が神様から自転車を貰ったけどそれを使えないのと同じです。ワロタ。

 

というわけで、聞いても聞いても忘れる私のかわいそうなオツムのために色々書いておこうと思います。きっと何もかも忘れてる来年の私よ、感謝しろ。

初歩的すぎるし多分データシートをじっくりちゃーんと読めてればできることしか書いてませんので、本当に私みたいに初っ端からDCでプリント基板で飛ばして行こうぜー!!!Foooo!!でもでも〜??基礎 is very わからん\(^o^)/オワタみたいな人にしか役に立たないと思います

 

<SMDタイプの半田付け>

  1. 熱々のコテ先に糸半田を盛る
  2. パットに押し当てると半田がスッと流れる
  3. ピンセットでつけたいものをつけたいところから動かないように抑え、パットについた半田を温めて片足仮固定。
  4. もう片方の足をがっつり半田流して固定。
  5. 仮固定してた側にもちゃんと半田盛る。

 

簡単だね?簡単だよ?ニャーニャー!

表面実装用のICチップとかは、マステで固定すればいい感じです。

ちなみにケチらずにたーんとフラックスを塗りたくることをお勧めします。そうすれば幸せになれます(その分換気しようね)

 

 

<ハードウェア>

☆回路

RX631はPC7をプルダウンしないと書き込めません。つらい。

レギュレーター周りとかには電解コンを置くのが良いみたいです。電源の波形が乱れてると様々なところに影響を受けます。(特にアナログジャイロとかアナログジャイロとかアナログジャイロry) いい感じな値の電解コンつけとくととりあえずハッピーになれそうです。軽量化と適度にトレードオフしましょう。電解コンはいいぞ。

 

☆足回りやらシャーシやら

板マウスの人はモーターの置く位置を、板じゃなくてサンドウィッチみたいな形状(語彙力)の人はモーターマウントの高さをよーーーくかんがえましょう。

私はモーターマウント悩みまくった結果タイヤの接地とシャーシの干渉とか諸々を忘れ去り基板シャーシでしか接地できない上にネジがモーターと干渉しまくる設計になってしまいました

 

<ソフトウェア>

まずルネサスのホームページからRX631シリーズの初期設定例みたいなファイルを掘り出して来て、そこに入ってるヘッダファイル(<.h>のやつ)を自分のプロジェクトフォルダのところにぶち込んでインクルードしましょう。それで何GHz〜とか、これは64ピンLQFPだから〜、とか、弄ってみてください。

 

次。関数。

CMTとかAD変換のやつとかああいう関数は、まず最初にレジスタプロテクション解除

してから設定を始めよう。

次。レジスタ

レジスタがめっちゃ連なってるやつは二進数ではなく16進で設定するらしい。でもただ単に00、01、10、11(2進数表記)とかは0〜3とからしい。変えてる基準がわけわからん(でもデータシートに16進で設定してください、とかちゃんと書いてあったはず)

まぁでもレジスタ7個一括設定せなあかんで〜みたいなやつは、2進16進変換ツールとかをggったり、あとはWindows内蔵の電卓を使って設定したい値を求めようね!!!!

 

設定したい値を打ち込んだのに出てこないでてこないってめちゃくちゃ悩んだのですが、0の数が一個違うだけでだいぶ悲惨な目に合いました

 

次。レジスタとかを設定したら、今度はそれを使うピンをMPCで設定しよう!

奥様、世の中には様々な機能を持つピンがございましてよ。というわけで、まず周辺可能か汎用I/Oポートか、入力ピンなのか出力ピンなのか、とかとか。H/Lはまぁ制御が始まってから気にしてくださいって感じですね多分。ちゃんと出来てるかどうかはLチカさせて確認してください。私だって流石にLチカはできるよ。forの遅延ループでLチカ出来たら、次はCMTで1秒周期で出来るかとかやるんだぜ。

 

センサー値、ジャイロ、エンコーダーはAD変換して使う(当たり前) この際AD変換出来るポートににこいつらが入ってくるピンを設定してないとダメだよ!一応確認してね!!

 

DCモーターはステッピングモーターと違ってエンコーダーの値からタイヤの1回転の長さ、分解能、そして正転逆転、…を色々どうにかこうにかして計算すると!!!なんと!!!速度が出る!!!!!幸せ!!!!!!という感じらしいです。ステッピングモーターは知らん。(使ったことないので)

 

モーターはMTUで制御しましょう。MTUからPWMを吐かせよう。コンペアマッチを設定して、コンペアマッチの比率からPWMのDuty比が決まるよ!これで速度を制御するのさ!!どうだすごいだろう!!!

 

 

え?

 

もしかして、猿以下じゃないかって?

 

 

わかる。

 

 

 

 

 

 

まぁ猿でいうところの車輪の回し方ぐらいがようやくわかって来ました。

 

 

はやくにんげんになりたいなぁ

 

 

というわけで今日は頭クラクラする(多分寝不足)なので寝ます。また進捗出たらスッゲー基礎的なところをメモみたいに書くかもしれません。というわけで今日はおやすみなさい。

 

 

ブログ始めました

はじめまして、一応新入生です。
某先輩に「早くブログ作って機体名宣言しないと機体名れこみんとにしちゃうよ笑」と言われてしまったのでブログを始めた、わけではないですが、機体名れこみんとだけは勘弁ですね(白目)

はてさて、私が今製作しているマイクロマウスを紹介します。名前は?

viola」!

スミレ、という意味です。私の分身ですね。基板の色は紫です。今まで紫の基板のマイクロマウスは1人、しかもその人は大会優勝した人らしいので、ちょっと胃が痛いですが…

ちなみにモーターはステッパーではなく、DCにしました。先輩方からは初心者には難しいと思うよ、と言われましたが、せっかくやるならなんか強そうな(というか実際トルクが強い)DCがいい!と思ってこっちにしました。
たまにステッパーの方が大きくて可愛かったのでは、とか思いますが、世の中ロボットは可愛さよりやっぱり性能ですよね!!!(暗示)

ちなみにどんなスケジュールできたかというと、5月の連休明けくらいからクラシックマイクロマウスの回路図を作り始めて、5月中旬に回路図完成、部品を選んで、フットプリントをパーっと割り付けて、配線に苦しみ、とうとう本日OSHPARKにプリント基板を発注しました。(なお私の学部は今日からテスト期間です)

基板は3週間しないと届かないみたいなので、それまでは6月下旬のプチ大会に向けて、ライントレーサーの調整等をしていこうと思います。

基板が届いたら、更新しようと思います。それではまた、ごきげんよう。