Assembly of the “Finger Starter” / inmoov
inmoov를 따라 해 보고 싶어서 사이트에서 가입을 했으나 inmoov나 로봇 사진을 프로필에 등록해야만 가입이 되는 것 같았다. 가입을 하지 않아도 모든 글들은 open이 되어 있는 것 같아서 어느 정도 진전이 있기까지는 가입이 어려울 것 같다.
이번 포스팅은 실제로 inmoov를 따라서 만들기 전에 손가락 하나를 서보모터를 사용해서 움직여보는 새로 시작하는 사람들을 위한 기초적인 내용이다.
Gallery. 링크를 따라가서 Finger-Starter-Kit을 선택하고 우측에서 display all parts를 선택하면 다음과 같은 4개의 STL 파일이 나온다. STL 파일은 3차원 데이터를 표현하는 국제 표준 중의 하나이고 우리는 것을 받아서 3D 프린터용으로 변환을 해야 한다. 내가 쓰는 3D 프린터는 Ender 3이고 3D 프린터에서 STL 파일을 직접 출력을 할 수 없어 Cura라는 슬라이싱 프로그램을 사용한다.
- 1x FingerIndex
- 1x FingerTester
- 1x RobRing
- 1x Servo-Pulley
나중에 찾아질지는 모르겠으나 3D 프린팅을 어떻게 해야하는지에 대한 가이드는 못 찾았다. 다만 RC 비행기를 만들면서 몇 번 출력을 해 본 경험으로 큐라의 standard 품질에 서포터만 추가해서 프린팅을 할 예정이다. 대략 6시간이 걸린다고 한다.
해당 사이트에서는 Calibrator를 출력해서 각 파트들이 잘 맞을지 각자가 가지고 있는 3D 프린터의 설정을 확인하라고 한다. 하지만 3D 프린터를 어떻게 설정하라는 것에 대한 설명은 없다. 3D 프린터는 gcode라는 확장자를 가진 파일을 이력으로 해서 프린팅을 한다. 여기에는 출력할 3D 모형과 프린터 설정값을 가지고 있다. 그래서 gcode 파일들을 공유하기도 하는데 안타깝게도 여기선 찾지 못했다.
나는 큐라에서 제공하는 Ender 3의 Standard Quality를 선택을 했고, 내부채움밀도를 20%에서 30%로 증가시키고 프린팅 온도를 225도 그리고 빌드 플레이트 온도를 55도로 설정을 했다. 필라멘트는 ESUN의 PLA를 사용했다.
손가락을 움직여보기 위해서는 3D 프린터의 출력물과 함께 서보모터라는 것이 필요하다. 여기서는 HK15298을 사용했다고 하고 비싸다면 좀더 저렴한 모델 MG995라는 모델을 추천을 한다. 그리고 마지막으로는 이것들과 사이즈만 맞다면 뭐를 써도 상관 없다고 한다. inmoov를 완성하려면 손가락 하나당 하나의 모터와 움직이는 관절마다 모터가 필요하기 때문에 가격이 높으면 부담스럽다. 그래서 이번 테스트에는 RC 비행기에 쓰는 아주 작고 저렴한 서보 모터로 우선 1차 테스트를 해 보고 안될 것 같으면 사이즈만 맞는 저렴한 서보모터를 구매하려고 한다. 참고로 22개의 서보모터가 inmoov 완성품에는 들어간다고 한다.
다음 서보모터를 구동하기 위한 컴퓨터 아두이노(Arduino Uno)가 필요하다. 수 많은 모터가 연결되기 때문에 분명 하나의 아두이노로는 해결이 안될 것 같다. 하지만 이번 테스트에는 모터가 하나다. 이들을 동작시키기 위해서는 전원이 필요한데 여기서 추천을 하는 서보모터의 경우에는 전류를 많이 쓰기 때문에 별도의 파워를 추천한다. 만일 전원이 부족하다면 서보모터가 떨린다거나 아두이노가 리부팅을 할 수 있다고 한다.
필요 물품 중에 마지막으로 낚시줄이 있다. 0 ~ 180도를 움직이는 서보모터에 낚시줄을 연결해 손가락을 굽히고 펴는 동작을 만든다. 원문에 보면 낚시줄 200LB라고 되어 있는데 낚시를 하는 사람들에게는 조금은 더 익숙해 보일 수 있는 용어로 변경을 해 보자면 60호 낚시줄이다. 낚시를 모르는 사람은 두께가 약 1.28 mm인 아주 두꺼운 낚시줄이라고 생각하면 된다.
어떻게 하면 저 거미줄들을 없앨 수 있는지 프린트 설정을 찾아야겠다. 다른 곳에서 같은 프린터의 설정을 받긴 했지만 Ender 3의 경우 제품마다 오차가 있는 것이 아닌가 하는 생각도 든다. 다시 프린트를 하지 않고 사포와 칼 마지막에는 인두로 살짝 정리를 했다. 지저분해서 아쉽긴 하지만 만들어 동작시키는데는 무리가 없어 보인다. 프린트 된 부품들 중에서 손가락 부분은 한쪽에 숫자가 1에서 6까지 양각되어 있다. 그리고 두 개의 원반과 본체로 구성이 되어 있다.
손가락 부품은 1과 2, 3과 4를 붙여야 한다. 숫자를 마주보게 하고 붙이면 된다. 두 부품을 붙일 때는 에폭시 본드를 사용해야 한다. 특히 나와 같이 PLA를 사용한다면 반드시 에폭시 본드를 사용하길 추천한다. PLA를 약간 녹여서 붙이는 방식이기 대문에 접착력이 우수하다. 마지막 5와 6은 접착하지 않아야 한다. 마지막에 낚시줄을 연결하고나서 접착을 해야 한다. 그리고 번호 순서대로 다음의 그림과 같이 구멍 사이에 필라멘트를 넣어 마무리한다. 내 경우에는 사용하던 1.75mm 필라멘트를 이용했고 본드로 양쪽을 붙였다. 아직까지 전체적으로 준비가 되지 않았으니 이렇게라도 진행을 빨리 하고 싶었다.
필라멘트 끝 부분에만 본드를 붙여서 손가락 관절은 잘 움직이도록 둬야 한다. 다음은 드디어 서보모터를 달아야 할 것인데 inmoov에서 추천하는 서보가 준비가 되어 있지 않은 관계로 MG90이라는 미니 서보모터를 이용해 볼 것이다. 하지만 서보모터의 크기 차이 때문에 바로 장착을 할 수가 없어서 다음과 같이 3D 모델링을 했다. 서보 모터의 크기와 고정을 할 수 있는 홀을 몇개 뚤은 것이 전무이지만 이것이 나의 첫 3D 모델링이다. STL 파일은 맨 하단에서 다운로드 받을 수 있다.
서보모터를 장착하면 다음과 같은 그림이 된다.
서보모터와 연결이 될 부분은 다음과 같은 원판이다. 원판에는 다음 그림과 같이 낚시줄이 연결이 된다. 여기서 쓰는 낚시줄은 앞서 소개한 200LB짜리가 아니라 그냥 집에 있는 두꺼운 낚시줄을 사용했다. 낚시줄을 원판에 끼운 후에 중요한 것은 어떻게 연결을 하는가인데 각 구명에 걸릴 정도로 매듭을 지어 주어야 한다는 것이다. 낚시줄은 손가락 끝까지 가서 묶어 줄 것이기 때문에 길이는 넉넉하게 하자.
이 원반이 서보모터와 연결이 되어서 줄을 잡아당겨 손가락을 굽히게 되는 매커니즘이다. 그런데 원반은 내가 사용하는 미니서보모터가 아니기 때문에 홀이 서보모터의 기어보다 커서 헛돈다. 나사를 아무리 박아도 안되어 결국에는 다음과 같이 본드로 붙였다. 이때는 에폭시가 아니라 순간접착제를 이용했다.
여기까지 준비가 되면 서보모터를 동작시켜 현재의 위치를 파악해야 한다. 그래서 아두이노 우노보드에 다음의 소스코드를 업로드 해야 한다. 아두이노에 대해서 모른다면 "아두이노 로봇 howto"로 검색을 해서 보도록 하자.
#include <Servo.h>
Servo servoindex; // Define index servo
void setup() {
servoindex.attach(3); // Set index servo to digital pin 3
}
void loop() { // Loop through motion tests
alltorest(); // Uncomment to use this
delay(4000); // Uncomment to use this
alltomax(); // Uncomment to use this
delay(2000); // Uncomment to use this
}
// Motion to set the servo into "rest" position: alltorest
void alltorest() {
servoindex.write(0);
}
// Motion to set the servo into "max" position: alltomax
void alltomax() {
servoindex.write(180);
}
소스코드는 아주 간단해서 0도와 180도 회전을 반복하는 것이다. 이 코드를 아두이노에 올리고 데이터 핀은 3번에 ACC와 GND는 각각 3번핀 맞은 편에 5v와 GND에 꼽아주면 된다. 전원은 별도로 인가하지 않아도 USB 전원으로도 충분히 동작을 한다. 서보의 동작을 보면서 아래에 6시 쪽의 위치가 12시 방향으로 반시계 방향으로 도는 것을 기억을 하고 6시 방향과 12시 방향에 맞게 원판을 고정시켜야 한다.
다음은 원판에 연결된 낚시줄을 손가락 끝 부분까지 아랫쪽은 각 손가락 부분의 아래쪽으로 윗부분은 윗쪽으로 연결을 해서 손가락이 펴진 상태로 튼튼하게 묶어주면 된다.
묶은 다음에는 마지막 손가락 끝을 본드로 붙여준다. 다른 부분과 다르게 숫자가 있는 부분이 반대로 되어야 한다. 잘 보면 손톱 모양이 있기 때문이다.
완성이다.
제대로 되었다면 다음과 같은 모양이 된다.
생각보다 큰 기술이 들어간 것도 아니고 아두이노를 이용해 서보모터를 돌리는 것이 전부이다. 그리고 생각보다 미니 서보로도 괜찮을 것 같다는 생각이 들었다. inmoov 동영상을 찾아보면 손으로 무언가를 잡는 것도 시연을 하는데 서보모터와 낚시줄로 뭔가를 잡는다는 것은 '잡을 수도 있다'를 보여주는 것이지 무언가를 잡을 용도는 아닌것 같아 마이크로 서보모터를 계속 이용해서 inmoov를 만들어 볼까 하는 생각도 든다. 다만 MG90 마이크로 서보모터의 브라켓을 다시 만들어야겠다. 위의 그림에서 보면 손가락과 원반이 일직선이 되지 않는다. 이 부분만 손보면 괜찮을 듯 싶다. 그런데 서보모터의 속도를 조절하지 않고 무조건 회전만 시키니 다음의 동영상에서 보는 것처럼 자연스럽지가 않다. 살살 따라가면서 필요한 부분은 수정해 봐야겠다.
※ 이번 내용은 https://inmoov.fr/finger-starter/를 참고로 작성되었습니다.
'3D프린팅' 카테고리의 다른 글
로봇제작 #02 손과 팔 / Step1 (0) | 2021.08.22 |
---|---|
[RC비행기 만들기] Shark Aero #01 (0) | 2021.08.14 |
Ender 3 셋업 및 시험 운용 (0) | 2021.08.09 |
3D 프린터로 무엇을 할까? (0) | 2021.08.02 |
3D 프린터를 주문하다 (0) | 2021.07.22 |
댓글