ちょっとイラッとするルービックキューブ自動解法マシン S.A.R.C.A.S.M
(github.com/vindar)- S.A.R.C.A.S.M はルービックキューブをスキャンして解き、皮肉めいた音声コメントを付け加える3Dプリントベースのロボット
- Teensy 4.1 マイクロコントローラと ESP32-CAM を使って映像認識と制御を実行
- ILI9341ディスプレイ で2D・3Dグラフィック、アニメーション、リップシンクを実装し、RGBW照明をオーディオと同期
- espeak-ngベースのTTS によりデバイス上で直接音声を生成し、皮肉っぽいセリフ集を収録
- コード全体をRAMに収めるために Teensy コアファイルの修正が必要で、現在は 未完成の状態 で公開
プロジェクト概要
-
S.A.R.C.A.S.M (Slightly Annoying Rubik’s Cube Automatic Solving Machine) はルービックキューブを自動で解くロボット
- 3Dプリンタで製作されたハードウェア構造と Teensy ベースの制御システムで構成
- キューブをスキャンして解答を計算し、解法の途中で皮肉めいた音声リアクションを出力
-
リポジトリには コードと回路図 が含まれており、追加情報は Teensy フォーラムのスレッド で提供
- フォーラムリンク: https://forum.pjrc.com/index.php/…
デモ動画
主なハードウェアと機能
- メインコントローラとして Teensy 4.1 を使用し、ESP32-CAM で画像キャプチャを実行
- ILI9341ディスプレイ によりカスタム2D/3Dグラフィック、アニメーション、リップシンクを実装
- ステッピングモーターとサーボモーター でキューブを操作し、位置センサー でエラーを検出
- RGBW照明 がオーディオと同期して視覚効果を提供
- espeak-ngベースのTTS によりデバイス上で音声を生成し、皮肉っぽいセリフ集を収録
コード修正案内
- コード全体をRAMに収めるために Teensy コアファイルの修正 が必要
cores/teensy4/usb_serial.cおよびcores/teensy4/usb_serial2.cファイルで
txbuffer[]とrx_buffer[]配列定義の前にあるDMAMEM属性を削除する必要がある
注意事項
- 現在のプロジェクトは 開発途中 で、リポジトリの状態は 整理されておらず不完全
- 開発者の時間が取れるまで、この状態が続く可能性がある
1件のコメント
Hacker Newsの意見
Raspberry Pi 2 W を使い、たった2つのサーボモーターで 3x3x3 キューブを混ぜて解く機能がうまく動作する
制作には多くの時間を費やしましたが、本当に楽しい作業でした。他の人たちが楽しんでくれているのを見るとうれしいです
ハードウェアとソフトウェアの詳細は Teensyフォーラムの投稿 にまとめてあります
解き方がわからず小冊子を注文したら、届いたのは 群論(group theory) の本だった。当時の10代の私には難しすぎた
YouTube動画 と Purdueの記事 を参照できる
もっと長い デモ動画 もある
ソフトウェアの世界で生きていると、こういうものを実際に作るのがどれほど難しいのか気になる
キューブ好きの趣味人として、これはオフィスでの アイスブレイク用装置 としても完璧。同僚が通りがかりにキューブを混ぜて機械に放り込めば、みんな楽しめそう
キューバーは解く時間より混ぜる時間のほうにはるかに多くを費やす。混ぜる作業こそ自動化されるべき
特定のアルゴリズムを反復練習できるよう、キューブを自動で特定の状態にしてくれる装置があれば本当にいいと思う
体感では長く感じるが、実際にはそれほど差はない
私も以前似た実験をしたが、速く回していると絶対に揃わなかった。おそらく 二重回転(U2) を誤って入れたか、回数を数え間違えた可能性が高い
数学的な説明は この資料 の41ページを参照
もし反対方向に回していたなら、63回の繰り返しで済む。このリンク を参照
今回のロボットの動きは私の昔の作品ととてもよく似ている。特に 画面表示 が気に入った
人間はこの2つを並行して行うが、ロボットはすでに計算済みの手順を実行するので、時間はひたすら 速度 に左右される
もっと多くの 『Adams風』ロボット が出てきてほしい