산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Littlearm 2C:3D 인쇄 Arduino 로봇 팔 제작

구성품 및 소모품

Arduino Nano R3
× 1
서보(타워 프로 MG996R)
MG90S 서보
× 4
메페드 보드
× 1

필요한 도구 및 기계

3D 프린터(일반)

이 프로젝트 정보

LittleArm 2C는 STEM 수업에서 더 많은 로봇 공학 커리큘럼을 구현할 수 있도록 아이들이 쉽게 사용할 수 있는 키트로 설계되었습니다. 아이들이 사용하기 쉽도록 더욱 견고하고 조립하기 쉽게 제작되었습니다.

모든 부품은 쉽게 3D 인쇄할 수 있으며 팔을 매끄럽고 단순하게 유지하도록 설계되었습니다. 전체 디자인에는 15개 미만의 나사가 있습니다.

팔을 제어하려면 Windows 애플리케이션(원래는 여기에서 Python 코드로 작성됨)을 사용하거나 이를 위해 만든 Android 앱과 함께 Bluetooth를 통해 사용할 수 있습니다.

LittleArm 2C 조립에 대한 전체 지침은 여기에서 찾을 수 있습니다.

3D 프린팅 파일은 여기에서 다운로드할 수 있습니다.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • LittleArm 2C Arduino 스케치
  • LittleArm 2C Arduino 스케치C/C++
    // LittleArm 2C arduino 코드// LittleArm 2C 3D 인쇄 로봇 팔의 직렬 제어 허용 // Created by Slant Concepts#include  //arduino library#include  //standard c library#define PI 3.141서보 베이스서보; 서보 숄더서보; 서보 엘보 서보; 서보 그리퍼서보;//++++++++++++++++++전역 변수++++++++++++++++++++++++++++++ +++struct jointAngle{ //구조체는 변수를 그룹으로 구성하는 방법입니다. int base; 인트 숄더; int 엘보;};구조체 jointAngle desiredAngle; //servosint의 원하는 각도 desiredGrip; // 그리퍼의 원하지 않는 위치 gripperPos; //gripperint 명령의 현재 위치; // 관절 각도의 집합int desiredDelay; // 서보가 단계 사이에서 만드는 지연 // int ready =0; // 프로세스가 완료되었음을 알리는 데 사용되는 마커 //+++++++++++++++FUNCTION DECLARATIONS+++++++++++++++++++ ++++++++int servoParallelControl(int thePos, Servo theServo); //서보를 제어하는 ​​함수입니다.//++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++void setup() // 아두이노 보드 작동 준비 완료{ Serial.begin(9600); // USB 통신(Serial Port)을 켜고 초당 9600비트로 통신하게 한다 baseServo.attach(5); // 핀 5의 서보를 서보 객체에 연결합니다. ShoulderServo.attach(4); // 4번 핀의 서보를 서보 객체에 연결합니다.elbowServo.attach(3); // 3번 핀의 서보를 서보 객체에 연결합니다.gripperServo.attach(2); // 핀 2의 서보를 서보 객체에 연결합니다. Serial.setTimeout(50); //컴퓨터와의 대화 시도를 중지하면 50밀리초 후에 응답이 없습니다. arduino가 너무 오랫동안 직렬을 읽지 않도록 합니다. Serial.println("started"); // "시작됨" 컴퓨터로 인쇄 baseServo.write(90); //서보의 초기 위치 ShoulderServo.write(100); ElbowServo.write(110);// 준비 =0;} //기본 arduino 루프. 이것은 모든 기본 프로그램이 배치되어야 하는 곳입니다.void loop() { if (Serial.available()){ // 데이터가 USB 포트를 통해 arduino로 들어오는 경우...// ready =1; // Ready는 명령이 실행 중임을 나타내기 위해 1로 설정됩니다. // 명령은 "#,#,#,#,#,\n" 형식으로 컴퓨터에서 전송됩니다. // 아래 코드는 해당 명령을 "파싱"합니다. // 각각 기본 각도, 어깨 각도, 팔꿈치 각도, 그립 각도 및 서보의 지연에 해당하는 정수로 변환합니다. DesiredAngle.base =Serial.parseInt(); 원하는 각도.숄더 =Serial.parseInt(); DesiredAngle.elbow =Serial.parseInt(); 원하는그립 =Serial.parseInt(); 원하는 지연 =Serial.parseInt(); if(Serial.read() =='\n'){ // 마지막 바이트가 '\n'이면 읽기를 중지하고 명령을 실행합니다. '\n'은 '완료'를 나타냅니다. Serial.flush(); //버퍼에 쌓인 다른 모든 명령을 지웁니다. Serial.print('d'); // "d" 명령의 완료 보내기는 "실행 완료"를 나타냅니다. } } // 이 값은 관절이 아직 위치에 도달했는지 여부의 상태입니다. // 다음과 같이 프로그램의 일부 내부에 선언된 변수 , "로컬 변수"라고 합니다. int status1 =0; // 기본 상태 int status2 =0; // 어깨 상태 int status3 =0; //팔꿈치 상태 int status4 =0; //그리퍼 상태 int done =0; // 이 값은 모든 관절이 해당 위치에 도달했을 때를 알려줍니다. while(done ==0){ // 모든 관절이 해당 위치에 도달할 때까지 루프 &&ready ==1 //서보를 원하는 위치로 이동 //이 블록의 코드는 "함수"를 사용하여 보다 간결하게 만듭니다. status1 =ServoParallelControl(desiredAngle.base, baseServo, desiredDelay); status2 =servoParallelControl(desiredAngle.shoulder, ShoulderServo, desiredDelay); status3 =servoParallelControl(desiredAngle.elbow,elbowServo,desiredDelay); status4 =servoParallelControl(desiredGrip,gripperServo,desiredDelay); // 모든 관절이 제 위치에 도달했는지 확인 if (status1 ==1 &status2 ==1 &status3 ==1 &status4 ==1){ done =1; //완료되면 =1이면 루프가 중지됩니다. } }// while의 끝}//+++++++++++++++++++++++++++++ +기능 정의++++++++++++++++++++++++++++++++++++++++++++int ServoParallelControl(int thePos , Servo theServo, int theSpeed ​​){ //함수 형식:outputType FunctionName(inputType localInputName) //이 함수는 서보를 원하는 위치로 일정 수만큼 이동하고 해당 위치에 가까웠는지 또는 다시 캐시했는지 반환합니다. // thePos - 원하는 위치 // thServo - 이동하려는 서보의 주소 핀 // Speed ​​- 서보 단계 간의 지연 int ​​startPos =theServo.read(); //우리가 작업하고 있는 서보의 현재 위치를 읽습니다. int newPos =startPos; // newPos는 이동할 때 서보의 위치를 ​​유지합니다 // 명령과 관련하여 위치가 어디에 있는지 정의 // 현재 위치가 원하는 것보다 작으면 위치를 위로 이동 if (startPos <(thePos-5)){ newPos =newPos + 1; theServo.write(newPos); 지연(theSpeed); 반환 0; // 서보가 위치에 도달하지 않았다고 주 프로그램에 알립니다. } // Else 현재 위치가 원하는 것보다 크면 서보를 아래로 이동합니다. else if (newPos> (thePos + 5)){ newPos =newPos - 1; theServo.write(newPos); 지연(theSpeed); 반환 0; } // 서보가 원하는 범위 내에서 +-5이면 서보가 원하는 위치에 도달했음을 메인 프로그램에 알립니다. 그렇지 않으면 { 반환 1; } } //서보 병렬 제어 종료

    회로도

    Littlearm이 설계된 Meped Board를 사용하면 연결이 4개뿐입니다.

    제조공정

    1. Bluetooth를 통해 제어되는 Raspberry Pi Robot
    2. Arduino 및 Raspberry Pi로 인터넷 제어 비디오 스트리밍 로봇 구축
    3. Haddington Dynamics의 오픈 소스 3D 인쇄 로봇 팔
    4. 듀얼 암 SCARA 로봇
    5. MeArm 로봇 암 - 로봇 - V1.0
    6. 라인 팔로워 로봇
    7. Arduino 3D 인쇄 로봇 팔
    8. Nunchuk 제어 로봇 팔(Arduino 포함)
    9. 음성 제어 로봇
    10. 이더넷을 통해 제어되는 로봇 암