Skip to content

Latest commit

 

History

History
192 lines (119 loc) · 8.17 KB

File metadata and controls

192 lines (119 loc) · 8.17 KB

Cube Scrambler セットアップガイド

用意するもの

  • M5Stackデバイス
    • ATOMS3 Lite, ATOMS3, ATOM Lite, ATOM Matrix, M5Stack Core2, M5Stack, M5StickCで動作確認しています
    • ATOMS3 Liteが安価でおすすめです
  • GeekServo 9G Servo-Gray x 2
    • グレーの270°サーボモーターのタイプです
    • 2台必要です
    • 赤やオレンジのものは別物ですので注意してください
  • GROVE - サーボ用2分岐ケーブル
    • 必須ではないですが配線がすっきりします
    • ない場合はブレッドボードやジャンパワイヤーでよしなにしてください
  • USB Type-Cケーブル
  • PC
    • Windows / Mac / LinuxどれでもOK
      • Android (Termux)でもいけました
    • Node.js v18以上をインストールしておいてください
  • キューブ
    • 回転が重いものだとうまく動かないと思います
    • 私はTornado V3のPioneerモデルとFlagshipモデルを使っています
      • 届くまで少し時間がかかりますがAliExpressだと安く買えます

M5Stackデバイスのセットアップ

opniz CLIのインストール

opniz CLIをnpmよりインストールします。
opniz CLIはM5Stackデバイスへopniz Arduino Libraryのテンプレートスケッチを簡単に書き込めるツールです。

npm install -g opniz-cli

opniz CLIのインストール時にArduino CLI実行ファイルのダウンロードやESP32環境の構築を行うため、インストールに数分かかります。

M5Stackデバイスへの書き込み

opniz CLIを使ってM5Stackデバイスをセットアップします。

M5StackデバイスをUSBケーブルでPCと接続してください。
その後、以下のコマンドを実行し対話モードで必要な情報を入力していきます。

npx opniz upload

ここで必要となる情報は以下のとおりです。

  • デバイスのシリアルポート
  • M5Stackデバイスが接続するWi-FiのSSID / パスワード
  • Node.jsアプリケーションを実行するPCのIPアドレス
  • 書き込むM5Stackデバイスの種別
  • opnizの通信ポート番号(デフォルトは3000)

このうちWi-Fiパスワード以外は自動的に情報を取得しリスト表示されるので選択するだけです。
opnizの通信ポート番号はデフォルトの3000のままエンターキーを押してください。

[ opniz uploadコマンド実行イメージ ]

.

GIF画像では書き込みがさくっと終わっていますが、コンパイル / 書き込みに約10分ほどかかります。


書き込みが完了したらM5Stackデバイスのセットアップは完了です。


Node.jsアプリケーションのセットアップ

リポジトリのクローン

Cube Scramblerリポジトリをgit cloneします。

git clone https://github.com/miso-develop/cube-scrambler && cd cube-scrambler

gitがインストールされていない場合はCube ScramblerのGitHubページへアクセスし、<> Codeとある緑色のボタンからDownload ZIPを選択しリポジトリをダウンロードし解凍してください。

依存パッケージのインストールとアプリケーションのビルド

次のコマンドを実行すると依存パッケージのインストールとアプリケーションのビルドが行われます。

npm install

GeekServoのキャリブレーション

GeekServoのキャリブレーションは必ずLEGOロボットの組み立て前に行ってください!

まずはM5StackデバイスとGeekServoを接続します。
GROVE - サーボ用2分岐ケーブル」があるならM5StackデバイスのGroveポートに繋ぐだけです。

「GROVE - サーボ用2分岐ケーブル」がない場合は、ブレッドボードやジャンパワイヤーを駆使しM5Stackデバイスの適当なピンとGeekServoを繋ぎましょう。
このときあわせてconfig.tsSTAND_SERVO_PINARM_SERVE_PINをM5Stackデバイスに繋いだピン番号に変更してください。

M5StackデバイスとGeekServoを接続したら次のコマンドを実行します。

npm run calibration

GeekServoの軸が動き、Calibration complete!と表示されたら成功です。


LEGOロボットの組み立て

リンク先のPDFを参照し、LEGOロボットを組み立ててください。


アプリケーションの実行

次のコマンドを実行し、アプリケーションを起動します。

npm start

Device connected!と表示されたらM5Stackデバイスと正常に接続できています。

Web UIへのアクセス

アプリケーションの実行と同時にWeb UI用のWebサーバーも起動しています。
PC上でブラウザからhttp://localhost:3001へアクセスしてみてください。
Web UIが表示されます。

http://localhost:3001のうちlocalhostの部分をPCのIPアドレスにすることで、同じネットワーク上の別の端末からもアクセスできます。
たとえばPCとスマートフォンが同じネットワークに接続している場合は、スマートフォンからもWeb UIへアクセスできます。


あとはWeb UIからLEGOロボットを制御してみてください。
よいキューブライフを😎


Scramble View Solve View Sequence View Step View

動作が安定しないとき

キューブが縦方向に回転しなかったり、スタンドから落ちてしまう場合はconfig.tsファイルにてサーボモーターの動きを調整します。

ARM_PULL_ANGLEARM_HOLD_ANGLEARM_RELEASE_ANGLEでアームの動作を調整できます。
ARM_PULL_SLEEP_MSECSERVO_TURN_SLEEP_MSECの値を大きくすると動きが若干遅くなりますが、動作が安定するようになります。

	ARM_PULL_ANGLE: 173, // ここでアーム側サーボモーターの角度を微調整
	ARM_HOLD_ANGLE: 220, // ここでアーム側サーボモーターの角度を微調整
	ARM_RELEASE_ANGLE: 237, // ここでアーム側サーボモーターの角度を微調整
	ARM_READY_ANGLE: 270, // ここでアーム側サーボモーターの角度を微調整
	
	ARM_PULL_SLEEP_MSEC: 250, // アーム動作のsleep
	// ARM_PULL_SLEEP_MSEC: 350, // アームの動作が不安定な場合はこちらを使用(ネットワーク重めの環境等)
	
	SERVO_TURN_SLEEP_MSEC: 250, // スタンド、アーム共通のsleep
	// SERVO_TURN_SLEEP_MSEC: 350, // モーターの動作が不安定な場合はこちらを使用(ネットワーク重めの環境等)

その他セットアップ方法で分からないことがあったらGitHubのIssueか、私のメールアドレス <miso.develop@gmail.com> までご連絡ください。