Innholdsfortegnelse:

Bygg Machine Watcher: 9 trinn
Bygg Machine Watcher: 9 trinn

Video: Bygg Machine Watcher: 9 trinn

Video: Bygg Machine Watcher: 9 trinn
Video: SCP-093 Красное море Объект (Все тесты и вторичного сырья Журналы) 2024, Juli
Anonim
Bygg Machine Watcher
Bygg Machine Watcher
Bygg Machine Watcher
Bygg Machine Watcher

Utgangspunktet for dette prosjektet var å jobbe med et konkret prosjekt for å lære noen ting om mikrokontrollerkort.

Den første ideen var å lage et fysisk objekt som kunne overvåke et kontinuerlig integrasjonssystem (VSTS | Azure DevOps) og rapportere feil i programvareoppbygging. På grunn av sikkerhetshensyn fra IT -avdelingen har jeg blitt nektet å koble en "ikke -standard" enhet direkte til bedriftsnettverket.

Jeg endte opp med arkitektur vist på bildet ovenfor. Utførelsesarbeidsflyten kan oppsummeres som:

Et skrivebordsprogram i Windows skanner (trekker) VSTS Build Definitions. Den analyserer resultatene av byggingen, og sender deretter en kommando til den fysiske enheten som utfører en liten animert sekvens før den viser enten det røde eller det grønne flagget.

Trinn 1: Nødvendige deler

Følgende liste oppsummerer alle 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 festetilbehø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 motstander 220 Ohm.
  • termo uttrekkbar erme.
  • 1 trykknapp.
  • 10KΩ trekkmotstand for opptrekk.
  • 100nF kondensator.
  • elektriske ledninger.
  • strip-board (for montering av knappen)
  • 5 mm tre (50x50cm).
  • trepinne firkantet seksjon 5x5 mm (1m).
  • papp.
  • 10 X skrue 2 mm diameter.
  • 4 skruer 5 mm diameter.
  • sterk magnet.
  • svingmodul. Jeg gjenbrukte den indre bevegelige delen av et blinkende lys. du kan sette hva du vil. Du må bare passe på at de to mobile delene kan bevege seg fritt uten å berøre hverandre.

Trinn 2: Bygg boksen

Å bygge boksen
Å bygge boksen

Egentlig kan du ha en eske i hvilken form du vil. De viktigste tingene du må tenke på før du starter, er hvor de bevegelige delene skal være, og å sikre at de kan bevege seg fritt uten å berøre hverandre. Et annet punkt er hvor du skal sette enheten? Jeg endte opp med en magnet (sterk) for å feste den til en metallisk støtte. Hvis du vil bygge den samme boksen, kan du følge instruksjonene i filen box_drawings.pdf.

I så fall må du bare kutte alle de forskjellige bitene, lage hullene til servomotorene, lysdiodene, knappen og skruene og til slutt lime alle delene sammen. Når det er tørt, litt sliping og litt farge.

De to flaggene er laget med rød og grønn papp. For å fikse flaggmasten på servomotorene kan du bruke monteringsdelene som følger med når du kjøper dem.

Trinn 3: Arduino -oppsett

Oppsett av Arduino
Oppsett av Arduino

Elementene som er koblet til Arduino -forlengelseskortet er:

  • D2 PIN: trykknappen.
  • D4 PIN: LED for å si at systemet er PÅ.
  • D5 PIN: LED -en for å si at vi utfører en syklus.
  • D6 PIN: LED for å si at enheten har mottatt en ny melding.
  • D9 PIN: PWM -pulssignalet for servomotoren som håndterer gyroen.
  • D10 PIN: PWM -pulssignalet for servomotoren som håndterer flagget.
  • XBee -sokkel: én ZigBee -modul.

Skjematisk over viser hvordan alle elementene er koblet til brettet.

For lysdiodene er motstanden og ledningene direkte sveiset på den (ta vare på polariteten). Alt blir deretter pakket i en termo -uttrekkbar hylse.

For trykknappen er alle deler (knapp, motstand og kondensator) sveiset direkte på et lite satellittlistekort. Stripebrettet festes deretter direkte med to skruer (2 mm)

Servomotorene opererer med 5V strøm de kan dermed kobles direkte til Arduino. Hvis du bruker de med høyere spenning (12V), må du legge til et nytt lag for strømforsyningen.

For XBee -modulene, når de er konfigurert til å snakke sammen (se neste avsnitt), kan de kobles direkte til stikkontaktene.

Merknader: Lysdiodene og trykknappen kunne ha vært direkte koblet til Arduino -pinnene, ettersom det kan implementere nødvendige verdipapirer internt. Jeg gjorde akkurat den gamle måten, siden dette aspektet ikke var veldig klart for meg.

Trinn 4: Programvare - XCTU

Programvare - XCTU
Programvare - XCTU

Som nevnt ovenfor må de to XBee -enhetene konfigureres til å snakke sammen. For å gjøre det må du bruke den dedikerte X-CTU-programvaren fra DIGI. Du trenger bare å gjøre dette konfigurasjonstrinnet én gang. følg prosedyren som er beskrevet i filen xbee_configuration.pdf.

Når konfigurasjonen er ferdig, kan du koble hver modul til kontakten. En på USB/seriekonverteren og en på Arduino -forlengelseskortet.

USB/seriekonvertereren bør gjenkjennes automatisk av Windows 10. Hvis det ikke er det, må du kanskje installere driveren manuelt

Merk:

Å bruke XBee -moduler til å utføre en grunnleggende seriell kommunikasjon er litt overkill. På det tidspunktet jeg startet prosjektet klarte jeg ikke å finne enkle serielle kommunikasjonsenheter som var lett brukbare på Windows 10 (driverproblemer). Det var også en mulighet til å lære noen ting om

Trinn 5: Programvare - Arduino Sketch

Programvare - Arduino Sketch
Programvare - Arduino Sketch

For å programmere Arduino bruker vi IDE som er tilgjengelig fra det offisielle nettstedet.

Logikken til programmet er ganske enkel, den hører bare på standard seriell port på brettet for enkle bokstaver ('a', 'b', …). Hvis det mottatte tegnet samsvarer med en kjent kommando, spiller en underfunksjon den tilhørende sekvensen.

De to viktigste nyttige kommandoene er suksessanimasjon (‘a’) og feilanimasjon (‘b’).

For å kunne spille (eller feilsøke) litt mer med boksen er det noen ekstra kommandoer som kan utføres. De er:

  • ‘O’: tving PÅ -LED -en til å lyse
  • ‘P’: tving PÅ -LED -en til å være AV
  • 'Q': tving LED for ny melding til å lyse
  • ‘R’: tving LED -en for ny melding til å være AV
  • 'S': tving Cycle LED til å være PÅ
  • ‘T’: tving Cycle LED til å være AV
  • 'U': aktiver servomotoren til gyroen
  • ‘V’: aktiver servomotoren til flagget.

I tillegg til den serielle kommandoen er det en underrutine (handlePushButton) som aktiveres når trykknappen trykkes på enheten. I så fall spilles feil- eller suksessanimasjonen automatisk. Denne funksjonen gjør det mulig å kontrollere at den fysiske enheten er riktig montert.

Koden til Arduino -skissen er i enkeltfilen bsldevice.ino. Du kan laste den opp direkte med IDE.

Trinn 6: Programvare - Desktop -applikasjon

Programvare - Desktop -applikasjon
Programvare - Desktop -applikasjon

Formålet med skrivebordsprogrammet er å overvåke Microsoft Azure DevOps (tidligere VSTS) nettsted og å oppdage om en Build Definition er vellykket eller feil. Hver gang en build er ferdig, bestemmer skrivebordsprogrammet statusen for builden og sender den tilhørende kommandoen (‘a’ eller ‘b’) til den serielle porten (COMx).

Etter at programmet er startet, er den første handlingen å velge den riktige kom -porten som ZigBee -modulen er koblet til. For å bestemme porten kan du bruke Windows Device Manager (under porter (COM & LPT -delen)). Tilkoblingen til Azure DevOps utføres automatisk ved oppstart ved hjelp av legitimasjonen til den nåværende brukeren. Du kan også sende en forhåndsdefinert kommando manuelt ved hjelp av kombinasjonsboksen til høyre.

Alle kilder er generert med Visual Studio 2017 profesjonell utgave. Det krever. NET Framework 4.6.1. Denne versjonen av Framework er å foretrekke for å lette tilkoblingen/autentiseringen til VSTS -nettstedet.

å bruke:

  • last ned arkivet bslwatcher_sources.zip.
  • Pakk den ut på disken din.
  • Les how_to_build.txt -filen for detaljer om byggingen.

Trinn 7: Første start

Det er to viktige ting du må huske på når du starter boksen:

1- Det er ingen måte for systemet å vite på egen hånd hvor flaggene er. Systemet forutsetter at ved oppstart er det grønne flagget oppe.

2- Når du slår på Arduino-kortet, bør ingenting bevege seg. Siden vi brukte kontinuerlige servoer, er nullposisjonen satt til 90 som standard i skissefilen. Hvis en servomotor begynner å snu eller lage noe støy. Du må kanskje definere nullposisjonen på nytt. For å gjøre det må du bare stille inn potensiometeret i det lille hullet på siden av servomotoren.

www.arduino.cc/en/Reference/ServoWrite

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

Trinn 8: Konklusjon

Denne lille enheten vil fysisk rapportere statusen til ditt kontinuerlige integrasjonssystem.

Siden "intelligensen" er i skrivebordsprogrammet, kan du bruke boksen til å overvåke annen programvare eller prosess (post, en temperatursensor …). Du trenger bare å ha tilgang til et annet API og bestemme hva som er "bra" eller "dårlig". Hvis du ikke bruker røde og grønne konvensjonelle farger, kan du til og med endre betydningen av "meldingen".

Forbedringer kan også bringes til selve esken:

  • Bruk et batteri.
  • Bruk en annen kommunikasjonsprotokoll.
  • Legg til sensorer for å vite hvilket flagg som er øverst.

Håper du fant dette prosjektet interessant.

Takk for at du leste opp til her.

Trinn 9: Vedlegg

Noen av koblingene som ble brukt til å lage dette prosjektet:

Arduino nettsted:

DIGI nettsted:

XCTU-programvare:

Noen opplysninger brukt 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 nettsted generelt:

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

Anbefalt: