Cuprins:
- Pasul 1: Echipamente
- Pasul 2: Fișier imagine cu diagramă de circuit
- Pasul 3: Fișierul Fritzing al schemei de circuite
- Pasul 4: Codul emițătorului
- Pasul 5: Cod receptor
- Pasul 6: fișiere INO
- Pasul 7: Legătura bibliotecilor
Video: Mașină fără fir controlată prin gesturi: 7 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
În acest tutorial vom învăța cum să facem o mașină controlată prin gesturi sau orice robot. Acest proiect are două părți, o parte este unitatea emițător și cealaltă parte este unitatea receptor. Unitatea transmițătoare este montată de fapt pe mănuși de mână și unitatea receptor este plasată în interiorul unei mașini sau al oricărui robot. Acum este timpul să faci o mașină frumoasă. Să mergem!
Pasul 1: Echipamente
Unitate emițător
1. Arduino Nano.
2. Modulul senzor MPU6050.
3. Transmițător RF 433 MHz.
4. Orice tip de baterie cu 3 celule, 11,1 volți (aici am folosit celule cu monede).
5. Vero-Board.
6. Mănuși de mână.
Unitate receptor
1. Arduino Nano sau Arduino Uno.
2. Modulul driverului de motor L298N.
3. Cadru robot cu 4 roți, inclusiv motoare.
4. Receptor RF 433 RF.
5. Baterie Li-po cu 3 celule, 11,1 volți.
6. Vero-bord.
Alții
1. Lipiți bastoane și pistol.
2. Sârme de jumper.
3. Șurubelnițe
4. Set de lipit.
etc.
Pasul 2: Fișier imagine cu diagramă de circuit
Pasul 3: Fișierul Fritzing al schemei de circuite
Pasul 4: Codul emițătorului
#include
#include
#include
MPU6050 mpu6050 (Sârmă);
cronometru lung = 0;
controler char *;
configurare nulă ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (adevărat); vw_set_ptt_inverted (adevărat); // vw_set_tx_pin (10); vw_setup (4000); // viteza transferului de date Kbps
}
bucla nulă ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
if (milis () - temporizator> 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 = milis (); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX () 30) {controller = "X2"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Așteptați până când întregul mesaj dispare Serial.println ("FORWARD"); } else if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Așteptați până când întregul mesaj dispare Serial.println ("STÂNGA"); } else if (mpu6050.getAccAngleY () <- 40) {controller = "Y2"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Așteptați până când întregul mesaj dispare Serial.println („DREAPTA”); } else if (mpu6050.getAccAngleX () - 10 && mpu6050.getAccAngleY () - 10) {controller = "A1"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Așteptați până când întregul mesaj dispare Serial.println ("STOP"); }}
Pasul 5: Cod receptor
#include
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (adevărat); // Obligatoriu pentru 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 (); // Porniți receptorul PLL rulând Serial.println („Toate OK”);
}
bucla void () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf, & buflen)) // Non-blocare
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); înapoi(); întârziere (100); // off (); } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD"); redirecţiona(); întârziere (100); // off (); }
else if ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println („STÂNGA”); stânga(); întârziere (100); // off (); }
else if ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println („DREAPTA”); dreapta(); întârziere (100); // off (); } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); off (); întârziere (100); }} else {Serial.println ("Fără semnal primit"); }}
nul înainte ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
nul înapoi ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
gol stâng ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
nul drept ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
anulează ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Pasul 6: fișiere INO
Pasul 7: Legătura bibliotecilor
Biblioteca de fire virtuale:
MPU6050_tockn Libraby:
Biblioteca de sârmă:
Recomandat:
Robot Arduino fără fir folosind modulul HC12 fără fir: 7 pași
Robot wireless Arduino folosind modulul HC12 fără fir: Hei băieți, bine ați revenit. În postarea mea anterioară, am explicat ce este un circuit H Bridge, circuitul de conducător auto L293D IC, piggybacking L293D driverul IC pentru conducerea driverelor de curent mare și modul în care puteți proiecta și crea propriul dvs. driver de motor L293D
Mașină controlată de la distanță - Controlată utilizând controlerul fără fir Xbox 360: 5 pași
Mașină controlată de la distanță - controlată folosind controler wireless Xbox 360: acestea sunt instrucțiuni pentru a vă construi propria mașină controlată de la distanță, controlată cu ajutorul unui controler fără fir Xbox 360
Mașină controlată prin gesturi: 5 pași (cu imagini)
Mașină controlată prin gesturi: roboții joacă un rol important în automatizare în toate sectoarele, cum ar fi construcțiile, militare, medicale, de fabricație etc. După ce am realizat niște roboți de bază, cum ar fi mașina controlată folosind Bluetooth, am dezvoltat acest accelerometru bazat pe ges
Microfon fără fir DIY la sistem de chitară fără fir: 4 pași
Sistem de microfon fără fir DIY la sistem de chitară fără fir: Am urmărit câteva videoclipuri și câteva trupe și aproape dintre ele folosesc un sistem wireless pe chitară. Înnebunind, mișcându-se, mergând și fac tot ce vor fără cablu, așa că visez să am unul .. Dar … pentru mine acum este prea scump, așa că am ajuns la asta
Hack un clopoțel fără fir într-un comutator de alarmă fără fir sau întrerupător de pornire / oprire: 4 pași
Spargerea unui clopoțel wireless într-un comutator de alarmă fără fir sau întrerupător de pornire / oprire: recent am construit un sistem de alarmă și l-am instalat în casa mea. Am folosit întrerupătoare magnetice la ușă și le-am conectat prin pod la ferestre. Ferestrele erau o altă poveste, iar cablarea dură a acestora nu era o opțiune. Aveam nevoie de o soluție wireless și asta este