Categories: 工作・開発

Arduino Nanoとサーボ8個で作るルービックキューブ自動解決ロボット、3Dプリント部品で約30ドル

ルービックキューブを自動で解くロボットは珍しくないが、部品コストを約30ドルに抑えつつ平均20秒で解けるものは少ない。Yonni123氏が設計した3Dプリント製のキューブソルバーロボットは、Arduino Nano、SG90サーボ8個、HC-06 Bluetoothモジュールだけで構成される。ファームウェア、3Dプリント用STL、Fusion 360のソースファイル、Androidアプリのコードまで、すべてGitHubで公開されている。

解法の流れはこうなっている。まずスマートフォンのカメラでキューブの6面をスキャンする。ロボットがキューブを回転させて各面をカメラに見せるが、スキャン時の回転角度は90度ではなく45度に抑えてある。こうすることで、キューブを保持アームに載せたまま回転でき、サーボへの負荷も減る。

スキャン後、アプリがKociemba(コシエンバ)のアルゴリズムで最適解を計算する。人間向けのCFOP法と異なり、Kociembaアルゴリズムは機械に適した最短手順を導き出す。解法の手順はBluetooth経由でArduinoに送信され、サーボが順次キューブを操作する。速度100%設定で平均約20秒の解法時間を達成している。

設計上の工夫として、カメラによる色認識にはまだ誤検出が残るため、確認ステップを設けている。ロボットがスキャン済みの全6面を再度表示し、ユーザーが目視で確認、必要なら手動で修正してから解法を実行する仕組みだ。制作者自身、アプリの色認識精度が現時点で最大の改善課題だと認めている。

ハードウェアの組み立てガイド、Arduinoファームウェアのフラッシュ手順、サーボのキャリブレーション方法はGitHubリポジトリ内にそれぞれ個別のREADMEで記載されている。Androidアプリはデバイスの解像度によってレイアウトが崩れる場合があるとの注意書きもある。

関連情報

RubiksCubeRobot(GitHub)

FabScene編集部

FabScene編集部