Innehållsförteckning:
- Steg 1: Utrustning
- Steg 2: Circuit Diagram Image File
- Steg 3: Fritzing File of Circuit Diagram
- Steg 4: Sändarkod
- Steg 5: Mottagarkod
- Steg 6: INO -filer
- Steg 7: Länk till bibliotek
Video: Geststyrd trådlös bil: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
I denna handledning kommer vi att lära oss hur man gör en geststyrd bil eller vilken robot som helst. Detta projekt har två delar, en del är sändarenhet och en annan del är mottagarenhet. Sändarenheten är faktiskt monterad på en handske och mottagarenheten placeras inuti en bil eller någon robot. Nu är det dags att göra en fin bil. Nu går vi!
Steg 1: Utrustning
Sändarenhet
1. Arduino Nano.
2. Sensormodul MPU6050.
3. RF 433 MHz sändare.
4. Varje typ av 3 -cell, 11,1 volt batteri (här har jag använt myntcell).
5. Vero-Board.
6. Handskar.
Mottagarenhet
1. Arduino Nano eller Arduino Uno.
2. L298N -motorförarmodul.
3. 4 -hjulig robotram inklusive motorer.
4. RF 433 RF -mottagare.
5. 3-cell, 11,1 volt Li-po-batteri.
6. Vero-board.
Andra
1. Limma pinnar och pistol.
2. Bygeltrådar.
3. Skruvmejslar
4. Lödkit.
etc.
Steg 2: Circuit Diagram Image File
Steg 3: Fritzing File of Circuit Diagram
Steg 4: Sändarkod
#omfatta
#omfatta
#omfatta
MPU6050 mpu6050 (tråd);
lång timer = 0;
char *controller;
void setup ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (true); vw_set_ptt_inverted (true); // vw_set_tx_pin (10); vw_setup (4000); // hastigheten för dataöverföring Kbps
}
void loop ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
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 (); // Vänta tills hela meddelandet är borta Serial.println ("FRAMÅT"); } annars if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Vänta tills hela meddelandet är borta Serial.println ("VÄNSTER"); } annars if (mpu6050.getAccAngleY () <-40) {controller = "Y2"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Vänta tills hela meddelandet är borta Serial.println ("RIGHT"); } annars if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {controller = "A1"; vw_send ((uint8_t *) controller, strlen (controller)); vw_wait_tx (); // Vänta tills hela meddelandet är borta Serial.println ("STOP"); }}
Steg 5: Mottagarkod
#omfatta
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (true); // Krävs för DR3100 vw_set_rx_pin (12); vw_setup (4000); // Bit per sekund pinMode (13, OUTPUT); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Starta mottagarens PLL med Serial.println ("Allt OK");
}
void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf, & buflen)) // Icke-blockerande
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); bakåt(); fördröjning (100); //av(); } annars if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FRAMÅT"); fram(); fördröjning (100); //av(); }
annars om ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("VÄNSTER"); vänster(); fördröjning (100); //av(); }
annars om ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("HÖGER"); höger(); fördröjning (100); //av(); } annars if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); av(); fördröjning (100); }} else {Serial.println ("Ingen signal mottagen"); }}
ogiltigt framåt ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
tomrum bakåt ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
tomrum kvar ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
ogiltig rätt ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
ogiltig av ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Steg 6: INO -filer
Steg 7: Länk till bibliotek
Virtual Wire Library:
MPU6050_tockn Libraby:
Wire Library:
Rekommenderad:
Geststyrd robot - Spinel Crux: 4 steg
Geststyrd robot - Spinel Crux: Spinel Crux En geststyrd robot för trådlöst övervakningsprojekt. I denna serie kommer vi att bygga en robot som kan färdas genom grov terräng och styra med hjälp av handgester. För att driva roboten kommer vi att använda en kontrollhandske som
Geststyrd universell fjärrkontroll med nod-MCU: 12 steg
Geststyrd universell fjärrkontroll med nod-MCU: Hej alla och välkommen till detta projekt! Jag är ganska lat och en lat mardröm är att titta på TV när du inser att fjärrkontrollen är för långt borta! Jag insåg att min fjärrkontroll aldrig kommer att vara för långt borta om jag har den till hands alls
Trådlös Arduino -robot med HC12 trådlös modul: 7 steg
Trådlös Arduino -robot som använder HC12 trådlös modul: Hej killar, välkommen tillbaka. I mitt förra inlägg förklarade jag vad en H Bridge Circuit är, L293D motorförare IC, piggybacking L293D Motorförare IC för att köra högströmsmotordrivrutiner och hur du kan designa och göra din egen L293D -motorförarkort,
Femtio meter trådlös åtkomstpunkt med TP Link WN7200ND trådlös USB -adapter på Raspbian -stretch: 6 steg
Femtio meter trådlös åtkomstpunkt med TP Link WN7200ND trådlös USB -adapter på Raspbian Stretch: Raspberry Pi är bra att skapa säkra trådlösa åtkomstpunkter men det har inte ett bra utbud, jag använde en TP Link WN7200ND trådlös adapter för att förlänga den. Jag vill dela hur jag gör det Varför vill jag använda en hallon pi istället för en router? T
Hacka en trådlös dörrklocka till en trådlös larmströmbrytare eller strömbrytare: 4 steg
Hacka en trådlös dörrklocka till en trådlös larmströmbrytare eller strömbrytare: Jag byggde nyligen ett larmsystem och installerade det i mitt hus. Jag använde magnetbrytare på dörrarna och kopplade dem via vinden. Fönstren var en annan historia och hårda kablar var inte ett alternativ. Jag behövde en trådlös lösning och det här är