본문 바로가기

Software/Ubuntu and Mint

LinuxCNC/EMC2를 이용하여 스태핑모터 돌리기 설정^^

요즘 참으로 정신이 없습니다. 진득하니 뭔가 하나를 끝내야하는데, A라는 일을 하다가, 갑자기 B하다가, C하다가, 다시 A로 돌아와서 일하다가... 뭐 이러다보니, 시간의 효율성이 무쟈게 떨어지네요. 아무튼, 요즘 또 하나의 공부하는 꼭지로, 리눅스를 건드려보고 있습니다. 일명 LinuxCNC.

본래, 가공 데이터가 공작기계쪽으로 넘어가게되면, G-code로 변환되어 넘어갑니다. 이를 Mach3같은 PC프로그램에서 해석해서 공작기계쪽에 지령을 내리게 되죠. 공작기계쪽은 인터페이스보드가 이 지령을 받아, 다수의 축이 있는 공작기계의 모터의 직접 명령을 가하게 됩니다.

일반적으로 CNC같은 공작기계는 스탭모터를 많이 사용하구요. 그런데, MS-Window기반의 이런 프로그램은 인터넷 문서들의 리포팅을 받아보면, 상황에 따라 명령전달이 잘 되지 않는다고 합니다. 즉, 불안정하다고 하죠. 그리고, 개발 혹은 연구환경을 구축하기 위해 많은 돈이 들구요^^. 저도 그래서 요즘 리눅스 세상에 살~짝 엄지발가락 하나를 걸쳐보고 있답니다.^^. 

아무튼 그리하여,  

linuxcnc라는 오픈프로젝트 사이트에 방문하게 되었네요. LinuxCNC라는 건, Linux/Ubuntu위에 CNC 프로그램을 설치해놓은 버젼인데요.(아직 입문단계라 설명이 허덥합니다.^^) 그래서, 리눅스를 설치하고, 다시 CNC프로그램을 설치하는 것이 아니라, linuxCNC를 바로 설치해야합니다. 

download항목에서, Basic Installation에 들어가서

Linux Ubuntu 10.04에 CNC2.5.1이 포함된 ISO화일이 보이네요. 뭐 설치는 여러 방법이 있겠지만, 저는 이 ISO화일을 윈도에서 다운받아서, CD에 이미지 레코딩을 해버렸습니다. 그리고, CD부팅으로 설치했지요. 시디도 보관할겸^^

리눅스 우분투 10.04의 기본 화면이네요. 여기서

LinuxCNC Stepconf Wizard를 실행하면, 간단히 스탭모터 동작을 한 번 테스트해볼 수 있습니다.

뭐.. 다음이죠^^

뭐.. 또 다음입니다.^^

여기서, 첫 설정이 시작됩니다. 자신의 스탭모터 드라이버와 스탭모터의 재원을 가지고 설정을 해주어야합니다. 제가 테스트한 스탭모터드라이버는, 최근 제가 일하는 연구소에서 초저가(3만원이 안됨^^)로 출시한 스탭모터 드라이버를 대상으로 했습니다.[바로가기] Step Time과 Step Space는 해당 모터드라이버의 재원이 100kHz이므로, 10000나노초로 설정하구요. Direction Hold나 Direction Setup은 검색결과, 정/역방향회전시 정지 시간과 관계가 있다고 하므로, 그냥 그대로 둬 버렸습니다.^^.

이 단계에서, 패러럴포트의 핀맵이 나오는데요. 사용할 인터페이스보드의 핀맵과 맞추면 됩니다만, 제가 사용한 인터페이스보드는 제품명이 없더군요..ㅠㅠ. 그래서 그냥 디폴트로 테스트했는데, 뭐 일단 x,y,z축만 가동 시킬때는 되더군요...ㅠㅠ. 차차 알아보죠^^

여기... X축 하나만 테스트하는 곳에서. Motor steps per revolution이라는 항목은, 제가 테스트한 스탭 모터가 펄스당 1.8도를 움직이는 아이입니다. 360/1.8도를 해보면, 200이 되요. 즉 200펄스면 한바퀴를 돈다는...^^. 그리고, [바로가기]에서 제가 선정한 스탭모터드라이버는 마이크로스탭핑을 지원합니다. 그래서, 드라이버 성능에 맞춰 Driver Microstepping 항목은 8로 잡았습니다. 나머진 그대로^^. 그리고, Test this axis라는 항목을 클릭하면, 일단 스탭모터 하나는 "아~~~ 도는구나..."를 확인할 수 있습니다.^^

저기서, 속도가 가속을 정하고, test area를 정하면, 저 정도 폭으로 좌우로 회전합니다. 그리고, RUN을 눌러주는 거죠^^. Jog를 누르면 조금씩 이동합니다.

이제, 하드웨어 준비물이죠. 뒤쪽, 외편은 굴러댕기는 CNC 인터페이스보드입니다. 전원과, X-Y-Z-A축 단자가 나와 있구요. 그 옆은 PC에서 나온 패러럴포트입니다. PCI슬롯에 꼽히거나, 메인보드에서 직접나온 아이가 아니면 안됩니다. 즉, 노트북같은 것에서 USB-to-Parallel 컨버터 같은 걸로는 안되더라는...ㅠㅠ (괜히 PC 구조도 모르고 삽질을...ㅠㅠ) 그 다음. 앞줄의 왼쪽은 위에서 말씀드린, 마이크로스태핑 모터 드라이버[바로가기]에요. 그옆은 당연히 스탭모터지요^^

결선입니다. 뭐.. 딱히 결선이라고 할 것도 없습니다. 모터드라이버의 설명서대로 모터랑 연결했고, 나머진, 인터페이스 보드의 CLK+-. DIRECTION+- 이렇게 네 개만 연결했을 뿐입니다.^^. 아 물론 전원도 있죠. 그냥 24V 아답터를 사용했습니다.

아주 초간단 테스트였습니다. LinuxCNC를 설치하고, CNC 인터페이스 보드와 PC의 패러럴포트를 연결하고, CNC 인터페이스 보드와 스탭모터 드라이버를 연결하고, 스탭모터 드라이버와 모터를 연결했을 뿐인거죠^^. 그래도 모터를 돌리는 아이니까, 간단히 동영상 하나 보시죠.

흠... 조금씩 시간이 흐를수록 리눅스가 재미있어지네요. 문제는.. 계속 뭔가 다른일들이 겹쳐서 생긴다는 겁니다. 물론 필요한 일이긴 한데... 누군가 하긴 해야할 일인데... 이게... 확실히.. 재미있는 일과, 해야할 일은 차이가 좀 있나 봅니다.ㅠㅠ

반응형