제조공정
| × | 1 |
|
| ||||
|
소개
제가 정말 해보고 싶었던 것은 로봇 팔을 처음부터 완전히 설계하는 것이었습니다. 사용할 수 있는 오픈 소스 디자인이 많이 있지만, 무(그리고 실제로)에서 하나를 디자인, 구축 및 프로그래밍할 수 있다면 기쁠 것이라고 생각했습니다.
디자인 단계와 프로그래밍 단계에 대해 이야기하겠습니다. 하지만 서보 각도를 제어하는 것만이 아니기 때문에 프로그래밍 측면에 더 중점을 둘 것입니다.
다음은 실행 중인 최종 프로젝트의 비디오에 대한 링크입니다 - 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를 통해 거의 모든 곳에서 로봇 팔을 제어할 수 있는 기능을 추가했습니다.
필요한 하드웨어
<울>사용된 소프트웨어
<울>
디자인
부품 가격을 낮게 유지하고 싶었기 때문에 취미용 서보, 특히 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
제조공정
이 튜토리얼에서는 Arduino를 사용하여 개별적으로 주소 지정이 가능한 RGB LED 또는 WS2812B LED 스트립을 제어하는 방법을 배웁니다. 자세한 내용은 다음 동영상을 보거나 아래에 작성된 튜토리얼을 참조하세요. 개요 먼저 몇 가지 기본 예제를 통해 작동 원리를 설명한 다음 이 LED를 사용하는 정말 멋진 Arduino 프로젝트인 DIY 대화형 LED 커피 테이블을 살펴보겠습니다. 커피 테이블에는 WS2812B LED, 물체 감지를 위한 적외선 근접 센서, 맞춤형 Android 앱을 통해 색상을 제어하기 위한 HC
Arduino 자습서 시리즈의 일곱 번째 Arduino 자습서에 오신 것을 환영합니다. 이 튜토리얼에서는 Arduino를 Matlab에 연결하는 방법과 직렬 포트를 사용하여 통신하는 방법을 배웁니다. 또한 Matlab을 사용하여 Arduino Board를 제어하는 예를 만들 것입니다. 이것은 따라하기 쉬운 단계별 비디오 자습서입니다. 또한 동영상 아래에서 이 튜토리얼에 필요한 부분과 동영상의 예제 소스 코드를 찾을 수 있습니다. 이 Arduino 튜토리얼에 필요한 구성요소 아두이노 보드 ..................