필자는 소형  CNC 조각기 한대를 직접 제작하여 사용하고 있습니다. 현재는 컴퓨터를 제어기로 사용하기 때문에 제어전용 컴퓨터를 놓고 사용하고 있습니다. 얼마전 ICbanQ에서 저가형 소형 ARM 보드인 비글본블랙(Beaglebone Black) 체험단 모집을 했었습니다. 소형 ARM 보드를 활용하여 현재사용하고 있는 제어전용 컴퓨터를 대체해볼 생각으로  응모하여 선정 되었습니다. 이 내용을 주제로 체험단 활동기간인 한달동안 아래 4회차의 연재로 구성하여 진행해 보도록 하겠습니다.




4회. 제어 보드로 사용해본 비글본블랙(BeagleBone Black) 사용후기.


연재를 진행한지도 벌써 한달이라는 시간이 훌쩍 지났습니다. 그동안 진행했던 내용들을 살펴보면 '1회. 비글본 블랙과의 첫만남' 에서는 비글본블랙을 수령하여 부팅 해보면서 몇가지 사항들을 살펴 보았습니다. '2회. 비글본블랙 으로 움직여 보는 스텝모터'에서는 비글본블랙과 모터드라이버를 활용하여 스텝모터를 구동해보았으며 '3회. 비글본블랙과 cnc 조각기로 제어해본 pcb 기판'에서는 비글블랙을 필자의 CNC조각기의 제어기로 사용하여 PCB 동판을 조각해보았습니다. 이번 4회에서는 그간 수행했던 내용을 토대로 하여 비글본 블랙을 제어보드로 사용해본 소감을 말씀드리며 연재를 마무리 하도록 하겠습니다.



4-1. 제어에 적합한 하드웨어 환경


CNC조각기를 제어하기위해서는 다수의 모터를 제어해야하기 때문에 다수의 입출력 핀이 필요했습니다. 비글본 블랙은 23*2 헤더소켓이 양쪽 측면에 자리잡고있서 92개나 되는 확장핀 덕분에 I/O핀수에 따른 제한을 받지 않고 테스트를 진행할수 있었습니다.


비글본블랙의 하드웨어 사양


측면에 핀헤더로 나열된 많은수의 확장핀


Sitara AM3559 블록다이어그램


비글본블랙을 이용한 CNC조각기 제어를 진행하면서 자료를 살펴보던중 비글본 블랙에 사용된 메인칩인 TI사의 Sitara AM3559에는 PRU(Programmable Realtime Unit) 장치가 존재하고 있음을 알 수 있었습니다. 필자도  아직 이부분을 접해본적이 없어서 자세한것을 알수는 없었지면 이것을 이용하면 다양한 소프트 주변장치를 구성할수 있다는것과 GPIO에서 고속 , 실시간응답에 사용될수 있다는자료를 볼수 있었습니다. 또한 필자가 테스트시 사용한 LinuxCNC(구 EMC2)의 소스코드에 PRU 부분이 정의된것을 확인할수 있었습니다. 이러한 내용들로 미루어 보았을때 고품질의 신호출력으로 CNC조각기 제어가 가능할것이라는 생각이 들었습니다.



4-2. 편리한 개발 및 테스트 환경


'2회. 비글본블랙 으로 움직여 보는 스텝모터'를 진행할 당시에 처음에는 C언로 코딩해서 목적프로그램으로 빌드한후 테스트를 진행할 계획이었습니다. 비글본블랙을 부팅해서 내장된 웹페이지에서 설명을 읽어보던중에 Bonescript라는 뜻밖의 정보를담을 내용을 볼수 있었습니다. 자바스크립트 문법으로된 bonescript를 통하여 확장핀의 입출력 제어가 가능하다는 내용이었습니다.


예제를 입력창을 통한 BoneScript 테스트환경


필자는 테스트를 예제 페이지에 있는 코드치환을 통해 간단하게 출력테스트를 하였지만 더 자세히 확인해보니 비글본 블랙에 내장된 Cloud9 IDE 환경인것을 알수 있었습니다. 웹브라우저 통해 비글본블랙의 Cloud9 IDE 에디터에 접속하여 스크립트의 작성, 실행을 할수 있었습니다. 비글본블랙에서 지원해주는 Cloud9 IDE의 매우 직관적이고 편리한 개발 환경을 접해보고 놀라움을 금치않을수 없었습니다.



4-3. 다양한 비글본블랙활용 프로젝트


'3회. 비글본블랙과 cnc 조각기로 제어해본 pcb 기판'을 진행할때에는 실제로 필자의 CNC조각기를 제어해야 하므로 비글본블랙에서 실행되는 CNC 컨트롤 소프트웨어가 필요했었습니다. 이것은 비글본페이지의 프로젝트 메뉴를 통한 검색을 통하여 수행할수 있었습니다. 필자가 하려는것 외의 많은 프로젝트들이 진행되고 관련 소프트웨어 및 필요사항들이 포팅되어 있음을 알수 있었습니다.



비글보드 사이트에 게시된 비글본을사용한 프로젝트 목록


또한 수행중 문제를 만나 진행이 어려울 경우에는 관련 유저 포럼을 검색해보았더니 수많은 힌트들을 얻을수 있었습니다. 공개 프로젝트의경우 GIT등을 통하여 소스가 공개되고 있어으므로 해당부분의 이슈를얻어 문제를 해결할수 있었던 환경 덕분에 필자가 비글본블랙을 활용하여 진행 하고자 했던것을 무사히 수행할수 있었습니다.


연재를 마치며... 


이번 체험단 수행을 계기로하여 비글본 블랙을 활용한 제어 활용 환경을 알아보고 LinuxCNC(구 EMC2)를 비글본블랙에 포팅을 하여 필자의 CNC조각기를 제어 해보았습니다. 주 1회차의 진행으로 한달간 4회의 분량으로 진행하다보니 포팅방법, 일어날수 있는문제, 트러블 슈팅등의 내용을 담지는 못한 아쉬움이 있었지만 처음 사용해보는 하드웨어에 시간이 허락하는 내에서 필요부분 포팅및 테스트를 수행해본 결과 비글본블랙이 제공해주는 환경은 매우 만족스러웠습니다. 비글본블랙에LinuxCNC(구 EMC2)의 포팅은  이미 MarchineKit명칭으로 진행 배포 되고 있으니 관심이 있으신분들 께서는 해당 프로젝트 페이지를 방문하시면 더욱 자세한 내용들이 제공되고 있으므로 어렵지 않게 수행을 하실수 있을실 것이라는 말씀을 남기며 이번 연재는 여기에서 마치도록 하도록 하겠습니다.


그동안 연재에 관심을 가져주신 독자여러분께 깊은 감사의 말씀 드립니다.



- 2013.11.06 물의날에 프미케 -




* 본 포스트는 필자가 운영중인 블로그(티스토리, 네이버) 에 전체 포스트를 동시게시합니다.

   - 티스토리 : 프미케의 낙서장(http://pmice.tistory.com)

   - 네이버블로그 : http://blog.naver.com/pmice


* 본 제품은 ICbanQ에서 후원하고 ICbanQ 무상 체험단 10기 활동의 일환으로 체험 제품을 제공받아 작성되었습니다.


+ Recent posts