Mục lục:
- Bước 1: Thiết bị
- Bước 2: Tệp hình ảnh sơ đồ mạch
- Bước 3: Fritzing File Sơ đồ mạch
- Bước 4: Mã máy phát
- Bước 5: Mã người nhận
- Bước 6: Tệp INO
- Bước 7: Liên kết các thư viện
Video: Ô tô không dây điều khiển bằng cử chỉ: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách chế tạo ô tô được điều khiển bằng cử chỉ hoặc bất kỳ rô bốt nào. Dự án này có hai phần, một phần là thiết bị phát và phần khác là thiết bị thu. Bộ phận phát thực sự được gắn trên găng tay và bộ phận thu được đặt bên trong ô tô hoặc bất kỳ rô bốt nào. Bây giờ là lúc để tạo ra một chiếc xe đẹp. Đi nào!
Bước 1: Thiết bị
Bộ phát
1. Arduino Nano.
2. Mô-đun cảm biến MPU6050.
3. Máy phát RF 433 MHz.
4. Bất kỳ loại pin 3 cell, 11,1 volt nào (Ở đây tôi đã sử dụng pin đồng xu).
5. Vero-Board.
6. Găng tay.
Bộ thu
1. Arduino Nano hoặc Arduino Uno.
2. Mô-đun điều khiển động cơ L298N.
3. Khung robot 4 bánh bao gồm các động cơ.
4. Bộ thu RF 433 RF.
5. Pin Li-po 3 cell, 11,1 volt.
6. Vero-board.
Khác
1. Keo dính và súng.
2. Dây nhảy.
3. Trình điều khiển trục vít
4. Bộ hàn.
Vân vân.
Bước 2: Tệp hình ảnh sơ đồ mạch
Bước 3: Fritzing File Sơ đồ mạch
Bước 4: Mã máy phát
#bao gồm
#bao gồm
#bao gồm
MPU6050 mpu6050 (Dây điện);
hẹn giờ dài = 0;
bộ điều khiển char *;
void setup ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (true); vw_set_ptt_inverted (true); // vw_set_tx_pin (10); vw_setup (4000); // tốc độ truyền dữ liệu Kbps
}
void loop ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
if (millis () - timer> 1000)
{Serial.println ("================================================== =========== "); Serial.print ("temp:"); Serial.println (mpu6050.getTemp ()); Serial.print ("accX:"); Serial.print (mpu6050.getAccX ()); Serial.print ("\ taccY:"); Serial.print (mpu6050.getAccY ()); Serial.print ("\ taccZ:"); Serial.println (mpu6050.getAccZ ()); Serial.print ("gyroX:"); Serial.print (mpu6050.getGyroX ()); Serial.print ("\ tgyroY:"); Serial.print (mpu6050.getGyroY ()); Serial.print ("\ tgyroZ:"); Serial.println (mpu6050.getGyroZ ()); Serial.print ("accAngleX:"); Serial.print (mpu6050.getAccAngleX ()); Serial.print ("\ taccAngleY:"); Serial.println (mpu6050.getAccAngleY ()); Serial.print ("gyroAngleX:"); Serial.print (mpu6050.getGyroAngleX ()); Serial.print ("\ tgyroAngleY:"); Serial.print (mpu6050.getGyroAngleY ()); Serial.print ("\ tgyroAngleZ:"); Serial.println (mpu6050.getGyroAngleZ ()); Serial.print ("angleX:"); Serial.print (mpu6050.getAngleX ()); Serial.print ("\ tangleY:"); Serial.print (mpu6050.getAngleY ()); Serial.print ("\ tangleZ:"); Serial.println (mpu6050.getAngleZ ()); Serial.println ("============================================= ========== / n "); bộ đếm thời gian = mili (); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX () 30) {controller = "X2"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Chờ cho đến khi hết toàn bộ thư Serial.println ("FORWARD"); } else if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Chờ cho đến khi hết toàn bộ thư Serial.println ("LEFT"); } else if (mpu6050.getAccAngleY () <- 40) {controller = "Y2"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Chờ cho đến khi hết toàn bộ thư Serial.println ("RIGHT"); } else if (mpu6050.getAccAngleX () - 10 && mpu6050.getAccAngleY () - 10) {controller = "A1"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Chờ cho đến khi hết toàn bộ thư Serial.println ("STOP"); }}
Bước 5: Mã người nhận
#bao gồm
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (true); // Bắt buộc đối với DR3100 vw_set_rx_pin (12); vw_setup (4000); // Bit trên giây pinMode (13, OUTPUT); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Khởi động PLL bộ thu chạy Serial.println ("Tất cả đều OK");
}
void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf, & buflen)) // Không chặn
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); phía sau(); chậm trễ (100); //tắt(); } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD"); phía trước(); chậm trễ (100); //tắt(); }
else if ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("TRÁI"); bên trái(); chậm trễ (100); //tắt(); }
else if ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("PHẢI"); đúng(); chậm trễ (100); //tắt(); } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); tắt(); chậm trễ (100); }} else {Serial.println ("Không nhận được tín hiệu"); }}
vô hiệu về phía trước ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
void back ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
void left ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
void right ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
void off ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Bước 6: Tệp INO
Bước 7: Liên kết các thư viện
Thư viện dây ảo:
MPU6050_tockn Libraby:
Thư viện Wire:
Đề xuất:
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: 5 bước
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: Đây là các hướng dẫn để tạo ô tô được điều khiển từ xa của riêng bạn, được điều khiển bằng bộ điều khiển Xbox 360 không dây
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Bộ lắp ráp và điều khiển xe rô bốt bằng điều khiển từ xa không dây PS2: 6 bước
Lắp ráp và điều khiển bộ ô tô rô bốt bằng điều khiển từ xa không dây PS2: Dự án này liên quan đến các bước cơ bản trong thế giới Người máy, bạn sẽ học cách lắp ráp bộ ô tô rô bốt 4WD, đặt phần cứng lên đó và điều khiển nó bằng điều khiển từ xa PS2 không dây
Cách điều khiển Động cơ DC không chổi than Drone Quadcopter (Loại 3 dây) bằng cách sử dụng Bộ điều khiển tốc độ động cơ HW30A và Arduino UNO: 5 bước
Cách điều khiển Động cơ DC không chổi than Drone Quadcopter (Loại 3 dây) bằng cách sử dụng Bộ điều khiển tốc độ động cơ HW30A và Arduino UNO: Mô tả: Bộ điều khiển tốc độ động cơ HW30A có thể được sử dụng với pin 4-10 NiMH / NiCd hoặc 2-3 cell LiPo. BEC hoạt động với tối đa 3 ô LiPo. Nó có thể được sử dụng để điều khiển tốc độ của động cơ DC không chổi than (3 dây) với tối đa lên đến 12Vdc
Bảng điều khiển cầm tay với bộ điều khiển và cảm biến không dây (Arduino MEGA & UNO): 10 bước (có hình ảnh)
Bảng điều khiển cầm tay với bộ điều khiển và cảm biến không dây (Arduino MEGA & UNO): Những gì tôi đã sử dụng: - Arduino MEGA- 2x Arduino UNO- Adafruit 3.5 " Màn hình cảm ứng TFT 320x480 HXD8357D- Buzzer- Loa 4Ohm 3W- Đèn LED 5mm- Máy in Ultimaker 2+ w / Black PLA Filament- Lasercutter w / MDF wood- Phun sơn đen (cho gỗ) - 3x nRF24