제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
그림> 그림> 그림>
로봇 팔은 굉장합니다! 전 세계의 공장에는 정밀하게 페인트, 납땜 및 운반하는 공장이 있습니다. 우주 탐사, 해저 원격 조종 차량, 의료 분야에서도 찾을 수 있습니다!
이제 집, 사무실 또는 연구실에서 더 저렴한 버전을 사용할 수 있습니다! 반복적인 작업에 지치셨나요? 자신의 로봇을 프로그래밍하여 당신을 돕거나 ... 또는 엉망으로 만드십시오! :D
이 튜토리얼에서는 로봇 팔을 장착하는 방법과 Arduino Mega를 사용하여 프로그래밍하는 방법을 보여줍니다. 이 프로젝트에서는 Nintendo Nunchuk을 사용하여 로봇 팔을 제어하는 다른 방법도 경험하고 싶었습니다! 저렴하고 찾기 쉬우며 많은 센서가 있습니다.
이 튜토리얼을 사용할 수 있는 몇 가지 방법이 있습니다. 로봇 팔 키트가 없고 구매하거나 구축하고 싶지 않은 경우에도 이를 사용하여 Arduino 프로그래밍에 대해 배우고 Wii Nunchuk을 자신의 프로젝트에 인터페이스하는 방법을 배울 수 있습니다. 전자 기술과 기계 기술을 연습하는 데 사용할 수도 있습니다.
1단계:도구 및 재료 그림> 그림> 그림> 그림>
이 프로젝트에 사용된 도구와 자료는 다음과 같습니다.
도구 및 자료:
<울>나중에 Nunchuk 어댑터 가 있다는 소식을 들었습니다. 브레드보드에 더 쉽게 연결할 수 있습니다(링크/링크). 9단계에서 설명한 대로 납땜 작업을 동일하게 하고 원래 커넥터를 파괴하지 않으려는 경우에 좋은 옵션입니다.
Sain Smart 6축 기계식 데스크탑 암은 이미 다음 구성 요소와 함께 제공됩니다.
<울>온라인에서 다른 로봇 팔 키트를 찾거나 직접 디자인할 수도 있습니다. 예를 들어 3D 인쇄할 수 있는 멋진 프로젝트가 있습니다.
다음 7단계에서는 회로를 배선하기 전에 암 키트를 조립하는 방법을 보여 드리겠습니다. 비슷한 키트가 없으면 몇 단계를 건너뛰어도 됩니다. 다른 로봇 팔 키트를 사용하여 조립하고 전자 장치 및 프로그래밍 단계로 바로 이동할 수 있습니다.
각 단계마다 로봇 팔이 어떻게 조립되었는지 보여주는 애니메이션 gif가 있습니다. 웹사이트의 데스크톱 버전에서만 실행됩니다.
2단계:로봇 팔 조립 Pt1 - 베이스 그림> 그림>
가장 먼저 조립할 부품은 로봇의 베이스입니다.
그림과 같이 2개의 U자형 브래킷으로 구성되며 4개의 M3 볼트와 너트를 사용하여 등을 맞대어 결합됩니다. 이것은 아마도 장착하기 가장 쉬운 부분일 것입니다.
3단계:로봇 암 조립 Pt2 - 서보 #1 그림> 그림> 그림> 그림>
첫 번째 서보 모터는 서보 브래킷을 사용하여 베이스에 수직으로 장착됩니다. 이 프로파일은 그림과 같이 4개의 M3 볼트와 너트를 사용하여 베이스에 부착됩니다. 서보 #1은 그 위에 위치하며 4개의 M3 볼트와 너트를 사용하여 부착됩니다.
서보 축에는 원형 금속 혼이 부착되어 있습니다. 키트에는 여러 개의 플라스틱 뿔이 있습니다. 로봇 조립에 사용되지 않습니다.
4단계:로봇 암 조립 Pt3 - 서보 #2 그림> 그림> 그림> 그림> 그림> 그림>
다른 서보 브래킷은 이전 서보 브래킷과 수직으로 장착됩니다. M3볼트 4개를 이용하여 서보 1번 혼에 연결합니다. 서보 #2는 4개의 M3 볼트와 너트로 설치되며 원형 금속 혼을 사용합니다.
그런 다음 4개의 볼트를 사용하여 U 브래킷을 혼에 부착합니다. M3 볼트는 서보 축 반대쪽에 사용됩니다. 구조에 안정감을 줍니다. 베어링이 이 볼트에 맞고 다른 M3 너트를 사용하여 제자리에 고정됩니다. 이렇게 하면 U 브래킷이 서보 #2 중심축에 단단히 부착됩니다.
5단계:로봇 암 조립 Pt4 - 서보 #3 그림> 그림> 그림> 그림> 그림>
또 다른 U 브래킷은 4개의 M3 볼트와 너트를 사용하여 장착됩니다.
다른 쪽 끝에는 원형 금속 혼과 4개의 볼트를 사용하여 서보 #3이 설치됩니다. 서보 모터에 서보 브라켓이 연결되어 있고, 볼트와 너트를 이용하여 서보 브라켓에 L자 모양의 프로파일이 연결되어 있습니다.
앞에서 설명한 것처럼 다른 베어링이 서보 축과 반대 방향으로 사용됩니다.
6단계:로봇 팔 조립 Pt4 - 서보 #4 그림> 그림>
다른 U 브래킷은 4개의 M3 볼트와 너트 세트를 사용하여 L자형 프로파일에 연결됩니다. 이전 단계와 마찬가지로 서보 #4는 4개의 볼트를 사용하여 U 브래킷에 장착됩니다. 다른 서보 브래킷이 서보에 연결되어 있습니다.
7단계:로봇 암 조립 Pt4 - 서보 #5 그림> 그림>
다섯 번째 서보는 4개의 M3 볼트와 너트를 사용하여 설치된 다른 서보 브래킷을 사용하여 서보 #4에 수직으로 연결됩니다.
8단계:로봇 팔 조립 Pt4 - 서보 #6 그림> 그림>
그런 다음 그리퍼는 서보 #5 축에 연결됩니다. 그 위에 서보 # 6은 일부 볼트, 너트 및 금속 혼을 사용하여 연결됩니다. 그리퍼에는 서보의 회전을 그리퍼의 선형 이동으로 바꾸는 몇 개의 기어가 있습니다.
9단계:Nunchuk 컨트롤러 준비 그림> 그림> 그림> 그림>
이 프로젝트에서 저는 여러 가지 이유로 Nintendo Nunchuk 컨트롤러를 사용하기로 결정했습니다.
<울>불행히도 Nunchuk 조이스틱은 다른 전자 장치와 인터페이스하기 어려운 복잡한 커넥터를 가지고 있습니다. Arduino에 연결하려면 케이블을 자르고 전선을 노출시켜야 했습니다. 이렇게 하면 더 이상 Nintendo Wii에서 작동하지 않습니다... :/
먼저 조이스틱의 커넥터를 자르고 전선의 절연체를 제거해야 했습니다. 멀티미터를 사용하여 각 전선의 색상을 기준으로 그림에 표시된 커넥터의 개략도를 기반으로 각 전선(Vcc, GND, SCL 및 SDA)의 기능을 결정했습니다. 전선의 색상에는 표준이 없습니다. 나는 이미 다음과 같은 가능성에 대해 들었습니다.
원본:
<울>복제본 #1:
<울>복제본 #2:
<울>Arduino 보드에 더 쉽게 연결할 수 있도록 전선을 수 점퍼에 납땜했습니다. 이를 위해 그림과 같이 납땜 인두와 수축 튜브를 사용했습니다.
나중에 브레드보드(링크/링크) 연결을 쉽게 해주는 Nunchuk 어댑터가 있다는 소식을 들었습니다. 납땜에 대해 동일한 시간을 원하고 원래 커넥터를 파괴하고 싶지 않은 경우에 좋은 옵션입니다.
10단계:회로 배선 그림> 그림>
구조가 조립되고 Nunchuk 커넥터가 완료되면 회로를 배선할 준비가 됩니다. 로봇 팔 키트와 함께 제공된 제어 보드 실드를 사용했습니다. 서보 모터, 전원 공급 장치 등을 위한 특정 커넥터가 이미 제공되기 때문에 구성 요소를 더 쉽게 연결할 수 있습니다.
다음과 같이 구성 요소를 연결합니다.
눈축:
<울>Arduino Uno를 사용하는 경우 Nunchuk의 SCL 및 SDA 핀을 다음과 같이 서로 다른 Arduino 핀에 연결해야 합니다.
<울>서보:
<울>제어 실드를 사용하지 않는 경우 다음 핀 구성을 사용해야 합니다.
<울>또한 외부 12V 전원 공급 장치를 연결해야 합니다. 나는 2A 이상의 출력을 가진 것을 제안합니다. 서보는 많은 전력을 소비하며, 전원 공급 장치가 충분히 강력하지 않으면 서보가 진동하고 매우 뜨거워집니다. 그들은 또한 힘을 잃을 것입니다.
Arduino 코드를 업로드할 때까지 전원을 연결하지 마십시오(나중 단계 참조). 방패에 전원 버튼이 있습니다. 꺼진 상태로 유지하세요.
아두이노에 USB 케이블을 연결하고 다음 단계로 진행합니다.
11단계:Arduino IDE 설정 그림>
하드웨어가 준비되었으므로 Arduino 코드를 작업할 차례입니다.
1. Arduino IDE 최신 버전 다운로드 및 설치 Arduino 웹사이트:https://www.arduino.cc/en/main/software
에서 Windows, Linux 또는 MAC OSX용 최신 버전을 찾을 수 있습니다.무료로 다운로드하여 컴퓨터에 설치하고 실행하십시오.
2. 라이브러리 추가
이 프로젝트에서는 Robert Eisele의 놀라운 Nunchuk Arduino 라이브러리를 사용했습니다! 그의 웹사이트에서 더 많은 정보를 찾을 수 있습니다:
https://www.xarg.org/2016/12/using-a-wii-nunchuk-with-arduino/
https://github.com/infusion/Fritzing/tree/master/Wii-Nunchuk
에서 라이브러리를 다운로드하세요.스케치 -> 라이브러리 포함 -> 라이브러리 관리로 이동합니다. ... 라이브러리를 추가하기 위해 Arduino IDE에서.
라이브러리는 어떻게 작동하나요?
Nunchuk 라이브러리에는 컨트롤러의 센서를 읽기 위한 일련의 기능이 있습니다.
눈척_버튼Z() :Z 버튼이 눌려지면 1을 반환하고 그렇지 않으면 0을 반환합니다. 눈척_버튼C() :C 버튼이 눌리면 1을 반환하고 그렇지 않으면 0을 반환합니다. 눈척_조이스틱X() :조이스틱의 x 값을 반환합니다(-127에서 127 사이). 눈척_조이스틱Y() :조이스틱의 y 값을 반환합니다(-127에서 127 사이). 눈척_피치() :컨트롤러의 각도를 라디안 단위로 반환합니다(-180º와 180º 사이). 눈척_롤() :컨트롤러의 롤 각도를 라디안으로 반환합니다(-180º ~ 180º).
각도는 라디안으로 반환됩니다. 내 Arduino 코드에서 이 값을 각도로 변환했습니다.
12단계:Arduino 코드 그림> 그림> 그림> 그림> 그림>
Arduino의 스케치 파일을 다운로드하세요.
컴퓨터의 USB 포트에 USB 케이블을 연결하고 코드를 업로드하십시오. 코드를 업로드하는 데 시간이 걸립니다. 당신이 기다리는 동안 이 튜토리얼을 '좋아요'와 '공유'하기 위해 그 시간을 사용할 수 있습니다! :D
업로드가 완료되면 USB 케이블을 뽑고 전원을 연결하고 전원 버튼을 켭니다. 코드가 즉시 실행되기 시작합니다.
경고:코드 실행이 시작되면 로봇 팔이 초기 위치로 정말 빠르게 움직입니다. 시작하는 동안 다치거나 주변 장비가 손상되지 않도록 주의하세요!
서보가 장착된 위치에 따라 각 서보 모터의 시작 각도를 교체해야 할 수도 있습니다.
설명된 코드:
설정 전에 코드는 스케치에 사용된 라이브러리(nunchuk.h, wire.h 및 servo.h ).
사용할 핀을 정의하고 전역 변수를 선언합니다. 각도# 정수 변수는 각 서보의 초기 위치를 저장합니다. 로봇이 다른 위치에서 시작하도록 하려면 해당 변수의 값을 변경하십시오.
서보#_속도 변수는 각 서보의 이동 속도를 정의합니다. 특정 서보가 더 빨리 움직이도록 하려면 값을 높이십시오. 각도#분 및 각도#최대 변수는 각 서보의 최대 및 최소 각도를 제한하는 데 사용됩니다. 로봇의 연속적인 관절 사이의 충돌을 피하기 위해 이러한 변수를 설정할 수 있습니다.
//라이브러리 포함#include #include #include //변수 정의#define SERV1 8 //디지털 포트 8의 서보 1#define SERV2 9 //디지털 포트 9의 서보 2#define SERV3 10 //디지털 포트 10의 서보 3#define SERV4 11 //디지털 포트 11의 서보 4#define SERV5 12 //디지털 포트 12의 서보 5#define SERV6 13 / 디지털 포트 13Servo s1의 /servo 6; //서보 1서보 s2; //서보 2서보 s3; //서보 3서보 s4; //서보 4서보 s5; //서보 5서보 s6; //servo 6//각 서보에 대한 시작 각도 정의//시작할 안전한 위치 선택//전원을 켤 때 해당 위치로 순간적으로 이동하려고 시도합니다!//이 각도는 작동하는 동안 각 서보의 각도에 따라 달라집니다. 조립 각도1 =90; //서보 1 현재 angleint angle2 =30; //서보 2 현재 angleint angle3 =0; //서보 3 현재 angleint angle4 =90; //서보 4 현재 angleint angle5 =90; //서보 5 현재 angleint angle6 =45; //서보 6 현재 각도int servo1_speed =3; //서보 1 speedint servo2_speed =3; //서보 2 speedint 서보3_속도 =3; //서보 3 speedint 서보4_속도 =1; //서보 4 speedint 서보5_속도 =1; //servo 5 속도//각 서보에 대한 제한 정의//그 각도는 조립 중 각 서보의 각도에 따라 달라집니다. angle1min =0; //서보 1 최소 각도int angle1max =180; //서보 1 최대 각도int angle2min =0; //서보 2 최소 각도int angle2max =180; //서보 2 최대 각도int angle3min =0; //서보 3 최소 각도int angle3max =180; //서보 3 최대 각도int angle4min =0; //서보 4 최소 각도int angle4max =180; //서보 4 최대 각도int angle5min =0; //서보 5 최소 각도int angle5max =180; //서보 5 최대 각도int angle6min =0; //서보 6 최소 각도int angle6max =180; //servo 최대 6개의 angleboolean display_angles =true; // 직렬 모니터에서 각 서보의 각도를 업데이트하는 데 사용되는 부울
설정하는 동안 각 서보는 특정 핀에 연결되고 위치가 시작됩니다.
여기서부터 시리얼 통신(시리얼 모니터로)과 눈척과의 I2C 통신도 시작됩니다.
//SETUPvoid setup() { //각 서보를 핀에 연결하고 위치를 시작합니다. s1.attach(SERV1); s1.write(각도1); s2.attach(SERV2); s2.write(각도2); s3.attach(SERV3); s3.write(각도3); s4.attach(SERV4); s4.write(각도4); s5.attach(SERV5); s5.write(angle5); s6.attach(SERV6); s6.write(각도6); //시리얼 통신 시작 Serial.begin(9600); //눈축 시작 Wire.begin(); nunchuk_init();}
메인 루프는 계속해서 반복됩니다. Nunchuk 상태는 각 주기에서 읽습니다. 판독값에 따라 다른 명령이 수행됩니다.
void loop() { //눈척 센서 읽기 if (nunchuk_read()) { int x =nunchuk_joystickX(); //조이스틱 X 위치 int y =nunchuk_joystickY(); //조이스틱 Y 위치 부울 z =nunchuk_buttonZ(); //z 버튼 상태 부울 c =nunchuk_buttonC(); //c 버튼 상태 float pitch =nunchuk_pitch(); //피치 각도 플로트 롤 =nunchuk_roll(); //롤 각도
조이스틱 X는 서보 #1을 이동하는 데 사용됩니다.
다음 코드 블록이 사용되었습니다. 먼저 조이스틱의 값이 충분히 큰지 확인합니다. 이렇게 하면 노이즈와 작은 변화가 무시됩니다. 값이 요구 사항을 충족하면 주어진 속도로 서보 각도가 증가/감소합니다.
//좌회전/우회전(고정 속도로) //좌회전 if (x> 90) { angle1 -=servo1_speed; display_angles =참; if (각도1 <각1분) {각도1 =각도1분; } } //우회전 if (x <-90) { angle1 +=servo1_speed; display_angles =참; if (각도1> 각도1최대) {각1 =각도1최대; } } s1.write(각도1); //서보 위치 업데이트
유사한 블록이 조이스틱 y에 사용됩니다. 서보 #3의 각도를 변경할 때 사용합니다. 서보 #2는 이 코드에서 고정된 상태로 유지됩니다.
그리퍼의 회전은 가속도계로 측정된 컨트롤러의 롤 및 피치 각도로 제공됩니다. 암의 제어를 쉽게 하기 위해 C 또는 Z 버튼을 누를 때만 그리퍼의 각도가 업데이트됩니다.
C 버튼만 누르면 코드가 롤 각도를 읽어서 설정값으로 사용합니다. 서보 #5는 설정값에 도달할 때까지 회전합니다. 속도는 실제 위치와 원하는 위치의 오차에 비례합니다. Nunchuk의 피치 각도를 추적하는 서보 #4에도 유사한 코드가 사용됩니다.
// 버튼을 눌렀을 때만 가속도계 활성화 // 그리퍼 회전(Z 버튼만 누름) if (c &&!z) { roll =roll * 57.0 + 90.0; //도를 변환합니다.servo5_speed =abs(angle5 - roll)/10 + 1; //속도 비례는 실제 각도와 원하는 각도 사이의 오차를 수행합니다. if (roll> angle5) { angle5 +=servo5_speed; display_angles =참; } if (롤
C 및 Z 버튼을 모두 누를 때마다 그리퍼가 닫힙니다. 버튼 중 하나를 놓으면 로봇이 그리퍼를 엽니다.
//그리퍼 열기/닫기(두 버튼 모두 누름) if(z &&c) { s6.write(90); //그리퍼 닫기 display_angles =true; } 그렇지 않으면 { s6.write(45); //그리퍼 열기 }
스케치 끝에 코드 블록이 있습니다. Serial Monitor에 각 서보 모터의 실제 각도가 표시됩니다. 각 모터의 시작 각도를 선택하는 데 도움이 될 수 있습니다.
nunchuk.이노
13단계:사용 그림> 그림> 그림> 그림>
이제 모든 준비가 완료되었으므로 로봇의 전원을 켜고 즐거운 시간을 보내세요!
Nunchuk은 그림에 표시된 5가지 동작을 제어하는 데 사용됩니다. 오른쪽/왼쪽 회전, 위/아래 이동, 그리퍼 회전, 그리퍼 위/아래 이동, 그리퍼 열기/닫기 이동입니다. 다른 작업을 수행하기 위해 이러한 움직임을 결합할 수 있습니다.
버튼의 조합과 조이스틱의 각도에 따라 다양한 동작을 하도록 코드를 수정할 수 있습니다.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">미리보기 없음(다운로드만 가능).
제조공정
이 튜토리얼에서는 맞춤형 Android 애플리케이션을 사용하여 무선으로 제어하고 프로그래밍할 수 있는 Arduino 로봇 팔을 만드는 방법을 배웁니다. 로봇 부품 설계 및 3D 프린팅, 전자 부품 연결 및 Arduino 프로그래밍부터 로봇 팔 제어를 위한 자체 Android 애플리케이션 개발에 이르기까지 전체 제작 과정을 보여 드리겠습니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 개요 앱의 슬라이더를 사용하여 로봇 팔의 각 서보 또는 축의 움직임을 수동으로 제어할 수 있습니다. 또한 저장 버튼을 사용
3월에 게시됨. 2019년 7월 7일 | By WayKen Rapid Manufacturing, WayKen 프로젝트 관리자 자동화 생산은 불과 50년 전만 해도 환상이었습니다. 오늘날 CNC 프로토타이핑 서비스 산업의 등장으로 공항 복도에 설치된 자동판매기만큼 보편화되었습니다. 불과 몇 년 전만 해도 로봇 암 로더를 설치하기 위해 자격을 갖춘 전문가를 고용해야 했다면 이제는 많은 CNC 제조 장비에 암을 직접 연결할 수 있는 사전 설정 옵션이 있습니다. 그러나 로봇은 기본적으로 매우 비싸기 때문에 모든 CNC 생산 자동화의 필요