メモリ破壊直った?

ダイクストラ法を使った最短経路導出を入れてから発生していたメモリ破壊
原因は分からないものの、最終的には迷路の壁情報、コストといった配列のサイズを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さんによる「最近買った充電器のはなし」です。ガジェットはいくつあっても良い。民望書房にもそう書かれている

ひさしぶりに

整備した機体を走行させる
2個準備したネタはどちらも不発だけど、開発はいつだってそんなもの
普通に走行して満足していたら終盤に操作ミスでクラッシュ。カメラマシンで最も重要なカメラマウントを交換する羽目に…焦りながら修理して何か変だけど1回は完走できた。本番は無事走れるのだろうか

カテゴリー MCR