[초급] 로봇제작기 2탄 - AI모터구동
페이지 정보
작성자 로보맨 댓글 0건 조회 15,913회 작성일 09-06-28 06:51본문
111111111111111111111111111111얼마만에 올리는 제작기 인지 모르겠습니다.(내심 고수님들께서 좋은 제작기 올려 주시기를 이제나 저제나 기대했었는데..TT) 암튼 공부하면서 올리는 글이기에 미숙한 점이 있더라도 많은 양해 바라면서 지난번 AI 휴머노이드 패키지를 이용한 조립에 이어 조금더 진도를 나가 보겠습니다. 우선 원론적인 이야기로, 서보모터에 대해서 먼저 알아보겠습니다.
서보모터(SERVO MOTOR)란?
로봇을 움직인다든지, 정밀자동기계를 움직이는데 사용되는 모터를 서보모터(SERVO MOTOR)라 부릅니다. 여기에서 "서보"란 "서보 메카니즘(Servo Mechanism)" 의 줄임말로서, 일본공업규격(JIS)에서는 "물체의 위치, 방위, 자세 등을 제어량으로 하고, 목표치의 임의 변화에 추종하도록 구성된 제어계"라고 정의되어 있습니다. 또한 서보(SERVO)는 Servant(하인)와 관계가 있어서 "주인의 명령에 충실한" 이라는 의미를 가지고 있습니다. 따라서 서보모터란 "주인의 명령에 따라 충실하게 동작하는 모터"를 가리킵니다.
http://solowing.hihome.com/frame.htm
서보라는 말과 함께 흔히 RC서보라는 말을 많이 사용합니다. RC(Remote control)서보는 취미용 무선조종 분야에서 대량으로 이용되고 있는 서보모터로써, 주로 무선 자동차나 무선 헬기의 방향이나 속도를 조정하는 등에 사용됩니다. 적은 힘을 요하므로 가격이 싸고, 무선조종샵이나 모형점에서 쉽게 구입할 수 있습니다.
RC서보모터는 일반서보모터와 마찬가지로 DC모터 , 감속 기구(기어 박스), 써보 앰프(또는 모터 드라이버/ 모터를 구동하기 위한 회로)로 구성된 양산품이기에 일반인들이 취급하기 쉬운 액츄에이터라 할 수 있습니다. 즉, 개인 로봇 등을 제작할 때에 몹시 편리한 부품이라고 말할 수 있습니다. 하이텍이라는 국내제조사가 RC서보모터에 있어서 세계적으로도 유명합니다. http://www.hitecrcd.co.kr
지난 1편의 완성품인 AI모터 패키지는 결국 모듈화된 서보모터(액추에이터)와 간단한 프레임을 사용하여 연결한 휴머노이드 로봇이 되겠습니다. 이처럼, AI 모터의 경우, 기존의 RC서보모터의 개념과 비슷하지만, 사용분야와 기능에 있어서 많은 차이점을 가집니다. 기본 메카니즘은 RC서보모터와 비슷한 개념이지만, 실제 제어방식과 기술적인 내용에 있어서 차이가 나는데, 이러한 차이점은 무선모형이 아닌 로봇 제작을 위한 모듈형 액추에이터(구동부)로 사용하기 위해 만든 것이기 때문이라 할 수 있습니다. 제작사는 (주)메가로보틱스 http://www.megarobotics.com 입니다.
RC 서보모터의 구동
서보모터는 어떻게 돌릴까요? 일반 DC 모터의 경우 적절한 전원만 공급해주면 모터는 돌아갑니다. 그러나 RC서보모터나 AI모터의 경우에는 단순히 전원만 연결해서는 모터가 구동하지 않습니다. 우선 RC서보모터 돌리는 원리부터 설명하겠습니다. RC서보의 경우에는 각 메이커별 RC서보모터의 규격에 맞는 전원과 함께 펄스라는 신호를 내보내주어야 합니다. DC모터가 +,- 의 두개의 전선으로 연결되어 있는 반면, RC서보모터는 +,- 그리고 펄스신호를 보내는 신호선이 추가가 되어 통상 세개의 전선이 연결되어 있습니다.(AI 모터는 4개의 선으로 연결됩니다. 이부분은 나중에 설명하겠습니다.)
펄스란 뭐고, 어떻게 만들고, 어떻게 서보모터에 전달 하는 걸까요? 펄스는 사람의 맥박처럼 최저점에서 최고점을 반복적으로 왔다갔다 하는 신호(또는 모양)를 말합니다. 통상 전자공학에서는 0과 1의 디지털부호 만을 다루므로 0과1의 반복적인 교차를 시간의 축으로 그래프화 시켰을때, 다음과 같은 모양의 펄스가 나타나겠지요.
디지털 값은 (전압을 기준으로) 0볼트일 경우에는 0(또는 Low), 5볼트일때는 1(또는 High)로 표현합니다. 그렇다면 이러한 펄스는 어떻게 만들까요? 당연히 전자공학의 영역에서는 적절한 전자적인 회로를 설계하고 그 회로에 의해 전자부품들을 기판위에 실장(조립)해서 만들겠지요.(회로에 대한부분은 일단 넘어갑니다.^^;).
간단한 회로에 의해 단순한 펄스를 만들 수는 있겠지만, 로봇 같이 10여개 이상의 RC서보모터들을 정밀하게 제어하려면, 당근 고성능의 전자회로 또는 전자적인 두뇌 즉, CPU가 필요합니다. PC에 Intel Pentinum4와 같은 CPU가 있듯이, 서보모터의 제어, 정확히 말하면 펄스 신호 발생 및 제어를 위해서 많은 CPU들이 상품화 되어 있습니다. (CPU에 대해서는 나중에 다시 언급하겠습니다.) 단, CPU가 단독으로 사용될 수 없기에 CPU가 포함된 제어용 보드(통상 마이컴 또는 온보드라 부른다)를 사용합니다.
서보모터(SERVO MOTOR)란?
로봇을 움직인다든지, 정밀자동기계를 움직이는데 사용되는 모터를 서보모터(SERVO MOTOR)라 부릅니다. 여기에서 "서보"란 "서보 메카니즘(Servo Mechanism)" 의 줄임말로서, 일본공업규격(JIS)에서는 "물체의 위치, 방위, 자세 등을 제어량으로 하고, 목표치의 임의 변화에 추종하도록 구성된 제어계"라고 정의되어 있습니다. 또한 서보(SERVO)는 Servant(하인)와 관계가 있어서 "주인의 명령에 충실한" 이라는 의미를 가지고 있습니다. 따라서 서보모터란 "주인의 명령에 따라 충실하게 동작하는 모터"를 가리킵니다.
http://solowing.hihome.com/frame.htm
서보라는 말과 함께 흔히 RC서보라는 말을 많이 사용합니다. RC(Remote control)서보는 취미용 무선조종 분야에서 대량으로 이용되고 있는 서보모터로써, 주로 무선 자동차나 무선 헬기의 방향이나 속도를 조정하는 등에 사용됩니다. 적은 힘을 요하므로 가격이 싸고, 무선조종샵이나 모형점에서 쉽게 구입할 수 있습니다.
RC서보모터는 일반서보모터와 마찬가지로 DC모터 , 감속 기구(기어 박스), 써보 앰프(또는 모터 드라이버/ 모터를 구동하기 위한 회로)로 구성된 양산품이기에 일반인들이 취급하기 쉬운 액츄에이터라 할 수 있습니다. 즉, 개인 로봇 등을 제작할 때에 몹시 편리한 부품이라고 말할 수 있습니다. 하이텍이라는 국내제조사가 RC서보모터에 있어서 세계적으로도 유명합니다. http://www.hitecrcd.co.kr
지난 1편의 완성품인 AI모터 패키지는 결국 모듈화된 서보모터(액추에이터)와 간단한 프레임을 사용하여 연결한 휴머노이드 로봇이 되겠습니다. 이처럼, AI 모터의 경우, 기존의 RC서보모터의 개념과 비슷하지만, 사용분야와 기능에 있어서 많은 차이점을 가집니다. 기본 메카니즘은 RC서보모터와 비슷한 개념이지만, 실제 제어방식과 기술적인 내용에 있어서 차이가 나는데, 이러한 차이점은 무선모형이 아닌 로봇 제작을 위한 모듈형 액추에이터(구동부)로 사용하기 위해 만든 것이기 때문이라 할 수 있습니다. 제작사는 (주)메가로보틱스 http://www.megarobotics.com 입니다.
RC 서보모터의 구동
서보모터는 어떻게 돌릴까요? 일반 DC 모터의 경우 적절한 전원만 공급해주면 모터는 돌아갑니다. 그러나 RC서보모터나 AI모터의 경우에는 단순히 전원만 연결해서는 모터가 구동하지 않습니다. 우선 RC서보모터 돌리는 원리부터 설명하겠습니다. RC서보의 경우에는 각 메이커별 RC서보모터의 규격에 맞는 전원과 함께 펄스라는 신호를 내보내주어야 합니다. DC모터가 +,- 의 두개의 전선으로 연결되어 있는 반면, RC서보모터는 +,- 그리고 펄스신호를 보내는 신호선이 추가가 되어 통상 세개의 전선이 연결되어 있습니다.(AI 모터는 4개의 선으로 연결됩니다. 이부분은 나중에 설명하겠습니다.)
펄스란 뭐고, 어떻게 만들고, 어떻게 서보모터에 전달 하는 걸까요? 펄스는 사람의 맥박처럼 최저점에서 최고점을 반복적으로 왔다갔다 하는 신호(또는 모양)를 말합니다. 통상 전자공학에서는 0과 1의 디지털부호 만을 다루므로 0과1의 반복적인 교차를 시간의 축으로 그래프화 시켰을때, 다음과 같은 모양의 펄스가 나타나겠지요.
디지털 값은 (전압을 기준으로) 0볼트일 경우에는 0(또는 Low), 5볼트일때는 1(또는 High)로 표현합니다. 그렇다면 이러한 펄스는 어떻게 만들까요? 당연히 전자공학의 영역에서는 적절한 전자적인 회로를 설계하고 그 회로에 의해 전자부품들을 기판위에 실장(조립)해서 만들겠지요.(회로에 대한부분은 일단 넘어갑니다.^^;).
간단한 회로에 의해 단순한 펄스를 만들 수는 있겠지만, 로봇 같이 10여개 이상의 RC서보모터들을 정밀하게 제어하려면, 당근 고성능의 전자회로 또는 전자적인 두뇌 즉, CPU가 필요합니다. PC에 Intel Pentinum4와 같은 CPU가 있듯이, 서보모터의 제어, 정확히 말하면 펄스 신호 발생 및 제어를 위해서 많은 CPU들이 상품화 되어 있습니다. (CPU에 대해서는 나중에 다시 언급하겠습니다.) 단, CPU가 단독으로 사용될 수 없기에 CPU가 포함된 제어용 보드(통상 마이컴 또는 온보드라 부른다)를 사용합니다.
서보모터 제어용 CPU가 탑재된 온보드(마이컴)
참고로, 서보모터제어를 위한 펄스의 제어방식은 PWM(PULSE WIDTH MODULATION)으로 불리웁니다. 펄스의 폭에 따라 변조(조절)를 한다는 의미입니다. 전체 펄스의 크기와 상승되어져 있는 펄스의 폭의 비율을 이용하여 데이터를 표현하는 방식입니다.
AI 모터의 구동
AI 모터의 경우에는, RC서보모터와는 달리, 1차적으로 마이컴(또는 PC)을 통해 제어명령(패킷)을 주고 AI모터내에 있는 또다른 두뇌에서 PWM신호를 모터드라이버회로에 보냄으로써 모터를 구동시키게 됩니다. 패킷이란, 데이터와 제어 신호가 포함된 2 진수, 즉 비트 단위의 그룹을 말합니다.(3편에서 다시설명)
AI 서보모터를 구동해 보기위해, 하드웨어적인 연결을 해보겠습니다. 필요한 준비물은 AI모터 1개와 컴퓨터, MGR-B232보드, 시리얼잭, 전원어답터, AI 모터 데이터선 입니다.
연 결
MGR-B232보드와 컴퓨터, AI모터를 각각 시리얼케이블과 AI모터 데이터케이블로 연결합니다. 마지막으로 MGR-B232 보드에 전원을 연결하여 스위치를 켰을때 MGR-B232보드에 불이들어오면 연결이 순조롭게 끝난것입니다.
AImotorTool v121
하드웨어 연결이 완성된 후 www.megarobotics.com 에서 제공하는 AImotorToolv121를 다운받아 실행시킵니다.
AImotorTool은 AI모터의 제작사에서 제공하는 파라메터 변경 툴로써 모터를 운영하는데 필요한 기본적인 사항들을 조정하게 해주는 AI모터 전용프로그램입니다. 일반적으로 사용되는 RC서보의 경우에는 이러한 전용프로그램이 제공되지않습니다. 또한, AI 모터에서는 다른 RC서보와는 달리 자체에 내부 메모리가 있어, 기본적인 정보(파라메타)를 입력시킨 후 CPU에 의해 컨트롤되는 방식입니다. 따라서, 다른 RC서보모터를 사용하여 로봇을 만드는 과정에 있어서는 약간의 차이가 발생됩니다. 기회가 닿으면 일반 RC서보를 이용한 로봇제작을 통해서 쉽게 비교해 볼 수 있도록 하겠습니다.
프로그램을 다운받아 압축을 푼후 바로 실행화일을 실행하면 다음과 같은 메인화면이 나타납니다. 모든 하드웨어의 연결이 정상적으로 되어있는 상태에서 왼쪽 하단에 있는 바를 좌우로 돌리면, 모터가 구동되기 시작합니다. AImotorToolV121에 대한 사용방법은 3편에서 계속하겠습니다.
MGR-B232 보드
이쯤해서 MGR-B232보드의 역할이 궁금하실 것입니다. 우선, PC에서의 데이터 전송(통신)은 직렬(시리얼)과 병렬(패러럴)의 두가지 방식이 있습니다. CPU, HDD, FDD, VIDEO 등이 병렬 전송입니다. 하지만, 모든 장비가 병렬 통신을 할수 없습니다. 병렬 통신은 구현하기 힘들고 고가이며, 거리 또한 제한이 됩니다. 이에 반해서 직렬(시리얼) 통신은 구현하기 쉽고, 저가이고, 거리 제한이 병렬(패러럴) 보다 덜 제한을 받습니다.
RS-232C (Recommended Standard 232 Revision C)는 컴퓨터들과 관련 장치들 간에 비교적 느린 속도의 직렬(시리얼) 데이터 통신을 하기 위한 물리적 연결과 프로토콜에 관해 기술하고 있는 오래된 표준입니다. (현재의 버전이 "C"이다). 이 표준은 원래는 텔레타이프 장치들을 위해 산업계의 업체 모임인 EIA (Electronic Industries Association)에 의해 정의되었구요.
PC에는 COM1, COM2의 RS-232C 포트가 있는데 흔히 마우스나 모뎀을 연결하는 등의 포트로 이용됩니다. RS-232 의 규격은 싱글 드롭(Single Drop) 방식 (즉 1:1 통신)의 직렬(시리얼)통신으로 전송거리는 약 15m 정도이고 전송속도는 256kbps 이내가됩니다. 또한 신호레벨은 0 ~ 5V 가 아니라 전송거리를 늘리려는 목적으로 3 ~ 12 V를 사용합니다. 이점이 PC의 시리얼포트와 모터를 바로 연결시킬 수 없는 이유가 되겠습니다.
AI 모터에서 사용하는 신호레벨은 0 과 +5V이고, PC쪽의 시리얼포트에서 나오는 신호선 레벨은 +-12V 이므로 곧바로 연결해서 사용할 수 없기때문에 레벨(즉, 전압)을 변화시켜주는 기능이 필요한 것이며, 이러한 레벨변환기(전압조정)의 역할을 하는 칩(MAXIM사의 MAX232 Line Driver IC)를 사용하여 만든것이 AI모터에서 제공하는 MGR-B232 보드인 것입니다. MGR-B232 를 통해서 컴퓨터 시리얼포트에서 넘어온 +_12V의 신호레벨을 AI모터측에 0V, 5V의 신호레벨로 변경해 전달하고, 또한 DC모터가 구동하는데 필요한 전원도 어답터를 통해 공급해주게 됩니다.
정 리
다시한번 강조하지만, AI모터로 로봇을 제작하는 과정은 일반 RC서보모터로 만드는 것과 한 두가지 차이점을 가지고 있습니다만, 개념은 같습니다. 로봇제작기 2편에서는 AI모터를 구동하기위한 기본지식과 하드웨어 연결, 그리고 AImotorTools 프로그램에 대해서 알아보았습니다.
짧게 정리해보면, 'AI모터를 구동하기위해서는 PC 또는 마이컴을 통해 AI모터에 내장된 두뇌에 제어신호를 보내고, 두뇌는 이 데이터를 받아서 해독하여, 명령대로 PWM신호를 DC모터에 연결된 모터드라이버에 하달하고, 모터드라이버는 PWM신호에 맞추어 모터를 돌리게 된다.' 뭐, 이정도면..
다음편에서는 AImotorToolv121을 중심으로, AI모터를 사용하기 위한 준비단계와 실제 AI모터를 사용한 간단한 기능을 가진 로봇을 만들어 보겠습니다.
...................................................................................................................
보충설명
AI모터의 개발사인 (주)메가로보틱스의 이성훈 팀장님께서 본 기사의 내용에 대한 보충 및 정정 사항을 보내주셨습니다. 감사드립니다.
RC모터와 AI모터의 비교시 유의사항
AI모터는 'RC서보모터'가 아니라 '엑추에이터모듈'이라고 해야 옳습니다. RC서보모터라고 부르는 것은 일차적 의미로 Remote Control 자동차, 비행기 등에 사용하기 위한 모터를 말함인데, AI 모터는 그렇지가 않기 때문이죠. 또한 내부적인 동작 방식에 있어서 너무나 많은 차이가 있습니다.
AI모터는 사실 이름에 들어 있는 '모터'라는 단어 때문에 혼동의 여지가 많습니다. AI모터는 엄밀하게 말하면 모터'라기 보다는 '엑츄에이터 모듈' 즉, '구동부 모듈'이라고 부르는 것이 맞습니다. 모터 뿐만 아니라 기구부(기어,연결부), 하드웨어부(제어회로, 센서회로,통신회로, 전원회로, 전원보호회로, 모터드라이버회로)가 함께 모듈화된 제품이 AI 모터입니다.
RC서보모터와 AI모터와의 차이점
AI 모터는 RC서보모터와는 달리 PWM 방식의 펄스 신호로 제어 명령을 받는 것이 아니라, RS-232 비동기 직렬통신 방식으로 명령 패킷(4바이트 또는 6바이트)으로 제어됩니다. 그리고 내부에 고성능의 마이컴(MICOM)이 내장되어 있어서 RC서보 모터가 가진 위치제어기능(서보기능)도 뛰어나지만, 이 외에도 RC서보모터는 가지지 못한 속도제어기능과 제어 알고리즘에 사용되는 게인(이득)설정 기능, 360도 회전기능, 위치와 전류 피드백 기능, 과전류 보호 기능 등 많은 혁신적인 기능을 가지고 있습니다.
RC서보모터의 제어 명령 인터페이스 : PWM
AI모터의 제어 명령 인터페이스 : RS-232 비동시 직렬 통신에 의한 패킷 신호
댓글목록
등록된 댓글이 없습니다.