Simple WebSocket server to control a tank.

Dependencies:   SNICInterface_mod WebSocketServer mbed-rtos mbed PowerControl C12832

au Firefox OS WoTハッカソン on ホワイトデーで使用した、タンクを動かすプログラムです。 ゲームパッドでタンクを操縦します。

ゲームパッドは PC に接続し、ブラウザ上の Web アプリから Gamepad API で入力を取得します。 取得した入力データは WebSocket で mbed 上の WebSocket サーバに送信します。

WebSocket サーバのコードはライブラリ化したので、他のプログラムでもインポートして使えます。

使用した機材

  • LPC1768
  • Murata TypeYD
  • LPC1768 用アプリケーションボード
  • TAMIYA トラック&ホイールセット
  • TAMIYA ダブルキヤボックス(左右独立4速タイプ)
  • TAMIYA ユニバーサルプレート
  • TOSHIBA TA7291P x 2
  • その他、モバイルバッテリー、電池ボックス等

左右のモータードライバにそれぞれ LPC1768 の p12, p13 と p14, p15 のピンを割り当てていますが、必要に応じてコードを変更してください。

コントローラー側(Webアプリ)

https://github.com/chikoski/wotxwot-control

Firefox ブラウザで動作確認しています(他のブラウザでは動かないかも)。 ゲームパッドの左右のスティックの前後の操作が左右それぞれのモータの前転・後転に対応しています。

動いているところの動画

https://www.facebook.com/video.php?v=456620974491805

ハッカソンでは ARM 賞をいただきました!

(参考) au Firefox OS WoTハッカソン on ホワイトデー

http://au-fx.kddi.com/event/20150314/wot_hackathon0314.html

Revision:
9:774f408b9740
Parent:
8:6635ca3b5a5c
Child:
10:578778037efb
--- a/WebSocketServer.cpp	Sat Mar 14 07:52:50 2015 +0000
+++ b/WebSocketServer.cpp	Sat Mar 14 11:06:11 2015 +0000
@@ -113,6 +113,9 @@
 
 	if (isUpgradeWebSocket && isSecWebSocketKeyFound) {
 		this->sendUpgradeResponse(key);
+		if (mHandler) {
+			mHandler->onOpen();
+		}
 		mPrevFin = true;
 		return true;
 	}
@@ -143,6 +146,9 @@
 		return true;
 	}
 	if (opcode == OP_CLOSE) {
+		if (mHandler) {
+			mHandler->onClose();
+		}
 		return false;
 	}
 	ptr++;