본문 바로가기

AVR/AVR 작품, Project

[Light Drive 4/4] 적외선 무선제어 로봇완성 그리고 소프트웨어 프로그래밍

 

 

다시 Light Drive 들고 돌아왔습니다.^

 

 

저 멍청한 기계에게 동작을 심어주고있습니다. 윙.... 진행중 .....90%

소스코드는 CodeVision으로 원래 코딩했으나 나중에 AVR Studio도 작업해서 두었고

 

 

리모컨은 별도의 ISP커넥터가 없어서 저렇게 만들어둔 AVR 연습용 모듈에 Tiny2313을 끼워서 프로그래밍 했습니다.

 

동작 알고리즘


 

알고리즘이라고 하는게 맞을까요?? ㅎ동작 프로그래밍은 먼저 송신부인 리모컨과 수신부인 로봇은 둘이 8Mhz로 발생시킨 타이머/카운터 0번 인터럽트로 보내는 신호, 받는 신호를 동일한 시간으로 분석합니다.리모컨측은 임의의 코드를 인터럽트 변수 Count값 50마다 1인경우 37Khz를 발생, 0인 경우에는 그냥 Count값 50을 지나도록해서 8비트로 40, 41, 42, 43, 44, 45를 송신하고 

수신측은 Count값 50마다 들어오는 비트순으로 분석합니다.

 

송신부에서 37Khz신호가 나오면 KSM603 적외선 수신모듈을 사용한 로봇측에서는 KSM603모듈이 Active Low 즉 작동하면 5V에서 0V로 떨어지는 동작방식을 가지고 있어서

모듈을 연결한 PIND의 0번핀 Studio에서는 PIND&0x01, CodeVision에서는 PIND.0

의 값이 0이 들어옵니다.

따라서 if 조건문을 사용해서 PIND의 값이 == 0 이면 Data 값과 비트연산을 해서 최종 수신데이터

를 만들어내는 방법을 사용했습니다.

소스코드 공개 처리해 두었습니다.^

 

 


 

 CodeVision 용 소스코드 - 구글 드라이브로 연결됩니다.

 


 

 AVR Studio 용 소스코드 - 구글 드라이브로 연결됩니다.

 

 


 

 

 

동작영상


 

 

 

형광등 바로 아래서 찍었더니 낮은 수신율을 보여주네요... 외부에서나 현광등이 없을 때는 약 1.5M 정도의 수신율을 보여주었습니다.

적외선이라 어쩔수 없나... 아무튼 저의 첫작을 완성했습니다. ㅎ