Sisällysluettelo:
- Vaihe 1: Laitteet
- Vaihe 2: Piirikaavion kuvatiedosto
- Vaihe 3: Piirikaavion hajotus
- Vaihe 4: Lähettimen koodi
- Vaihe 5: Vastaanottimen koodi
- Vaihe 6: INO -tiedostot
- Vaihe 7: Linkki kirjastoihin
Video: Eleohjattu langaton auto: 7 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Tässä opetusohjelmassa aiomme oppia tekemään eleohjatun auton tai minkä tahansa robotin. Tässä projektissa on kaksi osaa, yksi osa on lähetinyksikkö ja toinen osa vastaanotinyksikkö. Lähetinyksikkö on itse asiassa asennettu käsineisiin ja vastaanotinyksikkö on sijoitettu autoon tai robottiin. Nyt on aika tehdä hieno auto. Mennään!
Vaihe 1: Laitteet
Lähetinyksikkö
1. Arduino Nano.
2. MPU6050 -anturimoduuli.
3. RF 433 MHz -lähetin.
4. Mikä tahansa 3 -kennoinen, 11,1 voltin akku (tässä olen käyttänyt nappiparistoa).
5. Vero-Board.
6. Käsineet.
Vastaanotinyksikkö
1. Arduino Nano tai Arduino Uno.
2. L298N -moottorin ohjainmoduuli.
3. 4 -pyöräinen robotirunko, mukaan lukien moottorit.
4. RF 433 RF -vastaanotin.
5. 3-kennoinen, 11,1 voltin Li-po-akku.
6. Vero-board.
Muut
1. Liimapuikot ja ase.
2. Hyppyjohdot.
3. Ruuvitaltat
4. Juotosarja.
jne.
Vaihe 2: Piirikaavion kuvatiedosto
Vaihe 3: Piirikaavion hajotus
Vaihe 4: Lähettimen koodi
#sisältää
#sisältää
#sisältää
MPU6050 mpu6050 (lanka);
pitkä ajastin = 0;
char *-ohjain;
mitätön asennus ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (tosi); vw_set_ptt_inverted (tosi); // vw_set_tx_pin (10); vw_setup (4000); // tiedonsiirtonopeus Kbps
}
tyhjä silmukka ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
jos (millis () - ajastin> 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 "); ajastin = millis (); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX () 30) {controller = "X2"; vw_send ((uint8_t *) ohjain, strlen (ohjain)); vw_wait_tx (); // Odota, kunnes koko viesti on poissa Serial.println ("FORWARD"); } else if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) ohjain, strlen (ohjain)); vw_wait_tx (); // Odota, kunnes koko viesti on poissa Serial.println ("LEFT"); } else if (mpu6050.getAccAngleY () <-40) {controller = "Y2"; vw_send ((uint8_t *) ohjain, strlen (ohjain)); vw_wait_tx (); // Odota, kunnes koko viesti on poissa Serial.println ("OIKEA"); } else if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {controller = "A1"; vw_send ((uint8_t *) ohjain, strlen (ohjain)); vw_wait_tx (); // Odota, kunnes koko viesti on poissa Serial.println ("STOP"); }}
Vaihe 5: Vastaanottimen koodi
#sisältää
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (tosi); // Vaaditaan DR3100: lle vw_set_rx_pin (12); vw_setup (4000); // Bittiä sekunnissa pinMode (13, OUTPUT); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Käynnistä vastaanottimen PLL käynnissä Serial.println ("Kaikki OK");
}
void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf & buflen)) // Ei-esto
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); taaksepäin(); viive (100); //vinossa(); } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD"); eteenpäin(); viive (100); //vinossa(); }
muuten jos ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("LEFT"); vasen (); viive (100); //vinossa(); }
muuten jos ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("OIKEA"); oikea (); viive (100); //vinossa(); } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); vinossa(); viive (100); }} else {Serial.println ("Ei signaalia vastaanotettu"); }}
mitätön eteenpäin ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
mitätön taaksepäin ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
tyhjä tyhjä ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
mitätön oikeus ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
mitätön ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Vaihe 6: INO -tiedostot
Vaihe 7: Linkki kirjastoihin
Virtual Wire Library:
MPU6050_tockn Libraby:
Lankakirjasto:
Suositeltava:
Eleohjattu robotti Arduinon avulla: 7 vaihetta
Eleohjattu robotti Arduinon avulla: Robotteja käytetään monilla aloilla, kuten rakentaminen, armeija, valmistus, kokoonpano jne. Robotit voivat olla itsenäisiä tai puoliautomaattisia. Autonomiset robotit eivät vaadi ihmisen väliintuloa ja voivat toimia itsenäisesti tilanteen mukaan. Katso
Eleohjattu robotti - Spinel Crux: 4 vaihetta
Eleohjattu robotti - Spinel Crux: Spinel Crux Eleohjattu robotti langatonta valvontaa varten. Tässä sarjassa rakennamme robotin, joka voi kulkea epätasaisessa maastossa ja hallita käsieleitä. Robotin ajamiseen käytämme käsineitä, jotka
Eleohjattu hiiri: 6 vaihetta (kuvilla)
Eleohjattu hiiri: Katsot elokuvaa ystäviesi kanssa kannettavalla tietokoneella ja yksi kavereista saa puhelua. Ahh .. sinun on poistuttava paikaltasi keskeyttääksesi elokuvan. Pidät esityksen projektorilla ja sinun on vaihdettava sovellusten välillä. Sinun on siirrettävä
Eleohjattu auto: 5 vaihetta (kuvilla)
Eleohjattu auto: Roboteilla on tärkeä rooli automaatiossa kaikilla aloilla, kuten rakentaminen, armeija, lääketiede, valmistus jne. Kun olen tehnyt joitain perusrobotteja, kuten ohjattavan auton, Bluetoothin avulla, olen kehittänyt tämän kiihtyvyysmittariin perustuvan
Viidenkymmenen metrin kantaman langaton tukiasema TP -linkillä WN7200ND langaton USB -sovitin raspbian -venytyksellä: 6 vaihetta
Viidenkymmenen metrin kantaman langaton tukiasema, jossa on TP -linkki WN7200ND langaton USB -sovitin Raspbian Stretchillä: Raspberry Pi on loistava suojattujen langattomien tukiasemien luomiseen, mutta sillä ei ole hyvää kantamaa. Haluan jakaa miten se tehdäänMiksi haluan käyttää vadelmapiä reitittimen sijaan? T