본문 바로가기

AVR/AVR 작품, Project

[WblueBot 3/3] 탱크 차체 만들기 및 소프트웨어 프로그래밍 그리고 완성

 

 

새로 만든 블루투스로 제어하는 탱크 비스무리한 로봇으로 돌아왔습니다.

아카데미 과학의 스케일탱크로 제작하고 싶었으나, 주머니사정의 문제로 포맥스와 로봇키트 파는 곳에 많이있는 무한궤도(?), 캐터필러(?)라고 하는 것으로 탱크 흡사하게 만들어봤습니다.

 

 

각 부의 기능 및 설명


 

 

 

해당 탱크(?!)는 모터제어부, ISP프로그래머부, MCU 컨트롤러부, 확장IO부, 블루투스 통신부로 

비교적 간단(?)하게 구성 되어있는 로봇입니다.

 

다른 분들은 탱크에 카메라 달고 WIFI로 제어하고 해서 부족함을 느끼기는 하지만, 제선에서는 저게 최선인 것 같습니다. -- 더 노력하겠습니다. ㅎ

 

- 블루투스 통신부에서는 스마트폰과 SPP(Serial Port Profile) 프로파일로 AVR과 3선 RX, TX, Common GND, 으로 UART통신을 합니다.

- 블루투스 통신부의 LED는 STATE LED가 깜빡거리다가, 스마트폰과 블루투스로 연결이 OK되면 계속 LED가 점등되어있도록 만들어져있고, 전원LED는 확인용으로 달아두었습니다.

- 확장 IO부는 외부 장치와 연결되는 AVR핀을 따로 왼쪽구석에 모아두었고, 블루투스 모듈 통신선과, 전원, 기타 다른기능을 넣을 때 사용할수 있는 포트D의 2핀을 확장 IO부로 만들어두었습니다.

 

 

프로그래밍 알고리즘


 

이번 작품은 AVR Studio로만 전부 직접 코딩해서 만들었고,  동작시키는데 별도의 알고리즘이 필요하지 않아서, 구체적인 알고리즘은 없지만

 

스마트폰의 Bluetooth SPP앱에서 각각 front, 

back, left, right 문자열을 송신하면, AVR에서 해당 문자열을 if문으로 비교한 후에 참이면 컨트롤러 보드의 STATE LED를 키고 전, 후, 좌, 우 방향으로 모터가 회전하도록 프로그래밍 했습니다.


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

 

 

 

이번 작품에서 아쉬웠고, 또 문제점은..

또 LED를 못달았습니다. 뒤쪽에 10파이 LED를 딱 달아놓으면 어떨까요? 

라고 저의 가족 분들 에게 물어봤는데 조잡하답니다. ㄷ....

그리고 프로그래밍할때 다음과 같은 문제점이 있었는데 어떻게 처리해야 할지 모르겠습니다.

Attiny2313의 RAM이 좀 낮아서 그런지, 변수선언을 별로하지도 않았는데, 문자열 송수신 처리 스택으로 변수선언 RAM이 80%정도 차서, 모터 PWM 속도 제어기능도 넣을려고 했습니다만, 동작신호를 보냈을 때 동작도 정상적으로 하지않고 동작한다면 Front OK ... 등등

스마트폰에서 문자열이 수신되어야 하는데.. 이 문자가 깨져서 수신이 되는 문제가 있어서, PWM제어 기능을 모두 제거하고 기본적인 것만 남겨두었습니다.

시간 남을 때 수정해서 다시한번 동작시켜봐야 겠습니다. 이 것같고 2일정도 씨름했는데..

pgmspace.h를 사용하라고 하는 포스팅을 많이 보았는데.. 좀 더 노력해야겠습니다. 

 

 

동작 영상...


 

 

 

블루투스 SPP 통신 문자열로 제어하는 (탱크) 로봇 완성..

모터로 움직이는 것만 너무 많이 만들었습니다. 다른것을 좀 만들어봐야겠는데 무엇을 만들까요? 

요즘 끌리는게 없는데....