Sisukord:
- Samm: seadmed
- 2. samm: vooluahela pildifail
- 3. etapp: vooluahela diagrammi fail
- 4. samm: saatja kood
- Samm: vastuvõtja kood
- Samm: INO -failid
- 7. samm: raamatukogude link
Video: Žestidega juhitav traadita auto: 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Selles õpetuses õpime, kuidas teha žestiga juhitavat autot või robotit. Sellel projektil on kaks osa, üks osa on saatja ja teine osa vastuvõtja. Saatja on tegelikult paigaldatud käsikindadele ja vastuvõtuseade on paigutatud autosse või robotisse. Nüüd on aeg teha kena auto. Lähme!
Samm: seadmed
Saatja üksus
1. Arduino Nano.
2. MPU6050 andurimoodul.
3. RF 433 MHz saatja.
4. Igat tüüpi 3 -elemendiline, 11,1 -voldine aku (siin olen kasutanud mündielementi).
5. Vero-Board.
6. Käekindad.
Vastuvõtja
1. Arduino Nano või Arduino Uno.
2. L298N mootorijuhi moodul.
3. neljarattaline robotraam, sealhulgas mootorid.
4. RF 433 RF vastuvõtja.
5. 3-cell, 11,1 volti Li-po aku.
6. Vero-pardal.
Teised
1. Liimipulgad ja püstol.
2. Jumper juhtmed.
3. Kruvikeerajad
4. Jootekomplekt.
jne.
2. samm: vooluahela pildifail
3. etapp: vooluahela diagrammi fail
4. samm: saatja kood
#kaasake
#kaasake
#kaasake
MPU6050 mpu6050 (traat);
pikk taimer = 0;
char *kontroller;
tühine seadistus ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (tõene); vw_set_ptt_inverted (true); // vw_set_tx_pin (10); vw_setup (4000); // andmeedastuskiirus Kbps
}
tühine tsükkel ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
kui (millis () - taimer> 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 "); taimer = millis (); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX () 30) {kontroller = "X2"; vw_send ((uint8_t *) kontroller, strlen (kontroller)); vw_wait_tx (); // Oota, kuni kogu sõnum on kadunud Serial.println ("FORWARD"); } else if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) kontroller, strlen (kontroller)); vw_wait_tx (); // Oota, kuni kogu sõnum on kadunud Serial.println ("LEFT"); } else if (mpu6050.getAccAngleY () <-40) {controller = "Y2"; vw_send ((uint8_t *) kontroller, strlen (kontroller)); vw_wait_tx (); // Oota, kuni kogu sõnum on kadunud Serial.println ("RIGHT"); } else if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {kontroller = "A1"; vw_send ((uint8_t *) kontroller, strlen (kontroller)); vw_wait_tx (); // Oota, kuni kogu sõnum on kadunud Serial.println ("STOP"); }}
Samm: vastuvõtja kood
#kaasake
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (true); // Nõutav DR3100 jaoks vw_set_rx_pin (12); vw_setup (4000); // bitti sekundis pinMode (13, OUTPUT); pinMode (LA, VÄLJUND); pinMode (LB, OUTPUT); pinMode (RA, VÄLJUND); pinMode (RB, OUTPUT); vw_rx_start (); // Käivitage vastuvõtja PLL, käivitades Serial.println ("Kõik OK");
}
void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf & buflen)) // Mitteblokeeriv
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); tagurpidi (); viivitus (100); //väljas(); } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD"); edasi (); viivitus (100); //väljas(); }
muidu kui ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("LEFT"); vasak (); viivitus (100); //väljas(); }
muidu kui ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("ÕIGE"); paremal (); viivitus (100); //väljas(); } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); väljas(); viivitus (100); }} else {Serial.println ("Signaali ei saadud"); }}
tühine edasi ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
tühine tagurpidi ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
tühi jäänud ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
tühine õigus ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
tühine ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Samm: INO -failid
7. samm: raamatukogude link
Virtuaalse traadi raamatukogu:
MPU6050_tockn Libraby:
Juhtmeraamatukogu:
Soovitan:
Žestidega juhitav robot Arduino abil: 7 sammu
Žestidega juhitav robot Arduino abil: Roboteid kasutatakse paljudes sektorites, nagu ehitus, sõjavägi, tootmine, kokkupanek jne. Robotid võivad olla autonoomsed või poolautonoomsed. Autonoomsed robotid ei vaja inimeste sekkumist ja võivad vastavalt olukorrale iseseisvalt tegutseda. Näe
Žestidega juhitav robot - Spinel Crux: 4 sammu
Žestidega juhitav robot - Spinel Crux: Spinel Crux Žestidega juhitav robot traadita seireprojekti jaoks. Selles seerias ehitame roboti, mis saab liikuda ebatasasel maastikul ja juhtida käeliigutustega. Roboti juhtimiseks kasutame juhtkinda, mis
Žestidega juhitav treenitav robotkäsi Bluetoothi kaudu Arduinole: 4 sammu
Žestidega juhitav treenitav robotkäsi Bluetoothi kaudu Arduinole: käsivarrel on kaks režiimi. Esiteks on käsitsi režiim, mille abil saate oma mobiiltelefonis Bluetoothi abil kätt liigutada, liigutades rakenduse liugureid. Samal ajal saate oma positsioone salvestada ja mängida … Teiseks on žestirežiim, mis kasutab teie telefoni
Ehitage žestidega juhitav robot: 4 sammu (piltidega)
Ehitage žestidega juhitav robot: selles juhendis ehitame Arcbotics Sparki roboti, mida saab juhtida 3D -žestidega. Selle projekti kena omadus on see, et roboti juhtimiseks pole vaja lisaseadet, näiteks nutitelefoni või kinnast. Liigutage lihtsalt käsi üle elevandi
DTMF ja žestidega juhitav robootiline ratastool: 7 sammu (piltidega)
DTMF ja žestidega juhitav robootiline ratastool: selles maailmas on paljud inimesed puudega. Nende elu keerleb rataste ümber. See projekt tutvustab lähenemist ratastooli liikumise juhtimiseks, kasutades nutitelefoni käeliigutuvastust ja DTMF -i