Baumkuchen’s Workshop

バイオリンと電子工作、DIY、ジョギングなど。

MATRIX LED表示器 改善(簡易迷路#1)

前回までの成果

 何とかアクリルキューブに収まりましたが、ただ仮のパターンが出るだけ。面白くありません。

電気工事士の試験が延期となって、STAY HOMEの間に、ちょっと改善することにしました。

f:id:Baum_kuchen:20200320165358j:plain

迷路

いろいろ考えて、簡易迷路をつくることにしました。

迷路自動生成→迷路解答(プレイ)→迷路自動求解→解答表示までの一連の実装を考えます。

迷路自動生成と求解のアルゴリズムは、ググるといろいろ出てきましたが、そんなに複雑なものは実装できないので、単純に穴掘り法塗りつぶし法で作ることに。

問題は、ユーザインターフェースです。

最初に表示ですが、8X8のLEDどうやって表現するか。結局、自分を中心に壁と通路を配置することにしました。また、進んでいる方向を示せるようにと、上下左右対称の表示にしたかったので、自分を2x2のLEDで表現し、進んでいる方向の2個を点滅することで表現しました。

イメージは、こんな感じです。

f:id:Baum_kuchen:20200502023947p:plain

迷路求解と解答表示

最初に実装したのが、迷路自動求解と解答表示です。PICのメモリ容量から、23×23マスの迷路が最大とし、サンプル迷路(下図、15x15マス)を自分で作り、その自動求解と解答表示を実装しました。いまは、スイッチを押すたびに1ステップ進むように実装しています。

進み方も、3LED分で1ステップなので、それを分割して表示するようにしました。ただし、表示をスクロールするとき、次に表示する部分を描画するメモリ余裕がなかったので、1ステップ移動した後に表示しています。

f:id:Baum_kuchen:20200502024511p:plain

ここまで作ったのが、これです。まだ動画を張る技を知らないので、静止画で殆ど分かりませんがあしからず。 YouTubeにアップしてみした。

 

f:id:Baum_kuchen:20200502095902j:plainf:id:Baum_kuchen:20200502095920j:plain

f:id:Baum_kuchen:20200502095935j:plain

タイトル表示(スクロール)のあと、

f:id:Baum_kuchen:20200502100135j:plainスタート地点(1,1の位置)

f:id:Baum_kuchen:20200502100148j:plain真ん中の4つが、自分

f:id:Baum_kuchen:20200502100203j:plain最初のコーナー

順次、迷路を移動(撮影タイミングで、自分の表示が消えているものもあり)、ゴールまで無事たどりつくところまでできました。


Simple Maze by 8X8 MATRIX LED #1

次は、迷路解答(プレイ)を実装しますが、最大の問題は、PICのIOをほぼ使い切っているのと、本体をアクリルケースに入れた状態でも動くようにしたいので、一工夫がいります。