สารบัญ:
- ขั้นตอนที่ 1: อุปกรณ์
- ขั้นตอนที่ 2: ไฟล์ภาพแผนภาพวงจร
- ขั้นตอนที่ 3: ไฟล์ Fritzing ของ Circuit Diagram
- ขั้นตอนที่ 4: รหัสเครื่องส่งสัญญาณ
- ขั้นตอนที่ 5: รหัสตัวรับ
- ขั้นตอนที่ 6: ไฟล์ INO
- ขั้นตอนที่ 7: ลิงค์ของห้องสมุด
วีดีโอ: รถไร้สายควบคุมด้วยท่าทาง: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ในบทช่วยสอนนี้ เราจะมาเรียนรู้วิธีสร้างรถยนต์ควบคุมด้วยท่าทางหรือหุ่นยนต์ โครงงานนี้มีสองส่วน ส่วนหนึ่งเป็นหน่วยส่งสัญญาณ และอีกส่วนหนึ่งเป็นหน่วยรับ จริง ๆ แล้วหน่วยส่งสัญญาณถูกติดตั้งบนถุงมือและตัวรับนั้นถูกวางไว้ในรถยนต์หรือหุ่นยนต์ ตอนนี้ได้เวลาสร้างรถที่ดีแล้ว ไปกันเถอะ!
ขั้นตอนที่ 1: อุปกรณ์
หน่วยส่งสัญญาณ
1. Arduino นาโน
2. โมดูลเซนเซอร์ MPU6050
3. เครื่องส่งสัญญาณ RF 433 MHz
4. แบตเตอรี่ชนิดใดก็ได้ 3 เซลล์ 11.1 โวลต์ (ในที่นี้ผมใช้เซลล์แบบเหรียญ)
5. เวโรบอร์ด
6. ถุงมือมือ.
หน่วยรับ
1. Arduino Nano หรือ Arduino Uno
2. L298N เครื่องยนต์ โมดูลไดรเวอร์
3. โครงหุ่นยนต์ 4 ล้อพร้อมมอเตอร์
4. RF 433 RF ตัวรับ
5. แบตเตอรี่ Li-po 3 เซลล์ 11.1 โวลต์
6. เวโรบอร์ด
คนอื่น
1. กาวแท่งและปืน
2. สายจัมเปอร์
3. ไขควงปากแบน
4. ชุดบัดกรี
เป็นต้น
ขั้นตอนที่ 2: ไฟล์ภาพแผนภาพวงจร
ขั้นตอนที่ 3: ไฟล์ Fritzing ของ Circuit Diagram
ขั้นตอนที่ 4: รหัสเครื่องส่งสัญญาณ
#รวม
#รวม
#รวม
MPU6050 mpu6050 (สาย);
จับเวลานาน = 0;
ถ่าน * ตัวควบคุม;
การตั้งค่าเป็นโมฆะ ()
{ Serial.begin(9600); Wire.begin(); mpu6050.begin(); mpu6050.calcGyroOffsets(จริง); vw_set_ptt_inverted(จริง); // vw_set_tx_pin(10); vw_setup(4000); // ความเร็วของการถ่ายโอนข้อมูล Kbps
}
วงเป็นโมฆะ ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update();
if(มิลลิวินาที() - ตัวจับเวลา > 1,000)
{ Serial.println("============================================= ==========="); Serial.print("ชั่วคราว: ");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("gyroX: ");อนุกรม.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"); ตัวจับเวลา = มิลลิวินาที (); }
/////////////////////////////////////////////////////////////////////////////////////
ถ้า (mpu6050.getAccAngleX()30) { controller="X2"; vw_send((uint8_t *)คอนโทรลเลอร์, strlen(คอนโทรลเลอร์)); vw_wait_tx(); // รอจนกว่าข้อความทั้งหมดจะหายไป Serial.println("FORWARD"); } else if (mpu6050.getAccAngleY()>40) { controller="Y1"; vw_send((uint8_t *)คอนโทรลเลอร์, strlen(คอนโทรลเลอร์)); vw_wait_tx(); // รอจนกว่าข้อความทั้งหมดจะหายไป Serial.println("LEFT"); } else if (mpu6050.getAccAngleY()<-40) { controller="Y2"; vw_send((uint8_t *)คอนโทรลเลอร์, strlen(คอนโทรลเลอร์)); vw_wait_tx(); // รอจนกว่าข้อความทั้งหมดจะหายไป Serial.println("RIGHT"); } else if (mpu6050.getAccAngleX()-10 && mpu6050.getAccAngleY()-10) { controller="A1"; vw_send((uint8_t *)คอนโทรลเลอร์, strlen(คอนโทรลเลอร์)); vw_wait_tx(); // รอจนกว่าข้อความทั้งหมดจะหายไป Serial.println("STOP"); } }
ขั้นตอนที่ 5: รหัสตัวรับ
#รวม
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); vw_set_ptt_inverted(จริง); // จำเป็นสำหรับ DR3100 vw_set_rx_pin(12); vw_setup(4000); // บิตต่อวินาที pinMode (13, OUTPUT); โหมดพิน (แอลเอ, เอาต์พุต); โหมดพิน (LB, เอาต์พุต); โหมดพิน (RA, OUTPUT); โหมดพิน (RB, เอาต์พุต); vw_rx_start(); // เริ่มตัวรับ PLL ที่รัน Serial.println("All OK");
}
วงเป็นโมฆะ () { uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // ไม่บล็อค
{ if((buf[0]=='X')&&(buf[1]=='1')) { Serial.println("BACKWARD"); ย้อนกลับ(); ล่าช้า (100); //ปิด(); } อื่น if((buf[0]=='X')&&(buf[1]=='2')) { Serial.println("FORWARD"); ซึ่งไปข้างหน้า(); ล่าช้า (100); //ปิด(); }
อื่น if((buf[0]=='Y')&&(buf[1]=='1'))
{ Serial.println ("ซ้าย"); ซ้าย(); ล่าช้า (100); //ปิด(); }
อื่น if((buf[0]=='Y')&&(buf[1]=='2'))
{ Serial.println ("ขวา"); ขวา(); ล่าช้า (100); //ปิด(); } อื่น if((buf[0]=='A')&&(buf[1]=='1')) { Serial.println("STOP"); ปิด(); ล่าช้า (100); } } อื่น { Serial.println ("ไม่มีการรับสัญญาณ"); } }
ถือเป็นโมฆะไปข้างหน้า ()
{ analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
โมฆะย้อนกลับ ()
{ analogWrite (LA, 0); analogWrite (ปอนด์, 70); analogWrite(RA, 0); analogWrite (RB, 70); }
เป็นโมฆะ left()
{ analogWrite (LA, 0); analogWrite (ปอนด์, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
ถือเป็นโมฆะขวา ()
{ analogWrite (LA, 70); analogWrite (LB, 0); analogWrite(RA, 0); analogWrite (RB, 70); }
ถือเป็นโมฆะ ()
{ analogWrite (LA, 0); analogWrite (LB, 0); analogWrite(RA, 0); analogWrite (RB, 0); }
ขั้นตอนที่ 6: ไฟล์ INO
ขั้นตอนที่ 7: ลิงค์ของห้องสมุด
Virtual Wire Library:
MPU6050_tockn Libraby:
Wire Library:
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง