전자칠판으로 동물원 지키기 게임을~

보통 휴대폰 사이즈로 하던 게임을 대화면으로 해보시면 느낌이 또 다르답니다.

[전자칠판-후면방사형]
 투명 아크릴판에 반투명 기름종이를 붙였습니다. 프레임은 보시다시피 옻걸이 랍니다;;


관련링크1:

적외선펜 제작용 적외선 LED 팝니다.

관련링크2:

1000원짜리 비밀펜으로 적외선펜 만들기

관련링크3:

후면반사형 전자칠판 만들기

거리센서 테스트 2번째 이야기입니다.
종전방식은 그냥 거리에 따른 출력 전압변화를 전압계로 관측하는 정도 였습니다.
이번엔 조금 더 발전하여 아듀이노 보드에서 거리센서에서 출력해주는 전압을 받은 뒤, 시리얼 통신으로 PC에 전달하고,
PC측에서는 시리얼통신으로 전송받은 수치를 그래프로 표현해주는 serial Chart 라는 프로그램으로 시각화 하는 예제가 되겠습니다.

[거리센서+아듀이노+시리얼통신+시리얼챠트 = 실시간 거리센서 파형관찰 ]

[ 동영상. 거리센서 결과를 SerialChart로 관측하기 ]

아마도 아듀이노로 할 수 있는 가장 그럴듯한 초보적 예제중 하나일듯 합니다.

1. 아듀이노 : 거리센서 Pin 연결도

 거리센서  아듀이노 보드
 +  5V
 -  GND
 V out  Analog IN 0

2. 아듀이노 Sketch 소스코드

/**  * 기본포함된 예제인 AnalogInSerial를  PC측 SerialChart 프로그램에서 인식할수 있도록 한 줄 추가한 코드입니다.  */   void setup() {   Serial.begin(9600);  }    void loop() {   // read the analog input into a variable:    int analogValue = analogRead(0) /4;    // print the result:    Serial.print(analogValue);       Serial.println("");   //serialChart 프로그램에서 data 패킷 단위를 구분(0x0d 0x0a가 전달됨)해주기 위해 필요합니다.     // wait 10 milliseconds for the analog-to-digital converter    // to settle after the last reading:    delay(10);  } 

3. SerialChart 프로그램용 configuration 설정파일.
: 시리얼차트 프로그램은 입력받은 data를 configuration파일에 정의에따라 해석하여 그래프로 나타내줍니다.
아래의 예는 가장 간단하게 구성해본 예입니다. 더 다양한 설정이 가능하니 직접 해보시기 바랍니다.
 파일( 가령  imu_arduino.scc )에 아래의 내용을 적은 뒤 불러들이면 됩니다.
주의: COM3 같은 port 번호는 컴퓨터 설정마다 다른건 알고계시겠죠.. 자신의 설정에 맞게 수정해줍니다.

[_setup_]  port=COM3 baudrate=9600 width=700 height=500 background_color = white grid_h_origin = 100 grid_h_step = 1 grid_h_color = #EEE grid_h_origin_color = #CCC grid_v_origin = 0 grid_v_step = 0.5 grid_v_color = #EEE grid_v_origin_color = transparent  [_default_] min=0 max=255  [DistanceSensor] color=red 

 

 

[관련 블로그글]

거리센서 출력전압 관측

우편함 뮤직로봇 응용예제


[참고사이트]
시리얼챠트 프로그램 다운로드:
 

http://www.starlino.com/data/imu_kalman_arduino/SerialChart_01.zip

 

시리얼챠트 코드구글

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

code.google.com

아듀이노 공식사이트:

http://arduino.cc

이번엔 거리센서 테스트를 해봤습니다.
본 센서의 사용예는 광범위한데요 여러분이 가장 손쉽게 접하는것은 아마도 최근 많은 화장실에 설치된 손 건조기 일겁니다.
손을 갖다대면 히터가 작동하는 기계말입니다. ( 제조하시는분 왈: 요녀석이 그 용도로는 짱이랍니다.)

또한가지 용도는 로봇에 장착하여 벽이나 주변 물체를 감지하는데 사용하곤 합니다.
제가 이번에 소개시켜드릴 거리센서는 로보티즈사의 바이올로이드 같은 로봇에서 절대거리 센서로 이용되고 있습니다. (동일모델)

본 센서의 장점은 부차적인 회로없이 거리값에 비례하는 전압을 출력해준다는점 입니다.
이 출력전압을 ADC입력핀에 넣어주면 MCU측에서 절대거리값을 구해낼수 있습니다.
온도를 전압으로 변화시켜주는 LM35 와 유사하게 사용할 수 있습니다.

내부를 들여다 보면, 자체적인 오실레이터와 측정 및 전압출력 회로가 내장 되어있음을 볼 수있는데요,
재밌는것은 내부를 분해해보시면, 그안에 카메라 화상 센서 (CCD) 같은 부분이 있는것을 볼 수 있습니다.
아마도 저해상도의 CCD 어레이를 직선방향으로 배열하여 거리를 삼각측량방식으로 구해내는듯 합니다.
(참고로 구형 메모리칩을 뚜껑을 분해해서 저해상도 카메라로 사용할 수도 있습니다. 요즘엔 그런 무시무시한 일은 하지 않아도 저렴한 카메라가 넘쳐나니 그렇다는것 정도만 알아둡시다. )

테스트결과:
공급전압이 5V일경우
정면 80Cm 거리 이내에 물체감지가 안되면 약 0.2V 출력이 나왔고요,
10Cm정도까지 근접할때 3.2V에 조금 못미치는 전압이 출력되었습니다.
단, 10Cm보다 더 근접하면 오히려 값이 떨어집니다.


테스트 방법:
회로도도 필요없는 간단한 구성입니다.
작동 테스트를 위해서 멀티테스터와 5V정도의 정전압만 있으면 됩니다. 사양서를 보니 공급전압은 7V까지 지원하는 듯 합니다.
하지만 얼렁뚱땅 표준전압인 5V가 좋습니다. 
조금 부유한 장비를 보유하신 분들이라면 오실로스코프를 이용하시면 시간에따른 변위를 한눈에 보실 수 있으니 더 좋겠죠. 멀티테스터와 동일한 위치에 Probe를 함께 연결해 주시면 끝입니다.  용도에 따라 전압이나 주변회로와 함께 사용하 실 때는 저항,콘덴서 1~2개로 노이즈 제거해주시면 되고요. 여기서는 생략했습니다.

어설픈 회로도와  동영상 감상하시는 것으로 마무리 하겠습니다.


[거리센서-정면]

[거리센서-측면]


[거리센서- 내부]

[절대거리감지기 테스트용 연결도]


[거리센서 - 변위에 따른 전압 변화 ]


관련링크

거리센서 + 아듀이노 =시리얼 통신=> 그래프 파형 관측 
우편함 뮤직로봇 응용예제


참고자료: DataSheet

SHARP_GP2Y0A21YK.pdf
다운로드
샤프거리센서-원리및상세기술자료.pdf
다운로드

 

한 외국 과학정보 사이트에서 정전기 감지기라는 것을 보고 감동?을 받은 뒤 직접 만들어 보려고 관련 부품을 수소문 하던게 벌써 몇년전 입니다.  하지만 이 부품을 국내 온라인, 오프라인 소매점에서 구할 수 없었습니다. 지금도 상황은 비슷합니다.

그 부품이 바로 JFET 이라는 전계효과트랜지스터(Junction Field Effect Transistor)의 일종인인데요, 트랜지스터의 형제뻘 되는 소자이고 생긴것도 트랜지스터와 다름이 없습니다.  전자공학 서적에서도 다이오드, 트랜지스터 다음으로 소개될 정도로 매우 기초적인 전자부품임에도 부품상에서 구하기 곤란한 제품인것이 이해가 가지 않았지만, 아마도 JFET 자체보다는 MOSFET, CMOS, VFET 같은 보다 특화된 부품으로써 인기가 많은 소자라서 궂이 JFET 범용 부품으로써의 활용도가 적기때문인듯 합니다.

하지만, 전자공학 초심자들에겐 기초소자의 특성을 직접 체험하는것이 매우중요하다는 생각이 들기에 매우 아쉬운 상황입니다.
현실탓을 그만하고, 어쨌든  요즘같은 글로벌 시대에 못 구하는 부품이 어디 있겠습니까?!!  생각을 고쳐먹고 외국 사이트에서 구입했습니다.

JFET을 받자마자 정전기 감지기를 만들어 테스트 해봤는데요,
조그만 머리빗으로 2미터 이상의 거리에서 LED를 켜고 끄는 정도의(8V) 전위 변화를 감지해 낼 수 있었습니다.

회로도 대신 제작도와 동영상을 올려봅니다.   매우 단순한 회로입니다.
상세한 작동원리는 전자공학 서적에서 JFET 부분을 읽어보시거나 온라인 정보를 활용하시면 이해하 실 수 있을듯 합니다.

[그림1. 전기장 감지기 제작도]


[동영상1. 전기장 감지기 테스트]


 
실험방법:

그림1.의 제작도와 같이 회로를 구성 후,
플라스틱 머리빗을 이용하여, 머리카락을 빠르게(중요) 비벼준 후,
감지기의 안테나 방향으로 향하게한다.
머리빗을 감지기의 안테나 방향으로 향하면 LED가 어두워 지거나 꺼지게된다.
거리를 멀리 떨어져 가면서 머리빗의 방향을 바꿔가면서 감지기의 상태를 관찰한다.


작동원리:

제가 알고있는 범위내에서 간단하게 작동 원리를 소개해 드리겠습니다.
서로 마찰했을때 (-)으로 대전되기 쉬운 물질이 있고 (+)으로 대전되기 쉬운 물질 있습니다.
가령 우리의 머리카락과 머리빗을 마찰시키면, 머리카락의 전자가 머리빗으로 이동하게되고 이에따라 머리빗은 (-)전하로 대전되게됩니다.  이순간 전하의 불균형에 대응되는 전기력(장)이 형성되고, 주변공간에 영향을 끼치게 됩니다. 이힘은 이론상 무한히 퍼져나가는데요,,, 본 실험과는 큰 상관이 없지만 만약 이 머리빗을 아주 빠르게 흔든다면(가속운동한다면) 가속하는 전하에 의해 전파가 발생하고 안드로메다에 있는 미녀 외계인에게 러브콜 신호를 전송할 수 도 있을지 모릅니다. (답신이 올까요? ^^;;)

머리빗에 대전된 전압은 생각보다 매우 높은 전압입니다. 정확한 값은 저도 측정해보지 못했지만, 수백V가 넘고 수천~수만Volt에 이르는 것으로 알고 있습니다. 그렇게 높기때문에 매우 건조한 겨울날 어두운곳에서 방전되면서 불꽃이 일어나기도 하고 전자제품을 돌아가시게 하기도 하는겁니다.

JFET관련 기술서적을 보면, G(게이트 단자)와 S(소스단자)사이에 (-)전압이 걸리게되면,  D(드레인단자)와 S사이의 전류의 흐름이 방해받게 됩니다. ( 제가사용한 JFET소자는 N채널이라 위와 같고, P채널의 경우는 전압이 반대일때 흐름이 방해 받습니다.)

JFET소자마다 다르지만, MPF102의 경우, G와 S사이의 전위차가 -8Volt 가 넘으면(이를 cutoff전압이라고 함),  D와S사이에 흐르는 전류가 (거의)완전 차단되게됩니다.  이소자는 주로 스위칭용으로 사용되며, G-S전압을 조절하여 D-S전류를 ON/OFF 하는 용도로 사용됩니다. 여기서는 G-S전압에 따라  LED가 켜지거나 꺼지게 되도록 회로가 구성되어있습니다.

하지만, 본 회로에서는 G단자에 아무것도 연결되지 않았기때문에 G-S전압은 공기중의 전위에 영향을 받게 되는 상태입니다.
사실 위와 같은 상황은 주변 전기장에 영향을 많이 받기때문에 일반적인 전자회로에서는 절대로 사용되지 않는 것이지만 본 회로에서는 거꾸로 전기장을 감지하는데 역이용하는 것입니다.

본래 본회로에서 LED를 완전히 끄기 위해서 필요한 G-S전압은 약 8Volt 입니다. 즉, 실험을 통해서  2미터 떨어진 곳에서 머리빗에 대전된 고전압에 의해  JFET소자의 G와 S 단자 사이에 8Volt 이상의 전압차를 발생시켰다는 얘기입니다.  전기력이 거리의 제곱에 반비례하여 감소되는것을 볼때 엄청난 전압으로 대전된것을 (정확한 값으로 계산해내지는 못하지만) 감으로나마 알수 있게 되었습니다.

참고로, JFET의 G(Gate) 다리에 안테나 전선을 메달아 뒀는데요, 사실 안테나 선이 없이 JFET 다리만 있어도 되지만 감도를 높이기 위해서 안테나(연장전선)를 부착하였습니다.  참고사이트 자료에 의하면, 안테나 선을 충분히 길게 설치하면, 매운 건조한 공간에서 5미터 이상의 거리에서도 감지를 할 수 있다고 합니다.  춥고 건조한 겨울을 기다려 봐야겠습니다 ^^

+추가사항:
보다 그럴듯한 정전기 감지기로 사용하는 방법:  시중에 1만원이 안되는 저렴한 디지탈 멀티테스터가 많습니다. 위 감지기 회로상의 LED 양다리에 디지탈 전압계를 연결하시면, 정전기력의 변화를 아날로그(LED)적으로 보는것과 동시에 디지털(전압계수치)적으로 보실수 있습니다. 이 방법을 이용하면 매우 미세한 정전기장의 변화까지도 수치로 확인하실 수 있습니다.


+추가사항 (2010.Dec.2)
본 감지기가 9V에서만 작동하는것으로 알고 있었는데요, 실험해보니 5V전원에서도 잘 작동하는 것을 확인했습니다.  요즘 9V 건전지 가격이 터무니없이 비싸고(3천원 이상) 게다가 어뎁터까지 구해야 하므로 감지기 제작가격이 상승하게 되었는데요, 이제는 5V정도의 건전지나 어뎁터로도 실험이 가능하다는것을 참고하시기 바랍니다.


참고 사이트

2. 각종 전자/과학 실험에 대한 소개글이 있는 재밌는 사이트: 

링크

 

 
MinimalComps 꽤 쓸만한데, 한글을 입력하면 아예 안보인다. 
하지만  아래와 같이 Style.as 파일을 수정하면, 한글을 사용할 수 있다.
임베디드 한글폰트도 사용할 수 있지만,  용량이 6MByte정도 불어버린다.  ;;;   포기하고 그냥 시스템 폰트를 사용해보자.


package com.bit101.components
{
    public class Style
    {
        public static var BACKGROUND:uint = 0xCCCCCC;
        public static var BUTTON_FACE:uint = 0xFFFFFF;
        public static var INPUT_TEXT:uint = 0x333333;
        public static var LABEL_TEXT:uint = 0x666666;
        public static var DROPSHADOW:uint = 0x000000;
        public static var PANEL:uint = 0xF3F3F3;
        public static var PROGRESS_BAR:uint = 0xFFFFFF;
       
        //public static var embedFonts:Boolean = true;  // 초기값 본래는 RF Rnda Seven라는 임베디드 폰트를 사용한다.
        public static var embedFonts:Boolean = false;  // 이걸 false로 해줘야함.
        public static var fontName:String = "굴림";  // 사용하려는 시스템 폰트명
        public static var fontSize:Number = 10;
    }
}

+ Recent posts