로보틱스2010.12.10 15:42
목표
저렴한 비용으로 로봇이 말하고 노래하게 만들기위한 방법 소개

방법 소개
이미 MP3Play 보드나 칩이 시장에 많이 나와있습니다...  다만, 값이 비싸다는 문제가 있습니다. 직접 제작하거나 제작KIT를 사용하면 비용이 5~10만원이 넘어갑니다.  때문에 시중에 판매되고 있는 MP3Player의 개조하여 사용하는것을 고려해봤지만, 막상 개조하려해도 쉽지가 않습니다.

그러던 중 리모컨으로 제어되는 제품을 리모컨 신호를 송출하는 깔끔한 방법으로 제어한다는 아이디어가 떠올랐는데요,  이방법은 MP3Player 뿐만이 아니라, TV,에어콘 등등의 가전기기도 덤으로 제어하여 이용할 수 있는 가능성이 있으므로 여러모로 활용성이 좋은 아이디어인것 같아 소개드립니다.

여러분이 이미 로봇 제어기(MCU)를 갖고 계시다면, 필요한건 IRED 1개와 TR 1개, 저항 1~2개 뿐이고,  디지탈 출력핀 1개와 약간의 프로그램이 추가되면 됩니다.  여기선 이와 관련된 기본 이론 소개와 관련 자료를 첨부하도록 하겠습니다.



사진. MP3Player+Speaker 기기 분해 사진

스피커와 배터리까지 포함되어 있는데 가격은 배송비 포함하여 2만원이 안됩니다.

여기선 말하는 로봇 대신 음악재생을 제어하는 동영상을 보여드리겠습니다.



동영상. 제어신호 송출로 재생/중지 제어 하는 예


리모컨 프로토콜

기계들이 의사소통을 하기위한 약속된 규칙을 프로토콜이라고 하는데요, 리모컨(리모트컨트롤러)과 수신기는 서로 동일한 프로토콜을 사용하여야 합니다. 하지만 각 제조사 및 기기별로 다양한 프로토콜을 사용하므로 호환성에 문제가 많은게 현실입니다. 하지만, 최근에 사용되는 많은 전자기기들이 NEC 코드를 사용하는 것으로 알고 있습니다. 때문에 일단 NEC코드를 기준으로 소개시켜 드리겠습니다.


NEC 코드 전송 규약

아래의 자료는 실제 리모컨에 사용되고 있는 IR신호 송출칩 DataSheet에 기록된 다이어그램입니다.  (첨부파일 참조)


그림. 전송규약 파형 안내도

캐리어 신호
 우선 리모컨 신호의 캐리어 주파수인 38KHz 주기의 방형파를 생성해야합니다. (위 그림 하단부 참조)  이는 타이머/카운터를 이용하여 만들 수 있습니다. Duty는 약 1/3정도를 권장하고 있습니다만, 손쉽게 하려면 50%로도 가능합니다.

캐리어 신호를 On Off한다.
위에서 만든 캐리어 주파수 파형을 약속된 시간만큼 On Off 하는것으로 리모컨 신호를 송출할 수 있습니다.
이 출력값은 그대로 출력비트에 연결된 IRED 구동회로에 전달되어 적외선의 On Off 상태로 전환되어 송출됩니다.

전송규약에 맞쳐 On Off
이제 약속된 파형을 송출합니다. 송출신호는 크게 3가지로 부분으로 나눌 수 있습니다.


1.시작코드
9ms의 High, 4.5ms의 Low 신호로 코드의 시작을 알립니다. 위 그림(1)부분 참조

2.데이타 코드열
시작신호 이후부터 bit data 1은 2.25ms 폭의 신호로  bit 0은 1.125ms 폭의 신호로 송출됩니다. 위 그림(2)부분 참조
보통 16 data bits를 순서대로 보낸 후, 비트 반전한 정보를 다시한번 송출하는 것으로 마무리됩니다.
비트 반전후 전송하는 과정에 의해 오차도 줄일수 있고, bit data의 1과 0의수와 관계없이 항상 동일한 폭이 됩니다.

3.반복코드
만약 숫자 3 버튼을 누른상태를 유지한다면 리모컨은 숫자 3에 해당하는 코드를 송출한 뒤 그 다음 부터는 "반복코드"를 송출하게됩니다. 이러한 방법을 사용하는것은 3을 1회 누른것과 2회 누른것을 구분하기 위함인듯 합니다.
반복코드는 위 그림(3) 부분같은 형태입니다. 

캐리어주파수(38KHz)를 사용하는 이유는 노이즈 제거를 위한것입니다.  IR수신회로에는 저주파 차단회로가 들어있어서 특정 주파수(가령 38KHz)이하의 성분을 제거해버립니다. 이로인해 형광등이나 기타 주변광에 의한 오차발생 소지를 줄일 수 있습니다.



IRED(적외선LED) 드라이브 회로

우선, IR수신회로에서 사용하는 수광소자의 주파수를 확인하여 송출용 IRED의 주파수를 결정합니다. 보통 8xx ~9xx nm 파장의 IRED가 사용됩니다. 제경우 940nm IRED(Wii전자펜제작용)와 940nm용 IR수신기가 있습니다.  수신기에서 사용하는 주파수를 잘 모르더라도 가까운 거리에서 사용할 경우 큰 문제가 되지 않으므로 주변에서 구할 수있는 IRED를 우선 사용해보시기 바랍니다.  또 하나 확인할 것은 구동 전압입니다. 일반 LED(2V)와 달리 IRED는 보통 1.4V 정도에서 작동합니다.
가장 단순한 구동법으로 디지탈 출력핀에 직결하는 방법도 있습니다만, 10미터 정도의 거리에서도 작동되는 고출력 리모컨을 원한다면 트랜지스터 한개로 구동하는것을 추천드립니다. 가령, 아래의 회로는 실제 리모컨에 사용되는 회로의 예입니다. (첨부문서참조) 짧은 순간에 고주파로 송신하게 되므로 실제의 정격전압보다는 다소 높은 전압을 사용할 수 있습니다.  아래의 경우는 건전지로 3V정도의 전압을 사용하는 경우입니다.



그림. 리모콘 송출용 IRED 구동회로 예



리모컨 기기 코드 분석하기

리모컨 신호의 코드를 분석해주는 전용 기기도 있지만, 오실로스코프를 이용하면 직접 코드 프로토콜의 종류와 코드값을 알아낼 수 있습니다.  제가 참고한 NEC코드의 경우 코드 송출시 2바이트의 정보가 송신됩니다.  1바이트는 장치번호이고 나머지 1바이트가 명령 코드입니다. 따라서 총 16비트입니다만 위에서 언급했듯이 반전비트를 전송하므로 총 32비트 정보가 송출되게 됩니다.  코드 분석을 위해선 IR신호 수신기가 필요한데요, 전용의 리모컨 IR수신 모듈이나 IR 포토트랜지스터가 있으면 됩니다.  IR수신 모듈 사용법은 첨부된 자료를 보시면 나옵니다.  전원 핀 2개에 5V, GND 입력을 하면 나머지 핀에서 아래 사진과 같은 신호가(전압변화) 출력됩니다.

리모컨 송신 신호 파형 실제 예

아래의 사진은 제가 갖고있는 리모컨들의 파형을 오실로스코프로 캡쳐한 것입니다. 왼편 두개는 좀 오래된 VTR과 CDP용 리모컨이고, 우측 두개는 비교적 최신의 전자제품용으로 LCD모니터 및 MP3Player용 리모컨입니다. 보시는 바와 같이 왼쪽과 오른쪽이 시작파형이 다릅니다. 오른쪽의 두 리모컨이 최근 많이 사용되고있는 NEC 코드 파형입니다. 전송규약을 잘 이해한 후엔 어떤 리모컨용 수신기도 만들수 있게됩니다. 반대로 어떤 리모컨수신 기기도 제어할 수 있게됩니다.  본 파형을 잘 보고 2바이트 값을 알아내야 합니다. 그중 1바이트는 항상 같을 겁니다. 즉, 기기번호입니다.  가령 제가 갖고 있는 MP3P의경우 0x02 의 기기번호를 갖고 있습니다. 그리고 나머지 한 바이트가 명령 코드입니다.  가령 Play/Pause버튼의 경우 0x06 입니다. 이 값을 잘 정리해둔 뒤 리모컨 송출 코드로 발송하면 기기는 명령을 받은대로 작동하게 됩니다.  전용 리모컨 대신 직접 만들어낸 송출 신호에 의해 기기가 작동하게되면,,, 기분, 좋습니다. ^^




오실로스코프


안타깝게도 여러분이 오실로스코프가 없다면, 리모컨 코드를 알아내기가 좀 어려울 겁니다. 하지만 불가능한건 아니고, 보유하고계신 MCU로 샘플링하여 계산해 낼 수 는 있습니다.  하지만 본격적인 전자회로 공부를 하시려한다면 오실로스코프 구입을강력 추천합니다. 저도 구입하고 싶다는 생각만 갖고 몇년을 보냈는데, 막상 구입하고나서 너무도 유용하게 사용하고 있습니다.  사양에 욕심을 내자니 가격이 너무 높고,  저렴한 중고를 사려해도  구형 허큘리스 모니터 같이 생긴 녀석에게 신뢰가 가질 않았습니다.  그래서 제가 선택한것이 USB형 오실로스코프입니다. 40MHz 급의 새제품을 20~40만원 선에 구할 수 있습니다.  참고하세요~   



끝으로
초보분들에겐 부족한 내용일듯합니다. 하지만 아이디어와 힌트를 드렸으니 조금만 자료조사하고 노력하시면 좋은 결과물을 얻으실 수 있을겁니다.  재밌는 로봇 많이 만드시고,,, 더불어 제게도 알려주시면 감사하겠습니다.


참고자료




내용추가
2011.July.26 
아래의 관련글 링크에 리모콘 신호 송수신 회로와  PC에서 키보드 입력으로 로봇을 제어하는 소스 예제를 포함한 글을 새로 등록하였습니다. 참고하세요


관련글 링크

 .IR무선 리모콘 송수신 회로로 로봇 제어하기

 .적외선 무선통신킷




저작자 표시 비영리 변경 금지
신고
Posted by 로보밥 로보밥

댓글을 달아 주세요

  1. MP3Player+Speaker 기기는 어디에서 구하셨는지요?
    링크 좀 알려 주십시오.

    2011.08.10 22:33 신고 [ ADDR : EDIT/ DEL : REPLY ]

전기전자2010.07.08 13:16

RLC발진회로와 크리스탈 발진회로


R,L,C를 적절히 혼합한 회로로 임의의 주파수를 발생시키는 발진회로를 구성할 수 있습니다. 하지만 정밀한 주파수 발생원으로 사용하는데 어려움이 많고 좀더 손쉬운 방법들이 있습니다.  바로 크리스탈(말 그대로 수정입니다.)을 이용하는 방법이 있는데요.  특정 주파수에 공진하도록 조정된 수정에 콘덴서 2개만 붙이면 발진회로의 심장부를 만들 수 있습니다. 간단히 고정밀도 주파수를 발생시킬수 있어서 전자제품이라면 하나씩은 달고 나오는것 같습니다.

레조네이터와 오실레이터

최근에는 기술발달로 세라믹을 소재로 하고 콘덴서까지 내장하여, 저가격 및 사용편리성을 높인 레조네이터를 많이 사용하곤합니다. 수정보다는 정밀도가 떨어지지만 비교적 저속으로 작동되는 마이크로컨트롤러(MCU)의 주 클록 발생원으로 사용하면 딱 인 제품입니다.
특정 주파수 발진 파형을 가장 손쉽게 얻으려면 원하는 주파수의 오실레이터를 사면 됩니다 . 입력 전압만 걸어주면 원하는 주파수의 방형파가 멋지게 출력됩니다.  하지만 가격이 비쌉니다. 휴대폰에 황금코팅(정말일까요? 정확하진 않습니다만 그렇게 보입니다)까지 되어 붙어있는 녀석입니다.

발진파형 비교 - 오실로스코프 파형측정

새로 구입한 오실로스코프의 성능도 검사할겸 레조네이터와 오실레이터의 발진파형을 측정해 봤습니다.

부품 사양:
레조네이터: 4MHz, 1Mohm저항(저는 500K정도 2개연결함), 인버터 IC로 CMOS4069UBCP 사용했습니다.
                (레조네이터의 다리 3개중 가운데가 GND, 나머지 2개는 방향없이 연결가능합니다.)

오실레이터: 1.000000 MHz, 기타부품 필요없고, 5V 전압원만 있으면 됩니다.
                 (오실레이터는 다리가 4개인데요, 점 표시가된 다리는 미사용됩니다.)

측정기기: DSO-2090 USB형 디지탈 오실로스코프 (BandWidth: 40MHz)   제품구입처(링크)



[그림1. 레조네이터 발진회로]



[그림2. 오실레이터 발진회로]




[동영상. 레조네이터와 오실레이터 발진파형 측정]


저작자 표시 비영리 변경 금지
신고
Posted by 로보밥 로보밥

댓글을 달아 주세요

전자칠판2010.07.05 15:11



신속 정확한 배송서비스를 위해 우편발송 서비스를 중단하였습니다.
IRED가 필요하신 분들은 아래의 아트로봇 온라인샵을 이용해주시기 바랍니다.
택배로 발송되며 대부분 익일 수령가능하십니다.
( 택배비: 10만원 이상 구매시 무료, 1~10만원 구매시 2,500원,  1만원이내 구매시 3,000원 )


Wiimote 전자칠판용 최적의 IRED 구하기

전자칠판을 만들기위한 재료 대부분은 쇼핑몰에서 바로 구입가능하지만 적외선펜만은 국내 판매처가 없으며(있다면 제게 좀 알려주세요), 자작을 위해 적외선 LED를 구하려해도 일반적인 부품이 아니므로 인터넷 전자부품상에서도 판매를 안하고 있습니다. 직접 사양에 맞는 제품을 구매하러 용산,구로,을지로를 돌아다니셔도 비슷한 제품은 있는데 주파수(빛의 파장)가 달라서 기껏 차비,시간, 돈을 들여서 구매한 부품이 무용지물이 될 수 있습니다. (저의 슬픈 경험담 입니다.)

하지만, 노력하면 배우는게 있습니다. Wiimote와 딱 맞는 940nm파장의 IRED를 구했습니다.
게다가, 작동 전원으로 건전지 1.5V 직결 사용이 가능하므로 "저항? 그런거 난 잘 몰라" 하시는 분들에게도 최적인 적외선 LED를 찾았습니다. 그리고 좀 많이 구매를 해뒀습니다.
(적외선펜을 만드시려는 분들은 맨 아래의 "적외선펜만들기"링크를 참고하시기 바랍니다. 저항도, 스위치도, 전선과, 건전지 케이스도 필요없는 적외선펜 만드는 방법을 알려드립니다.)

"나는 꼭 부품을 직접 구할꺼야!! " 라는 분들은 아래의 사양을 참고하시고요,
교통비, 시간 절약하실 분들은 저한테 구입해 주시면 감사하겠습니다. (위의 온라인샵 링크 참조)

사양소개:
 직경(mm) 파장(nm)
정격전압(V)
최대전압(V) dc Fwd 전류(I)
화각(deg)
 5 940
1.36
1.7
 100mA +-20


특징1. Wiimote와 최적의 궁합 파장인 940nm 제품입니다.   (링크: 테스트 자료 참조)
특징2. 최대 허용전압이 1.7V이므로 일반 1.5V전지를 저항없이 연결해서 사용할 수 있습니다.
(일반 1.5V 건전지도 처음 사용시 전압을 측정해보면 1.6V가 넘습니다. 때문에 최대허용 전압이 1.6V인 IRED는 저항을 연결하여 사용해야 안전합니다.)
특징3. +-20도의 화각. 수신기와의 각도에 덜 민감하므로 적외선펜, 광점 트래킹 등 광범위한 용도로 사용하실 수 있습니다.


IRED 응용 사례:
  • Wii Remote Controller (Wiimote)를 이용한 전자칠판 만들기:   적외선 펜 만들때 사용됩니다.
  • IR SENSOR BAR :  Wiimote를 리모컨 용도로 사용할때  모니터 위에 센서바를 설치해야합니다.  이것도 IRED로 제작가능합니다.  참고 링크: 초간단 센서바 만들기
  • 자작 적외선 카메라용 포인터:  Wiimote가 없어도 일반 웹캠으로 적외선펜의 모션 트래킹이 가능합니다.
  • 터치패드구현: IR Array로 다량의 빛을 유리면에 방사후 손가락이 닿는 위치에서 반사되는 적외선을 카메라로 캡쳐하면 적외선펜 없이도 UI구현이 가능합니다.
  • 홍채인식 Eye Tracking:   모니터 쪽에서 적외선을 쏘고 사람의 눈에서 반사되는 적외선을 카메라로 감지하여, 눈알?의 각도를 측정해 냅니다. 쉽게말하면 사용자가 어딜 보는지 알려주는 장치입니다.  저도 사용해 봤는데요, 여러분이 알고있는 대형 웹사이트 운영사들이 이미 보유하고 있습니다. 왜냐고요?  새로운 디자인을 할때 여러분이 어딜 먼저볼지, 얼마동안 쳐다보는지 등을 미리 테스트 해볼 수 있기 때문입니다. 아직은 수천만원짜리 고가 장비이지만, 언젠가 개인용으로 저렴하게 나올때가 있을지 모릅니다. 기다리기 싫으시면 그냥 여러분이 만들어 보시죠!


☆ 1.5V 건전지와 IRED만 있어도 적외선펜 만들수 있습니다. 아래의 글을 참고하세요

저작자 표시 비영리 변경 금지
신고
Posted by 로보밥 로보밥

댓글을 달아 주세요

  1. 이문호

    우연찮게 검색을 하다가 블로그를 읽었습니다.
    궁금한것이 하나 있어서요
    IRED 응용 사례에서 자작 적외선 카메라용 포인터라는 부분이 있는데 자세한 내용이 궁금해서요

    2012.10.29 18:15 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 일반 웹캠이나 카메라도 적외선인식이 가능하므로 물리적 필터나 SW적 필터만으로 IRED광점 인식이 가능합니다. 이를 프리젠테이션이나 기타 아이디어 Prog제작에 응용할 수 있습니다.

      http://robobob.tistory.com/29 글 하단에 링크된 flash 예제를 참고하시면 됩니다.

      2012.11.06 22:39 신고 [ ADDR : EDIT/ DEL ]
  2. 무광인가요 그리고 이걸로 적외선 손전등 만들수 있을까요
    빛이 얼마나 밝은지도 좀 알려주세요 감사요
    kimjilang@daum.net

    2013.03.19 12:27 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 얼마나 밝은지란 표현은 너무 막연하네요, 게다가 눈에보이지도 않아 주관적인 밝기를 말씀드리기도 곤란하고 밝기는 전력(전류x전압)에 비례한다는 정도로 이해해주시고 나머지는 직접 테스트해보셔야할것 같습니다.
      물론, 적외선 손전등을 만들 수 있습니다.

      2013.03.19 18:49 신고 [ ADDR : EDIT/ DEL ]
  3. 들녘

    빛은 눈으로는 확인이 안되나요?
    테스트 사진은 메일로 첨부 하였 보내드렸습니다.

    2013.09.27 08:31 신고 [ ADDR : EDIT/ DEL : REPLY ]
  4. xeranium

    소모전류값이 100mA이게 맞나요???
    USB전원인가 한다면 USB가 5V에 500~900mA이니
    LED 전앞 1.5V로 봤을때 35ohm끼우면 되는건가용??

    2014.05.02 04:37 신고 [ ADDR : EDIT/ DEL : REPLY ]
  5. 수성비

    관리자의 승인을 기다리고 있는 댓글입니다

    2015.06.14 11:44 [ ADDR : EDIT/ DEL : REPLY ]