Prototyping Lab: Recipe 3.3

by kotobuki
♥0 | Line 26 | Modified 2010-04-17 14:25:01 | MIT License
play

ActionScript3 source code

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

package {
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.text.TextField;

  import funnel.*;

  public class MeasuringTheDistanceBySonar extends Sprite {
    // Arduino
    private var arduino:Arduino;

    // センサに接続したピン
    private var sensorPin:Pin;

    // 距離を表示するテキストフィールド
    private var textField:TextField;

    public function MeasuringTheDistanceBySonar() {
      // Arduinoのインスタンスを生成してsensorPinを初期化
      arduino = new Arduino(Arduino.FIRMATA);
      sensorPin = arduino.analogPin(0);

      // 距離を表示するテキストフィールドを追加
      textField = new TextField();
      addChild(textField);

      // 毎フレームごとに発生するイベントのイベントリスナをセット
      addEventListener(Event.ENTER_FRAME, onEnterFrame);
    }

    // 毎フレームごとに以下を実行
    private function onEnterFrame(e:Event):void {
      // センサの値を読み取る
      var value:Number = sensorPin.value;

      // 読み取った値をインチ単位とセンチ単位に変換
      var rangeInInches:Number = value * 512;
      var rangeInCentimeters:Number = rangeInInches * 2.54;

      // 小数点以下を四捨五入して距離をそれぞれの単位で表示
      textField.text = Math.round(rangeInInches) + " inch (";
      textField.appendText(Math.round(rangeInCentimeters) 
                           + " cm)");
    }
  }
}