メモリ破壊直った?

ダイクストラ法を使った最短経路導出を入れてから発生していたメモリ破壊
原因は分からないものの、最終的には迷路の壁情報、コストといった配列のサイズを33×33、つまり23×32より1列増やすと意図通りに動くようになった。
しかし、何故かダイクストラ法に関する配列のサイズは32×32にしていても問題なさそうで本当に分からない
また、不具合解析の途中で見つけて対処した他の内容、たとえば、メモリ変数領域を逸脱しそうな処理とか、関数内に大きなメモリを確保したことによるスタックサイズの溢れとかは影響していたのかどうかも分からない

タイル式マイクロマウス迷路用ベースの小ネタ

この記事はMicro Mouse Advent Calendar 2022の14日目の記事で、昨日の記事はNoriさんの「STM32CubeMonitorの紹介」でした。マイコンの変数をリアルタイムに可視化、とても便利そうな機能で使ってみたいし、ルネサスにも欲しい。


部屋に15×15サイズの迷路が準備できつつある。この迷路はハーフマウスのタイル式マイクロマウス迷路用ベースを16個組み合わせたもので、移動制限の厳しい去年、どうしても大きな迷路を走らせたいと願っていたらいつの間にか手元にあった。たぶんアールティ社の次に沢山持っていると思う。
複数個の迷路ベースを組わせて作る迷路は、個々の迷路ベースどうしが固定されないために組付け時にズレて並べてしまったり、迷路ベースの並びを変える時にもズレてしまうことがある。もちろん組み立てた後にもズレやすくて、例えば住環境で広い迷路を広げようとすると床に迷路を敷くのが楽だけど、その迷路の上を歩くとズレる。

そこで今回は、迷路ベースのズレを抑える小ネタを紹介

①シフトして並べる
上の写真のように上下に並列する迷路ベースどうしを左右方向に1区間分ずらして並べる。こうすることで写真の上下方向への迷路ベースの位置がずれにくくなる。

②迷路の外形の柱と壁をテープで固定する

迷路ベースの連結部分に架かる壁と、その左右の柱と壁とを養生テープで固定する。こうすることで迷路ベースどうしが離れることによるズレを止めることができる。養生テープの幅は25mmが使いやすい。

③壁と柱を接着

迷路の外周だけでは固定が不安な場合に迷路の内側に使うのがコレ。1枚の壁とその両端にはまる柱を接着材で固定して1つのユニットにしたもの。コレを迷路ベースの連結部分に架かる部分の壁&柱として使用する。
迷路ベースの柱用の孔の間隔の公差、迷路ベースどうしを組わせた時の公差を吸収するために、壁と柱との接着には弾性のあるゴム系接着剤(ex.スーパーXの透明)を使用する。
また、壁と柱を0距離で固定してしまうと迷路ベースの孔の間隔よりも短くなりすぎるので、実際の迷路ベース上に柱を刺した状態で柱と壁とを接着する。

この時、迷路の塗装面に接着剤がつかないとうに迷路ベースの裏面を使うと安心できる。

ついでに、迷路ベースの厚さと柱の差し込み部分の長さからくる柱の浮きが気になる場合には、あらかじめ柱の差し込み部を1.5mmほど削っておく

というわけで、タイル式マイクロマウス迷路用ベースはいいぞ。

明日はNakashimaさんによる「最近買った充電器のはなし」です。ガジェットはいくつあっても良い。民望書房にもそう書かれている

マイクロマウス九州大会


熊本高専で開催された九州大会に参加してきた。同日は文化祭も催されていて展示やイベントや出店でのランチができて楽しい。

マウスの競技にも文化祭の来場者が見学に来てくれて大盛況な大会でした

競技成績は久しぶりの1位。連取中に課題もみつかったし有意義な大会でした。大会を運営頂いた熊本高専の皆さまありがとうございました。

RXコンパイラ(CC-RX)の初期設定

  • いままでchar型はsingned charだと思い込んでたけどunsigned charが初期設定だった。これまで不具合がみえなかったのは運が良いだけだったのか?早速char型をunsingned charに設定して様子をみてみる
  • int型を16bitと思い込んでた。32bitマイコンってそういう意味だったのか。コード上に沢山ある意図のないint宣言の置き換えを進めていく

内部大会?


なんかすごい所にお邪魔して内部の大会に参加してきた
試走時に全面探索に移らなかったり、吸引スカートが床に触れなくて十分な吸引ができなかったり
前者は前日に見直していたコードの不具合のようで元に戻すと意図した動きにもどった。原因は分からない
後者はファンを回した後に自動で走行開始していたのを、ファンの回転後に操作者が吸引を確認してからスタートするように変更。あんまり良い手ではないけれど…
試走から大会中、大会後も意見交換ができて、特にGitの使い方を見せて貰えたのは有難かった
イベントを開催してくださった皆様ありがとうございました

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


 大阪電気通信大学の新設の体育館で行われた2022年度マイクロマウス関西地区大会。皆様お疲れ様でした。

パラメータはターン速度1.1m/s、直線速度2.5m/s、加速度15m/ssで、動きは悪くないのにタイムは伸びず。もっと良い経路を選ぶことが次の課題のようだ。

ピニオンの固定

やっと固定する方法が分かった。
ちなみに、これまで、シャフトにピニオンを挿入した状態で、シャフトとピニオンの境界部分にロックタイト601(あるいはメタルロック)を塗布して、ピニオンを少しづつ動かすことでシャフトとピニオンの隙間に接着剤を浸透させようとしていた。
しかしながら、この方法で固定しても、ピニオンが滑ることがあった。

今回やってみた方法は、ピニオン(孔径0.8mm、歯厚1.0mm)に

ロックタイト601をぶっかける

その後、ティッシュペーパーで孔の部分以外のロックタイトを拭きとり(ふき取っても孔部分の中にロックタイトが少量残る)、直ぐにシャフトに挿入する

(直ぐにピニオンをシャフトに挿入しないと、挿入が硬くて出来なくなるが、)挿入の直後からシャフトとピニオンが固定される

22年モデル


とりあえず形になってきた(吸引スカート未実装)。関西地区に間にあうかな?

下回りのソフトから再確認と、パラメータの校正をすすめる。
ソフトは、全モデルで放置していたものとか、いつもまにか動かないものとかを手直ししていく
パラメータは、左右モータの特性のずれが9%くらいあるのが気になる
校正は下記が一旦完了
・電圧モニタ:電源コネクタ部での電圧と測定値が一致するように変換係数を調整
・モータ特性(逆起電力とか):この方法
・ジャイロ:4回転させて誤差が3度以内になるように補正係数を調整

ハーフマウス用のモータ

重量の重いハーフマウスは、MK06-4.5モータの特性だと12m/ssの加速が厳しい。そのため、もう少し電流の流れる(端子間抵抗が3Ωくらいの)モータを探している。
試しにAmazonで購入したこのモータは端子間抵抗が6~7Ωだった。たぶんMK06-4.5(端子間抵抗:約4.5Ω)より回らないので不採用。