forked from: forked from: Japanino 基本的ないろいろTest

by agenda23 forked from forked from: Japanino 基本的ないろいろTest (diff: 123)
Japaninoでいろいろ基本的な初期設定とかイベントとかメソッドとか。
いまいちfunnelのことがわかっていないので練習しました
アナログピン0,2,4にセンサ類を接続、数値を取得して表示します
guiとっぱらったのでデバイスを持っていないと何が何やらわかりません
現在ピンには測距センサと可変抵抗をつないでいますが、ノイズがひどくて使いものになりません
おそらく回路の不具合なので電子回路の勉強をして出直します。
追記
フィルタを噛ませてみたら少し安定したような気がして、
グラフィックというかテキストフィールドの横サイズに値を割り当ててみたら
細かいノイズはありつつもまあ見れるようになったぽい
♥0 | Line 84 | Modified 2010-06-21 18:28:07 | MIT License
play

ActionScript3 source code

/**
 * Copyright agenda23 ( http://wonderfl.net/user/agenda23 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/nKR0
 */

// forked from undo's forked from: Japanino 基本的ないろいろTest
// forked from undo's Japanino 基本的ないろいろTest
//Japaninoでいろいろ基本的な初期設定とかイベントとかメソッドとか。


//いまいちfunnelのことがわかっていないので練習しました
//アナログピン0,2,4にセンサ類を接続、数値を取得して表示します
//guiとっぱらったのでデバイスを持っていないと何が何やらわかりません

//現在ピンには測距センサと可変抵抗をつないでいますが、ノイズがひどくて使いものになりません
//おそらく回路の不具合なので電子回路の勉強をして出直します。

//追記
//フィルタを噛ませてみたら少し安定したような気がして、
//グラフィックというかテキストフィールドの横サイズに値を割り当ててみたら
//細かいノイズはありつつもまあ見れるようになったぽい

package
{
	import com.bit101.components.Text;
	import flash.display.Sprite;
	import flash.events.Event;
    import flash.text.*;
	
	import funnel.*;
	import funnel.gui.ArduinoGUI;
	import funnel.ui.LED;


	public class JapaninoBasic extends Sprite
	{
		private var _japanino:Arduino;
		private var _japaninoGUI:ArduinoGUI;

		//13番PINをとりあえずLEDに突っ込む用
		private var _led13:LED;

		//6番PINがPOVハンドルを回したときのスイッチになる
		private var pin6:Pin;
		private var pin0:Pin;
		private var pin2:Pin;
		private var pin4:Pin;
		private var pin0_tf:TextField;
		private var pin2_tf:TextField;
		private var pin4_tf:TextField;

		public function JapaninoBasic()
		{
			//configを用意
			var config:Configuration = Arduino.FIRMATA;
			//7〜13番PINをデジタル出力に設定
			for (var i:int = 7; i <= 13; i++)
			{
				config.setDigitalPinMode(i, Pin.DOUT);
			}
			
			//Japanino生成
			_japanino = new Arduino(config);
			_japanino.addEventListener(FunnelEvent.READY, onFunnelReady);
			
			//とりあえず13番PINをLEDに突っ込む
			_led13 = new LED(_japanino.digitalPin(13));
			//点滅させる関数 第一引数:点灯→消灯→点灯までの間隔 第二引数:くりかえし回数 0なら無限
			//↓これなら1秒で点灯
			_led13.blink(1000,0);
			
			//各アナログ入力アクティブ時イベント登録
			pin0 = _japanino.analogPin(0);
			pin0.addFilter(new Scaler(0, 6, 5, 255, Scaler.LINEAR, true));
			pin0.addFilter(new Convolution(Convolution.MOVING_AVERAGE));
			pin0.addEventListener(PinEvent.CHANGE, pin0_change);
			
			pin2 = _japanino.analogPin(2);
			pin2.addFilter(new Scaler(0, 6, 5, 255, Scaler.LINEAR, true));
			pin2.addFilter(new Convolution(Convolution.MOVING_AVERAGE));
			pin2.addEventListener(PinEvent.CHANGE, pin2_change);
			
			pin4 = _japanino.analogPin(4);
			pin4.addFilter(new Scaler(0, 6, 5, 255, Scaler.LINEAR, true));
			pin4.addFilter(new Convolution(Convolution.MOVING_AVERAGE));
			pin4.addEventListener(PinEvent.CHANGE, pin4_change);
			

		}
		
		private function onFunnelReady(evt:FunnelEvent):void
		{
			//japaninoとの接続が完了し、準備ができました。
			_japanino.removeEventListener(FunnelEvent.READY, onFunnelReady);
			
			//テキストフィールド生成
			
			pin0_tf = new TextField();
			pin2_tf = new TextField();
			pin4_tf = new TextField();

			stage.addChild(pin0_tf);
			stage.addChild(pin2_tf);
			stage.addChild(pin4_tf);
			
			//テキストフィールド設定
			pin0_tf.border = true;
			pin0_tf.x = 50;
			pin0_tf.y = 50;
			pin0_tf.text = "pin0";
			
			pin2_tf.border = true;
			pin2_tf.x = 50;
			pin2_tf.y = 100;
			pin2_tf.text = "pin2";
			
			pin4_tf.border = true;
			pin4_tf.x = 50;
			pin4_tf.y = 150;
			pin4_tf.text = "pin4";
			
		}
		

		private function pin0_change(evt:PinEvent):void
		{
			pin0_tf.text = "pin0 : " + Math.round((Pin(_japanino.analogPin(0)).value)*1000)/100;
			pin0_tf.width = Math.round((Pin(_japanino.analogPin(0)).value)*1000)/100;
		}
		private function pin2_change(evt:PinEvent):void
		{
			pin2_tf.text = "pin2 : " + Math.round((Pin(_japanino.analogPin(2)).value)*1000)/100;
			pin2_tf.width = Math.round((Pin(_japanino.analogPin(2)).value)*1000)/100;
		}
		private function pin4_change(evt:PinEvent):void
		{
			pin4_tf.text = "pin4 : " + Math.round((Pin(_japanino.analogPin(4)).value)*1000)/100;
			pin4_tf.width = Math.round((Pin(_japanino.analogPin(4)).value)*1000)/100;
		}

	}
}