2010년 10월 11일 월요일

[BTPT 3/3] 아두이노+블루투스+안드로이드

 

그럼 무선으로 조종해 보겠습니다. 고고고~ :)


블루투스 모듈을 붙었지만, 아두이노 입장에서는 그냥 시리얼로 데이터가 들어오는 것이므로, 호스트 게스트간 사용할 적절한 포멧을 만들어 봤습니다.


#M<좌-방향><우-방향>[좌-속도][우-속도]


다른 명령들과 구분하기 위해 #M으로 시작하고, 방향은 전진, 후진, 정지에 'F', 'B', 'S' 속도는 0~255까지 char의 범위 값으로 전달하였습니다. 예를 들면,


  • 전속력 전진: #MFF\xff\xff

  • 좌 회전: #MBF\xff\xff

  • 정지: #MSS


해서 3~5바이트의 명령이 사용됩니다.

이제 조종기. 블루투스 모듈은 SPP 프로토콜이 올라가 있는 것으로 SPP프로토콜을 사용할 수 있는 호스트가 필요합니다.

블루투스 동글이 달린 노트북/PC나 안드로이드 폰에서 SPP프로토콜을 지원합니다. (아이폰은 SPP 지원이 안된다네요)

안드로이드 sdk에서 비슷한 예제 BluetoothChat을 찾아 적당히 수정해 컨트롤 앱을 만들었습니다.

블루투스 소켓을 만들 때 UUID를 넣어주게 되어 있는데, 이는 SPP가 범용으로 쓰이기 때문에 서로 약속된 UUID끼리만 접속이 되게 하기 위한 것으로 보입니다. 채팅 프로그램으로 탱크에 막 접속할 수 있다면 곤란하겠죠.

UUID는 웹에서 UUID 생성기를 사용해 아무 키나 만들어 쓰는데.. 지금 처럼 범용 SPP 모듈을 사용하는 경우에는 다음의 UUID를 써야 하네요.


00001101-0000-1000-8000-00805F9B34FB


제가 만든 전체 코드는 다음 링크들에 있습니다. (svn) 딱 전후 좌우 구동만 되게 만든 상태라 별 영향가는 없습니다. :)


  • 전체 소스 https://github.com/suapapa/BluetoothPinkTank


그럼 동영상 들어갑니다.


[youtube:http://www.youtube.com/watch?v=5JABtfgtKDo]

무한궤도가 잘 빠지는 문제가 있었는데 구동축에 붙어있는 덜렁대던 바퀴를 에폭시 접착제로 떡 붙여 버리니 해결되었습니다. :)


야외 구동 동영상.


[youtube:http://www.youtube.com/watch?v=tFwVIYyIKPM]

낄낄낄~ 이거 정말 재미있네요.

껍데기를 씌우면 무한궤도가 스커트에 닿아서 잘 안구르는 문제가 있습니다. 뭐 어쩌겠어요 이미 일어난 일인데 ㅋ


자 그럼 소요 비용 소개해 드리겠습니다. 기억에 의한 거라(경제 개념 약함) 많이 틀릴 수도 있어요. 대략적인 가격 입니다.


  • 아카데미 1/35 탱크 - 2만원

  • 블루투스모듈 - 3만원

  • 아두이노보드와 부품비 - 1만원

  • 핑크색 스프레이 - 2만원 -_-;

하나 더 만들어 보고 싶은데 (그럼 더 싸게 잘만들 수 있을텐데) 둘째 키우느라 바빠서 언제가 될지는 모르겠습니다. :)

댓글 51개:

  1. 대 2 the 박!!!
    좋은데요~~~ 역시 수준급. ㅎㅎㅎ

    답글삭제
  2. 재밌게 보고 갑니다. 블로그에 흥미로운 것들이 가득하군요!

    답글삭제
  3. 요즘 하드웨어 + 소프트웨어 관련해서 관심있게 보고 있었는데요...
    수아파파님이 불을 질러 주시네요. ㅋㅋㅋ

    항상 총알 때문에 보기만... ㅡ.ㅡ

    잘보고 갑니다.

    답글삭제
  4. gsong 님/ 감사합니다. 마이크로 소프트사 직원분이시군요! 블로그 구독 시작 하였습니다. :)
    falconer 님/ 감사합니다. 왜 그러세요. 새 스마트폰 나오면 나는 약정이 남아서 못 바꾼다는 사람들 처럼~. 아~ 행복하다~ T-T

    답글삭제
  5. 소스를 다운받아서 컴파일링하려고하는데

    빨간줄에러 때문에 컴파일이 안되네요ㅠ

    분명히 문법적 에러는아닌거같은데.. 이런 에러는어째서 생기는거죠..?

    http://www.androidside.com/data/file/B49/2080743483_ydJe51lS_C0CCC5ACB8B3BDBABFA1B7AF.jpg

    저희가 기초가 부족한 상태에서 프로젝트를 하게 되는데 시간이 부족해 이렇게 질문을 합니다. 답문이나 이메일 부탁드려요 ㅠㅜ

    답글삭제
  6. 제가 올린 링크에 에러 스샷을 올립니다 ㅠㅜ 꼭 좀 부탁드려요

    답글삭제
  7. 건대마씨 님/ 링크의 툴팁에 보인 내용이 그 파일의 첫번째 오류가 아니네요? 제 생각에는 그~ 위부터 뭔가 잘못되었을 것 같아요.

    BluetoothChat 예제를 Import했을때는 같은 문제가 없는지 확인해 보세요.

    Clean & Rebuild 도 해 보시고..

    제 경우 이클립스가 -너무 똑똑해서?- 자기 맘대로 Include줄을 추가 하는 바람에 문제가 생기기도 했었습니다.

    ps. 앞으로 급해 보이는 질문에는 답변하지 않겠습니다. 내가 다 조급해지고 막이래.. :(

    답글삭제
  8. 수아파파님 올려주신 자료 너무 잘 봤습니다. 그런데 궁금중이 생겼습니다. 올려주신 파일을 참고해서 저도 만들어보려고하는데 다운받은 소스를 어떻게 사용해야할지 모르겠습니다.

    "아두이노 보드 스케치 소스"는 pinktank.pde파일만 다운받아서 아두이노에 다운로드해주면 되는거아닌가요? 다른 파일도 모두 필요한건지 궁금합니다.

    그리고 무엇보다 "안드로이드 컨트롤 앱소스"파일에 대해서는 어떻게 사용해야할지 전혀 모르겠어요.ㅠ

    정말 밥을 다 떠줘도 먹지못하는 이 맘이란.ㅠㅠ
    바쁘시겠지만 다운받은 파일을 어떻게 사용해야하는지 도움 부탁드리겠습니다.^^

    답글삭제
  9. Quasar 님/ arduino 폴더안에 pde 파일 외의 파일들은 커맨드라인에서 바로 빌드/업로드 하기 위해 필요한 파일들 입니다. 다시말해, 없어도 되요.

    안드로이드 소스는 빌드해서 나온 앱 파일 (.apk)를 폰에 넣어 설치하면 됩니다. 안드로이드 개발 환경을 갖추는게 아두이노보다는 까다롭겠지만 자료는 훨씬 많이 구할 수 있습니다. 도~ 전~

    답글삭제
  10. 안녕하세요 . 저는 컴퓨터공학과 재학중인 2학년 학생입니다. ^^
    방학을 맞이해 친구들과 플젝트 준비중입니다.

    플젝트 내용은 안드로이드 폰과 노트북간의 블루투스를 통한 데이터 통신 이구요, 안드로이드에서 센서를 통해 휴대폰의 위치값을 알아내고, 이를 전송해 노트북에서 마우스 움직임을 구현해주는 ,, 에어 마우스라고 보시면 됩니다. ^^

    제가 맡은 부분은 노트북과 휴대폰간의 통신인데요,
    블루투스에 관련해 기초적인 지식도 하나도 없는상태에서 시작했기때문에 BluetoothChat 예제를 보면서 차근히 단계를 밟아 나가고 있습니다.

    그런데 가장 기초적인 부분에서부터 문제가 발생했습니다. ㅠ

    BluetoothChat 예제는 휴대폰 vs 휴대폰간의 통신이기때문에
    BluetoothServersocket, BluetoothSocket 간의 데이터 교환이 이루어 지지만, 이게 휴대폰 vs 노트북간의 통신일경우, 노트북 프로그램에서는
    BluetoothSocket 이나 ServerSocket 을 사용할수가 없더군요;

    때문에 안드로이드에서 BluetoothSocket을 통해 데이터를 전송해도,
    이 데이터를 받아줄 PC 프로그램의 소켓이 존재하지 않는다는겁니다. ㅠ

    PC 프로그램(자바) 에서 안드로이드에서 BluetoothSocket을 통해 전송한 데이터를 받아줄수있는것이 존재하는지 궁금합니다.

    (예를들어 TCP 통신일 경우, Socket 과 ServerSocket 간의 통신..)

    만약 저의 접근방식이 잘못되었다면, 올바른 길을 안내해주세요,ㅠㅠ

    부탁드려요!!

    답글삭제
  11. 2학년공대생 님/ 제 경우 우분투리눅스에서 LightBlue라는 파이썬 블루투스 API를 사용해 PC로 위 탱크를 조정해 보았습니다. http://lightblue.sourceforge.net/ 단, LightBlue는 맥과 리눅스만 지원하네요. OS가 윈도 계열이거나, 꼭 JAVA로 하시려면, JAVA Bluetooth API 로 검색해 보세요. 다만, 안드로이드 어플과 같은 언어(자바)를 사용하지만 하위단의 구성이 다르기 때문에 안드로이드에서 사용하던 API와 많이 다른 형태일 것으로 예상합니다.

    답글삭제
  12. 안녕하세요 저는 학생입니다
    이번에 학교에서 방학때 로봇을 만들고 있는데
    이것저것 검색하다보니 수아파파님께서 만드신 어플이랑 땡크를 보고
    감탄했습니다
    안드로이드펌에서 이것저것 공부해보다가 글올리신거보고 왔는데요
    블루투수로 조정하려하는데
    우선 샘플에 있는거 apk로 만들어서 제 넥서스원에 넣어봐서 되는거
    해봤는데
    거기 있는 소스를 조금 조절해서 님이 올려주신 것을 이용해서 수정하면 만들수 있을까요?

    그리고 btpt_icon.svg 랑 .sh는 어떻게 해야하나요??

    답글삭제
  13. GOH 님/ 어플은 아무렇게나 돌아가게만 해 둔 상태라 부끄럽습니다. (어플장이가 아닌지라..) 더 좋게 고쳐 주시면 감사하겠습니다. 소스 내의 svg와 쉘 스크립트는 아이콘을 생성하기 위해 넣어둔 것 입니다. 이미 비트맵으로 추출한 아이콘도 포함되어 있으니까 무시하셔도 됩니다.

    답글삭제
  14. 수아파파님 !! 대단하시네요.
    안드로이드 컨트롤 앱소스를 분석해보고싶은데..전체소스를 어디서 다운 받을수 있을까요..??

    답글삭제
  15. 부품과 공구를 준비해 가서 (탱크 등등),
    suapapa 님에게 공개 실습 강의를 받을 수 있을까요?

    5명 정도 모여서... 강의료를 좀 걷어서 내고,
    실습 강의를 듣고 싶습니다.

    회로에 무지해서..포스트에 있는 글로는
    따라하기 무척 힘드네요.

    그나마 구매한 부품 날릴까 걱정두 되구요.

    같이 강의 들을 분 모집합니다~~~

    답글삭제
  16. 위에 소스 다운 받으려면 어떻게 해야하나요?
    너무 초보적인 질문이죠 ^^;

    답글삭제
  17. 꿈꾸는촌놈 님, 궁금증 님/ 소스를 github로 옮겼습니다. https://github.com/suapapa/BluetoothPinkTank
    링크따라 가 보시면 Download 버튼이 있어서 압축파일로 한꺼번에 받으실 수 있어요.
    dontbeshy 님/ 5명 정도 규모라면 강의를 진행 할 수 있습니다. 우선 인원을 모으시고 메일로 연락해 주세요. :)

    답글삭제
  18. 오 소스 감사합니다.
    dontbeshy 님 저도 강의 참여하고 싶은데
    어떻게 연락 드리면 되는지요..??

    답글삭제
  19. 아, 재밌네요. 탱크 굴러가는 것 보면서 저도 낄낄 댔어요ㅎㅎ
    그런데 일반 피처폰의 블루투스는 보통 SPP가 지원되지 않나요?
    안드로이드폰에서 간단한 텍스트메시지를 보내고 싶은데 잘 안되네요. 몇일째 삽질만 했어요

    답글삭제
  20. 안드로이드폰이 없어서 아쉽네요 ㅠ 아이폰은 와이파이 밖에 방법이 없는건가요? ㅜ

    답글삭제
  21. dontbeshy 님 저도 강의를 듣고 싶은데 어떻게 연락 드리면 되는지요?

    답글삭제
  22. 수아파파님 궁금한게 있는데 탱크의 무한궤도를 동시에 전/후진 하고싶습니다. 다시말씀드리면 휴대폰 화면에 전진스위치가 두개 후진 스위치가 두개 있어서 전진스위치를 두개 모두 동시에 눌렀을 경우에는 전진하고
    왼쪽 전진 스위치와 오른쪽 후진 스위치를 눌렀을경우에는 우측으로 선회하도록 구현하고 싶은데 아두이노와 안드로이드 소스 변경으로 가능할까요? 실제 탱크 운전과 동일하고 구현하고 싶은 마음이 있습니다.
    바쁘시겠지만 꼭 답변 부탁드리겠습니다. 좋은 하루 되세요.^^

    답글삭제
  23. 수아파파님께서 작성하신 작품 소스를 이용해서

    저도 핸드폰에 어플리케이션까지 생성해서

    FB155BC 모듈과 연결까지는 됐습니다

    저는 ATmega128과 연동을 하려고 하는데

    이 어플에서 버튼을 클릭하면 데이터가

    몇 bit로 해서 날아가는건가요??

    어떤식으로 전송이 되는지 잘 모르겠어요..

    가르침 부탁드려요 ..ㅠ

    답글삭제
  24. 올려주신 포스팅 매우 잘 봤습니다.
    저도 하드웨어 안드로이드 블루투스 제어를 해야 했는데, 이 글 덕분에 매우 도움이 많이 되었습니다. 정말 감사합니다.

    답글삭제
  25. RealQuasar 님/ 비례제어를 말씀하시는 듯 합니다. 원래의 건전지와 토이 모터로는 PWM제어로 속도를 조정해 봐도 -속도가 조금만 떨어지만- 빌빌빌빌 거리더라구요. 소스 보다 HW 문제를 해결하셔야 합니다.

    조스페이스 님/ 직접 소스를 보면서 찾아 주세요. 작성하고 처박아 둔지 오래 되서 기억이 안 나요.

    didymus 님/ 감사합니다. 도움이 되셨다니 기쁘네요. :)

    답글삭제
  26. 올려주신 포스팅 정말 잘 봤습니다. 저는 Android Phone과 Bluetooth device간의 연결을 하는 App을 개발하려 하고 있습니다.
    suapapa님의 Source를 실행하여봤는데 노트북과 Pairing 까지만 진행하려 하였으나 연결 과정에서
    cleaning up failed uuid channel lookup 다음과 같은 Log가 찍히며 연결이 돼지 않습니다. 혹시 해결 방법을 아시는지 가르침 부탁드립니다~!

    답글삭제
  27. 안녕하세요 동영상과 설명글 정말~~ 몇번이고 정독했습니다.

    제가 지금 3학년인데 지금 딱~ 재가 해야 할 것이 지금 여기 있네요.

    저는 겔스2의 안드로이드를 이용해 블루트스 SPP profile 가 되는 걸로

    소형 이동 로봇을 만들어야 합니다.

    그런데.. 이제 막 복학해서 아무것도 모르는데 하려고 하니 갑갑하네요

    블루트스 모듈을 기판에 연결하고 그 기판에 연결한 것을 어떻게 모터로 돌리고

    하는지 모르겟네요.. 메일로 쫌 부탁드려도 될가요?

    답글삭제
  28. 안녕하세요... 졸업작품을 무엇으로 할지 검색하다가

    흥미로운 것을 발견했네요!!

    스마트폰을 이용하여 모터를 구동하는 것에 너무 흥미로웠습니다!!

    한번 이 쪽으로 도전을 해볼려고 하는데요, 지금 제가 알고 있는 지식은...

    ATmega128을 이용하여 모터제어와 하이퍼터미널 이용에 발을 살짝 담근 정도랍니다;;;

    스마트폰 어플도 직접 건드려야 할텐데 아무것도 모르고요...

    이 글을 읽고 많은 도움이 되었지만,... 어떻게 시작하고 부품은 무엇을 사야되고, 어플조작은 어떻게 해야할지 모르겠네요;;

    메일로 부탁좀 드려도 될까요 ㅠ-ㅠ?

    답글삭제
  29. 와.... 진짜 이런자료가있었네요... 감사합니다^^

    한가지 궁금한게 있는데...

    만약 이 어플 - 블루투스- 아트메가로 보낸다고 하면

    도대체 어떤 형식인거죠??...

    모터 한개의 PWM 을 제어한다고하면

    아트메가에는 PWM을 제어하는 파일이 들어가 있는거고..

    블루투스에서 OCR값 등을 쏴주는 건가요??..

    제가;; 완전 머릿속에 든게 없어서...

    어떤 방식인지 이해가 안가요 ㅠ

    답글삭제
  30. 초보자 님/ OCR은 광학 문자 판독 아닌가요? 질문이 이해가 안 가요. 질문을 잘 정리해 보시면. 답이 절로 나오실 겁니다. :)

    답글삭제
  31. myBluetooth-ex 가지고 아두이노로 똑같이 해보았는데요...
    스마트폰에서 패어링만되고 연결이 안된다고 나와요.ㅜㅜ
    이건 어떠한 문제인지 잘 모르겠는데...이거가지고 몇일째 끙끙앓고 있어요.
    인식은 하는거같은데...왜이러지 ㅠㅠ

    답글삭제
  32. 안녕하세요. 수아파파님.
    공대 다니는 학생인데요.
    제가 현재 이것을 따라해보는 중입니다만,
    궁금한것이 있는데요.
    앞 방향 버튼을 눌렀을때 무한으로 앞으로 돌아가잖아요.
    그 부분을 2초나 3초정도 짧게만 앞으로 갈수 있게 하려면 어떻게 해야 하나요?

    앞 방향 버튼을 눌렀을때 3초정도 앞으로 가다가 멈추게 하고 싶은데요.
    아두이노 소스를 손봐야 할지 자바 소스를 손봐야 할지..
    안드로이드 어플의 자바소스 아래의것을 손대야 하나 싶어서
    toque(-255,255);

    변경해보면 아에 모터가 안움직이고 그래서요. ^^;
    답변 부탁 드릴게요. ^^;

    답글삭제
  33. 아시모 님/ 코드의 책임 소재를 가리는 일 (이 일은 어디서 해야 되나?) 는 생각할 거리가 되죠.

    제 생각에는 3초 후에 멈추는 코드는 아두이노 쪽에 넣는게 좋겠습니다. 현재 코드로는 전진 명령을 주고, 핸드폰(조종기)가 꺼진 경우 계속 앞으로 가게 되는 문제가 있는데. 탱크(아두이노)쪽에 받은 명령을 3초간만 수행하게 하면 더불어 이 문제도 해결될 것 같네요.

    답글삭제
  34. 수아파파님이 올려주신 자료를 보고 비슷하게 아두이노, 블루투스, 안드로이드를 이용해 휴대폰으로

    조정이 가능한 로봇을 만들었습니다. 정말 좋은 자료 감사합니다.

    그런데 만들어 보고 나니 갑자기 또 다른 생각이 나던데 와이파이나 3G망을 이용해 휴대폰으로

    조정이 가능한 "IP카메라" 라고 있던데요... 이 IP카메라와 만들 로봇과 같이 한번 연동해서 해보려고

    하고 있습니다.

    휴대폰 어플을 조정해서 컨트롤러를 반절 정도로 작게 하고 그 남은 반절에 IP카메라를 이용해 영상을

    보면서 조정이 하고 싶어 졌습니다.. 지금 사용하는 아두이노 "ATmega 329P" 를 이용해서 보통

    시중에서 파는 IP카메라를 조정할수 있는지 궁금해서 .. 혹시나 조언 가능하신지 여쭙습니다.~

    답글삭제
  35. 제가 이번에 탱크를 한번 만들어 보려구 하는데요... 진짜 아무것도 잘 몰라서 공부하고 있습니다.

    올려주신 파일들은 어떤 프로그램으로 보는건지 알려주세요 ㅜㅜ

    orcad랑 쿼터스 이런프로그램은 깔려있는데 어떻게 보는지 방법을 모르겠어요 ㅜ

    답글삭제
  36. 제 블로그의 모든 회로와 아트워크는 이글캐드(eaglecad)를 사용했습니다. orcad가 산업표준이고 더 강력하다는 걸 알고 있지만, eaglecad는 OS를 가리지 않고 실행할 수 있고(전 리눅서에요) 무료버젼도 될 건 다 되요. :)

    답글삭제
  37. 쿼터스는 베릴로그나, vhdl에 필요한거 아닌가요? Altera꺼...
    아두이노 관련 카페에서 공부를 하면 좋겠어요.
    아두이노도 AVR을 썼는데 부트로더를 올려야 하니까.. 가격도 안하니 그냥 하나 사시는게 좋겠습니다.

    답글삭제
  38. 잘 봤습니다.
    저도 HC-06이용하고 스맛폰 SSP테스트 프로그램으로 대부분의 단말기에서 제어가 되는걸 확인했는데,
    어플을 어떻게 만들지 고민중이었는데,
    올려주신 소스가 도움이 될것 같네요~~

    답글삭제
  39. 운영자님 올려주신 소스가 보여지기는 가능한데 한번에 다운로드 할 수 있는 방법은 없을가요?
    우클릭 후 대상 저장해도 html파일만 다운로드 되어지는데..^^

    답글삭제
  40. github에 같은 소스를 올려두었습니다. 아래 링크로 들어가신 후 -git을 사용하지 않으시다면- 우측 상단에 있는 ZIP 버튼을 눌러 전체 소스를 압축파일로 다운 받으실 수 있습니다.

    https://github.com/suapapa/BluetoothPinkTank

    답글삭제
  41. 많은 도움이 되었습니다!! 수아파파님 감사합니다 ^^

    답글삭제
  42. 한번만 더 질문드리겠습니다.
    좌측 상단에 ZIP버튼을 누르거나 우측 상단에 Download버튼을 눌러서 다운받으려 하니,
    master을(를) 다운로드할 수 없습니다.
    에서 멈춰있습니다.

    혹시나 해서 회원가입도 했고,
    zip파일과 tar파일도 시도해보았습니다.
    master대신 REV01, REV02를 선택해 다운로드 해봤지만 동일한 현상입니다.

    이유가 무엇일까요?

    답글삭제
  43. 흠.. 다시 해 봤는데 잘 되던걸요. 브라우져 문제가 아닐지. 크롬을 써 보세요.

    답글삭제
  44. 감사합니다. IE에서는 안되고 말씀하신데로 크롬에서 되는군요.^^
    덕분에 좀 더 쉽게 개발이 될것 같아요.
    좋은하루 되세요.^^

    답글삭제
  45. 안녕하세요 수아파파님 ^-^
    탱크소스에 보면 # , M , S , R , F , B 신호가 들어오면 동작을 하는것으로 알고있습니다.
    그런데 수아파파님께서 만든 어플을보면 아래의 모양처럼 되어있는데
    F
    L S R
    B
    F는 앞
    B는 뒤
    R은 오른쪽
    S는 멈춤인데 L이 빠져있는거 같은데 맞나요?
    그리고 어플에서 #과 M 신호는 무엇을뜻하는지...좀 알려주시면 안될까요...!!!?ㅜ

    답글삭제
  46. 여기서 사용한 통신 프로토콜은 간단하게 만든 것 이에요. 좀 더 간단히 설명하면,

    한 통신의 단위를 패킷이라고 부르고, 우선 모터제어용 패킷이라는 걸 구분하기 위한 헤더와,

    #M


    왼쪽 캐터필터의 방향 (F: 전, B: 후)

    #M[FB]


    오른쪽 캐터필터의 방향 (F: 전, B: 후)

    #M[FB][FB]


    이런식의 패킷을 주고 받게(안드로이드 폰에선 누른 버튼에 따라 패킷을 조합해 전달하고, 아두이노에서는 받은 패킷을 분석해 모터를 돌리게) 만들었습니다.

    예로, 핸드폰에서 왼쪽 버튼 (L)을 누르면, 탱크의 왼쪽 캐터필터는 뒤로, 오른쪽 캐터필터는 앞으로 모터를 돌려 왼쪽으로 돌아야 하기 때문에;

    #MBF


    이런 패킷을 만들어 안드로이드 폰에서 탱크로 전송하게 됩니다.
    아두이노에서는 받은 패킷을 읽어 왼쪽 모터는 뒤로(B) 오른쪽 모터는 앞으로(F) 작동하게 됩니다.

    답글삭제
  47. [...] 부스에 숟가락만 얻어 주세요” 라는 파격적인 제안에 전에 만들었던 핑크탱크와 한글시계를 들고 참여하게 [...]

    답글삭제
  48. 저도 지금 AVR과 블루투스를 연결해서 라인트레이싱을 해볼려고 하는데요
    앞뒤 전후 좌우로 움직이는 것이 아닌 어떤 AVR 에 내장 되어있는 함수를 하나 실행시키는
    방식으로 할려고하는데 , 블로거 님께서 직접 만드신 소스를 참고해보려고 했으나 링크가 깨져있네요
    혹시 어떻게 AVR과 통신하셨는지 알 수있을가요 코드를 좀 참고해서 공부해 보고싶습니다

    답글삭제
  49.  @Override public void onClick(View v) {  if (v instanceof Button) {   if (v.getId() == R.id.btnF)    sendToque(255, 255);   else if (v.getId() == R.id.btnB)    sendToque(-255, -255);   else if (v.getId() == R.id.btnL)    sendToque(-255, 255);   else if (v.getId() == R.id.btnR)    sendToque(255, -255);   else {    sendToque(0, 0);    sayRandom(quoteStop);   }  } }
    안드로이드 메인 소스중에 이게 있던데 이 소스 해석좀요 ㅜ

    답글삭제
  50. 블루투스 모듈 뭐 쓰셨나요?

    답글삭제