ESP32ベースの汎用ステッピングモーター/GPIO制御デバイス。Wi-Fi経由でリアルタイム制御。p5.js・Pure Data・TouchDesigner などあらゆる環境から操作可能。
シンプルなコマンド体系で、あらゆる外部アプリケーションからモーターと GPIO を制御
ステップ数・方向・速度をリアルタイム指定。motor.goto で絶対位置移動も可能。差分はデバイス側で自動計算。
モーターピンを汎用スイッチ出力に転用。デジタル ON/OFF と PWM 出力(周波数可変)に対応。SSR 経由の AC 機器制御も。
HTTP POST でコマンド送信。p5.js・Python・Processing など、fetch が使える環境ならどこからでも制御可能。
UDP ポート 9100 で OSC メッセージを受信。Pure Data・Max/MSP・TouchDesigner からそのまま使用可能。
初回起動時は AP モードで起動。ブラウザから SSID・サーバー URL・デバイスモードを設定して保存。
接続デバイスを自動検出してカード表示。GUI で個別制御しながらログをリアルタイム確認。EN/JA 切替対応。
HTTP POST で任意の言語からデバイスを制御。CORS 対応済みなのでブラウザからも直接アクセス可能。
GET http://localhost:3000/api/devices
POST http://localhost:3000/api/command
Content-Type: application/json
{
"deviceId": 1,
"command": "motor.move",
"data": { "steps": 200, "direction": 1, "speed": 5 }
}
// モーターを絶対位置 500 に移動
await fetch('http://localhost:3000/api/command', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
deviceId: 1,
command: 'motor.goto',
data: { position: 500, speed: 5 }
})
});
| 値 | 意味 |
|---|---|
1, 2, ... | デバイス番号(接続順に自動採番) |
"192.168.1.x" | IP アドレス |
"__all__" | 全デバイスにブロードキャスト |
UDP ポート 9100 でメッセージを受信。Pure Data・Max/MSP・TouchDesigner から直接送信可能。
/gpub/motor/move [deviceId] steps dir speed /gpub/motor/goto [deviceId] position speed /gpub/motor/stop [deviceId] /gpub/motor/status [deviceId] /gpub/switch/set [deviceId] pin value /gpub/switch/pwm [deviceId] pin duty freq /gpub/config/mode [deviceId] mode
; デバイス #1 を絶対位置 400 に移動 [list /gpub/motor/goto 1 400 5( | [osc.send 9100] ; 全デバイス停止(deviceId 省略) [list /gpub/motor/stop( | [osc.send 9100]
| コマンド | パラメータ | 説明 |
|---|---|---|
motor.move | steps, direction, speed | direction: 1=CW / -1=CCW、speed: ms/step(最小 5) |
motor.goto | position, speed | 絶対位置移動。差分はデバイス側で自動計算 |
motor.stop | — | 即停止 |
motor.status | — | 現在の状態を取得(state / position / mode) |
switch.set | pin, value | デジタル出力 ON/OFF |
switch.pwm | pin, duty, freq | PWM 出力。duty: 0–255 / freq: Hz |
config.mode | mode | "motor" または "gpio"(セッション中のみ) |
Electron ベースのデスクトップアプリ。Socket.IO サーバー・REST API・OSC サーバーが一体化したコントロールパネル。
接続デバイスを自動検出してカードを生成。各カードから個別にモーター制御・GPIO 制御・モード切替が可能。
接続・コマンド・ACK をリアルタイム表示。デバッグやプロトタイピング中に通信状況を即座に確認できる。
ヘッダーのボタンで UI 表示言語を英語 / 日本語にワンタップで切替。デバイスカードの動的生成にも対応。
「Ref」ボタンで REST API・OSC の使用例をモーダル表示。コマンドの書き方をその場で確認できる。
実機なしでサーバーをテスト可能。npm run sim で 1 台、npm run sim3 で 3 台の仮想デバイスを起動。
Socket.IO(デバイス接続)・REST API・OSC の 3 プロトコルを同時提供。ポート 3000(HTTP/WS)+ 9100(UDP)。
cd server npm install npm start
npm run sim # 1台 npm run sim3 # 3台同時 node simulator.js 5 # 任意台数
最新リリースのインストーラーを GitHub Releases から入手できます。
⚠️ 署名なしのため、初回起動時は macOS は「システム設定 → プライバシーとセキュリティ」、Windows は「詳細情報 → 実行」から許可が必要な場合があります。