Table des matières:
- Étape 1: MAÎTRE et ESCLAVE dans le même code
- Étape 2: les modules BLUETOOTH parlent via la lecture et l'écriture en série
- Étape 3: Contrôler la course
- Étape 4: Le reste du code
- Étape 5: Quelle est la prochaine étape ?
Vidéo: Piste de vitesse Arduino Hot Wheels Partie 2 - Code : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Dans la première partie de ce projet, nous avons construit le matériel pour le prototype sur 2 maquettes.
Et dans cette partie, nous allons passer en revue le code, son fonctionnement, puis le tester.
Assurez-vous de regarder la vidéo ci-dessus pour la révision complète du code et la présentation du code de travail.
Étape 1: MAÎTRE et ESCLAVE dans le même code
Le code est en 2 parties, mais à l'intérieur du même fichier. J'utilise #define et #ifdef pour déterminer quel code sera compilé ou ignoré afin que je puisse séparer tout code qui est juste pour la maquette MASTER et le code qui est juste pour la maquette ESCLAVE.
Fondamentalement, si le MASTER défini est trouvé, alors tout code qui se trouve à l'intérieur du bloc de code MASTER sera compilé et tout code en dehors de ce bloc sera supprimé au moment de la compilation.
#ifdef MAÎTRE
//Le code spécifique au maître est ici
#autre
#définir ESCLAVE
// Le code spécifique à l'esclave est ici
#fin si
J'utilise également la même technique pour #define SLAVE lorsque MASTER est compilé, vous n'avez donc qu'à vous soucier de définir MASTER ou de ne pas activer SLAVE à définir.
Étape 2: les modules BLUETOOTH parlent via la lecture et l'écriture en série
Dans ce projet, seule la maquette SLAVE communique avec la maquette MASTER. Le MASTER ne répond jamais, il écoute seulement puis agit sur les données entrantes.
Les modules parlent et écoutent en utilisant la classe Serial intégrée dans l'écosystème de codage Arduino.
Les modules Bluetooth communiquent à 38 400 bauds, de sorte que les deux chemins de code initialisent leurs communications série en utilisant:
Serial.begin(38400);
Et l'ESCLAVE utilise:
Serial.write (données ici);
Pour parler au MAÎTRE, et le MAÎTRE utilise:
data = Serial.read();
Pour écouter le flux série et lire son contenu et le stocker dans une variable.
Étape 3: Contrôler la course
L'ESCLAVE indique au MASTER s'il est en mode course plus ou prêt via le bouton vert connecté à son micro-contrôleur. En mode prêt, les capteurs IR ne font rien et le MASTER affichera 8 tirets sur l'écran pour indiquer qu'il est en mode prêt.
Lorsque l'ESCLAVE dit au MAÎTRE qu'une course va commencer, l'ESCLAVE commence à interroger les capteurs IR sur son côté (le début de la piste de course) pour que les voitures passent en dessous.
Lorsque chaque voiture passe sous chaque capteur IR, elle envoie un A (voiture 1) ou B (voiture 2) au MASTER.
Lorsque le MASTER reçoit un A ou un B, il active le chronomètre pour cette voiture spécifique, puis attend que la voiture passe sous le capteur IR correspondant à la ligne d'arrivée.
L'affichage est mis à jour toutes les 50 ms pour afficher l'heure actuelle de chaque voiture en secondes avec 2 décimales.
Une fois que les deux voitures ont franchi la ligne d'arrivée, le MASTER décide quelle voiture a été la plus rapide et affiche ce temps sur l'écran pour indiquer le vainqueur.
Étape 4: Le reste du code
Le reste du code n'est qu'un code utilitaire qui contrôle l'affichage des données sur l'affichage à 8 chiffres ou gère la logique d'appui sur les boutons, etc.
À la fin de la vidéo dans la section d'introduction de ce projet, je montre un exemple du code exécuté sur les 2 maquettes, alors assurez-vous de vérifier cela !
Vous pouvez récupérer le code de ce projet à partir de mon dépôt github.
Étape 5: Quelle est la prochaine étape ?
C'est tout pour l'instant… dans la partie 3, nous verrons comment déplacer les composants de la maquette vers quelque chose de plus permanent… restez à l'écoute !
J'espère que ce projet vous plait !
Suivez-moi sur:
www.youtube.com/c/unexpectedmaker
twitter.com/unexpectedmaker
www.facebook.com/unexpectedmaker
www.instagram.com/unexpectedmaker
www.tindie.com/stores/seonr/
Conseillé:
Créez une piste sensorielle à faible coût en quelques minutes ! : 10 étapes (avec photos)
Faire une piste sensorielle à faible coût en quelques minutes ! : Dans mon précédent Instructable, je vous ai montré comment faire une mise en page de train miniature avec voie d'évitement automatisée. Il utilisait un segment de piste, nommé « piste captée ». C'est une chose très utile à avoir dans une mise en page de chemin de fer modèle. Je peux être utilisé pour ce qui suit : Bloquer
Exécution de la piste d'aéroport à LED : 7 étapes
Running LED Airport Runway : Il s'agit d'une révision et d'une inspiration de https://www.instructables.com/id/Running-LEDs-Ardu… Je change le code source pour que la lumière scintille d'avant en arrière et plus lentement. est un modèle fait à la main d'Airport Runway
Comment créer une piste électronique impressionnante : Production musicale d'introduction pour FL Studio : 6 étapes
Comment faire une piste électronique Bumpin' : Production musicale d'introduction pour FL Studio : Bienvenue ! Ce guide Instructable aidera les producteurs de musique débutants à intermédiaires à utiliser FL Studio pour créer divers genres de musique de danse électronique. Il passera en revue les éléments de base de la création d'une chanson, dans le but de détailler les astuces de base
Comment modifier des Hot Wheels standard en R/C Hot Wheels:D: 6 étapes (avec photos)
Comment modifier les Hot Wheels standard en R/C Hot Wheels :D : Depuis que je suis un petit enfant, j'adore les voitures Hot Wheels. Cela m'a inspiré pour concevoir des véhicules fantastiques. Cette fois, ils se sont surpassés avec les Star War Hot Wheels, C-3PO. Cependant, je veux plus que simplement pousser ou voyager sur une piste, j'ai décidé: "L
Piste de vitesse Arduino Hot Wheels - Partie 1 - Prototype : 4 étapes
Piste de vitesse Arduino Hot Wheels - Partie 1 - Prototype : Il n'est pas surprenant que mon fils adore les Hot Wheels et piloter ses voitures dans toute la maison ! L'une de ses activités préférées est de faire la course avec toutes ses voitures (plus de 100 maintenant) pour déterminer quelle est la voiture la plus rapide. En ce moment, il fait tout à l'œil, et