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

IoT를 사용하여 로봇 팔 원격 제어

구성품 및 소모품

Arduino MKR1000
× 1

필요한 도구 및 기계

레이저 커터(일반)

앱 및 온라인 서비스

MATLAB
Arduino IDE

이 프로젝트 정보

소개

제가 정말 해보고 싶었던 것은 로봇 팔을 처음부터 완전히 설계하는 것이었습니다. 사용할 수 있는 오픈 소스 디자인이 많이 있지만, 무(그리고 실제로)에서 하나를 디자인, 구축 및 프로그래밍할 수 있다면 기쁠 것이라고 생각했습니다.

디자인 단계와 프로그래밍 단계에 대해 이야기하겠습니다. 하지만 서보 각도를 제어하는 ​​것만이 아니기 때문에 프로그래밍 측면에 더 중점을 둘 것입니다.

다음은 실행 중인 최종 프로젝트의 비디오에 대한 링크입니다 - https://www.mathworks.com/videos/how-to-control-a-robotic-arm-from-a-remote-location-using-iot-1538564659095. HTML.

Simulink를 사용하여 로봇 팔을 제어하는 ​​MCU인 Arduino MKR1000을 프로그래밍했습니다. 그런 다음 MATLAB 분석이 포함된 개방형 IoT 플랫폼인 ThingSpeak를 통해 거의 모든 곳에서 로봇 팔을 제어할 수 있는 기능을 추가했습니다.

필요한 하드웨어

<울>
  • 15" x 20" 1/8인치 합판
  • <울>
  • 아두이노 MKR1000
  • <울>
  • 5x GS9025MG 서보
  • <울>
  • 2.1mm 브레드보드 친화적인 DC 배럴 잭
  • <울>
  • 6 V DC 배럴 잭 전원 공급 장치
  • <울>
  • 점퍼 와이어
  • <울>
  • 3x 2n2222a 트랜지스터
  • <울>
  • 10x M2 너트
  • <울>
  • 10x M2 x 10 나사
  • <울>
  • 40x M3 너트
  • <울>
  • 40x M3 x 25 나사
  • 사용된 소프트웨어

    <울>
  • MATLAB
  • <울>
  • 시뮬링크
  • <울>
  • Arduino 하드웨어용 MATLAB 지원 패키지
  • <울>
  • Arduino 하드웨어용 Simulink 지원 패키지
  • <울>
  • ThingSpeak용 MATLAB 지원 패키지
  • 디자인

    부품 가격을 낮게 유지하고 싶었기 때문에 취미용 서보, 특히 GS-9025MG 모델용으로 설계했습니다. 이것은 최종 무게와 크기가 제한되었음을 의미합니다. 마이크로 서보가 많은 토크를 발휘할 수 없어 무거운 레버 암을 들어 올릴 수 없었기 때문입니다.

    1/4인치 합판으로 프로토타이핑을 시도했는데 서보에 비해 너무 무거웠습니다. 팔 길이를 줄이고 1/8인치 합판을 사용하여 서보 제어 문제를 해결했습니다. Fusion 360을 사용하여 디자인을 그리고 .dxf 파일로 디자인을 다운로드한 다음 레이저 컷팅했습니다.

    또한 배터리 팩에서 끌어온 전류가 매우 높고 매우 빠르게 방전되기 때문에 벽면 콘센트에서 지속적인 DC 전압을 공급하는 것이 필요하다는 것이 입증되었습니다.

    모터 제어와 관련하여 Arduino MKR1000에는 4개의 PWM 핀이 있지만 5개의 ​​서보를 제어하려면 5개가 필요했습니다. 저는 창의력을 발휘하여 1개의 PWM 핀을 사용하여 2개의 서보를 제어하고 디지털 핀을 사용하여 2개의 서보 사이를 전환하고 한 번에 하나씩 제어했습니다.

    다음은 이를 설명하는 회로입니다.

    Arduino에 대한 서보 배선은 다음과 같습니다.

    프로그래밍

    프로그래밍에는 두 부분이 있었습니다. 하나를 조립하고 서보가 특정 위치에 명령을 내리도록 하는 프로토타입 단계와 ThingSpeak를 사용하여 서보에 위치를 명령할 수 있는 정밀 제어 단계였습니다.

    프로토타입

    슬라이더와 상수 블록을 사용하여 Arduino의 서보가 특정 각도로 움직이도록 명령할 수 있었습니다. 이 모델을 사용하여 명령된 각도와 암의 실제 각도 사이의 편향과 각 서보의 허용 각도 범위를 알아냈습니다.

    기어가 있는 블록은 0과 180 사이의 특정 각도로 서브를 명령하기 위한 PWM 쓰기 블록입니다.

    팔을 XY 좌표로 이동하는 데 필요한 각도를 해결하기 위해 2D 평면 모션에서 팔에 대한 역운동학을 사용했습니다. 나는 이 링크가 운동학을 오히려 잘 설명한다는 것을 발견했습니다:https://appliedgo.net/roboticarm/

    정확한 제어

    이것은 다른 것보다 더 복잡해 보이지만 논리는 여전히 동일합니다. 출력 블록은 여전히 ​​기어가 있는 서보 쓰기 블록입니다. 입력 블록은 이제 슬라이더/상수 블록 입력이 아니지만 ThingSpeak 채널에서 읽고 있습니다. ThingSpeak 사용에 대해서는 나중에 자세히 설명하겠습니다. 입력은 팔의 X 및 Y 위치이며, loc2angles MATLAB 기능 블록을 사용하여 팔에 대한 명령된 각도로 변환됩니다. 모델 상단의 angles2loc 블록은 서보를 확인하기 위해 시스템을 모니터링하는 방법일 뿐입니다. 순운동학을 사용하여 올바른 입력 위치로 변환된 각도. 이 프로젝트에서 사용한 Simulink의 멋진 도구 중 하나는 외부 모드입니다. . 이를 통해 시스템이 Arduino 자체에서 실행되는 동안 시스템을 모니터링할 수 있었습니다.

    회색 구름이 있는 블록은 Arduino용 Simulink 지원 패키지에 내장된 ThingSpeak 읽기 블록입니다. 채널 아이디, 조회하고 싶은 데이터 필드 번호, API 읽기 키를 입력하면 해당 채널과 필드의 데이터를 출력한다. 걱정하지 마세요. 해당 용어에 익숙하지 않은 경우 곧 자세히 설명하겠습니다.

    ThingSpeak 사용:채널 생성 및 사용

    1. https://thingspeak.com/

    으로 이동합니다.

    2. 오른쪽 상단의 '로그인'을 클릭하고 무료 MathWorks 계정을 사용하여 로그인합니다.

    3. 대시보드 페이지에서 '새 채널'을 클릭합니다.

    4. 아래와 같이 데이터를 입력합니다. 표시된 데이터만 입력하면 됩니다.

    5. 하단 '채널 저장' 클릭

    6. 이제 ThingSpeak 채널을 만들었습니다.

    7. MATLAB 명령 창에서 또는 MATLAB 모바일 앱을 사용하여 다음과 같은 명령을 입력할 수 있습니다.thingSpeakWrite(chID, [0.6963.94 -12 0 0], 'WriteKey', APIKEY, 'Fields', [1 2 3 4 5]);

    ThingSpeak 채널의 지정된 필드에 새 데이터를 씁니다. 함수 호출의 두 번째 인수 값을 변경하여 해당 필드의 값을 변경할 수 있습니다. 값을 변경한 후 채널 데이터는 다음과 같아야 합니다.

    모델 실행

    ThingSpeak 채널 설정을 마치면 외부 모드에서 Arduino에서 모델을 실행하거나 하드웨어에 배포하여 실행할 수 있습니다. Simulink 모델에서 상단 메뉴 패널의 작은 기어를 클릭하여 '모델 구성 매개변수'로 이동하고 '하드웨어 구현'을 선택하고 '하드웨어 보드'가 Arduino MKR 1000인지 확인합니다. '대상 하드웨어 리소스' 아래 동일한 탭에서 WiFi 속성을 클릭하고 WiFi 자격 증명을 입력하여 네트워크에 액세스합니다.

    외부 모드에서 모델을 실행하려면 녹색 실행 버튼을 클릭하고 하드웨어에 배포하려면 파란색 배포 버튼을 클릭합니다.

    모델이 실행되면 휴대폰의 MATLAB 또는 MATLAB 모바일에서 ThingSpeak 채널의 필드에 새 데이터를 쓰고 로봇 팔이 어떻게 움직이는지 볼 수 있습니다!

    코드

    https://www.mathworks.com/matlabcentral/fileexchange/68880-controlling-a-robotic-arm-from-anywhere-using-iot


    제조공정

    1. Arduino, 1Sheeld 및 Android를 사용한 범용 원격 제어
    2. Arduino로 코인 억셉터 제어
    3. Arduino 제어 센터
    4. IoT를 사용한 심박수 모니터
    5. IOT - ESP8266, Arduino 및 초음파 센서를 사용하는 스마트 항아리
    6. Arduino 3D 인쇄 로봇 팔
    7. Firmata 및 Xbox One 컨트롤러를 사용하여 Arduino Rover 제어
    8. Arduino 가습기 제어
    9. Nunchuk 제어 로봇 팔(Arduino 포함)
    10. Arduino를 사용한 간단하고 스마트한 로봇 팔