아두이노 5+1축 로봇 펌웨어입니다.

README.md

5+1 DOF 로봇 펌웨어#

이 펌웨어는 아래의 로봇을 조종하는 펌웨어입니다.

robot

아래의 로봇은 아두이노 우노 rev.3 보드와 SensorShield v5.0 이 합체되어 로봇의 6개 서보를 조종합니다.

조이스틱 컨트롤러는 아날로그신호에 연결되어있으나, 기능은 없습니다. 수입사 SCIPIA가 제공한 코드를 바탕으로 로봇을 테스트하기위하여 부착되어있으며, 이 코드는 SCIPIA 코드와 무관합니다.

로봇은 반드시 12v DC 전원장치를 SensorShield v5.0에 연결해야 작동합니다. 없이는 전원이 부족하여 작동하지 않습니다. 현재 보유중인 장치는 DC 입력과 점퍼캐이블, 볼티지 레귤레이터가 다 달려 꽃기만 하면 됩니다. 없다면 최악의 경우 볼티지 레귤레이터 부품을 직접 만들어야 할 수도 있습니다. 다른 모든 부품은 중국에서 수입만 했는데 볼티지 레귤레이터만 SCIPIA가 직접 만들고 인증 받은것으로 보입니다.

예시 전원 장치#

IMG_6651

로봇 제어 방법#

서보 설정#

서보는 0번부터 시작하여 5번까지 번호가 매겨져있으며 0번이 맨 아래이고 순서대로 번호가 매겨져 5번이 집게를 열고 닫는 역할을 합니다.

3번 서보와 5번 서보는 기동 각도가 다른 서보와 다르며, 3번은 130도, 5번은 105~8도 정도입니다.

5번이 0도일때 집게가 열린 상태이고 108도일때 완전히 닫힌 상태입니다.

기동 불가능한 범위에 서보를 강제로 작동 시키거나, 서보 모터에 토크락이 걸린 상태에서 무리하게 서보를 움직이면 서보모터의 회로에 "스탈 토크"라는 현상이 일어나 과전류가 흐르고, 내부가 불타 망가져버리니 조심하시길 부탁드립니다.

이것은 특히 무거운 물건을 들어올릴려 할때 문제가 크게 됩니다. 100g 이상의 물건을 들어올리려 하지 마십시오.

0번 서보는 3번 포트에, 1번은 2번에 3번은 8번에, 4번은 12번에, 5번은 13번에 꽃혀있으며 이는 코드상에서 변경 가능합니다.

시리얼 통신#

아두이노의 Serial Monitor나 시리얼 통신 터미널을 통하여 명령을 내릴 수 있습니다.

직접조종#

{S<서보번호>:각도, ...}형태의 명령어를 통해 서보를 직접 조종할 수 있으며, 코드에 미리 정의된 한계각도범위를 벗어나면 수정됩니다. SERVO_MAX SERVO_MIN 행렬 변수에 의하여 코드상에서 선언되어 있습니다.

녹화#

RECORD 명령어를 통하여 행동에 대한 녹화가 가능하며, 1초에 한번의 명령을 수행한다고 할때, 약 30초의 명령을 저장 할 수 있을 것입니다. 아두이노 우노 기준으로 이미 SRAM이 부족해 이 이상은 어려우며, 하드코딩으로 30초 제한을 걸어두었습니다. 만약 다른 ESP32기기에 이식하게 된다면, 그때는 RECORD_TIMEOUT_MS 변수를 수정해 변경하는것을 고려 해 보십시오. 행동에 대한 녹화는 앞서 언급한 서보 직접 조종 명령어를 기록하여 수행됩니다.

중지#

STOPRECORD, PLAYSEQUENCE를 중단하는 기능입니다.

재생#

PLAYRECORD로 기록한 행동을 다시 재생합니다.

시연 용 움직임 재생#

SEQUENCE는 코드상에 하드코딩된 행동을 재생합니다. 현재 들어가 있는 명령어는 병뚜껑을 잡아 오른쪽에 있는 컵에 넣는 행위를 기록한 것입니다. 빠른 시연을 위하여 만들어졌습니다. 아래의 영상을 참조하세요.