ライントレーサーロボットキットTypeRをMATLABにつなぐ


ライントレーサーロボットキットTypeRをMATLABに繋いだ備忘録
このキットにはArduino Nanoの互換品が搭載されているが、MATLABのハードウェアセットアップから自動で認識されない。ボードとポート番号を手動でセットアップすると接続確認とテストファームの書き込みはできるが、その後の目的のファームをSimulinkから書きこむところでエラーになる。
互換品でも例えばArduino Megaの互換品では書き込みもできるため、何かしらオリジナルのArduinoとの差が原因かもしれない。問題の互換品とオリジナルのArduino NanoではUSBシリアルICがFDTIとCH340とで異なる点が問題なのかもしれない
そうはいってもArduino NANOは古い設計であるしMCUのパワーも低いため改めてオリジナルを購入するのは気が引ける。そこで最新のR4世代のボードに乗せ換えた。最新のArduino NANO R4はまだMATLABが対応していないためR4 minimaに入れ替えるとハードウェアセットアップから自動で認識して問題なく書き込むことができた。

次にぶつかった課題は今度はI2C接続のジャイロセンサが反応しないこと、調べるとこちらArduino UNO R4でI2Cモジュールが使えない!?原因と解決事例紹介の症状のようで、ジャイロをレベルシフタ付きのBNO055使用 9軸センサーフュージョンモジュールキットに交換することで対処した

2025年度マイクロマウス関西地区大会


 大阪電気通信大学で開催された2025年度マイクロマウス関西地区大会は、出走台数が100台を超える大盛況で、非常に規模の大きな大会となりました。スタッフ、来賓、そして参加者の皆様、本当にお疲れ様でした。

 前日の試走では、直線距離や最終速度が合わず、まともに走行できない状態に。原因を調査し、タイヤの滑りや電気的な不具合を疑いましたが、特に問題は見つからず。最終的には、走行モジュールとはまったく関係のない、迷路解法のダイクストラ法の処理内で一時的に使用していた変数をintで複数回宣言していたものを、初回のみshortで宣言するよう修正したところ、なぜか解決するという不思議な結果に…。

 個人成績は優勝でした。16×16区画の課題の過去最大難易度と言われる今回のレイアウトは、4輪マシンが有利だったように思います。
 
 

続きを読む

こつこつ

RX671マイコンの準備を始める。今回はスマート・コンフィグレータの勉強もかねて、ハードウェアマニュアルを余り読み込まずに評価用の基板をつくった。そして見事にはまっている。

〇RX671の48ピンで位相計算モードで外部からのA/B相のエンコーダー信号を読み取れるのはTCLKCとTCLKDのペアと、MTU1に繋がるMTCLKAとMTCLKBのペア、MTCLKCとMTCLKDのペアの3組。
ここでMTCLKBをPC7ポートに割り付けてしまうとSCIインタフェース経由でファーム書き込む使い方をする場合には起動時にL電位にする回路が必要になりそう。

〇駆動用のモータドライバに供給するPWMのポートについて、モータドライバにMP6551CQBを使用する場合には回転方向毎にPWMを出すポートを変えれると都合がいい。そのためマイコンの機能としては1つのタイマーから2本のPWMを出したい。MTU3を同期モードで動かせばMTIOC3A,B,C,Dの4本のPWM出力が使えそうだけど、スマート・コンフィグレータからはMTIOC3AとCのみの設定しか見つけられない。

〇P35は入力専用ポート

5月の活動


M5stack Japan Tour 2025 Spring Osaka
クラシック機体とハーフ機体の展示。表彰状を置くと見栄えがすることを学んだので今年は配置してみた
M5Stack社jimmyさんたちにマイクロマウスタックチャンを見てもらった。そして参考にしてくださっているようだ。

〇5月度練習会
既知区間直線の先に未知区間の直線があると座標がズレる不具合を直すつもりが、再現せず。
今回はだいぶ前のコードから復元したため、その後の更新でバグを作りこんでいたのか?それとも他の要因があるのか?
ロボトレーコースの表面の凹凸を#2000の紙やすりで削っている写真。

〇ベゼルが紫の直径8mm長さ20mmのモータ
端子間抵抗0.5Ω、インダクタンス2.2uH
参考LCRメータを買ってみた

こつこつ

関西地区練習会に参加する
全日本でやらかしたゴール区間に入りきれなかったことを修正する。
まずは、最終的に速度が0m/sになる設定だと、途中で壁に当たってしまった場合などに減速中に早く0m/sに到達してしまい、フィードフォワード制御の影響もあり前進できず、目標の距離まで到達できない場合があった。そこで、減速中に速度が0m/sになった場合には、減速用のフィードフォワードを無効化するように変更した。
さらに、最短走行時のゴール区間では、ゴール後に前壁センサの両方が反応しなかった場合、低速で前進し続ける処理を追加。これにより、ゴール壁にしっかり接触するまで確実に前進できるようにした。