Tartalomjegyzék:
- 1. lépés: Felszerelések
- 2. lépés: Áramköri diagram képfájl
- 3. lépés: Az áramkör diagramjának frizurálása
- 4. lépés: Adókód
- 5. lépés: Vevő kód
- 6. lépés: INO fájlok
- 7. lépés: Könyvtárak összekapcsolása
Videó: Gesztusvezérelt vezeték nélküli autó: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Ebben az oktatóanyagban megtanuljuk, hogyan lehet gesztusvezérelt autót vagy bármilyen robotot készíteni. Ez a projekt két részből áll, az egyik rész az adóegység, a másik pedig a vevőegység. Az adóegységet valójában egy kézi kesztyűre szerelik fel, és a vevőegységet egy autóba vagy bármely robotba helyezik. Itt az ideje, hogy szép autót készítsen. Gyerünk!
1. lépés: Felszerelések
Adóegység
1. Arduino Nano.
2. MPU6050 érzékelő modul.
3. RF 433 MHz -es adó.
4. Bármilyen típusú 3 cellás, 11,1 voltos akkumulátor (itt használtam érmecellát).
5. Vero-Board.
6. Kézkesztyű.
Vevőegység
1. Arduino Nano vagy Arduino Uno.
2. L298N motorvezérlő modul.
3. négykerekű robotkeret motorokkal együtt.
4. RF 433 RF vevő.
5. 3 cellás, 11,1 voltos Li-po akkumulátor.
6. Vero-board.
Mások
1. Ragasztópálca és pisztoly.
2. Jumper vezetékek.
3. Csavarhúzók
4. Forrasztókészlet.
stb.
2. lépés: Áramköri diagram képfájl
3. lépés: Az áramkör diagramjának frizurálása
4. lépés: Adókód
#befoglalni
#befoglalni
#befoglalni
MPU6050 mpu6050 (huzal);
hosszú időzítő = 0;
char *vezérlő;
üres beállítás ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (igaz); vw_set_ptt_inverted (igaz); // vw_set_tx_pin (10); vw_setup (4000); // az adatátvitel sebessége Kbps
}
üres hurok ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
ha (millis () - időzítő> 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 "); időzítő = millis (); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX () 30) {controller = "X2"; vw_send ((uint8_t *) vezérlő, strlen (vezérlő)); vw_wait_tx (); // Várjon, amíg az egész üzenet eltűnik Serial.println ("FORWARD"); } else if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) vezérlő, strlen (vezérlő)); vw_wait_tx (); // Várjon, amíg az egész üzenet eltűnik Serial.println ("LEFT"); } else if (mpu6050.getAccAngleY () <-40) {controller = "Y2"; vw_send ((uint8_t *) vezérlő, strlen (vezérlő)); vw_wait_tx (); // Várjon, amíg az egész üzenet eltűnik Serial.println ("RIGHT"); } else if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {controller = "A1"; vw_send ((uint8_t *) vezérlő, strlen (vezérlő)); vw_wait_tx (); // Várjon, amíg az egész üzenet eltűnik Serial.println ("STOP"); }}
5. lépés: Vevő kód
#befoglalni
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (igaz); // Kötelező a DR3100 -hoz vw_set_rx_pin (12); vw_setup (4000); // Bit per sec pinMode (13, OUTPUT); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Indítsa el a vevő PLL -jét a Serial.println futtatásával ("Minden OK");
}
void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf, & buflen)) // Nem blokkoló
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); hátrafelé(); késleltetés (100); //ki(); } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD"); előre(); késleltetés (100); //ki(); }
egyébként ha ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("LEFT"); bal(); késleltetés (100); //ki(); }
egyébként ha ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("RIGHT"); jobb(); késleltetés (100); //ki(); } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); ki(); késleltetés (100); }} else {Serial.println ("Nincs jel"); }}
érvénytelen előre ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
üres vissza ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
üres bal ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
érvénytelen jog ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
érvénytelen ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
6. lépés: INO fájlok
7. lépés: Könyvtárak összekapcsolása
Virtuális vezetékes könyvtár:
MPU6050_tockn Libraby:
Drótkönyvtár:
Ajánlott:
Vezeték nélküli Arduino robot a HC12 vezeték nélküli modul használatával: 7 lépés
Vezeték nélküli Arduino robot a HC12 vezeték nélküli modul használatával: Hé srácok, üdv újra. Korábbi hozzászólásomban elmagyaráztam, hogy mi az a H -híd áramkör, az L293D motorvezérlő IC, a malackalapú L293D motorvezérlő IC a nagyáramú motorvezérlők vezetéséhez, és hogyan tervezheti meg és készítheti el saját L293D motorvezérlő tábláját
Távirányítású autó - Vezeték nélküli vezeték nélküli Xbox 360 vezérlővel: 5 lépés
Távirányítású autó - vezérelhető a vezeték nélküli Xbox 360 vezérlő használatával: Ezek az utasítások saját távirányítású autó létrehozásához, vezeték nélküli Xbox 360 vezérlővel vezérelhetők
Ötven méter hatótávolságú vezeték nélküli hozzáférési pont TP Link WN7200ND USB vezeték nélküli adapterrel Raspbian Stretch -en: 6 lépés
Ötven méter hatótávolságú vezeték nélküli hozzáférési pont TP Link WN7200ND USB vezeték nélküli adapterrel a Raspbian Stretch -en: A Raspberry Pi kiválóan alkalmas biztonságos vezeték nélküli hozzáférési pontok létrehozására, de nem rendelkezik jó hatótávolsággal, TP Link WN7200ND USB vezeték nélküli adaptert használtam annak kiterjesztéséhez. Szeretném megosztani, hogyan kell csinálniMiért akarok málna pi -t használni router helyett? T
DIY vezeték nélküli mikrofon vezeték nélküli gitárrendszerhez: 4 lépés
DIY Wireless Mic to Wireless Guitar System: Néztem néhány videót és néhány zenekart, és szinte közülük vezeték nélküli rendszert használ a gitáron. Megőrülök, mozogok, sétálok, és azt csinálok, amit akarnak, anélkül, hogy a zsinórt használnám, ezért arról álmodozom, hogy lesz egy .. De .. nekem ez most túl drága, ezért erre jutottam
Hackeljen be egy vezeték nélküli kaputelefont egy vezeték nélküli riasztókapcsolóba vagy be/ki kapcsolóba: 4 lépés
Hackeljen be egy vezeték nélküli kaputelefont egy vezeték nélküli riasztókapcsolóba vagy be/ki kapcsolóba: Nemrég építettem egy riasztórendszert, és telepítettem a házamba. Mágneses kapcsolókat használtam az ajtókon, és bekötöttem a padláson. Az ablakok egy másik történet, és a kemény huzalozás nem volt lehetőség. Szükségem volt egy vezeték nélküli megoldásra, és ez