Table des matières:

Build Machine Watcher : 9 étapes
Build Machine Watcher : 9 étapes

Vidéo: Build Machine Watcher : 9 étapes

Vidéo: Build Machine Watcher : 9 étapes
Vidéo: GEAR GUIDE [Watcher of Realms] 2024, Novembre
Anonim
Observateur de machines de construction
Observateur de machines de construction
Observateur de machines de construction
Observateur de machines de construction

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

Construire la boîte
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

Configuration Arduino
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

Logiciel - XCTU
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

Logiciel - Arduino Sketch
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

Logiciel - Application de bureau
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é: