Indholdsfortegnelse:
- Trin 1: Udstyr
- Trin 2: Kredsløbsdiagram -billedfil
- Trin 3: Fritzing File of Circuit Diagram
- Trin 4: Senderkode
- Trin 5: Modtagerkode
- Trin 6: INO -filer
- Trin 7: Link af biblioteker
Video: Gesture -kontrolleret trådløs bil: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
I denne vejledning lærer vi, hvordan man laver en gestusstyret bil eller en hvilken som helst robot. Dette projekt har to dele, den ene del er senderenhed og den anden del er modtagerenhed. Senderenheden er faktisk monteret på en håndhandsker, og modtagerenheden er placeret inde i en bil eller en hvilken som helst robot. Nu er det tid til at lave en lækker bil. Lad os gå!
Trin 1: Udstyr
Senderenhed
1. Arduino Nano.
2. MPU6050 sensormodul.
3. RF 433 MHz sender.
4. Enhver type 3 -cellers, 11,1 volt batteri (her har jeg brugt møntcelle).
5. Vero-Board.
6. Håndhandsker.
Modtager enhed
1. Arduino Nano eller Arduino Uno.
2. L298N -motordrivermodul.
3. 4 -hjulet robotramme inklusive motorer.
4. RF 433 RF -modtager.
5. 3 celle, 11,1 volt Li-po batteri.
6. Vero-board.
Andre
1. Lim stifter og pistol.
2. Jumper -ledninger.
3. Skruetrækkere
4. Loddesæt.
etc.
Trin 2: Kredsløbsdiagram -billedfil
Trin 3: Fritzing File of Circuit Diagram
Trin 4: Senderkode
#omfatte
#omfatte
#omfatte
MPU6050 mpu6050 (Wire);
lang timer = 0;
char *controller;
ugyldig opsætning ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (true); vw_set_ptt_inverted (true); // vw_set_tx_pin (10); vw_setup (4000); // hastighed for dataoverførsel Kbps
}
hulrum ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
hvis (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 "); timer = millis (); }
/////////////////////////////////////////////////////////////////////////////////////
hvis (mpu6050.getAccAngleX () 30) {controller = "X2"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Vent til hele meddelelsen er væk Serial.println ("FREM"); } ellers hvis (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Vent til hele meddelelsen er væk Serial.println ("LEFT"); } ellers hvis (mpu6050.getAccAngleY () <-40) {controller = "Y2"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Vent til hele meddelelsen er væk Serial.println ("HØJRE"); } ellers hvis (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {controller = "A1"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Vent til hele meddelelsen er væk Serial.println ("STOP"); }}
Trin 5: Modtagerkode
#omfatte
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; ugyldig opsætning () {Serial.begin (9600); vw_set_ptt_inverted (true); // Påkrævet for DR3100 vw_set_rx_pin (12); vw_setup (4000); // Bits per sec pinMode (13, OUTPUT); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Start modtageren PLL med Serial.println ("Alt OK");
}
void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf, & buflen)) // Ikke-blokerende
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); baglæns(); forsinkelse (100); //af(); } ellers hvis ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FREM"); frem(); forsinkelse (100); //af(); }
ellers hvis ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("LEFT"); venstre(); forsinkelse (100); //af(); }
ellers hvis ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("HØJRE"); ret(); forsinkelse (100); //af(); } ellers hvis ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); af(); forsinkelse (100); }} else {Serial.println ("Intet signal modtaget"); }}
tomrum frem ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
tomrum baglæns ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
tomrum tilbage ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
ugyldig ret ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
annullere ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Trin 6: INO -filer
Trin 7: Link af biblioteker
Virtual Wire Library:
MPU6050_tockn Libraby:
Wire Library:
Anbefalede:
Fjernstyret bil - styret ved hjælp af trådløs Xbox 360 -controller: 5 trin
Fjernstyret bil - styret ved hjælp af trådløs Xbox 360 -controller: Disse er instruktioner for at bygge din egen fjernstyrede bil, styret ved hjælp af en trådløs Xbox 360 -controller
Play Station Fjernstyret trådløs 3D -printet bil: 7 trin (med billeder)
Play Station Fjernstyret trådløs 3D -printet bil: Hvem elsker ikke spil? Racer og kæmper i den virtuelle verden af Play Station og Xbox !! Så for at bringe det sjove til det virkelige liv lavede jeg denne Instructable, hvor jeg vil vise dig, hvordan du kan bruge enhver Play Station -fjernbetjening (kablet
Sådan laver du fjernbetjeningsbil hjemme på en nem måde - DIY trådløs RC -bil: 7 trin
Sådan laver du fjernbetjeningsbil hjemme på en nem måde - DIY trådløs RC -bil: Hej venner i denne instruktive jeg viser dig, hvordan du laver en fjernstyret rc -bil på en nem måde, fortsæt med at læse …… Dette er en virkelig fedt projekt, så prøv at bygge et
Hack en trådløs dørklokke i en trådløs alarmkontakt eller tænd/sluk -kontakt: 4 trin
Hack en trådløs dørklokke i en trådløs alarmkontakt eller tænd/sluk -kontakt: Jeg har for nylig bygget et alarmsystem og installeret det i mit hus. Jeg brugte magnetiske afbrydere på dørene og fastsluttede dem gennem loftet. Vinduerne var en anden historie, og hårde ledninger var ikke en mulighed. Jeg havde brug for en trådløs løsning, og dette er
Konverter trådløs router til trådløs forlænger 2x adgangspunkt: 5 trin
Konverter trådløs router til trådløs forlænger 2x adgangspunkt: Jeg havde en dårlig trådløs internetforbindelse i mit hus på grund af en RSJ (metalstøttebjælke i loftet) og ville øge signalet eller tilføje en ekstra forlænger til resten af huset. Jeg havde set forlængere til omkring 50 pund i en elektro