제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 |
| ||||
|
이 프로젝트는 휴대전화를 사용하여 블루투스를 통해 로봇과 통신합니다. 저는 항상 로봇을 만들고 휴대폰으로 제어하고 싶었습니다. 12년이 넘는 긴 공백 끝에 로봇을 만들고 작동시키는 일을 맡게 되었습니다. 이것은 Arduino 프로젝트 허브의 첫 번째 프로젝트이기도 합니다. 전자 제품과 로봇 공학은 제가 가장 좋아하는 취미 중 하나이기 때문에 Covid19로 인해 폐쇄된 이 시기에 로봇을 만드는 일을 맡게 되었습니다.
로봇은 휴대폰에서 전송된 블루투스 신호를 감지합니다. HC-05 블루투스 모듈을 사용하여 휴대폰의 명령 신호를 감지하고 로봇을 제어합니다. ArduinoBlueControl 앱을 사용하여 로봇을 제어했습니다.
로봇의 심장은 아두이노 나노입니다. 직렬 통신을 통해 HC-05 모듈에서 신호를 수신하고 L298N 모터 드라이버 모듈을 통해 모터를 제어하여 정, 역, 좌, 우 방향으로 동작합니다.
HC-05 모듈의 TX 및 RX 핀을 Arduino Nano와 연결할 때 주의해야 합니다. 로직 레벨 변환기가 동일한 용도로 사용됩니다.
로봇은 HC SR-04 초음파 센서 모듈을 사용하여 경로에 있는 장애물을 감지합니다. 로봇은 전진하는 동안 장애물을 감지하면 정지합니다. RGB LED는 로봇의 상태를 표시하는 데 사용됩니다.
로봇은 2개의 기어 구동 모터로 구성된 2륜 베이스에 조립됩니다. 회로는 전원 공급 장치(3.3v 및 5v)가 있는 브레드보드 위에 조립됩니다. Arduino Nano는 모터에 대한 훨씬 더 높은 전류 요구 사항으로 인해 모터를 직접 구동할 수 없습니다. 따라서 L298N 모터 드라이버 모듈은 모터를 구동하는 데 사용됩니다. Arduino Nano의 PWM 신호는 L298N 모터 드라이버 모듈의 ENA 및 ENB 핀을 통해 모터의 속도를 제어하는 데 사용됩니다.
다음은 작동 중인 로봇의 짧은 동영상입니다.
내 블루투스 제어 장애물 회피 로봇이 마음에 드셨기를 바랍니다. 이 로봇은 홈 오토메이션, 작업 현장의 장애물 회피 차량 등에 사용하도록 수정 및 확장할 수 있습니다.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">/* Bluetooth 제어 장애물 회피 로봇 작성자:Alok Talukdar 날짜:09.05.2020*/#include섹션>// 직렬 통신을 위해 Arduino의 모든 핀을 사용하려면// L298 모터용 디지털 핀 정의 control module.#define IN1 5 // 오른쪽 모터용#define IN2 4 // 오른쪽 모터용#define IN3 3 // 왼쪽 모터용#define IN4 2 // 왼쪽 모터용#define ENA 9 // PWM 제어를 위해 A 활성화 of right motor#define ENB 10 // 왼쪽 모터의 PWM 제어를 위해 B 활성화// RGB LED 제어를 위한 디지털 핀 정의#define redLED 8#define greenLED A0#define blueLED 11// HC-SR04 초음파 센서 모듈 설정 const 정수 trigPin =6; // TRIG 핀은 Arduino Nanoconst의 D6 핀에 연결됨 int echoPin =7; // Arduino Nanoint의 D7 핀에 연결된 ECHO 핀 i,j,k =0;float duration,distance; // 거리 측정을 위한 변수 // HC05 블루투스 모듈 설정SoftwareSerial mySerial(12,13); // (12 --> RX , 13 --> TX)문자열 데이터; // 블루투스 제어용 변수 int btVal;void setup() { // 설정 코드를 여기에 넣어 한 번 실행:pinMode(trigPin,OUTPUT); // 초음파 펄스를 전송하도록 핀 D6을 구성합니다. pinMode(echoPin,INPUT); // 초음파 펄스를 수신하도록 핀 D7 구성 mySerial.begin(9600); // 소프트웨어 시리얼을 Baud rate 9600으로 설정합니다. pinMode(IN1,OUTPUT); // IN1 - IN4를 OUTPUT으로 구성하여 모터를 제어합니다. pinMode(IN2,OUTPUT); 핀모드(IN3,OUTPUT); 핀모드(IN4,OUTPUT); 핀모드(ENA,OUTPUT); 핀모드(ENB,OUTPUT); 핀 모드(빨간색 LED, 출력); 핀모드(파란색 LED, 출력); 핀모드(녹색LED,출력); 디지털 쓰기(IN1,LOW); // IN1 - IN4의 상태를 LOW로 설정합니다. digitalWrite(IN2,LOW); 디지털 쓰기(IN3,LOW); 디지털 쓰기(IN4,LOW); analogWrite(redLED,255); // LED를 끕니다. RGB LED는 일반적인 양극 유형입니다. 디지털 쓰기(파란색 LED, 높음); digitalWrite(greenLED,HIGH);}void loop(){ // 여기에 기본 코드를 넣어 반복적으로 실행합니다. while (mySerial.available()) { data =mySerial.readStringUntil('\n'); } btVal =(data.toInt()); 스위치 (btVal) { 경우 1:forward(); 디지털 쓰기(녹색 LED, 낮음); analogWrite(redLED,255); 디지털 쓰기(파란색 LED, 높음); dist(); 부서지다; 사례 2:reverse(); 디지털 쓰기(녹색 LED, 높음); analogWrite(redLED,255); 디지털 쓰기(파란색 LED, 낮음); 부서지다; 사례 3:왼쪽(); 부서지다; 사례 4:right(); 부서지다; 사례 5:stoprobot(); 디지털 쓰기(녹색 LED, 높음); analogWrite(빨간색 LED, 0); 디지털 쓰기(파란색 LED, 높음); 부서지다; 기본값:digitalWrite(greenLED, HIGH); analogWrite(redLED,255); 디지털 쓰기(파란색 LED, 높음); 부서지다; } if (mySerial.available() <0) { //Serial.println("블루투스 데이터 없음 "); }} // 모터 제어 함수 선언 void forward() { for(i=0;i<=100;i++) { analogWrite(ENA,i); analogWrite(ENB,i); 디지털 쓰기(IN1,HIGH); 디지털 쓰기(IN2,LOW); 디지털 쓰기(IN3,LOW); 디지털 쓰기(IN4, 높음); } } 무효 역() { for(j=0;j<=100;j++) { analogWrite(ENA,j); analogWrite(ENB,j); 디지털 쓰기(IN1,LOW); 디지털 쓰기(IN2, 높음); 디지털 쓰기(IN3, HIGH); 디지털 쓰기(IN4,LOW); } } 무효 왼쪽() { analogWrite(ENA,127); 아날로그 쓰기(ENB,0); 디지털 쓰기(IN1,HIGH); 디지털 쓰기(IN2,LOW); 디지털 쓰기(IN3, HIGH); 디지털 쓰기(IN4, 높음); } 무효 right() { analogWrite(ENA,0); analogWrite(ENB,127); 디지털 쓰기(IN1,HIGH); 디지털 쓰기(IN2, 높음); 디지털 쓰기(IN3,LOW); 디지털 쓰기(IN4, 높음); } 무효 stoprobot() { analogWrite(ENA,0); 아날로그 쓰기(ENB,0); 디지털 쓰기(IN1,LOW); 디지털 쓰기(IN2,LOW); 디지털 쓰기(IN3,LOW); 디지털 쓰기(IN4,LOW); } 무효 dist() { digitalWrite(trigPin,LOW); // HC-SR04의 TRIG 핀을 통해 펄스를 전송하기 위해 delayMicroseconds(2); digitalWrite(trigPin,HIGH); 지연마이크로초(10); 디지털 쓰기(trigPin,LOW); 지속 시간 =pulseIn(echoPin,HIGH); // 펄스 거리의 지속 시간 읽기 =(duration*0.0343)/2; // 거리를 cm 단위로 측정합니다. 음속은 340 m/s 또는 0.0343 cm/us if(distance<20) // 거리가 <20 cms이면 로봇을 중지합니다. { stoprobot(); 디지털 쓰기(녹색 LED, 높음); analogWrite(빨간색 LED, 0); 디지털 쓰기(파란색 LED, 높음); } 지연(1000); }
제조공정
구성품 및 소모품 Otto DIY 빌더 키트 + × 1 USB-A 대 미니 USB 케이블 × 1 Otto DIY Arduino NANO 실드 I/O × 1 초음파 센서 - HC-SR04(일반) 스텝 업 컨버터 없이 Lipo 배터리를 사용할 계획이라면 3.3V에서도 작동하는 것을 구입하십시오. × 1 Otto DIY 마이크로 서보 MG90 × 4 부저 × 1 암/암 점퍼 와이어 × 10 Otto DI
구성품 및 소모품 Arduino UNO × 1 SparkFun 3축 가속도계 브레이크아웃 - ADXL335 × 1 RF 모듈 434MHz × 1 HT12D × 1 HT12E × 1 SparkFun 듀얼 H-Bridge 모터 드라이버 L298 × 1 PCB 프로토타이핑(일반) × 1 선형 조정기(7805) × 2 DC 모터(일반) × 1 앱 및 온라인 서비스