Taula de continguts:

Build Machine Watcher: 9 passos
Build Machine Watcher: 9 passos

Vídeo: Build Machine Watcher: 9 passos

Vídeo: Build Machine Watcher: 9 passos
Vídeo: Supercharge Your Create Mod Experience: The Key to Maximum Efficiency 2024, Desembre
Anonim
Construeix Machine Watcher
Construeix Machine Watcher
Construeix Machine Watcher
Construeix Machine Watcher

El punt de partida d’aquest projecte va ser treballar en un projecte concret per aprendre algunes coses sobre les plaques de microcontroladors.

La idea inicial era crear un objecte físic que pogués supervisar un sistema d’integració contínua (VSTS | Azure DevOps) i informar d’errors de construcció de programari. Per qüestions de seguretat del departament de TI, se m'ha negat a connectar un dispositiu "no estàndard" directament a la xarxa empresarial.

Vaig acabar amb l'arquitectura que es mostra a la imatge superior. El flux de treball d'execució es pot resumir com:

Una aplicació d'escriptori de Windows analitza (extreu) les definicions de compilació de VSTS. Analitza els resultats de la compilació i, a continuació, envia una ordre al dispositiu físic que executa una petita seqüència animada abans de mostrar el senyalador vermell o verd.

Pas 1: peces necessàries

La llista següent resumeix tots els elements necessaris:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Escut d’expansió (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 mòduls XBee S1 (https://www.adafruit.com/product/128).
  • 1 dongle XBee explorer (https://www.sparkfun.com/products/11697).
  • 2 servomotors continus de 5VDC amb accessoris de fixació (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 font d'alimentació de 9VDC.
  • 3 LEDs.
  • 3 resistències de 220 Ohm.
  • funda termo retractable.
  • 1 polsador.
  • Resistència de tracció de 10KΩ per al tracte cap amunt.
  • Condensador 100nF.
  • cables elèctrics.
  • tauler de tires (per al muntatge del botó)
  • Fusta de 5 mm (50x50cm).
  • pal de fusta de secció quadrada de 5x5 mm (1m).
  • cartró.
  • Cargol de 10 X de 2 mm de diàmetre.
  • 4 cargols de 5 mm de diàmetre.
  • fort imant.
  • mòdul de tornejat. Vaig reutilitzar la part mòbil interna d’un llum intermitent. pots posar el que vulguis. Només haurà de procurar que les dues parts mòbils es puguin moure lliurement sense tocar-les.

Pas 2: Construir la caixa

Construint la caixa
Construint la caixa

De fet, podeu tenir una caixa de la forma que vulgueu. El més important a pensar abans de començar és on hi haurà les parts mòbils i assegurar-se que es puguin moure lliurement sense tocar-les juntes. Un altre punt és on posaràs el dispositiu? Vaig acabar amb un imant (fort) per tal d’enganxar-lo a qualsevol suport metàl·lic. si voleu construir el mateix quadre, podeu seguir les instruccions del fitxer box_drawings.pdf.

En aquest cas, només heu de tallar totes les diferents peces, fer els forats dels servomotors, els LED, el botó i els cargols i, finalment, enganxar totes les parts. Un cop sec, una mica de poliment i una mica de color.

Les dues banderes s’han fet amb cartró vermell i verd. Per fixar el pal de bandera als servomotors, podeu utilitzar les peces de muntatge subministrades en comprar-les.

Pas 3: Configuració d'Arduino

Configuració d'Arduino
Configuració d'Arduino

Els elements connectats a la placa d’extensió Arduino són:

  • PIN D2: el polsador.
  • PIN D4: el LED que indica que el sistema està engegat.
  • PIN D5: el LED que indica que executem un cicle.
  • PIN D6: el LED que indica que el dispositiu ha rebut un missatge nou.
  • PIN D9: el senyal de pols PWM per al servomotor que maneja el giroscopi.
  • PIN D10: el senyal de pols PWM per al servomotor que maneja la bandera.
  • XBee Socket: un mòdul ZigBee.

L'esquema anterior mostra com tots els elements estan connectats al tauler.

Per als LEDs, la resistència i els cables s’hi solden directament (cuideu la polaritat). Tot plegat es guarda dins d’una màniga termo retractable.

Per al polsador, totes les parts (botó, resistència i condensador) estan soldades directament sobre una petita placa de satèl·lit. El tauler de tires es fixa directament amb dos cargols (2 mm)

Els servomotors funcionen amb una potència de 5V i, per tant, es poden connectar directament a l'Arduino. Si en feu servir de més tensió (12V), haureu d’afegir una altra capa per a la font d’alimentació.

Per als mòduls XBee, un cop configurats per parlar junts (vegeu la secció següent), es poden connectar directament als endolls.

Notes: els LED i el polsador podrien haver estat connectats directament als pins Arduino, ja que poden implementar internament els valors necessaris. Acabo de fer la manera antiga, ja que aquest aspecte no era molt clar per a mi.

Pas 4: Programari: XCTU

Programari - XCTU
Programari - XCTU

Com s'ha esmentat anteriorment, els dos dispositius XBee s'han de configurar per parlar junts. Per fer-ho, heu d’utilitzar el programari dedicat X-CTU de DIGI. Heu de fer aquest pas de configuració només una vegada. seguiu el procediment descrit al fitxer xbee_configuration.pdf.

Un cop feta la configuració, podeu connectar cada mòdul al seu sòcol. Un al convertidor USB / sèrie i un a la placa d’extensió Arduino.

Windows 10. El convertidor USB / sèrie hauria de ser reconegut automàticament per Windows 10. Si no és així, és possible que hagueu d'instal·lar manualment el controlador

Nota:

Utilitzar mòduls XBee per fer una comunicació serial bàsica és una mica excessiu. En el moment que vaig començar el projecte, no vaig aconseguir trobar dispositius de comunicació en sèrie senzills fàcilment utilitzables a Windows 10 (problemes de controladors). També va ser una oportunitat per aprendre algunes coses sobre

Pas 5: Programari: Arduino Sketch

Programari: Arduino Sketch
Programari: Arduino Sketch

Per programar l’Arduino utilitzem l’IDE accessible des del lloc web oficial.

La lògica del programa és bastant senzilla, només escolta al port sèrie per defecte del tauler les lletres individuals ('a', 'b', …). Si el caràcter rebut coincideix amb una ordre coneguda, una subfunció reprodueix la seqüència corresponent.

Les dues ordres útils principals són l'animació d'èxit ("a") i l'animació d'errors ("b").

Per poder jugar (o depurar) una mica més amb el quadre hi ha algunes ordres addicionals que es poden executar. Ells són:

  • 'O': forçar el LED ON a ON
  • 'P': obligueu el LED ON a estar apagat
  • "Q": obligueu a que el LED de missatge nou estigui engegat
  • "R": obligueu a que el LED de missatge nou estigui apagat
  • "S": obligueu a que el LED del cicle estigui engegat
  • ‘T’: obligueu a que el LED del cicle estigui apagat
  • ‘U’: activa el servomotor del giroscopi
  • ‘V’: activa el servomotor de la bandera.

A més de l'ordre sèrie, hi ha una subrutina (handlePushButton) que s'activa quan es prem el botó del dispositiu. En aquest cas, l'animació d'error o d'èxit es reprodueix automàticament. Aquesta característica permet comprovar que el dispositiu físic s'ha muntat correctament.

El codi de l'esbós d'Arduino es troba al fitxer únic bsldevice.ino. Podeu penjar-lo directament mitjançant l’IDE.

Pas 6: Programari: aplicació d'escriptori

Programari: aplicació d'escriptori
Programari: aplicació d'escriptori

L'objectiu de l'aplicació d'escriptori és supervisar el lloc web Microsoft Azure DevOps (anteriorment VSTS) i detectar si la definició de compilació té èxit o és errònia. Cada vegada que s’acaba una compilació, l’aplicació d’escriptori determina l’estat de la compilació i envia l’ordre corresponent (‘a’ o ‘b’) al port sèrie (COMx).

Després de llançar l'aplicació, la primera acció és seleccionar el port de com correcte al qual està connectat el mòdul ZigBee. Per determinar el port, podeu utilitzar el Gestor de dispositius de Windows (a la secció Ports (secció COM i LPT)). La connexió a Azure DevOps es realitza automàticament a l'inici mitjançant les credencials de l'usuari actual. També podeu enviar qualsevol ordre predefinit manualment mitjançant el quadre combinat de la dreta.

Totes les fonts s'han generat amb l'edició professional de Visual Studio 2017. Requereix. NET Framework 4.6.1. Aquesta versió de Framework és preferible per facilitar la connexió / autenticació al lloc web de VSTS.

usar:

  • descarregueu l'arxiu bslwatcher_sources.zip.
  • Extraieu-lo al disc.
  • Llegiu el fitxer how_to_build.txt per obtenir detalls de la compilació.

Pas 7: primer inici

Hi ha dues coses principals a tenir en compte a l’hora d’iniciar la caixa:

1- No hi ha manera que el sistema sàpiga per si mateix on són les banderes. El sistema assumeix que a l'inici la bandera verda està activada.

2- En engegar la placa Arduino no s'ha de moure res. Com hem utilitzat servos continus, la posició zero s'estableix en 90 per defecte al fitxer d'esbós. Si un servomotor comença a girar o fa soroll. és possible que hagueu de tornar a definir la seva posició zero. Per fer-ho, només cal que sintonitzeu el potenciòmetre dins del petit forat del costat del servomotor.

www.arduino.cc/en/Reference/ServoWrite

cmra.rec.ri.cmu.edu/content/electronics/boe…

Pas 8: Conclusió

Aquest petit dispositiu informarà físicament de l'estat del vostre sistema d'integració contínua.

Com que la "intel·ligència" es troba a l'aplicació d'escriptori, podeu utilitzar la caixa per supervisar qualsevol altre programari o procés (correu electrònic, un sensor de temperatura …). Només cal tenir accés a una altra API i decidir què és "bo" o què és "dolent". Si no feu servir colors vermells i verds, fins i tot podeu canviar el significat del "missatge".

També es poden introduir millores a la caixa:

  • Utilitzeu una bateria.
  • Utilitzeu un altre protocol de comunicació.
  • Afegiu sensors per saber quina bandera es troba a la part superior.

Espero que us hagi semblat interessant aquest projecte.

Gràcies per llegir fins aquí.

Pas 9: annex

Alguns dels enllaços utilitzats per crear aquest projecte:

Lloc web Arduino:

Lloc web de DIGI:

Programari XCTU:

Alguna informació utilitzada d'altres:

arduino.stackexchange.com/questions/1321/se…

stackoverflow.com/questions/10399400/best-w…

www.mon-club-elec.fr/pmwiki_reference_ardui… (en francès)

jeromeabel.net/

Lloc web de MSDN en general:

docs.microsoft.com/en-us/dotnet/framework/…

Recomanat: