Table des matières:
- Étape 1: Pièces nécessaires
- Étape 2: Construire la boîte
- Étape 3: Configuration Arduino
- Étape 4: Logiciel - XCTU
- Étape 5: Logiciel - Arduino Sketch
- Étape 6: Logiciel - Application de bureau
- Étape 7: Premier démarrage
- Étape 8: Conclusion
- Étape 9: Annexe
Vidéo: Build Machine Watcher : 9 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Le point de départ de ce projet était de travailler sur un projet concret pour apprendre quelques trucs sur les cartes micro-contrôleurs.
L'idée initiale était de créer un objet physique capable de surveiller un système d'intégration continue (VSTS|Azure DevOps) et de signaler les échecs de construction de logiciels. En raison de problèmes de sécurité du service informatique, on m'a refusé de connecter un appareil "non standard" directement au réseau de l'entreprise.
Je me suis retrouvé avec l'architecture montrée dans l'image ci-dessus. Le workflow d'exécution peut se résumer ainsi:
Une application de bureau Windows analyse (extrait) les définitions de build VSTS. Il analyse les résultats de la construction, puis envoie une commande au périphérique physique qui exécute une petite séquence animée avant d'afficher le drapeau rouge ou vert.
Étape 1: Pièces nécessaires
La liste suivante résume tous les éléments nécessaires:
- 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
- 1 Bouclier d'extension (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
- 2 modules XBee S1 (https://www.adafruit.com/product/128).
- 1 dongle XBee explorer (https://www.sparkfun.com/products/11697).
- 2 servomoteurs continus 5VDC avec accessoires de fixation (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
- 1 alimentation 9VDC.
- 3 LED.
- 3 résistances 220 Ohm.
- manchon thermo rétractable.
- 1 bouton poussoir.
- Résistance de tirage de 10KΩ pour le pull up.
- Condensateur 100nF.
- fils électriques.
- strip-board (pour le montage du bouton)
- Bois 5mm (50x50cm).
- baguette bois section carrée 5x5 mm (1m).
- papier carton.
- 10 X vis de 2 mm de diamètre.
- 4 vis diamètre 5mm.
- aimant puissant.
- module de retournement. J'ai réutilisé la partie mobile interne d'un gyrophare. tu peux mettre ce que tu veux. Il faudra juste veiller à ce que les 2 parties mobiles puissent bouger librement sans se toucher.
Étape 2: Construire la boîte
En fait, vous pouvez avoir une boîte de la forme que vous voulez. Les principales choses à penser avant de commencer sont de savoir où seront les pièces mobiles et de s'assurer qu'elles peuvent se déplacer librement sans se toucher. Un autre point est où allez-vous mettre l'appareil ? Je me suis retrouvé avec un aimant (fort) afin de le coller sur n'importe quel support métallique. si vous souhaitez construire la même boîte, vous pouvez suivre les instructions dans le fichier box_drawings.pdf.
Dans ce cas il vous suffit de découper toutes les différentes pièces, de faire les trous pour les servomoteurs, les leds, le bouton et les vis et enfin de coller toutes les pièces ensemble. Une fois sec, un peu de ponçage et un peu de couleur.
Les deux drapeaux ont été fabriqués avec du carton rouge et vert. Pour fixer le mât du drapeau sur les servomoteurs, vous pouvez utiliser les pièces de montage fournies lors de votre achat.
Étape 3: Configuration Arduino
Les éléments connectés à la carte d'extension Arduino sont:
- D2 PIN: le bouton poussoir.
- D4 PIN: la LED pour dire que le système est allumé.
- D5 PIN: la LED pour dire que nous exécutons un cycle.
- D6 PIN: la LED pour indiquer que l'appareil a reçu un nouveau message.
- D9 PIN: le signal d'impulsion PWM pour le servomoteur gérant le gyroscope.
- D10 PIN: le signal d'impulsion PWM pour le servomoteur gérant le drapeau.
- Prise XBee: un module ZigBee.
Le schéma ci-dessus montre comment tous les éléments sont connectés à la carte.
Pour les LED, la résistance et les fils sont directement soudés dessus (attention à la polarité). Le tout est ensuite emballé dans un manchon thermo rétractable.
Pour le bouton poussoir, toutes les pièces (bouton, résistance et condensateur) sont directement soudées sur un petit strip-board satellite. Le strip-board est ensuite directement fixé avec deux vis (2mm)
Les servomoteurs fonctionnent avec une alimentation 5V ils peuvent donc être connectés directement à l'Arduino. Si vous en utilisez avec une tension plus élevée (12V), vous devrez ajouter une autre couche pour l'alimentation.
Pour les modules XBee, une fois qu'ils sont configurés pour parler ensemble (voir section suivante), ils peuvent être branchés directement sur les prises.
Remarques: Les LED et le bouton-poussoir pourraient avoir été directement connectés aux broches Arduino car ils peuvent implémenter en interne les sécurités nécessaires. J'ai juste fait à l'ancienne car cet aspect n'était pas très clair pour moi.
Étape 4: Logiciel - XCTU
Comme mentionné ci-dessus, les deux appareils XBee doivent être configurés pour parler ensemble. Pour ce faire, vous devez utiliser le logiciel dédié X-CTU de DIGI. Vous devez effectuer cette étape de configuration une seule fois. veuillez suivre la procédure décrite dans le fichier xbee_configuration.pdf.
Une fois la configuration terminée, vous pouvez connecter chaque module sur son socket. Un sur le convertisseur USB/Série et un sur la carte d'extension Arduino.
Le convertisseur USB/Série devrait être reconnu automatiquement par Windows 10. Si ce n'est pas le cas, vous devrez peut-être installer manuellement le pilote
Noter:
L'utilisation de modules XBee pour effectuer une communication série de base est un peu exagérée. A l'époque où j'ai démarré le projet je n'ai pas réussi à trouver de simples périphériques de communication série facilement utilisables sur windows 10 (problèmes de pilotes). C'était aussi l'occasion d'apprendre quelques choses sur
Étape 5: Logiciel - Arduino Sketch
Pour programmer l'Arduino, nous utilisons l'IDE accessible depuis le site officiel.
La logique du programme est assez simple, il n'écoute que sur le port série par défaut de la carte pour les lettres simples ("a", "b", …). Si le caractère reçu correspond à une commande connue, alors une sous-fonction joue la séquence correspondante.
Les 2 principales commandes utiles sont l'animation de réussite ('a') et l'animation d'erreur ('b').
Pour pouvoir jouer (ou déboguer) un peu plus avec la box, il y a des commandes supplémentaires qui peuvent être exécutées. Elles sont:
- « o »: force la LED ON à être allumée
- ‘p’: force la LED ON à s’éteindre
- « q »: force la LED Nouveau message à être allumée
- « r »: force la LED Nouveau message à être éteinte
- « s »: force la LED Cycle à être allumée
- « t »: force la LED Cycle à être éteinte
- ‘u’: active le servomoteur du gyroscope
- « v »: activez le servomoteur du drapeau.
En plus de la commande série, il existe une sous-routine (handlePushButton) qui est activée lorsque le bouton-poussoir est enfoncé sur l'appareil. Dans ce cas, l'animation d'erreur ou de réussite est jouée automatiquement. Cette fonctionnalité permet de vérifier que le périphérique physique a été correctement monté.
Le code de l'esquisse Arduino se trouve dans le fichier unique bsldevice.ino. Vous pouvez le télécharger directement en utilisant l'IDE.
Étape 6: Logiciel - Application de bureau
Le but de l'application de bureau est de surveiller le site Web Microsoft Azure DevOps (anciennement VSTS) et de détecter si une définition de build réussit ou échoue. Chaque fois qu'une construction est terminée, l'application de bureau détermine l'état de la construction et envoie la commande correspondante ("a" ou "b") au port série (COMx).
Après avoir lancé l'application, la première action consiste à sélectionner le bon port com sur lequel le module ZigBee est connecté. Pour déterminer le port, vous pouvez utiliser le gestionnaire de périphériques Windows (sous Ports (section COM & LPT)). La connexion à Azure DevOps se fait automatiquement au démarrage à l'aide des informations d'identification de l'utilisateur actuel. Vous pouvez également envoyer manuellement n'importe quelle commande prédéfinie à l'aide de la zone de liste déroulante à droite.
Toutes les sources ont été générées avec l'édition professionnelle de Visual Studio 2017. Il nécessite. NET Framework 4.6.1. Cette version de Framework est préférable pour faciliter la connexion/authentification au site web de VSTS.
utiliser:
- télécharger l'archive bslwatcher_sources.zip.
- Extrayez-le sur votre disque.
- Lisez le fichier how_to_build.txt pour les détails de la construction.
Étape 7: Premier démarrage
Il y a deux choses principales à garder à l’esprit lors du démarrage de la box:
1- Il n'y a aucun moyen pour le système de savoir par lui-même où sont les drapeaux. Le système suppose qu'au démarrage, le drapeau vert est levé.
2- Lors de la mise sous tension de la carte Arduino, rien ne doit bouger. Comme nous avons utilisé des servos continus, la position zéro est fixée à 90 par défaut dans le fichier de croquis. Si un servomoteur se met à tourner ou à faire du bruit. vous devrez peut-être redéfinir sa position zéro. Pour cela il suffit de régler le potentiomètre dans le petit trou sur le côté du servomoteur.
www.arduino.cc/en/Reference/ServoWrite
cmra.rec.ri.cmu.edu/content/electronics/boe…
Étape 8: Conclusion
Ce petit appareil rapportera physiquement l'état de votre système d'intégration continue.
Comme "l'intelligence" se trouve dans l'application de bureau, vous pouvez utiliser la box pour surveiller tout autre logiciel ou processus (courrier, capteur de température…). Vous avez juste besoin d'avoir accès à une autre API et de décider ce qui est "bien" ou ce qui est "mauvais". Si vous n'utilisez pas les couleurs conventionnelles rouge et verte, vous pouvez même changer la signification du "message".
Des améliorations pourraient également être apportées à la box elle-même:
- Utilisez une batterie.
- Utilisez un autre protocole de communication.
- Ajoutez des capteurs pour savoir quel drapeau est en haut.
J'espère que vous avez trouvé ce projet intéressant.
Merci de lire jusqu'ici.
Étape 9: Annexe
Quelques-uns des liens utilisés pour créer ce projet:
Site Web Arduino:
Site Internet de DIGI:
Logiciel XCTU:
Quelques informations utilisées par d'autres:
arduino.stackexchange.com/questions/1321/se…
stackoverflow.com/questions/10399400/best-w…
www.mon-club-elec.fr/pmwiki_reference_ardui… (en français)
jeromeabel.net/
Site Web MSDN en général:
docs.microsoft.com/en-us/dotnet/framework/…
Conseillé:
Ordinateur Build 1 KCTC 2e session : 14 étapes
Ordinateur Build 1 KCTC 2nd Session : Vous aurez besoin des pièces suivantes pour compléter votre build : 1) Carte mère2) CPU3) Dissipateur de chaleur + ventilateur4) RAM5) Boîtier de l'ordinateur6) Disque dur7) Alimentation8) Carte graphique
Lazy 7 / Quick Build Edition : 8 étapes (avec photos)
Lazy 7 / Édition Quick Build : Oui. Un autre. Je vais copier/coller les informations que j'ai mises sur Thingiverse ici, cette documentation n'est vraiment nécessaire que pour le routage des bandes LED. Récemment, j'ai publié l'horloge à 7 segments - Small Printers Edition, le premier écran à 7 segments que je nous ai construit
Machine Rube Goldberg en 11 étapes : 8 étapes
Machine Rube Goldberg en 11 étapes : Ce projet est une machine Rube Goldberg en 11 étapes, conçue pour former une tâche simple d'une manière compliquée. La tâche de ce projet est d'attraper une barre de savon
Machine d'enseignement des étapes critiques pour le lavage des mains : 5 étapes
Machine d'enseignement des étapes critiques pour le lavage des mains : il s'agit d'une machine qui rappelle à l'utilisateur les étapes à suivre lorsqu'il doit se laver les mains. Le but de cette machine est d'aider les gens à comprendre comment se laver les mains correctement de manière efficace. En période de prévention épidémique ou pandémique
Twitter Watcher, le #twatch : 6 étapes (avec photos)
Twitter Watcher, le #twatch : Le #twatch fait défiler les derniers sujets tendances de Twitter sur un écran LCD. Il s'agit d'une appliance réseau autonome qui reste à jour sans PC. C'était génial de regarder #iranelection, Michael Jackson et d'autres événements historiques défiler pendant que nous