Obsah:
- Krok 1: Vybavení
- Krok 2: Soubor obrázku schématu zapojení
- Krok 3: Fritzování souboru schématu zapojení
- Krok 4: Kód vysílače
- Krok 5: Kód přijímače
- Krok 6: Soubory INO
- Krok 7: Propojení knihoven
Video: Bezdrátové auto ovládané gesty: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
V tomto tutoriálu se naučíme, jak vyrobit auto nebo robota ovládaného gesty. Tento projekt má dvě části, jedna část je vysílací jednotka a druhá část je přijímací jednotka. Vysílací jednotka je ve skutečnosti namontována na ručních rukavicích a přijímací jednotka je umístěna uvnitř automobilu nebo jakéhokoli robota. Nyní je čas udělat pěkné auto. Pojďme!
Krok 1: Vybavení
Vysílací jednotka
1. Arduino Nano.
2. Senzorový modul MPU6050.
3. Vysílač RF 433 MHz.
4. Jakýkoli typ 3článkové 11,1voltové baterie (zde jsem použil knoflíkový článek).
5. Vero-Board.
6. Ruční rukavice.
Přijímací jednotka
1. Arduino Nano nebo Arduino Uno.
2. Modul ovladače motoru L298N.
3. Rám 4kolového robota včetně motorů.
4. RF 433 RF přijímač.
5. 3článková Li-po baterie 11,1 voltů.
6. Vero-board.
Ostatní
1. Lepicí tyčinky a pistole.
2. Propojovací vodiče.
3. Šroubováky
4. Pájecí sada.
atd.
Krok 2: Soubor obrázku schématu zapojení
Krok 3: Fritzování souboru schématu zapojení
Krok 4: Kód vysílače
#zahrnout
#zahrnout
#zahrnout
MPU6050 mpu6050 (drát);
dlouhý časovač = 0;
char *řadič;
neplatné nastavení ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (true); vw_set_ptt_inverted (true); // vw_set_tx_pin (10); vw_setup (4000); // rychlost přenosu dat Kbps
}
prázdná smyčka ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
if (milis () - časovač> 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 "); časovač = milis (); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX () 30) {řadič = "X2"; vw_send ((uint8_t *) řadič, strlen (řadič)); vw_wait_tx (); // Počkejte, až celá zpráva zmizí Serial.println ("FORWARD"); } else if (mpu6050.getAccAngleY ()> 40) {řadič = "Y1"; vw_send ((uint8_t *) řadič, strlen (řadič)); vw_wait_tx (); // Počkejte, až celá zpráva zmizí Serial.println ("VLEVO"); } else if (mpu6050.getAccAngleY () <-40) {controller = "Y2"; vw_send ((uint8_t *) řadič, strlen (řadič)); vw_wait_tx (); // Počkejte, až celá zpráva zmizí Serial.println ("RIGHT"); } else if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {řadič = "A1"; vw_send ((uint8_t *) řadič, strlen (řadič)); vw_wait_tx (); // Počkejte, až celá zpráva zmizí Serial.println ("STOP"); }}
Krok 5: Kód přijímače
#zahrnout
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; neplatné nastavení () {Serial.begin (9600); vw_set_ptt_inverted (true); // Povinné pro DR3100 vw_set_rx_pin (12); vw_setup (4000); // bitů za sekundu pinMode (13, VÝSTUP); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Spusťte přijímač PLL se spuštěním Serial.println ("Vše v pořádku");
}
void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf, & buflen)) // Neblokující
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); dozadu (); zpoždění (100); //vypnuto(); } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD"); vpřed(); zpoždění (100); //vypnuto(); }
else if ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("VLEVO"); vlevo, odjet(); zpoždění (100); //vypnuto(); }
else if ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("RIGHT"); že jo(); zpoždění (100); //vypnuto(); } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); vypnuto(); zpoždění (100); }} else {Serial.println ("Nebyl přijat žádný signál"); }}
neplatné dopředu ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
neplatné zpět ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
prázdno vlevo ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
neplatné právo ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
zrušit ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Krok 6: Soubory INO
Krok 7: Propojení knihoven
Virtuální drátěná knihovna:
MPU6050_tockn Libraby:
Knihovna drátů:
Doporučuje:
Univerzální dálkové ovládání ovládané gesty s uzlem-MCU: 12 kroků
Dálkově ovládané univerzální dálkové ovládání s uzlem-MCU: Ahoj všichni a vítejte v tomto projektu! Jsem docela líný člověk a noční můrou líného člověka je dívat se na televizi, když si uvědomíte, že ovladač je příliš daleko! Uvědomil jsem si, že můj dálkový ovladač nebude nikdy příliš daleko, pokud ho budu mít po ruce
Dálkově ovládané auto - ovládané pomocí bezdrátového ovladače Xbox 360: 5 kroků
Dálkově ovládané auto - ovládané pomocí bezdrátového ovladače Xbox 360: Toto jsou pokyny k sestavení vlastního dálkově ovládaného auta, ovládaného pomocí bezdrátového ovladače Xbox 360
Ruční RC auto ovládané gesty: 15 kroků
Ruční RC auto ovládané gesty: Hello World! Toto je můj první instruktabilní Pokud máte nějaké dotazy - neváhejte se zeptat. Cílové publikum: Tento projekt je použitelný pro každého, kdo má vášeň, pokud jde o technologie. Ať už jste odborník nebo úplný začátečník
Auto ovládané gesty: 5 kroků (s obrázky)
Ovládání gesty: Roboti hrají důležitou roli v automatizaci napříč všemi odvětvími, jako je stavebnictví, armáda, zdravotnictví, výroba atd. Po výrobě některých základních robotů, jako je Řízené auto pomocí Bluetooth, jsem vyvinul tento ges založený na akcelerometru
DIY bezdrátové bezdrátové rádiové vlny zdarma v Káthmándú: 6 kroků
DIY Wireless Free Electricity Form Radio Waves v Káthmándú: Co jsem udělal, vylepšil jsem to a ještě více zjednodušil a místo čtyř má jen dva konce. Správná velikost palačinky se dvěma konci spojenými s Arial’s a zemí funguje jako přijímač. Dlouhý úsek dvou arial, jedna spojená s g