加速度センサーの出力値を受け取る

3軸加速度センサー「KXM52-1050」のアナログ出力値を、ArduinoとFunnelを使ってswfファイルでキャッチするテストです。

緑の基板が「KXM52-1050」で、緑のワイヤーがX軸の出力、黄色がY軸、青がZ軸です

AS3ドキュメントクラスのコードはこちら。
出力値を受け取ってテキストフィールドに表示します。

package {
	import flash.display.Sprite;
	import flash.text.TextField;
	import funnel.*;

	public class Main extends Sprite {
		private var aio:Arduino;

		private var xTx:TextField = new TextField();
		private var yTx:TextField = new TextField();
		private var zTx:TextField = new TextField();

		public function Main() {
			var config:Configuration = Arduino.FIRMATA;

			aio = new Arduino(config);

			var myX:Pin = aio.analogPin(0);
			var myY:Pin = aio.analogPin(1);
			var myZ:Pin = aio.analogPin(2);

			myX.addEventListener(PinEvent.CHANGE, xChange);
			myY.addEventListener(PinEvent.CHANGE, yChange);
			myZ.addEventListener(PinEvent.CHANGE, zChange);

			set_text(xTx, 50, 50);
			set_text(yTx, 50, 100);
			set_text(zTx, 50, 150);

		}
		//テキストフィールド作成
		private function set_text(tx:TextField,_x:int,_y:int):void {
			tx.x = _x;
			tx.y = _y;
			tx.width = 200;
			tx.height = 20;
			addChild(tx);
		}
		//Xの値が変化
		private function xChange(e:PinEvent):void {
			xTx.text = "X: " + String(e.target.value);
		}
		//Yの値が変化
		private function yChange(e:PinEvent):void {
			yTx.text = "Y: " + String(e.target.value);
		}
		//Xの値が変化
		private function zChange(e:PinEvent):void {
			zTx.text = "Z: " + String(e.target.value);
		}
	}
}

この出力値さえ取り込めれば後はFlash側でいろいろ面白そうなことが出来そうですね。

Post a comment

※承認されるまではコメントは表示されません。

Trackbacks

URL: http://b.i-tach.com/wp-trackback.php?p=179