2010년 9월 24일 금요일

그린박스 6/6 - 아두이노 스케치 심기.

 그린박스 마지막 포스팅 입니다. T-T



기술적으로는 보잘것 없지만, 매 단계마다 숨어있던 문제들을 만나면서 아주 익사이팅 했던 프로젝트였습니다.


전면 패널에 붙어있는 아두이노에 스케치를 심어서 마무리하도록 하겠습니다.



한방에 버그없고, 미래에 필요한 기능까지 모두 갖춘 스케치를 코딩해서 한번 심고 끝!


...할 수가 없기 때문에...



  • 스케치를 심으려면 아두이노 IDE를 사용하는 건데...

  • 이 컴퓨터는 -x돌리기에 벅찬 사양도 사양이거니와- 서버라 모니터가 없는데....


사실 이 문제는 처음 (그러니까 1년 전) 부터 생각했던 문제였지만, 똑똑한 누군가가 cmdline에서 arduino를 빌드할 수 있는 방법을 만들어 두었을꺼야~ 라고 생각하고 넘어갔었드랬죠. 아두이노 소스 트리에서 Makefile을 본 기억도 있었고요...


헌데, 아두이노 소스 트리의 Makefile은 모두 부트로더 빌드용이었고 (T-T) 검색해서 찾을 수 있던 Makefile들도 현재 아두이노 버젼(19)에서는 작동을 하지 않네요. 누구한테 하소연 하겠어요 오픈소스인걸...


scons을 사용하는 빌드환경을 만들어 냈습니다..




무려 현 존 유일의 제대로 작동하는 cmdline arduino 에요.


케이스 때문에 늦어진다고 드립쳐 놓고(<- 실무에서 정말 중요한 팁!) 이 빌드환경을 갖추면서 생각했죠.



'이게 완성되면 엄청난 센세이션이 일어나겠군. 음하하!'



하지만 세상은 예전처럼 고요했어요. -_-;


업로드를 하려면 업로드 직전에 아두이노 보드를 리셋해야 하는데, 정품 아두이노에서는 자동으로 되죠. 이를 위해 시리얼의 DTR핀(원래 다른 용도의 핀이지만 아무튼 지금은 안씀)이 AVR칩의 리셋핀에 연결되어 있습니다.


제가 만든 서버 모니터에는 연결되어 실수로 연결하지 않았어요. USB2Serial 칩에서 DTR을 찾기 번거로우니, 남는 Digital I/O핀을 사용해 자살스스로 리셋 할 수 있게 구성해 주었습니다.


시리얼로 "#RST"를 보내면 해당 D-I/O핀을 HIGH로 해서 리셋. 회로도와 만든 모양 입니다.





열 수축 튜브로 마무리 해서 적당히 짱박아 줬습니다. :)



이 팁은 지그비, BT, 이더넷2시리얼, Wifi2시리얼등을 아두이노에 연결했을 때, DTR이 없는 경우에도, 원격으로 아두이노를 리셋하고 스케치를 심을수 있게 해 주기 때문에 꽤 유용합니다.



그럼, 동작 동영상 들어갑니다.



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


끝~ :)