묻고 답하고
안녕하세요.
키보드 관련 질문이 아니라 좀 죄송합니다만
인터넷에서 검색하다 찾지 못해서 이곳이라면
하드웨어에 해박한 지식이 있는 분들이 많을 것 같아
질문합니다.
제가 일반 리모컨의 키값을 입력받아 간단한 제어를 하는
프로그램을 하려고 하는데 리모컨의 키가 눌렸을때 어떤 키가
눌렸는지 어떻게 알 수 있을까요?
적외선 센서를 AT89C52의 INT0에 연결해 놨는데 리모컨의 키가
눌렸을때 포트의 ON/OFF 횟수를 카운트해서는 정확히 알수 없을것 같은데요.
리모컨은 삼성 리모컨이고 리모컨의 프로토콜이 있을 것 같은데
관련 자료를 찾지 못하겠습니다.
알고 계신 분들께 부탁드립니다. 가르쳐주세요.
키보드 관련 질문이 아니라 좀 죄송합니다만
인터넷에서 검색하다 찾지 못해서 이곳이라면
하드웨어에 해박한 지식이 있는 분들이 많을 것 같아
질문합니다.
제가 일반 리모컨의 키값을 입력받아 간단한 제어를 하는
프로그램을 하려고 하는데 리모컨의 키가 눌렸을때 어떤 키가
눌렸는지 어떻게 알 수 있을까요?
적외선 센서를 AT89C52의 INT0에 연결해 놨는데 리모컨의 키가
눌렸을때 포트의 ON/OFF 횟수를 카운트해서는 정확히 알수 없을것 같은데요.
리모컨은 삼성 리모컨이고 리모컨의 프로토콜이 있을 것 같은데
관련 자료를 찾지 못하겠습니다.
알고 계신 분들께 부탁드립니다. 가르쳐주세요.
2006.04.24 21:22:47 (*.124.195.74)
참 자료가 없다고 하셨죠. 정 자료를 구하시기 힘드시다면...
좀 무식하지만 오실로스코프를 이용하는 방법이 있습니다.
좀 무식하지만 오실로스코프를 이용하는 방법이 있습니다.
2006.04.24 23:24:49 (*.81.153.154)
일반 PC에 연결하는 IRDA어댑터가 있습니다.
이를 이용하여, 원하는 시그널을 얻는게 가능하지만, PC용 어댑터의 경우 이상하게 신호가 잘 안잡힙니다.
PDA에 있는 IRDA 모듈이 훌씬 좋은 성능을 냈던 걸로 기억합니다.
이를 위한 코드는 인터넷에서 구하셔도 되고, 직접 작성하시는 것도 크게 어렵지 않습니다.
윈도우를 기반으로 했을 경우 일반 파일 입출력 인터페이스를 사용하는 것과 소켓인터페이스 기반으로 프로그래밍 하는 것이 가능합니다.
리모콘 신호에 대해 한가지 더 말씀드리자면, 크게 삼성과 NEC(불확실합니다)방식의 두가지가 많이 쓰이는 걸로 알고 있으며, 스펙은 윗분이 적어주신대로 구하기 어렵지 않을 걸로 알고 있습니다.
제가 시그널을 얻을때는 PC용 어댑터를 수신부로 놓고, 거기에 오실로 스코프를 꽂아서(애플리케이션 상에서 얻는 신호가 아닙니다) 비교적 정확한 시그널을 얻었었습니다.
이를 이용하여, 원하는 시그널을 얻는게 가능하지만, PC용 어댑터의 경우 이상하게 신호가 잘 안잡힙니다.
PDA에 있는 IRDA 모듈이 훌씬 좋은 성능을 냈던 걸로 기억합니다.
이를 위한 코드는 인터넷에서 구하셔도 되고, 직접 작성하시는 것도 크게 어렵지 않습니다.
윈도우를 기반으로 했을 경우 일반 파일 입출력 인터페이스를 사용하는 것과 소켓인터페이스 기반으로 프로그래밍 하는 것이 가능합니다.
리모콘 신호에 대해 한가지 더 말씀드리자면, 크게 삼성과 NEC(불확실합니다)방식의 두가지가 많이 쓰이는 걸로 알고 있으며, 스펙은 윗분이 적어주신대로 구하기 어렵지 않을 걸로 알고 있습니다.
제가 시그널을 얻을때는 PC용 어댑터를 수신부로 놓고, 거기에 오실로 스코프를 꽂아서(애플리케이션 상에서 얻는 신호가 아닙니다) 비교적 정확한 시그널을 얻었었습니다.
2006.04.25 10:33:29 (*.193.18.162)
마실님,아이노드님 답변 감사드립니다.
찾아보니 인터넷에 좋은 자료들이 많이 있었네요...야후보다는 구글에...^^
그래서 어제 밤 해결했습니다.
외부인터럽트와 타이머 인터럽트를 써서 리모콘의 키값을 읽어서
시리얼로 PC로 전송하는 프로그램을 완성했죠.
IR 모듈의 데이터시트에는 수신각이 120도정도였는데 실제로 해보니
어느 방향에서도 수신이 되었습니다. 이걸 활용할 곳이 많을것 같네요.
찾아보니 인터넷에 좋은 자료들이 많이 있었네요...야후보다는 구글에...^^
그래서 어제 밤 해결했습니다.
외부인터럽트와 타이머 인터럽트를 써서 리모콘의 키값을 읽어서
시리얼로 PC로 전송하는 프로그램을 완성했죠.
IR 모듈의 데이터시트에는 수신각이 120도정도였는데 실제로 해보니
어느 방향에서도 수신이 되었습니다. 이걸 활용할 곳이 많을것 같네요.
작성된지 6개월이 지난 글에는 새 코멘트를 달 수 없습니다.
저는 무식하게 어셈블리어로 짰었는데요. 어셈의 경우는 한 문구( ex: mov a,#255 의 경우는 얼마 정도 시간이 소요)를 처리하는데 그 시간을 알 수 있어 이를 편하게 사용 하였습니다.
그러니 일단 프로그램의 뻐대는 이렇게 되겠군요. 먼저 님이 인터럽트를 사용 하였으니 그 쪽으로 시작신호를 비교 하여 맞는 경우 데이터를 받아들여 저장합니다.(종료신호가 확인될때까지) 그리고 종료 신호가 확인되면 그 다음 부터는 데이터 신호를 비교하여 작업을 수행 하는 것이죠. 그 신호에 따라서 말입니다. 참 그리고 가장 중요한 양쪽의 신호르 동기화 하는 것은 마이크로 프로세서의 시리얼 포트 통신을 참조하여 하시면 될 듯 합니다. 어짜피 리모컨컨트롤러와 마이크로 프로세서의 데이터 통신이니 말입니다. 그러니 baud rate를 잘 참조하여 동기화 시켜 주어야 할 것입니다. baud rate는 이터넷을 참조 하시면 쉽게 그 설명을 얻으실수 있으리라 생각 됩니다.
대충 저의 짧은 지식으로 전체적인 소견만 말씀드렸습니다. 좋은 참조 되시길 바랍니다.