Satura rādītājs:
- 1. solis: aprīkojums
- 2. darbība: shēmas diagrammas attēla fails
- 3. solis: ķēdes diagrammas fritzēšanas fails
- 4. solis: raidītāja kods
- 5. solis: uztvērēja kods
- 6. darbība: INO faili
- 7. darbība: bibliotēku saite
Video: Ar žestiem vadāma bezvadu automašīna: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
Šajā apmācībā mēs uzzināsim, kā izveidot žestu vadītu automašīnu vai jebkuru robotu. Šim projektam ir divas daļas, viena daļa ir raidītāja bloks, bet otra - uztvērēja bloks. Raidītāja bloks faktiski ir uzstādīts uz rokas cimdiem, un uztvērējs atrodas automašīnā vai jebkurā robotā. Tagad ir pienācis laiks izveidot jauku automašīnu. Ejam!
1. solis: aprīkojums
Raidītāja vienība
1. Arduino Nano.
2. MPU6050 sensora modulis.
3. RF 433 MHz raidītājs.
4. Jebkura veida 3 šūnu, 11,1 voltu akumulators (šeit esmu izmantojis monētu elementu).
5. Vero-Board.
6. Roku cimdi.
Uztvērēja vienība
1. Arduino Nano vai Arduino Uno.
2. L298N motora vadītāja modulis.
3. 4 riteņu robotu rāmis, ieskaitot motorus.
4. RF 433 RF uztvērējs.
5. 3 šūnu, 11,1 voltu litija baterija.
6. Vero-dēlis.
Citi
1. Līmes nūjas un lielgabals.
2. Jumper vadi.
3. Skrūvgrieži
4. Lodēšanas komplekts.
utt.
2. darbība: shēmas diagrammas attēla fails
3. solis: ķēdes diagrammas fritzēšanas fails
4. solis: raidītāja kods
#iekļaut
#iekļaut
#iekļaut
MPU6050 mpu6050 (vads);
ilgs taimeris = 0;
char *kontrolieris;
anulēts iestatījums ()
{Sērijas sākums (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (patiess); vw_set_ptt_inverted (true); // vw_set_tx_pin (10); vw_setup (4000); // datu pārsūtīšanas ātrums Kbps
}
tukša cilpa ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
ja (milis () - taimeris> 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 "); taimeris = milis (); }
/////////////////////////////////////////////////////////////////////////////////////
ja (mpu6050.getAccAngleX () 30) {kontrolieris = "X2"; vw_send ((uint8_t *) kontrolieris, strlen (kontrolieris)); vw_wait_tx (); // Pagaidiet, līdz viss ziņojums būs pazudis Serial.println ("FORWARD"); } cits if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) kontrolieris, strlen (kontrolieris)); vw_wait_tx (); // Pagaidiet, līdz viss ziņojums ir pazudis Serial.println ("LEFT"); } cits if (mpu6050.getAccAngleY () <-40) {controller = "Y2"; vw_send ((uint8_t *) kontrolieris, strlen (kontrolieris)); vw_wait_tx (); // Pagaidiet, līdz viss ziņojums ir pazudis Serial.println ("RIGHT"); } cits if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {controller = "A1"; vw_send ((uint8_t *) kontrolieris, strlen (kontrolieris)); vw_wait_tx (); // Pagaidiet, līdz viss ziņojums ir pazudis Serial.println ("STOP"); }}
5. solis: uztvērēja kods
#iekļaut
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (true); // Nepieciešams DR3100 vw_set_rx_pin (12); vw_setup (4000); // Biti sekundē pinMode (13, OUTPUT); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Sāciet uztvērēja PLL, kurā darbojas Serial.println ("Viss OK");
}
void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf, & buflen)) // Netraucē
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); atpakaļ (); kavēšanās (100); // izslēgts (); } cits if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD"); uz priekšu (); kavēšanās (100); // izslēgts (); }
citādi, ja ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("LEFT"); pa kreisi (); kavēšanās (100); // izslēgts (); }
citādi, ja ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("RIGHT"); taisnība(); kavēšanās (100); // izslēgts (); } cits if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); izslēgts (); kavēšanās (100); }} else {Serial.println ("Nav saņemts signāls"); }}
anulēt uz priekšu ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
spēkā neesošs ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
tukšums pa kreisi ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
spēkā neesošas tiesības ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
anulēt ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
6. darbība: INO faili
7. darbība: bibliotēku saite
Virtuālā vadu bibliotēka:
MPU6050_tockn Libraby:
Vadu bibliotēka:
Ieteicams:
DIY Arduino Bluetooth vadāma automašīna: 6 soļi (ar attēliem)
DIY Arduino Bluetooth vadāma automašīna: Sveiki draugi! Mans vārds ir Nikolas, man ir 15 gadi un es dzīvoju Atēnās, Grieķijā. Šodien es jums parādīšu, kā izveidot divu riteņu Bluetooth vadāmu automašīnu, izmantojot Arduino Nano, 3D printeri un dažas vienkāršas elektroniskas sastāvdaļas! Noteikti skatieties manu
DIY Bluetooth vadāma automašīna: 4 soļi
DIY Bluetooth vadāma automašīna: Sveiki visiem, šajā apmācībā es jums parādīšu, kā izveidot Bluetooth vadāmu RC automašīnu, izmantojot Arduino mikrokontrolleru un HC-05 Bluetooth moduli. Šī projekta tapšana prasīs mazāk nekā 1 stundu, un jums var būt sava RC automašīna
Ar žestiem vadāma pele: 6 soļi (ar attēliem)
Pele ar žestu vadību: Jūs skatāties filmu ar draugiem klēpjdatorā, un viens no puišiem kļūst nelaipns. Ahh .. jums ir jāizkāpj no savas vietas, lai apturētu filmas darbību. Jūs sniedzat prezentāciju projektorā un jums ir jāpārslēdzas starp lietojumprogrammām. Jums jāpārvietojas
Ar žestiem vadāma universālā tālvadības pults ar mezglu-MCU: 12 soļi
Žestu kontrolēta universālā tālvadības pults ar mezglu-MCU: Sveiki visiem un laipni lūdzam šajā projektā! Es esmu diezgan slinks cilvēks, un slinka cilvēka murgs ir skatīties televizoru, kad saprotat, ka tālvadības pults ir pārāk tālu! Es sapratu, ka tālvadības pults nekad nebūs pārāk tālu, ja man tā būs pie rokas
Automašīna ar tālvadību - vadāma, izmantojot bezvadu Xbox 360 kontrolieri: 5 soļi
Automašīna ar tālvadību - vadāma, izmantojot bezvadu Xbox 360 kontrolieri: Šie ir norādījumi, lai izveidotu savu tālvadības automašīnu, kuru kontrolē, izmantojot bezvadu Xbox 360 kontrolieri