Innehållsförteckning:

Bygg Machine Watcher: 9 steg
Bygg Machine Watcher: 9 steg

Video: Bygg Machine Watcher: 9 steg

Video: Bygg Machine Watcher: 9 steg
Video: Создание Mitsubishi Evolution 9, из пластилина, шаг за шагом, 80 часов за 24 минуты 2024, Juli
Anonim
Bygg Machine Watcher
Bygg Machine Watcher
Bygg Machine Watcher
Bygg Machine Watcher

Utgångspunkten för detta projekt var att arbeta med ett konkret projekt för att lära sig några saker om mikrostyrenhetskort.

Den första idén var att skapa ett fysiskt objekt som kunde övervaka ett system för kontinuerlig integrering (VSTS | Azure DevOps) och rapportera misslyckanden för att bygga programvara. På grund av säkerhetshänsyn från IT -avdelningen har jag blivit nekad att ansluta en "icke -standardiserad" enhet direkt till företagsnätverket.

Jag slutade med arkitektur som visas i bilden ovan. Exekveringsflödet kan sammanfattas som:

Ett skrivbordsprogram i Windows skannar (pull) VSTS Build Definitions. Den analyserar resultaten av byggnaden och skickar sedan ett kommando till den fysiska enheten som kör en liten animerad sekvens innan den visar antingen den röda eller den gröna flaggan.

Steg 1: Nödvändiga delar

Följande lista sammanfattar alla nödvändiga objekt:

  • 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 kontinuerliga servomotorer 5VDC med fixeringstillbehör (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 9VDC strömförsörjning.
  • 3 lysdioder.
  • 3 motstånd 220 Ohm.
  • termo infällbar ärm.
  • 1 tryckknapp.
  • 10KΩ dragmotstånd för uppdragning.
  • 100nF kondensator.
  • elektriska kablar.
  • strip-board (för montering av knappen)
  • 5 mm trä (50x50cm).
  • träpinne kvadratisk sektion 5x5 mm (1m).
  • kartong.
  • 10 X skruv 2 mm diameter.
  • 4 skruvar 5 mm diameter.
  • stark magnet.
  • svängmodul. Jag återanvände den inre rörliga delen av ett blinkande ljus. du kan lägga vad du vill. Du måste bara se till att de två mobila delarna kan röra sig fritt utan att röra varandra.

Steg 2: Bygga lådan

Att bygga lådan
Att bygga lådan

Egentligen kan du ha en låda i vilken form du vill. De viktigaste sakerna att tänka på innan du börjar är var de rörliga delarna ska vara och att se till att de kan röra sig fritt utan att röra varandra. En annan punkt är var du ska placera enheten? Jag slutade med en magnet (stark) för att hålla fast den på något metalliskt stöd. om du vill bygga samma låda kan du följa instruktionerna i filen box_drawings.pdf.

I så fall måste du bara klippa alla de olika bitarna, göra hålen för servomotorerna, lysdioderna, knappen och skruvarna och slutligen limma ihop alla delar. När det är torrt, lite slipning och lite färg.

De två flaggorna har gjorts med lite röd och grön kartong. För att fixa flaggmasten på servomotorerna kan du använda de medföljande monteringsdelarna när du köper dem.

Steg 3: Arduino -installation

Arduino -installation
Arduino -installation

Artiklarna som är anslutna till Arduino -förlängningskortet är:

  • D2 PIN: tryckknappen.
  • D4 PIN: lysdioden för att säga att systemet är PÅ.
  • D5 PIN: lysdioden säger att vi kör en cykel.
  • D6 PIN: lysdioden för att säga att enheten har fått ett nytt meddelande.
  • D9 PIN: PWM -pulssignalen för servomotorn som hanterar gyro.
  • D10 PIN: PWM -pulssignalen för servomotorn som hanterar flaggan.
  • XBee -uttag: en ZigBee -modul.

Schemat ovan visar hur alla objekt är anslutna till kortet.

För lysdioderna svetsas motståndet och ledningarna direkt på det (ta hand om polariteten). Allt packas sedan in i någon termo -infällbar hylsa.

För tryckknappen svetsas alla delar (knapp, motstånd och kondensator) direkt på ett litet satellitband. Bandplattan fixeras sedan direkt med två skruvar (2 mm)

Servomotorerna drivs med 5V effekt de kan därmed anslutas direkt till Arduino. Om du använder sådana med högre spänning (12V) måste du lägga till ytterligare ett lager för strömförsörjningen.

För XBee -modulerna kan de anslutas direkt till uttagen när de är konfigurerade för att prata tillsammans (se nästa avsnitt).

Anmärkningar: Lysdioderna och tryckknappen kunde ha varit direkt anslutna till Arduino -stiften eftersom det kan implementera de nödvändiga värdepapprena internt. Jag gjorde precis det gamla sättet eftersom denna aspekt inte var särskilt tydlig för mig.

Steg 4: Programvara - XCTU

Programvara - XCTU
Programvara - XCTU

Som nämnts ovan måste de två XBee -enheterna konfigureras för att prata tillsammans. För att göra det måste du använda den dedikerade X-CTU-programvaran från DIGI. Du behöver bara utföra detta konfigurationssteg en gång. följ proceduren som beskrivs i filen xbee_configuration.pdf.

När konfigurationen är klar kan du ansluta varje modul till sitt uttag. En på USB/seriekonverteraren och en på Arduino -förlängningskortet.

USB/seriekonverteraren ska automatiskt identifieras av Windows 10. Om det inte är det kan du behöva installera drivrutinen manuellt

Notera:

Att använda XBee -moduler för att göra en grundläggande seriell kommunikation är lite överkill. När jag startade projektet lyckades jag inte hitta enkla seriella kommunikationsenheter som var lättanvändbara i Windows 10 (drivrutinsproblem). Det var också ett tillfälle att lära sig några saker om

Steg 5: Programvara - Arduino Sketch

Programvara - Arduino Sketch
Programvara - Arduino Sketch

För att programmera Arduino använder vi IDE som är tillgänglig från den officiella webbplatsen.

Logiken i programmet är ganska enkel, det lyssnar bara på standardkortets seriella port för enstaka bokstäver ('a', 'b', …). Om det mottagna tecknet matchar ett känt kommando spelar en underfunktion motsvarande sekvens.

De två främsta användbara kommandona är framgångsanimering (‘a’) och felanimering (‘b’).

För att kunna spela (eller felsöka) lite mer med rutan finns det några extra kommandon som kan köras. Dom är:

  • ‘O’: tvinga PÅ -lysdioden att vara PÅ
  • ‘P’: tvinga PÅ -lysdioden att vara AV
  • 'Q': tvinga lysdioden för nytt meddelande att lysa
  • 'R': tvinga lysdioden för nytt meddelande att vara AV
  • 'S': tvinga cykel -lysdioden att vara PÅ
  • ‘T’: tvinga Cykel -lysdioden att vara AV
  • 'U': aktivera servomotorn för gyro
  • ‘V’: aktivera flaggans servomotor.

Förutom det seriella kommandot finns en underrutin (handlePushButton) som aktiveras när tryckknappen trycks in på enheten. I så fall spelas fel- eller framgångsanimationen upp automatiskt. Med den här funktionen kan du kontrollera att den fysiska enheten har monterats korrekt.

Koden för Arduino -skissen finns i den enda filen bsldevice.ino. Du kan ladda upp den direkt med IDE.

Steg 6: Programvara - Skrivbordsprogram

Programvara - Skrivbordsprogram
Programvara - Skrivbordsprogram

Syftet med skrivbordsprogrammet är att övervaka Microsoft Azure DevOps (tidigare VSTS) webbplats och att upptäcka om en Build Definition är framgångsrik eller fel. Varje gång en build är klar bestämmer skrivbordsprogrammet statusen för builden och skickar motsvarande kommando ('a' eller 'b') till serieporten (COMx).

Efter att ha startat programmet är den första åtgärden att välja rätt komport som ZigBee -modulen är ansluten till. För att bestämma porten kan du använda Windows Enhetshanteraren (under portar (COM & LPT -avsnitt)). Anslutningen till Azure DevOps görs automatiskt vid start med användaruppgifterna för den aktuella användaren. Du kan också skicka alla fördefinierade kommandon manuellt med kombinationsrutan till höger.

Alla källor har genererats med Visual Studio 2017 professional edition. Det kräver. NET Framework 4.6.1. Denna version av Framework är att föredra för att underlätta anslutningen/autentiseringen till VSTS -webbplatsen.

att använda:

  • ladda ner arkivet bslwatcher_sources.zip.
  • Extrahera den på din disk.
  • Läs how_to_build.txt -filen för detaljer om byggandet.

Steg 7: Första start

Det finns två huvudsakliga saker att tänka på när du startar rutan:

1- Det finns inget sätt för systemet att själv veta var flaggorna är. Systemet antar att vid start är den gröna flaggan uppe.

2- Vid start av Arduino-kortet ska ingenting röra sig. När vi använde kontinuerliga servon är nolläget som standard satt till 90 i skissfilen. Om en servomotor börjar vända eller göra något ljud. du kan behöva omdefiniera dess nolläge. För att göra det behöver du bara ställa in potentiometern i det lilla hålet på sidan av servomotorn.

www.arduino.cc/en/Reference/ServoWrite

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

Steg 8: Slutsats

Den här lilla enheten kommer fysiskt att rapportera status för ditt kontinuerliga integrationssystem.

Eftersom "intelligensen" finns i skrivbordsprogrammet kan du använda rutan för att övervaka annan programvara eller process (post, en temperatursensor …). Du behöver bara ha tillgång till ett annat API och bestämma vad som är "bra" eller vad som är "dåligt". Om du inte använder röda och gröna konventionella färger kan du till och med ändra betydelsen av "meddelandet".

Förbättringar kan också komma till själva rutan:

  • Använd ett batteri.
  • Använd ett annat kommunikationsprotokoll.
  • Lägg till sensorer för att veta vilken flagga som är överst.

Hoppas du tyckte att det här projektet var intressant.

Tack för att du läste upp hit.

Steg 9: Bilaga

Några av länkarna som används för att skapa detta projekt:

Arduinos webbplats:

DIGI webbplats:

XCTU-programvara:

Vissa uppgifter som används från andra:

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

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

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

jeromeabel.net/

MSDN -webbplats i allmänhet:

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

Rekommenderad: