Inhoudsopgave:
- Stap 1: Uitrustingen
- Stap 2: Circuitdiagram afbeeldingsbestand
- Stap 3: Fritzing-bestand van schakelschema
- Stap 4: Zendercode
- Stap 5: Ontvangercode
- Stap 6: INO-bestanden
- Stap 7: Link naar bibliotheken
Video: Gebaargestuurde draadloze auto - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
In deze tutorial gaan we leren hoe je een gebarengestuurde auto of een robot kunt maken. Dit project bestaat uit twee delen, een deel is een zendereenheid en een ander deel is een ontvangereenheid. De zendereenheid is eigenlijk op een handhandschoen gemonteerd en de ontvangereenheid wordt in een auto of een robot geplaatst. Nu is het tijd om een mooie auto te maken. Laten we gaan!
Stap 1: Uitrustingen
Zendereenheid
1. Arduino-nano.
2. MPU6050-sensormodule.
3. RF 433 MHz-zender.
4. Elk type 3-cel, 11,1 volt batterij (hier heb ik een knoopcel gebruikt).
5. Vero-bord.
6. Handhandschoenen.
Ontvangereenheid:
1. Arduino Nano of Arduino Uno.
2. L298N-motorbesturingsmodule.
3. 4-wiel robotframe inclusief motoren.
4. RF 433 RF-ontvanger.
5. 3-cel, 11,1 volt Li-po-batterij.
6. Verobord.
anderen
1. Lijmstiften en pistool.
2. Overbruggingsdraden.
3. Schroevendraaiers
4. Soldeerset.
enzovoort.
Stap 2: Circuitdiagram afbeeldingsbestand
Stap 3: Fritzing-bestand van schakelschema
Stap 4: Zendercode
#erbij betrekken
#erbij betrekken
#erbij betrekken
MPU6050 mpu6050 (draad);
lange timer = 0;
char *controller;
ongeldige setup()
{ Serieel.begin (9600); Draad.begin(); mpu6050.begin(); mpu6050.calcGyroOffsets(true); vw_set_ptt_inverted (waar); // vw_set_tx_pin (10); vw_setup (4000);// snelheid van gegevensoverdracht Kbps
}
lege lus()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update();
if(millis() - timer > 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 = millis(); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX()30) { controller="X2"; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wacht tot het hele bericht is verdwenen Serial.println ("FORWARD"); } else if (mpu6050.getAccAngleY()>40) { controller="Y1"; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wacht tot het hele bericht is verdwenen Serial.println ("LEFT"); } else if (mpu6050.getAccAngleY()<-40) { controller="Y2"; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wacht tot het hele bericht is verdwenen Serial.println ("RIGHT"); } else if (mpu6050.getAccAngleX()-10 && mpu6050.getAccAngleY()-10) { controller="A1"; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wacht tot het hele bericht is verdwenen Serial.println ("STOP"); } }
Stap 5: Ontvangercode
#erbij betrekken
int LA = 3;
int LB = 11; intRA = 5; int RB = 6; void setup() { Serial.begin(9600); vw_set_ptt_inverted (waar); // Vereist voor DR3100 vw_set_rx_pin (12); vw_setup(4000); // Bits per sec pinMode (13, OUTPUT); pinMode (LA, UITGANG); pinMode (LB, UITGANG); pinMode (RA, UITGANG); pinMode (RB, UITGANG); vw_rx_start(); // Start de ontvanger-PLL met Serial.println ("Alles OK");
}
void loop() { uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Niet-blokkerend
{ if((buf[0]=='X')&&(buf[1]=='1')) { Serial.println("ACHTERWAARTS"); achteruit(); vertraging (100); //uit(); } else if((buf[0]=='X')&&(buf[1]=='2')) { Serial.println("FORWARD"); naar voren(); vertraging (100); //uit(); }
anders if((buf[0]=='Y')&&(buf[1]=='1'))
{ Serial.println("LINKS"); links(); vertraging (100); //uit(); }
anders if((buf[0]=='Y')&&(buf[1]=='2'))
{ Serial.println ("RECHTS"); Rechtsaf(); vertraging (100); //uit(); } else if((buf[0]=='A')&&(buf[1]=='1')) { Serial.println("STOP"); uit(); vertraging (100); } } else { Serial.println ("Geen signaal ontvangen"); } }
ongeldig vooruit()
{analoogWrite(LA, 70); analoogWrite(LB, 0); analoogWrite(RA, 70); analoogWrite(RB, 0); }
ongeldig achteruit()
{analogeWrite(LA, 0); analoogWrite(LB, 70); analoogWrite(RA, 0); analoogWrite(RB, 70); }
leegte links()
{analogeWrite(LA, 0); analoogWrite(LB, 70); analoogWrite(RA, 70); analoogWrite(RB, 0); }
ongeldig rechts()
{analoogWrite(LA, 70); analoogWrite(LB, 0); analoogWrite(RA, 0); analoogWrite(RB, 70); }
nietig maken()
{analogeWrite(LA, 0); analoogWrite(LB, 0); analoogWrite(RA, 0); analoogWrite(RB, 0); }
Stap 6: INO-bestanden
Stap 7: Link naar bibliotheken
Virtuele draadbibliotheek:
MPU6050_tockn Libraby:
Draadbibliotheek:
Aanbevolen:
Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik: 7 stappen
Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik: Soms zijn trillingen de oorzaak van ernstige problemen in veel toepassingen. Van machineassen en lagers tot de prestaties van de harde schijf, trillingen veroorzaken schade aan de machine, vroegtijdige vervanging, lage prestaties en veroorzaken een grote aanslag op de nauwkeurigheid. Toezicht houden
Hoe maak je een draadloze Tin-Can-telefoon! (Arduino Walkie Talkie): 7 stappen (met afbeeldingen)
Hoe maak je een draadloze Tin-Can-telefoon! (Arduino Walkie Talkie): Onlangs zat ik midden in een heel belangrijk telefoontje toen mijn bananentelefoon niet meer werkte! Ik was zo gefrustreerd. Dat is de laatste keer dat ik een oproep mis vanwege die stomme telefoon! (Achteraf ben ik misschien een beetje te boos geworden in
Articulerende draadloze vermogenszender: 4 stappen
Articulating Wireless Power Transmitter: Wilt u een scharnierende arm die uw apparaat zinloos volgt om op te laden? Dit is het project. I Wireless Power Transmitter en Receiver combo die uw apparaat zal volgen…..zolang het ongeveer vijf centimeter verwijderd is
Draadloze stroomoverdracht met behulp van een 9v-batterij: 10 stappen
Draadloze stroomoverdracht met behulp van een 9v-batterij: inleiding. Stel je een wereld voor zonder bekabelde verbinding, waar onze telefoons, lamp, tv, koelkast en alle andere elektronica draadloos worden aangesloten, opgeladen en gebruikt. Dat is inderdaad de wens van velen geweest, zelfs het elektrisch elektronische genie
Draadloze PIR-sensor: 4 stappen
Draadloze PIR-sensor: het doel van dit project is om een draadloze bewegingssensor op batterijen te maken. Het kan worden gebruikt voor een alarmsysteem, verlichting enz. Het kan maanden duren op de batterijen, afhankelijk van of het vaak wordt geactiveerd of niet