본문 바로가기
배워보자!!/arduino

[Arduino] 플래시로 초음파 근접센서 이용하기!

by norinda 2015. 9. 21.
728x90




이전 led 제어에 이어서 초음파 센서를 이용해 보았습니다.

준비는 이전 게시물에서 확인해 주시구요...

추가로 준비하실건 초음파 센서만 준비해주시면 됩니다.


간단히

초음파 센서를 이용해 거리에 따라서 무비클립이 왔다갔다

움직이게 해봤습니다.ㅎ




플래시 소스입니다.

계산식은 좀 멋대로라 이해하고 봐주세요;;ㅋ

package

{

import flash.display.Sprite;

import flash.events.MouseEvent;

import flash.external.ExternalInterface;

import flash.external.ExtensionContext;

import com.quetwo.Arduino.ArduinoConnector;

import com.quetwo.Arduino.ArduinoConnectorEvent;


import net.eriksjodin.arduino.Arduino;

import net.eriksjodin.arduino.events.ArduinoEvent;

import net.eriksjodin.arduino.events.ArduinoSysExEvent;

import flash.events.Event;

import flash.events.TimerEvent;

import flash.utils.Timer;

import caurina.transitions.Tweener;

public class Dis extends Sprite

{

private var _arduino: ArduinoConnector = new ArduinoConnector();

private var myTimer:Timer = new Timer(100);

private var clickCheck:Boolean;

private var a:int = 0;

public function Dis()

{

_arduino.connect("COM3", 9600);

_arduino.addEventListener(ArduinoEvent.DIGITAL_DATA , arduinoHandler);

_arduino.addEventListener(Event.ACTIVATE , arduinoHandler);

myTimer.addEventListener(TimerEvent.TIMER , timerHandler);

}

private function timerHandler(e:TimerEvent):void

{

var xx:int;

var old = 0;

a = int(_arduino.readBytesAsString());

if(a==0||(Math.abs(a-old))>1000)

{

return;

}

xx = a*34.2;

if(xx>1900)

{

xx = 1900;

}

old = a;

view.text = xx.toString()+"//"+a.toString();

Tweener.addTween(box , { x:1900-xx, time:0.4 ,transition:"linear"} );

}

private function arduinoChangeHandler(e:Event):void

{

trace("dfdfdf");

}

private function arduinoHandler(e:Event):void

{

myTimer.start();

}

}

}




아두이노쪽 소스입니다.

void setup()

{

  Serial.begin(9600);

  pinMode(2,OUTPUT); // 센서 Trig 핀

  pinMode(3,INPUT); // 센서 Echo 핀

}

void loop()

{

  

     long duration;

      long cm;

      digitalWrite(2,HIGH); // 센서에 Trig 신호 입력

      delayMicroseconds(10); // 10us 정도 유지

      digitalWrite(2,LOW); // Trig 신호 off


      duration = pulseIn(3,HIGH); // Echo pin: HIGH->Low 간격을 측정

      cm = microsecondsToCentimeters(duration); // 거리(cm)로 변환

      Serial.println(cm);  

      delay(100);

}

long microsecondsToInches(long microseconds)

{

  return microseconds / 74 / 2;

}

long microsecondsToCentimeters(long microseconds)

{

  return microseconds / 29 / 2;

}

반응형

댓글