태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.



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




3회. 비글본블랙(BeagleBone Black)과 CNC 조각기로 제작해본 PCB 기판.


지난 2회. 비글본블랙(BeagkeBone Black)으로 움직여보는 스텝모터. 에서는 비글본블랙의 GPIO출력을 활용하여 스텝모터를 구동해 보았습니다. 이번 3회에서는 필자가 이번 연재에서 목적으로 하였던 CNC조각기를 실제로 제어하여 PCB 기판을 조각을 해보도록 하겠습니다. 



3-1. 통역.


제어기가 모터를 움직이도록 신호를 발생해주기 위해서는 어떠한 명령이 담긴 코드가 필요합니다. 지난 2회에서 비글본블랙에 기본으로 지원되는 BoneScript 코드로 명령 내려 스텝모터를 구동해 보았습니다. CNC(Computerized Numerical Control) 기기에서 명령을내려주기 위해서는 G코드 및 M코드와 같은 NC코드가 사용됩니다. CNC제어기는 이것을 해석해 동작에 필요한 제어신호를 만들어주게 됩니다. 이것을 위해서 비글본블랙에 G코드 인터프리터가 내장된 CNC컨트롤러 프로그램을 설치해 보았습니다.


비글보드 홈페이지에서 CNC관련 프로젝트를 검색해보았습니다.


CNC컨트롤 프로그램을 설치한후 부팅상태를 USB2UART를 이용해 확인해 보았습니다.


설치후 부팅하여 확인해보았습니다. xenomai 와 linuxcnc가 보입니다.


CNC컨트롤러 프로그램은 리눅스기반인 Linuxcnc(구 Emc2)를 설치하였습니다. 또 리얼타임환경을 만들어주어야 하므로 Xenomai 커널도 포팅이 되어야합니다. 이것들을 직접 컴파일해서 포팅하려면 꽤많은 시간과 시행착오를 요구하는 작업입니다. 다행히도 비글보드 사이트의 진행 프로젝트를 검색해보았더니 이미 진행되는 프로젝트가 있어서 이미 포팅이 되어 있었습니다. 필자는 MachineKit 프로젝트의 소스를 이용하여 설치를 하였습니다. 설치후 UART로 확인해보니 정상적으로 설치된것을 확인할수 있었습니다.


 

3-2. CNC조각기와의 만남


필자가 DIY로 제작한 CNC조각기는 X,Y,Z 3개의 축을 사용하는 기기입니다. 이런 이유에서 구동에필요한 3개의 모터와 각각 모터드라이버를 사용하고 있습니다. 필자가 제작한 모터드라이버는 PWM과 DIR 입력을 입력 받도록 제작 되었습니다. 그렇기 때문에 제어보드에서 구동에 필요한 IO 핀은 6개가 됩니다. 그리고 스핀들에 2개를 사용해야 하므로 비글본블랙의 IO핀중 기본구동에 필요한 8개를 필자의 CNC 조각기와 연결을 하였습니다.


필자의 CNC 머신입니다. 이전 3d 프린터 헤드를 장착했다가 현재는 제거한상태입니다.


글루건으로 파워서플라이에 비글본블랙을 고정시킨 후에 CNC조각기와 연결해주었습니다.


기존에 연결했던 리미트 스위치및 기타센서도 있지만 여기서는 사용을 하지 않고 우선 구동에 필요한 핀 연결만으로 PCB 조각을 수행해 보았습니다.



3-3. PCB 조각을 해보자!


CNC조각기를 이용해서 무엇인가를 만들기 위해서는 데이터가 필요합니다. 여기에서는 PCB조각을 해볼것이기 때문에 PCB 패턴 정보를 담을 NC코드 데이터가 필요합니다. 필자가 이전에 작성해 두었던 PCB 패턴을 이글캐드의 pcb-gcode플러그인을 사용하여 NC코드로 출력해 PCB 패턴조각을 수행해보았습니다.



이글캐드의 pcb-gcode 플러그인을 사용하여 nc 코드를 출력하였습니다.



PCB 패턴 조각 영상 클립입니다. 


패턴조각이 완료된 모습입니다.


비글본블랙에 설치된 LINUXCNC(구 EMC2)의 설정파일을 필자의 CNC조각기에 맞게 설정후 준비된 데이터로 PCB패턴을 조각해 보았습니다.



마치며...


비글본블랙은 많은수의 확장핀을 제공해주고있어서 필자의 CNC조각기와 연결할때 기존에 제작한것외로 별로의 부품 추가 없이 연결이 가능했습니다. CNC컨트롤러 소프트웨어 역시 비글본을 타켓보드로 하여 진행되는 프로젝트 덕분에 다른 ARM 보드를 이용해서 수행했을때보다는 훨씬 수훨했을 뿐만아니라 꽤 만족스러운 수준의 결과물도 얻을수 있었습니다.  이번 연재를 진행하며 확인한 내용들로 미루어볼떄 비글본블랙은 제어하드웨어로도 상당히 최적화된 보드라고 생각된다는 것을 말씀드리며 이번 3회를 마치겠습니다.


다음 4회에는 '제어보로 사용해본 비글본블랙'이라는 주제로 그간 진행하였던 내용을 토대로 종합하여 이야기하며 연재를 마무리 하도록 하겠습니다.. 


많은관심 부탁드리며 끝까지 읽어주셔서 감사합니다.


- 2013.10.30 물의날에 프미케 -



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

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

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


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



Posted by 프미케

댓글을 달아 주세요

  1. BlogIcon shane 2014.02.21 10:57 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 제가 시니어 프로젝트를 하려고 하는데요 필자님 블로그 계속 보다가 이게 적당하다고 생각해서 문의 드립니다. 제가 이거 똑같이는 말고 약간 변형해서 만들어봐도 될까요? 이게 받아들여질지는 잘 모르겠지만, 일단 리서치좀 해봐야 겠네요.

    • BlogIcon 프미케 2014.02.21 15:46 신고  댓글주소  수정/삭제

      네? EMC2는 오픈소스 인데요 GIT을 통해서 소스를 받을수 있구요 저는 비글본 체험단 수행할때요 한주에 한개정도 포스팅 했던 것이라서요 장비에 따른 커스텀 설정 방법이나 펄스튜닝 및 백래쉬 보정, 센서 설정 및 기타 사항등은 내용이 많아서 포스팅을 하지 못했습니다.

      EMC2 는요 라즈베리파이 사용자그룹에서 먼저 포팅을 시작해서요 라즈베리 사용자그룹에 좀더 많은 레퍼런스가 있는것 같습니다.

      라즈베리파이 자료도 같이 참조하시면서 세팅 및 튜닝을 하시면 되시지 않을까 생각됩니다.

  2. Pilgoo 2014.10.17 12:44 신고  댓글주소  수정/삭제  댓글쓰기

    이런분이 대학교 교수가 되어야 하는데...

  3. NNTNN 2015.03.03 17:50 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 재밌게 잘 봤습니다.

    리니어 슬라이드나 봉재 축은 어디서 구하셨는지 궁금해서 글 남깁니다.

    비글본 이용해서 소형 CNC 제작하려고 여기저기 뒤져보는데 LM가이드나 볼스크류, 볼베어링 슬라이드 같은 경우 단가가 비싸서... 적어도 다섯 개는 있어야 진동도 줄이고 동강성도 강해질 것 같아서 가격이 조금 부담되서요 ㅎㅎ

    • BlogIcon 프미케 2015.03.04 00:46 신고  댓글주소  수정/삭제

      리니어 부품은요 정밀도랑 강성 높으면 비싸더라구요 요즘은 인터넷 오픈마켓 이나 포털에서 검색되는 쇼핑몰에서두 부품을 팔고 있어서요 저는 주로 인터넷 구매를 많이 이용하고 있는것 같습니다.

      NNTNN님 댓글 완전 감사드리구요 오늘도 즐거운 하루되세요~ >_<

  4. 씨앤씨후 2015.11.03 05:48 신고  댓글주소  수정/삭제  댓글쓰기

    글 잘 읽어 보았습니다.
    몇가지 궁금한게 있어서요 여쭤봐도 될까요?
    1.G코드라는게 어디서 실행되는건가요? Atmega128 맞나요?
    2.G코드에는 모터 제어에 대한 내용이 있나요?
    2. 위에서 사용하신 회로도는 비글본으로 전송이 된건가요? 그 뒤에 비글본에서 G코드를 생성해서 전송하는 건가요?
    3.검색해보니 마하3라는 것도 있던데 G코드는 공용인가요? 아니면 펌웨어마다 내용이 다른가요?
    3. 전체적인 시스템의 흐름이 궁금하네요..
    감사합니다~

  5. BlogIcon 프미케 2015.11.03 10:21 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요?

    1. 대부분 G코드의 경우 사용자 단말환경에서 G코드 해석기로 로딩되어 실행됩니다. atmega 128은 프로세서의 한종류로 관련 펌웨어를 올려 컨트롤러로 사용할수 있습니다.

    2. G코드 자체로는 모터제어 신호를 발생시켜주는 코드를 포함하고 있지 않습니다.
    포스트내용은 비글본에 G코드 해석기 환경을 올린후 만들어진 G코드를 로딩하여 사용합니다.
    * G코드의 생성의 경우 CAD/CAM 프로그램 관련 자료를 검색하시면 될것 같습니다.

    3. 마하3는 G코드 해석기를 포함하고 있는 컨트롤 프로그램중 하나 입니다. G코드는 리스트는 표준 G코드를 검색해보시면 관련 자료를 찾으실수 있을것 같습니다. 컨트롤 프로그램 혹은 펌웨어 에따라 사용할수 있는 G코드의 종류는 차이가있을수 있습니다.
    *위의 이유때문에 컨트롤러 코드를 직접 명세한경우가 아니라면 각 컨트롤러에 에서 제공하는 매뉴얼을 참고하셔서 G코드를 운용하여야 합니다.

    씨앤씨후님 댓글 감사드리구요 오늘도 즐거운 하루되세요.

    • 씨앤씨후 2015.11.03 14:17 신고  댓글주소  수정/삭제

      답변 감사합니다!
      위에선 생성한 G코드를 비글본에 sd카드를 이용하셔서 전송하셨나요 아니면 네트워크를 이용하셨나요?
      이것저것 좀 해봤는데 cnc는 처음이고 자작욕심이 생겨서 모든게 생소해 질문이 너무 초보적이고 성의 없었던건 아니었나 생각해봅니다.
      이제 어느정도 개념이 잡혔네요. 감사합니다.

    • BlogIcon 프미케 2015.11.03 15:26 신고  댓글주소  수정/삭제

      생성된 G코드는 텍스트 형태로 저장되는 것을 확인할수 있었습니다. 파일 전송환경은 네트웍 혹은 물리보조저장매체로 복사를 통한 전송 등의 선택은 사용시에 편리한것을 선택하셔서 사용하시면 되지 않을까 싶습니다.