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

Wi-Fi 제어 FPV 로버 로봇(Arduino 및 ESP8266 포함)

구성품 및 소모품

Arduino UNO
× 1
Arduino Proto Shield
× 1
Espressif ESP8266 ESP-01
× 1
28BYJ 스테퍼 모터
× 2
ULN2003 스테퍼 드라이버
× 1
Android 기기
× 1
저항 1k 옴
× 1
저항 100k 옴
× 2
파워 뱅크
× 1
고무 트레드 타이어가 있는 42x19mm 휠
× 2
49x20x32mm 스틸 볼 옴니 휠
× 1
M2 x 10mm 볼트
× 12
M2 x 1,5mm 너트
× 12
M3 x 10mm 볼트
× 8
M3 x 1,5mm 너트
× 8
5/32" x 1" 볼트
× 3
5/32" 너트
× 6
휴대용 셀카봉 클립
× 1
3 x 3cm 알루미늄 브래킷
× 2
2mm 아크릴 시트
× 1

필요한 도구 및 기계

드릴링 머신
손톱

앱 및 온라인 서비스

IP 웹캠
오토데스크 퓨전 360
초안
Arduino IDE
메모장++

이 프로젝트 정보

이 튜토리얼에서는 ESP8266 Wi-fi 모듈과 2개의 스테퍼 모터에 연결된 Arduino Uno를 사용하여 Wi-Fi 네트워크를 통해 원격으로 제어되는 이륜 로봇 로버를 설계하는 방법을 보여줍니다. 로봇은 HTML로 설계된 인터페이스를 사용하여 일반 인터넷 브라우저에서 제어할 수 있습니다. Android 스마트폰은 로봇에서 작업자의 제어 인터페이스로 비디오 및 오디오를 방송하는 데 사용됩니다.

다양한 모양, 치수 및 가격으로 온라인에서 사용할 수 있는 로봇 키트가 많이 있습니다. 그러나 응용 프로그램에 따라 어느 것도 적합하지 않으며 실험에 너무 비싸다는 것을 알 수 있습니다. 또는 완전한 것을 구입하는 대신 기계적 구조를 만들고 싶을 수도 있습니다. 이 튜토리얼은 또한 로봇 프로젝트를 위한 저렴한 아크릴 프레임을 설계하고 구축하는 방법을 보여줍니다. 값비싼 3D 프린터나 레이저 절단기를 사용할 수 있습니다. 간단한 로봇 플랫폼이 제공됩니다.

이 가이드는 모양이나 제어 인터페이스가 변경되도록 조정될 수 있습니다. 내 로봇 프로젝트("Robô da Alegria")에 맞게 조정되었으며 아래 링크에서 확인할 수 있습니다.

https://hackaday.io/project/12873-rob-da-alegria-...

https://github.com/ferauche/RoboAlegria

https://hackaday.io/project/12873-rob-da-alegria-...

[경고:디자인을 더욱 개선하여 일부 사진이 구식입니다. 그러나 여기에 제시된 아이디어는 여전히 유효합니다.]

1단계:도구

이 프로토타입을 구성하려면 다음 도구가 필요합니다.

<울>
  • 손톱(아크릴 시트의 초기 절단 수행)
  • <울>
  • 스크류드라이버(볼트 및 너트 배치용)
  • <울>
  • 자(치수 측정용)
  • <울>
  • 다용도 칼(아크릴 시트 절단용)
  • <울>
  • 드릴링 머신(볼트용 구멍 생성용)
  • <울>
  • 사포(거친 가장자리를 부드럽게 하기 위해)
  • 2단계:기계적 구조 및 재료

    맞춤형 로봇을 구축하려면 먼저 기계적 구조를 설계해야 합니다. 응용 프로그램에 따라 쉬울 수도 있고 세부 사항과 제약 조건으로 가득 차 있을 수도 있습니다. 모델의 복잡성에 따라 3D CAD 소프트웨어에서 디자인하거나 2D로 그려야 할 수도 있습니다.

    자신의 기계 구조를 만들고 싶지 않다면 전체 구조를 온라인으로 구입할 수도 있습니다. 온라인에 로봇 키트가 많이 있습니다. 이 경우 6단계로 건너뛸 수 있습니다.

    이 튜토리얼에서는 모터 및 기타 구성 요소의 부착을 위해 저렴한 아크릴 프레임을 설계했습니다. 이 튜토리얼에서 제시한 구조는 123D Design CAD 소프트웨어를 사용하여 3D 설계한 것입니다. 각 부품은 나중에 Draftsight 소프트웨어를 사용하여 2D로 변환되었습니다.

    다음 자료가 사용되었습니다:

    <울>
  • 2mm 아크릴 시트
  • <울>
  • 고무 트레드 타이어가 있는 42x19mm 휠(x2)
  • <울>
  • 49x20x32mm 스틸 볼 옴니 휠(x1)
  • <울>
  • M2 x 10mm 볼트(x12)
  • <울>
  • M2 x 1,5mm 너트(x12)
  • <울>
  • M3 x 10mm 볼트(x8)
  • <울>
  • M3 x 1,5mm 너트(x8)
  • <울>
  • 5/32" x 1" 볼트(x3)
  • <울>
  • 5/32" 너트(x6)
  • <울>
  • 휴대용 셀카봉 클립
  • <울>
  • 3 x 3cm 알루미늄 브래킷(x4)
  • 기초 구조의 구성은 다음 단계로 나뉩니다.

    <울>
  • 2D 도면의 치수에 따라 아크릴 베이스를 자릅니다.
  • <울>
  • 2D 도면에 표시된 위치에 구멍을 뚫습니다.
  • <울>
  • 3D 도면에 따라 볼트와 너트로 부품을 장착합니다.
  • 불행히도 스테퍼 모터 샤프트의 직경은 휠의 오리피스보다 큽니다. 따라서 이러한 구성 요소를 연결하려면 접착제를 사용해야 할 것입니다. 이 튜토리얼에서는 모터 샤프트와 휠 사이에 즉석에서 목재 커플링을 만들었습니다.

    FMAR9JBITKJE83H.123dx F21RD24ITKJE8AJ.dwg FPTGSODITKJE8AN.pdf

    3단계:구조 절단

    먼저 모델의 치수를 아크릴 시트로 전송해야 합니다. 일반 프린터를 사용하여 접착 용지에 2D 도면을 인쇄한 다음 용지를 적절한 크기로 자르고 해당 마스크를 아크릴 표면에 붙입니다.

    손톱을 사용하여 치수에 따라 아크릴을 자르거나 아래에 설명된 절단 기술을 사용할 수 있습니다.

    다용도 칼과 자 또는 저울을 사용하여 아크릴을 직선으로 자릅니다. 시트를 완전히 자를 필요는 없습니다. 나중에 조각이 자를 부분을 만들기 위해 점수를 매기기만 하면 됩니다.

    아크릴을 평평한 표면에 놓고 클램프로 제자리에 고정한 다음 시트가 두 개로 나눌 때까지 약간의 압력을 가합니다. 모든 컷이 완료될 때까지 이 과정을 반복합니다. 그런 다음 사포를 사용하여 거친 가장자리를 매끄럽게 할 수 있습니다.

    4단계:베이스 드릴링

    드릴로 2D 도면(마스크에 표시)에 표시된 위치에 구멍을 뚫습니다.

    아크릴은 드릴링이 비교적 쉽습니다. 따라서 드릴링 머신을 버리지 않으면 만능칼과 같은 날카로운 도구로 수동으로 구멍을 뚫을 수 있습니다. 볼트 크기에 맞게 작은 구멍을 확대하는 데 사용할 수도 있습니다.

    마스크를 제거하면 베이스가 준비됩니다.

    5단계:구조 조립

    이미지에 따라 볼트와 너트로 부품을 장착하면 구조물이 완성됩니다.

    M3 볼트는 스테퍼 모터 설치에 사용되며 5/32" 볼트는 앞바퀴와 스마트폰 클립 설치에 사용됩니다.

    이제 휴식을 취하고 다음 단계에서 회로를 조립하기 시작합니다...

    6단계:전자 제품

    다음 전자 부품이 필요합니다.

    <울>
  • Arduino Uno(구매)
  • <울>
  • ESP8266(구매)
  • <울>
  • Protoshield(더 컴팩트한 버전용) 또는 일반 브레드보드(구매)
  • <울>
  • 1kohm 저항기(x2)
  • <울>
  • 10kohm 저항기(x1)
  • <울>
  • 일부 점퍼 와이어
  • <울>
  • ULN2003driver(x2)가 있는 스테퍼 모터(구매/구매)
  • <울>
  • 컴퓨터(Arduino 코드 컴파일 및 업로드용)
  • <울>
  • 파워 뱅크(구매)
  • <울>
  • USB 케이블
  • 회로 조립을 위해 특정 도구가 필요하지 않습니다. 모든 구성 요소는 즐겨 찾는 전자 상거래 상점에서 온라인으로 찾을 수 있습니다. 회로는 Arduino의 USB 포트에 연결된 보조 배터리로 구동됩니다.

    회로도에 따라 모든 구성 요소를 연결합니다. ESP-8266 모듈과 스테퍼 모터를 연결하려면 점퍼 와이어가 필요합니다. protoshield(보다 컴팩트한 회로용), 일반 브레드보드를 ​​사용하거나 Arduino 실드를 직접 디자인할 수 있습니다. USB 케이블을 Arduino Uno 보드에 연결하고 다음 단계로 진행합니다.

    7단계:Arduino 코드

    최신 Arduino IDE를 설치합니다. 이 프로젝트에서 stepper.h 라이브러리는 스테퍼 모터의 제어에 사용되었습니다. ESP-8266 모듈과의 통신을 위해 추가 라이브러리가 필요하지 않았습니다. ESP8266의 전송 속도를 확인하고 코드에서 올바르게 설정하십시오.

    Arduino 코드(stepperRobot.ino)를 다운로드하고 XXXXX를 Wi-Fi 라우터 SSID로, YYYYY를 라우터 비밀번호로 바꿉니다. Arduino 보드를 컴퓨터 USB 포트에 연결하고 코드를 업로드합니다.

    FG1K5KJITKJFW2R.ino

    8단계:Android IP 캠

    Android 스마트폰을 사용하여 로봇에서 제어 인터페이스로 비디오 및 오디오를 방송했습니다. Google Play 스토어(https://play.google.com/store/apps/details?id=com.pas.webcam)에서 앱을 찾을 수 있습니다.

    설치하고 다음 단계로 이동합니다.

    9단계:로봇에 회로 배치

    이미지와 같이 M1 볼트를 사용하여 로봇 상단에 회로를 설치합니다.

    그런 다음 양면 테이프를 사용하여 로봇 뒷면에 보조 배터리를 붙이고(나중에 쉽게 제거할 수 있음) 스마트폰을 클립에 넣습니다.

    10단계:웹 기반 제어 인터페이스

    html 인터페이스는 로봇의 제어를 위해 설계되었습니다.

    interface.rar를 다운로드하고 지정된 폴더에 모든 파일의 압축을 풉니다. 그런 다음 Firefox에서 엽니다.

    해당 인터페이스에서 텍스트 상자 형식을 사용하여 ESP 모듈 및 비디오/오디오 서버(Android IP 웹캠 앱에서)의 IP 주소를 입력합니다.

    테스트가 있지만 다른 명령이 수신될 때까지 로봇이 회전합니다. 키보드 화살표 키는 로봇을 전진 또는 후진, 좌우 회전에 사용합니다.

    FQTAWF5ITKJFW4O.rar

    11단계:사용

    Arduino가 다시 시작되면 Wi-Fi 네트워크에 자동으로 연결을 시도합니다. 직렬 모니터를 사용하여 연결이 성공했는지 확인하고 라우터가 ESP-8266에 할당한 IP를 확인하십시오. 인터넷 브라우저(Firefox)에서 html 파일을 열고 텍스트 상자에 이 IP 주소를 알려주십시오.

    라우터가 장치에 할당한 IP 주소를 찾기 위해 다른 방법을 사용할 수도 있습니다.

    컴퓨터에서 Arduino Uno를 분리하고 전원 은행에 연결합니다. 다시 연결될 때까지 기다리세요.

    로봇에 부착된 스마트폰에서 IP Webcam 앱을 실행합니다. 제어 인터페이스에 비디오/오디오 IP를 입력하고 서버에 연결하면 준비가 완료됩니다. 전송 중 지연을 줄이기 위해 앱에서 동영상의 해상도를 줄여야 할 수도 있습니다.

    키보드의 화살표 버튼을 길게 클릭하여 로봇을 회전시키거나 앞/뒤로 움직여 주변 환경을 탐색하는 재미를 느끼세요.

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

    코드

    <울>
  • 아두이노
  • html 제어 인터페이스
  • 아두이노아두이노
    Arduino 코드.<사전>//라이브러리 포함#include #include SoftwareSerial esp8266(3, 2); //RX 핀 =3, TX 핀 =2//변수 정의#define DEBUG true // 직렬 포트에서 ESP8266과 Arduino 사이의 메시지 표시 const int stepsPerRevolution =500;int state =5;Stepper rightStepper(stepsPerRevolution, 8,10, 9,11);스테퍼 leftStepper(stepsPerRevolution, 4,6,5,7);//*****//SETUP//*****void setup(){ //통신 시작 Serial.begin(9600 ); esp8266.begin(19200); sendData("AT+RST\r\n", 2000, 디버그); // 모듈 재설정 sendData("AT+CWMODE=1\r\n", 1000, DEBUG); // 스테이션 모드 설정 sendData("AT+CWJAP=\"XXXXX\",\"YYYYY\"\r\n", 2000, DEBUG); //Wi-Fi 네트워크 연결 while(!esp8266.find("OK")) { //연결 대기 } sendData("AT+CIFSR\r\n", 1000, DEBUG); //IP 주소 표시 sendData("AT+CIPMUX=1\r\n", 1000, DEBUG); // 다중 연결 허용 sendData("AT+CIPSERVER=1,80\r\n", 1000, DEBUG); // 포트 80에서 웹 서버 시작 // 모터 속도 정의 rightStepper.setSpeed(60); leftStepper.setSpeed(60); }void loop(){ if (esp8266.available()) // 들어오는 데이터 확인 { if (esp8266.find("+IPD,")) //메시지가 있는 경우 { String msg; esp8266.find("?"); //메시지 찾기 msg =esp8266.readStringUntil(' '); //전체 메시지 읽기 String command =msg.substring(0, 3); //처음 3자 =명령 String valueStr =msg.substring(4); //다음 3자 =value int value =valueStr.toInt(); if (디버그) { Serial.println(명령); Serial.println(값); } //앞으로 이동 if(command =="cm1") { state =1; } // 뒤로 이동 if(command =="cm2") { state =2; } //우회전 if(command =="cm3") { state =3; } //좌회전 if(command =="cm4") { state =4; } //아무것도 하지 않음 if(command =="cm5") { state =5; } } } //앞으로 이동 if (state ==1) { rightStepper.step(1); leftStepper.step(-1); } // 뒤로 이동 if (state ==2) { rightStepper.step(-1); leftStepper.step(1); } //오른쪽으로 이동 if (state ==3) { rightStepper.step(1); leftStepper.step(1); } //왼쪽으로 이동 if (state ==4) { rightStepper.step(-1); leftStepper.step(-1); } //(상태 ==5) { } }//*******************//보조 함수//********인 경우 아무 것도 하지 않음 ***********String sendData(문자열 명령, const int 시간 초과, 부울 디버그){ 문자열 응답 =""; esp8266.print(명령어); 긴 int 시간 =millis(); while ( (시간 + 시간 초과)> millis()) { while (esp8266.available()) { char c =esp8266.read(); 응답 +=c; } } if(디버그) { Serial.print(응답); } 반환 응답;}
    html 제어 인터페이스HTML
    미리보기 없음(다운로드만 가능).

    맞춤형 부품 및 인클로저

    123D 디자인 파일. 베이스의 robot.123dx2D 디자인. base.dwg

    회로도

    회로의 회로도Breadboard 연결 회로의 Fritzing 파일 위스텝퍼%20-%20rev1.fzz

    제조공정

    1. Bluetooth를 통해 제어되는 Raspberry Pi Robot
    2. Arduino 및 Raspberry Pi로 인터넷 제어 비디오 스트리밍 로봇 구축
    3. 자외선 조명으로 로봇 소독
    4. 서보 모터로 로봇을 피하는 장애물
    5. Arduino 또는 ESP8266이 있는 정전 용량 지문 센서
    6. Arduino 및 Android 기기로 Roomba 로봇 제어
    7. Nunchuk 제어 로봇 팔(Arduino 포함)
    8. Arduino Nano:조이스틱으로 2개의 스테퍼 모터 제어
    9. 음성 제어 로봇
    10. TinyML로 식물 상태 확인