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




2회. 비글본블랙(BeagleBone Black)으로 움직여보는 스텝모터.


지난 1회. 비글본블랙(BeagleBone Black)과의 첫만남. - 상품수령 개봉기 에서 비글본블랙을 수령한후 부팅, usb연결및 모니터 연결등을 확인해 보았습니다. 필자가 비글본블랙을 가지고 하려하는 것은 DIY로 제작해서 사용하고 있는 CNC조각기의 제어기로 활용 해보는것 이었습니다. 제어기로 활용하기에 앞서 이번 2회에서는 비글본블랙에서 제어신호를 출력하여 스텝모터 구동 테스트를 수행해보도록 하겠습니다.


2-1. 준비사항


스텝모터를 구동하기 위해서는 스텝모터, 모터드라이버, 제어보드가 필요합니다. 스텝모터는 펄스제어 모터이므로 모터의 각상에 펄스를 인가하면 모터의스텝각 만큼 진행을 하며 연속적인 펄스를 인가해주면 회전을 하게 됩니다. 이미 제어 관련 서적및 인터넷 게시물등에 스텝모터 동작원리가 잘 설명 되어있는데다가 내용이 많은 관계로 여기에서는 스텝모터의 권선구조 및 자세한 동작 매커니즘에대한 설명은 생략하도록 하겠습니다.


필자가 테스트 용도로 사용하고 있는 스텝모터 입니다. 


필자가 이전에 만들어 놓은 바이폴라 방식의 스텝모터 드라이버입니다.

*참고 : TB6560 스텝 모터 드라이버(바이폴라) 제작

 

제어보드로 사용할 비글본 블랙입니다.


모터구동의 경우 전압과 전류가 제어 보드에서 쓰이는것보다 높은것이 대부분일 것입니다. 그렇기 때문에 제어신호를 모터드라이버가 구동 전압및 전류로 변환해서 모터로 전달함으로서 구동을 하게됩니다. 우선 모터, 모터드라이버, 제어보드로 사용할 비글본블랙이 준비되었으므로 스텝모터를 구동해볼 준비가 되었습니다.


2-2. 모터 드라이버 회로와 비글본블랙을 연결 해보자!


준비물들이 갖춰졌으므로 각각의 준비물들을 연결하여 회로를 구성하여야 비로소 스텝모터가 동작을 할수 있을것 입니다. 스텝모터, 모터드라이버, 비글본 블랙및 보조 소자들을 더하여 스텝모터 구동 테스트회로를 구성하였습니다.


우선 출력포트로 사용할 핀을 확인하기위해 비글본블랙의 확장핀맵을 확인 하였습니다.


필자가 구성할 테스트 회로 입니다. 회로보호와 드라이버의 신호 레벨로 변환을 위해 포토커플러를 추가하였습니다.

(화면 좌측이 비글본 블랙, 우측이 스텝모터 드라이버입니다.)



실제로 구성한 회로의 사진입니다. 사진에는 아직 DIR 출력 라인의 연결을 해주지 않았네요.


비글본 블랙의 P8 확장핀중 13번핀은 PWM, 14번핀을 DIR의 출력핀으로 사용하였습니다. 그리고 회로 보호및 모터드라이버의 신호레벨로  변환해 주기위해 포토커플러를 추가하여 스텝모터 테스트 구동 회로를 구성하였습니다.


2-3. 비글본블랙으로 움직여보는 스텝모터.


회로 구성까지 완료 하였으니 이제 스텝모터를 구동해보는 일만 남았습니다. 비글본에서 제어신호를 출력해야 하므로 '비글본에서 간단하게 신호를 출력할수 있는 환경은 어떤것이 있을까?' 를 확인해보았습니다. 마침 1회. 비글본블랙(BeagleBone Black)과의 첫만남. 진행중에 비글본블랙의 USB 가상랜환경에서 사용해본 자체 웹페이지의 BoneScript 예제 실행 환경이 떠올랐습니다.


비글본 블랙의 USB 가상랜환경해서 접속한 BoneScript 예제 실행 페이지 모습니다.


이것을 이용해서 제어신호를 출력해 보기로 하고 간단한 스크립트 코드를 작성해서 입력후 실행해 보았습니다. 작성한 코드는 아래와 같습니다.


var b = require('bonescript');

var pwm = "P8_13";  // PWM 출력

var dir= "P8_14";  // 정/역방향(DIR) 출력

var state = 0;


b.pinMode(pwm, 'out');

b.pinMode(dir, 'out');

b.digitalWrite(dir, 0);


toggleSIG = function() {

    state = state ? 0 : 1;

    b.digitalWrite(pwm, state);

};


timer = setInterval(toggleSIG, 10);  //회전 속도


stopTimer = function() {

    clearInterval(timer);

};


setTimeout(stopTimer, 5000);  // 회전시간


코드 입력후 실행한 스텝모터 구동 영상입니다.


마치며...


비글본블랙이 출력해주는 신호를 가지고 스텝모터 구동을 수행해본 결과 모터가 동작하는 모습을 볼수 있었습니다. BoneScript라는 환경덕분에 테스트 수행이 훨씬 수훨했던것 같습니다. CNC조각기는 여러개의 모터를 제어해야 하기 때문에 다수의 출력핀이 요구됩니다. 또 센서를 연결하게되면 입력핀까지 필요하게 됩니다. 비글본블랙은 범용 입출력포트로 사용할수 있는 많은수의 확장핀을 제공하고 있습니다. 여기에 컨트롤러 소프트웨어를 설치하여 사용하게 된다면 조각기 제어에도 무리없이 사용될수 있을것으로 생각됩니다.


다음 3회에서는 실제로 필자가 사용하고 있는 CNC조각기를 비글본블랙으로 제어하여 간단한 PCB기판을 제작해보는것을 수행해보도록 하겠습니다. 


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


- 2013.10.23 물의날에 프미케 -



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

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

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


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


+ Recent posts