Indholdsfortegnelse:

Byg Machine Watcher: 9 trin
Byg Machine Watcher: 9 trin

Video: Byg Machine Watcher: 9 trin

Video: Byg Machine Watcher: 9 trin
Video: Electric Light Orchestra - Last Train to London (Official Video) 2024, November
Anonim
Byg Machine Watcher
Byg Machine Watcher
Byg Machine Watcher
Byg Machine Watcher

Udgangspunktet for dette projekt var at arbejde på et konkret projekt for at lære et par ting om mikro-controller boards.

Den oprindelige idé var at oprette et fysisk objekt, der kunne overvåge et kontinuerligt integrationssystem (VSTS | Azure DevOps) og rapportere fejl i softwarebyggeri. På grund af sikkerhedshensyn fra IT -afdelingen er jeg blevet nægtet at tilslutte en "ikke -standard" enhed direkte til virksomhedsnetværket.

Jeg endte med arkitektur vist på billedet ovenfor. Udførelsesarbejdsgangen kan opsummeres som:

Et Windows -skrivebordsprogram scanner (pull) VSTS Build Definitions. Det analyserer resultaterne af bygningen og sender derefter en kommando til den fysiske enhed, der udfører en lille animeret sekvens, før den enten viser det røde eller det grønne flag.

Trin 1: Nødvendige dele

Følgende liste opsummerer alle de nødvendige elementer:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Expansion Shield (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 XBee S1 -moduler (https://www.adafruit.com/product/128).
  • 1 XBee explorer dongle (https://www.sparkfun.com/products/11697).
  • 2 kontinuerlige servomotorer 5VDC med fastgørelsestilbehør (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 9VDC strømforsyning.
  • 3 lysdioder.
  • 3 modstande 220 Ohm.
  • termo udtrækkeligt ærme.
  • 1 trykknap.
  • 10KΩ trækmodstand til pull up.
  • 100nF kondensator.
  • elektriske ledninger.
  • strip-board (til montering af knappen)
  • 5 mm træ (50x50cm).
  • træpind firkantet sektion 5x5 mm (1m).
  • pap.
  • 10 X skrue 2 mm diameter.
  • 4 skruer 5 mm diameter.
  • stærk magnet.
  • drejemodul. Jeg genbrugte den indre bevægelige del af et blinkende lys. du kan lægge hvad du vil. Du skal bare passe på, at de 2 mobile dele kan bevæge sig frit uden at røre hinanden.

Trin 2: Bygning af kassen

Bygger kassen
Bygger kassen

Faktisk kan du have en æske, uanset hvilken form du ønsker. De vigtigste ting at tænke på inden start er, hvor de bevægelige dele skal være, og at sikre, at de kan bevæge sig frit uden at røre hinanden. Et andet punkt er, hvor du vil placere enheden? Jeg endte med en magnet (stærk) for at holde den til enhver metallisk støtte. Hvis du vil bygge den samme boks, kan du følge instruktionerne i filen box_drawings.pdf.

I så fald skal du bare skære alle de forskellige stykker, lave hullerne til servomotorer, lysdioderne, knappen og skruerne og til sidst lime alle delene sammen. Når det er tørt, lidt slibning og lidt farve.

De to flag er lavet med noget rødt og grønt pap. For at fastgøre flagmasten på servomotorer kan du bruge de medfølgende monteringsdele, når du køber dem.

Trin 3: Arduino -opsætning

Opsætning af Arduino
Opsætning af Arduino

De emner, der er forbundet til Arduino -forlængerkortet, er:

  • D2 PIN: trykknappen.
  • D4 PIN: LED'en for at sige, at systemet er tændt.
  • D5 PIN: LED'en siger, at vi udfører en cyklus.
  • D6 PIN: LED'en for at sige, at enheden har modtaget en ny besked.
  • D9 PIN: PWM -pulssignalet for servomotoren, der håndterer gyroen.
  • D10 PIN: PWM -pulssignalet for servomotoren, der håndterer flaget.
  • XBee -fatning: et ZigBee -modul.

Ovenstående skematisk viser, hvordan alle emner er forbundet til kortet.

For lysdioderne er modstanden og ledningerne svejset direkte på den (pas på polariteten). Alt pakkes derefter i et termo -udtrækkeligt ærme.

Til trykknappen er alle dele (knap, modstand og kondensator) svejset direkte på et lille satellitbånd. Strip-boardet fastgøres derefter direkte med to skruer (2 mm)

Servomotorer arbejder med 5V strøm, de kan dermed tilsluttes direkte til Arduino. Hvis du bruger dem med højere spænding (12V), skal du tilføje endnu et lag til strømforsyningen.

For XBee -modulerne, når de er konfigureret til at tale sammen (se næste afsnit), kan de sættes direkte i stikkontakterne.

Bemærkninger: Lysdioderne og trykknappen kunne have været forbundet direkte til Arduino -benene, da det internt kan implementere de nødvendige værdipapirer. Jeg gjorde bare den gamle måde, da dette aspekt ikke var særlig klart for mig.

Trin 4: Software - XCTU

Software - XCTU
Software - XCTU

Som nævnt ovenfor skal de to XBee -enheder konfigureres til at tale sammen. For at gøre det skal du bruge den dedikerede X-CTU-software fra DIGI. Du skal kun udføre dette konfigurationstrin én gang. Følg venligst proceduren beskrevet i filen xbee_configuration.pdf.

Når konfigurationen er udført, kan du tilslutte hvert modul til deres stik. En på USB/seriel konverter og en på Arduino forlængerkortet.

USB/seriel konverter skal genkendes automatisk af Windows 10. Hvis det ikke er det, skal du muligvis installere driveren manuelt

Bemærk:

At bruge XBee -moduler til at foretage en grundlæggende seriel kommunikation er lidt overkill. På det tidspunkt, jeg startede projektet, lykkedes det mig ikke at finde enkle serielle kommunikationsenheder, der let kunne bruges på Windows 10 (driverproblemer). Det var også en mulighed for at lære et par ting om

Trin 5: Software - Arduino Sketch

Software - Arduino Sketch
Software - Arduino Sketch

For at programmere Arduino bruger vi IDE, der er tilgængelig fra det officielle websted.

Programmets logik er temmelig enkel, det lytter bare på standardkortets serielle port til enkelte bogstaver ('a', 'b', …). Hvis det modtagne tegn matcher en kendt kommando, afspiller en underfunktion den tilsvarende sekvens.

De 2 vigtigste nyttige kommandoer er succesanimation ('a') og fejlanimation ('b').

For at kunne spille (eller debugging) lidt mere med boksen er der nogle ekstra kommandoer, der kan udføres. De er:

  • ‘O’: tving ON -LED’en til at være TÆNDT
  • ‘P’: tving ON -LED’en til at være OFF
  • 'Q': tving LED'en Ny besked til at være TÆNDT
  • 'R': tving LED'en for ny besked til at være OFF
  • 'S': tving cyklus -LED'en til at være tændt
  • 'T': tving cyklus -LED'en til at være OFF
  • ‘U’: aktiver gyroens servomotor
  • ‘V’: aktiver flagets servomotor.

Ud over den serielle kommando er der en underrutine (handlePushButton), der aktiveres, når der trykkes på trykknappen på enheden. I så fald afspilles fejl- eller succesanimationen automatisk. Denne funktion gør det muligt at kontrollere, at den fysiske enhed er monteret korrekt.

Koden for Arduino -skitsen er i den enkelt fil bsldevice.ino. Du kan uploade det direkte ved hjælp af IDE.

Trin 6: Software - Desktop -applikation

Software - Desktop -applikation
Software - Desktop -applikation

Formålet med skrivebordsprogrammet er at overvåge Microsoft Azure DevOps (tidligere VSTS) websted og at opdage, om en Build Definition er vellykket eller fejl. Hver gang en build er færdig, bestemmer desktop -applikationen status for buildet og sender den tilhørende kommando ('a' eller 'b') til den serielle port (COMx).

Efter start af applikationen er den første handling at vælge den rigtige com -port, som ZigBee -modulet er tilsluttet. For at bestemme porten kan du bruge Windows Device Manager (under porte (COM & LPT -sektion)). Forbindelsen til Azure DevOps udføres automatisk ved opstart ved hjælp af legitimationsoplysninger for den aktuelle bruger. Du kan også sende enhver foruddefineret kommando manuelt ved hjælp af kombinationsboksen til højre.

Alle kilder er blevet genereret med Visual Studio 2017 professional edition. Det kræver. NET Framework 4.6.1. Denne version af Framework foretrækkes for at lette forbindelsen/godkendelsen til VSTS -webstedet.

at bruge:

  • download arkivet bslwatcher_sources.zip.
  • Udpak det på din disk.
  • Læs how_to_build.txt -filen for detaljer om build.

Trin 7: Første start

Der er to hoved ting, du skal huske på, når du starter boksen:

1- Der er ingen måde for systemet selv at vide, hvor flagene er. Systemet antager, at det grønne flag er ved opstart.

2- Ved opstart af Arduino-kortet bør intet bevæge sig. Da vi brugte kontinuerlige servoer, er nulpositionen som standard sat til 90 i skitsefilen. Hvis en servomotor begynder at dreje eller støje. du skal muligvis omdefinere sin nulposition. For at gøre det skal du bare indstille potentiometeret i det lille hul på siden af servomotoren.

www.arduino.cc/en/Reference/ServoWrite

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

Trin 8: Konklusion

Denne lille enhed vil fysisk rapportere status for dit kontinuerlige integrationssystem.

Da "intelligensen" er i skrivebordsprogrammet, kan du bruge boksen til at overvåge enhver anden software eller proces (mail, en temperatursensor …). Du skal bare have adgang til en anden API og beslutte, hvad der er "godt" eller hvad der er "dårligt". Hvis du ikke bruger røde og grønne konventionelle farver, kan du endda ændre betydningen af "beskeden".

Forbedringer kunne også bringes til selve kassen:

  • Brug et batteri.
  • Brug en anden kommunikationsprotokol.
  • Tilføj sensorer for at vide, hvilket flag der er øverst.

Håber du fandt dette projekt interessant.

Tak fordi du læste op til her.

Trin 9: Bilag

Nogle af de links, der bruges til at oprette dette projekt:

Arduino -websted:

DIGI-websted:

XCTU-software:

Nogle oplysninger brugt fra andre:

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

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

www.mon-club-elec.fr/pmwiki_reference_ardui… (på fransk)

jeromeabel.net/

MSDN -websted generelt:

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

Anbefalede: