Table des matières:
- Étape 1: Équipements
- Étape 2: fichier image du schéma de circuit
- Étape 3: Fritzing fichier de schéma de circuit
- Étape 4: Code de l'émetteur
- Étape 5: Code du destinataire
- Étape 6: Fichiers INO
- Étape 7: Lien des bibliothèques
Vidéo: Voiture sans fil à commande gestuelle : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Dans ce tutoriel, nous allons apprendre à fabriquer une voiture à commande gestuelle ou n'importe quel robot. Ce projet a deux parties, une partie est l'unité d'émission et l'autre partie est l'unité de réception. L'unité émettrice est en fait montée sur des gants et l'unité réceptrice est placée à l'intérieur d'une voiture ou de tout robot. Il est maintenant temps de faire une belle voiture. Allons-y!
Étape 1: Équipements
Unité de transmission
1. Arduino Nano.
2. Module de capteur MPU6050.
3. Émetteur RF 433 MHz.
4. Tout type de pile 3 cellules, 11,1 volts (Ici, j'ai utilisé une pile bouton).
5. Vero-Board.
6. Gants à main.
Unité de réception
1. Arduino Nano ou Arduino Uno.
2. Module de commande de moteur L298N.
3. Châssis de robot à 4 roues comprenant des moteurs.
4. Récepteur RF 433 RF.
5. Batterie Li-po à 3 cellules, 11,1 volts.
6. Vero-conseil.
Autres
1. Bâtons de colle et pistolet.
2. Cavaliers.
3. Tournevis
4. Kit de soudure.
etc.
Étape 2: fichier image du schéma de circuit
Étape 3: Fritzing fichier de schéma de circuit
Étape 4: Code de l'émetteur
#comprendre
#comprendre
#comprendre
MPU6050 mpu6050 (fil);
minuterie longue = 0;
char *contrôleur;
void setup()
{ Serial.begin(9600); Fil.begin(); mpu6050.begin(); mpu6050.calcGyroOffsets(true); vw_set_ptt_inverted(true); // vw_set_tx_pin(10); vw_setup(40000);// vitesse de transfert de données Kbps
}
boucle vide()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update();
if(millis() - minuteur > 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"); minuteur = millis(); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX()30) { controller="X2"; vw_send((uint8_t *)contrôleur, strlen(contrôleur)); vw_wait_tx(); // Attendez que tout le message soit parti Serial.println("FORWARD"); } else if (mpu6050.getAccAngleY()>40) { controller="Y1"; vw_send((uint8_t *)contrôleur, strlen(contrôleur)); vw_wait_tx(); // Attendez que tout le message soit parti Serial.println("LEFT"); } else if (mpu6050.getAccAngleY()<-40) { controller="Y2"; vw_send((uint8_t *)contrôleur, strlen(contrôleur)); vw_wait_tx(); // Attendez que tout le message soit parti Serial.println("RIGHT"); } else if (mpu6050.getAccAngleX()-10 && mpu6050.getAccAngleY()-10) { controller="A1"; vw_send((uint8_t *)contrôleur, strlen(contrôleur)); vw_wait_tx(); // Attendez que tout le message disparaisse Serial.println("STOP"); } }
Étape 5: Code du destinataire
#comprendre
int LA = 3;
entier LB = 11; int RA = 5; int RB = 6; void setup() { Serial.begin(9600); vw_set_ptt_inverted(true); // Requis pour DR3100 vw_set_rx_pin(12); vw_setup(4000); // Bits par seconde pinMode(13, OUTPUT); pinMode(LA, SORTIE); pinMode(LB, SORTIE); pinMode(RA, SORTIE); pinMode(RB, SORTIE); vw_rx_start(); // Démarrez la PLL du récepteur en exécutant Serial.println("All OK");
}
boucle vide() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non bloquant
{ if((buf[0]=='X')&&(buf[1]=='1')) { Serial.println("BACKWARD"); arrière(); retard (100); //désactivé(); } else if((buf[0]=='X')&&(buf[1]=='2')) { Serial.println("FORWARD"); effronté(); retard (100); //désactivé(); }
sinon si((buf[0]=='Y')&&(buf[1]=='1'))
{ Serial.println("GAUCHE"); la gauche(); retard (100); //désactivé(); }
sinon si((buf[0]=='Y')&&(buf[1]=='2'))
{ Serial.println("RIGHT"); droit(); retard (100); //désactivé(); } else if((buf[0]=='A')&&(buf[1]=='1')) { Serial.println("STOP"); désactivé(); retard (100); } } else { Serial.println("Aucun signal reçu"); } }
annuler en avant()
{ analogWrite(LA, 70); analogWrite(LB, 0); analogWrite(RA, 70); analogWrite(RB, 0); }
annuler en arrière()
{ analogWrite(LA, 0); analogWrite(LB, 70); analogWrite(RA, 0); analogWrite(RB, 70); }
vide à gauche()
{ analogWrite(LA, 0); analogWrite(LB, 70); analogWrite(RA, 70); analogWrite(RB, 0); }
annuler à droite()
{ analogWrite(LA, 70); analogWrite(LB, 0); analogWrite(RA, 0); analogWrite(RB, 70); }
annuler()
{ analogWrite(LA, 0); analogWrite(LB, 0); analogWrite(RA, 0); analogWrite(RB, 0); }
Étape 6: Fichiers INO
Étape 7: Lien des bibliothèques
Bibliothèque de fils virtuelle:
MPU6050_tockn Libraby:
Bibliothèque de fils:
Conseillé:
Robot Arduino sans fil utilisant le module sans fil HC12 : 7 étapes
Robot Arduino sans fil utilisant le module sans fil HC12 : Salut les gars, bon retour. Dans mon article précédent, j'ai expliqué ce qu'est un circuit de pont en H, un circuit intégré de pilote de moteur L293D, un circuit de pilote de moteur L293D superposé pour piloter des pilotes de moteur à courant élevé et comment vous pouvez concevoir et fabriquer votre propre carte de pilote de moteur L293D
Voiture à commande gestuelle : 5 étapes (avec photos)
Gesture Controlled Car: Les robots jouent un rôle important dans l'automatisation dans tous les secteurs comme la construction, l'armée, le médical, la fabrication, etc. Après avoir fabriqué des robots de base comme la voiture contrôlée utilisant Bluetooth, j'ai développé ce ges basé sur un accéléromètre
Comment faire une voiture télécommandée à la maison en toute simplicité - Voiture RC sans fil DIY: 7 étapes
Comment faire une voiture télécommandée à la maison en toute simplicité - Voiture RC sans fil DIY : Bonjour les amis dans cette instructable, je vais vous montrer comment faire une voiture rc télécommandée de manière simple, veuillez continuer à lire …… C'est vraiment un projet cool alors s'il vous plaît essayez d'en construire un
Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch: 6 étapes
Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch : Raspberry Pi est idéal pour créer des points d'accès sans fil sécurisés mais il n'a pas une bonne portée, j'ai utilisé un adaptateur sans fil USB TP Link WN7200ND pour l'étendre. Je veux partager comment le fairePourquoi est-ce que je veux utiliser un Raspberry Pi au lieu d'un routeur ?T
Système DIY de micro sans fil pour guitare sans fil : 4 étapes
DIY Wireless Mic to Wireless Guitar System: J'ai regardé des vidéos et des groupes et presque tous utilisent un système sans fil à la guitare. Devenir fou, bouger, marcher et faire ce qu'ils veulent sans le cordon alors je rêve d'en avoir un.. Mais.. pour moi maintenant c'est trop cher alors je suis arrivé à ça