Inhaltsverzeichnis:

Build Machine Watcher - Gunook
Build Machine Watcher - Gunook

Video: Build Machine Watcher - Gunook

Video: Build Machine Watcher - Gunook
Video: The BEST SOLO High Stat ARTIFICE Armor FARM is BACK this Week! | Destiny 2 2024, November
Anonim
Maschinenwächter bauen
Maschinenwächter bauen
Maschinenwächter bauen
Maschinenwächter bauen

Ausgangspunkt für dieses Projekt war die Arbeit an einem konkreten Projekt, um ein paar Dinge über Mikrocontroller-Boards zu lernen.

Die ursprüngliche Idee war, ein physisches Objekt zu erstellen, das ein Continuous Integration System (VSTS|Azure DevOps) überwachen und Fehler bei der Softwareerstellung melden kann. Aufgrund von Sicherheitsbedenken der IT-Abteilung wurde mir verweigert, ein "nicht standardmäßiges" Gerät direkt mit dem Unternehmensnetzwerk zu verbinden.

Ich landete mit der Architektur, die im obigen Bild gezeigt wird. Der Ausführungsworkflow kann wie folgt zusammengefasst werden:

Eine Windows-Desktopanwendung scannt (Pull) VSTS-Build-Definitionen. Es analysiert die Ergebnisse des Builds und sendet dann einen Befehl an das physische Gerät, das eine kleine animierte Sequenz ausführt, bevor entweder die rote oder die grüne Flagge angezeigt wird.

Schritt 1: Benötigte Teile

Die folgende Liste fasst alle benötigten Elemente zusammen:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Erweiterungsschild (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 XBee S1-Module (https://www.adafruit.com/product/128).
  • 1 XBee Explorer-Dongle (https://www.sparkfun.com/products/11697).
  • 2 kontinuierliche Servomotoren 5VDC mit Befestigungszubehör (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 9VDC-Netzteil.
  • 3 LEDs.
  • 3 Widerstände 220 Ohm.
  • Thermo einziehbare Hülse.
  • 1 Druckknopf.
  • 10KΩ Pull-Widerstand für den Pull-Up.
  • 100nF Kondensator.
  • Stromkabel.
  • Strip-Board (für die Montage des Tasters)
  • 5mm Holz (50x50cm).
  • Holzstab quadratischer Querschnitt 5x5 mm (1m).
  • Karton.
  • 10 X Schraube 2mm Durchmesser.
  • 4 Schrauben 5mm Durchmesser.
  • starker Magnet.
  • Drehmodul. Ich habe den internen beweglichen Teil eines Blinklichts wiederverwendet. du kannst setzen was du willst. Sie müssen nur darauf achten, dass sich die 2 beweglichen Teile frei bewegen können, ohne sich zu berühren.

Schritt 2: Aufbau der Box

Bau der Box
Bau der Box

Eigentlich können Sie eine Schachtel in jeder gewünschten Form haben. Die wichtigsten Dinge, die Sie sich vor dem Start überlegen sollten, ist, wo sich die beweglichen Teile befinden und sicherzustellen, dass sie sich frei bewegen können, ohne sich zu berühren. Ein weiterer Punkt ist, wo werden Sie das Gerät aufstellen? Am Ende hatte ich einen Magneten (starken), um ihn an einer metallischen Unterlage zu befestigen. Wenn Sie die gleiche Box bauen möchten, können Sie den Anweisungen in der Datei box_drawings.pdf folgen.

In diesem Fall müssen Sie nur alle Teile zuschneiden, die Löcher für die Servomotoren, die LEDs, den Knopf und die Schrauben bohren und schließlich alle Teile zusammenkleben. Sobald es trocken ist, ein wenig Schleifen und etwas Farbe.

Die beiden Flaggen wurden aus rotem und grünem Karton hergestellt. Zur Befestigung des Fahnenmastes an den Stellmotoren können Sie die beim Kauf mitgelieferten Befestigungsteile verwenden.

Schritt 3: Arduino-Setup

Arduino-Setup
Arduino-Setup

Die mit der Arduino-Erweiterungsplatine verbundenen Elemente sind:

  • D2 PIN: der Druckknopf.
  • D4 PIN: die LED, die anzeigt, dass das System eingeschaltet ist.
  • D5 PIN: die LED, die anzeigt, dass wir einen Zyklus ausführen.
  • D6 PIN: die LED, die anzeigt, dass das Gerät eine neue Nachricht erhalten hat.
  • D9 PIN: das PWM-Impulssignal für den Servomotor, der den Kreisel bedient.
  • D10 PIN: das PWM-Impulssignal für den Servomotor, der das Flag handhabt.
  • XBee-Sockel: ein ZigBee-Modul.

Das obige Schema zeigt, wie alle Elemente mit der Platine verbunden sind.

Bei den LEDs werden der Widerstand und die Drähte direkt aufgeschweißt (Polarität beachten). Alles wird dann in einer thermo-einziehbaren Hülle verpackt.

Beim Taster werden alle Teile (Taster, Widerstand und Kondensator) direkt auf eine kleine Satellitenleiste geschweißt. Die Streifenplatte wird dann direkt mit zwei Schrauben (2mm) befestigt

Die Servomotoren arbeiten mit 5V Leistung und können somit direkt an den Arduino angeschlossen werden. Wenn Sie solche mit höherer Spannung (12V) verwenden, müssen Sie eine weitere Schicht für die Stromversorgung hinzufügen.

Die XBee-Module können, sobald sie für die Kommunikation konfiguriert sind (siehe nächster Abschnitt), direkt in die Steckdosen gesteckt werden.

Hinweise: Die LEDs und der Taster könnten direkt mit den Arduino-Pins verbunden sein, da sie intern die erforderlichen Sicherheiten implementieren können. Ich habe einfach den alten Weg gemacht, da mir dieser Aspekt nicht ganz klar war.

Schritt 4: Software - XCTU

Software - XCTU
Software - XCTU

Wie oben erwähnt, müssen die beiden XBee-Geräte so konfiguriert werden, dass sie miteinander kommunizieren. Dazu benötigen Sie die dedizierte X-CTU-Software von DIGI. Sie müssen diesen Konfigurationsschritt nur einmal durchführen. Bitte befolgen Sie das in der Datei xbee_configuration.pdf beschriebene Verfahren.

Sobald die Konfiguration abgeschlossen ist, können Sie jedes Modul an seinem Sockel anschließen. Einer auf dem USB/Seriell-Konverter und einer auf der Arduino-Erweiterungsplatine.

Der USB/Seriell-Konverter sollte von Windows 10 automatisch erkannt werden. Wenn dies nicht der Fall ist, müssen Sie den Treiber möglicherweise manuell installieren

Notiz:

Die Verwendung von XBee-Modulen für eine grundlegende serielle Kommunikation ist ein wenig übertrieben. Als ich das Projekt startete, war es mir nicht gelungen, einfache serielle Kommunikationsgeräte zu finden, die unter Windows 10 leicht zu verwenden sind (Treiberprobleme). Es war auch eine Gelegenheit, ein paar Dinge über https://www.zigbee.org zu erfahren

Schritt 5: Software - Arduino-Skizze

Software - Arduino-Skizze
Software - Arduino-Skizze

Um den Arduino zu programmieren, verwenden wir die IDE, die von der offiziellen Website zugänglich ist.

Die Logik des Programms ist ziemlich einfach, es lauscht nur auf der standardmäßigen seriellen Schnittstelle des Boards auf einzelne Buchstaben ('a', 'b', …). Stimmt das empfangene Zeichen mit einem bekannten Befehl überein, spielt eine Unterfunktion die entsprechende Sequenz ab.

Die 2 wichtigsten nützlichen Befehle sind Erfolgsanimation ('a') und Fehleranimation ('b').

Um etwas mehr mit der Box spielen (oder debuggen) zu können, gibt es einige zusätzliche Befehle, die ausgeführt werden können. Sie sind:

  • ‘o’: Erzwingen, dass die ON-LED eingeschaltet ist
  • ‘p’: erzwingt, dass die ON-LED ausgeschaltet wird
  • ‘q’: Erzwingen Sie, dass die LED für neue Nachrichten eingeschaltet ist
  • ‘r’: Erzwingen, dass die LED für neue Nachrichten aus ist
  • ‘s’: Erzwingen Sie, dass die Cycle-LED eingeschaltet ist
  • ‘t’: erzwingt, dass die Cycle-LED ausgeschaltet ist
  • ‘u’: Servomotor des Kreisels aktivieren
  • ‘v’: Aktiviert den Servomotor der Flagge.

Neben dem seriellen Befehl gibt es ein Unterprogramm (handlePushButton), das beim Drücken des Tasters am Gerät aktiviert wird. In diesem Fall wird die Fehler- oder Erfolgsanimation automatisch abgespielt. Mit dieser Funktion kann überprüft werden, ob das physische Gerät richtig gemountet wurde.

Der Code der Arduino-Skizze befindet sich in der einzelnen Datei bsldevice.ino. Sie können es direkt über die IDE hochladen.

Schritt 6: Software - Desktop-Anwendung

Software - Desktop-Anwendung
Software - Desktop-Anwendung

Der Zweck der Desktopanwendung besteht darin, die Microsoft Azure DevOps (früher VSTS)-Website zu überwachen und zu erkennen, ob eine Build-Definition erfolgreich oder fehlerhaft ist. Jedes Mal, wenn ein Build abgeschlossen ist, ermittelt die Desktop-Anwendung den Status des Builds und sendet den entsprechenden Befehl („a“oder „b“) an die serielle Schnittstelle (COMx).

Nach dem Start der Anwendung ist die erste Aktion, den richtigen COM-Port auszuwählen, an dem das ZigBee-Modul angeschlossen ist. Um den Port zu ermitteln, können Sie den Windows Gerätemanager verwenden (unter Ports (COM & LPT Abschnitt)). Die Verbindung zu Azure DevOps wird beim Start automatisch mit den Anmeldeinformationen des aktuellen Benutzers hergestellt. Sie können jeden vordefinierten Befehl auch manuell über das Kombinationsfeld auf der rechten Seite senden.

Alle Quellen wurden mit Visual Studio 2017 Professional Edition generiert. Es erfordert. NET Framework 4.6.1. Diese Version des Frameworks ist vorzuziehen, um die Verbindung/Authentifizierung mit der VSTS-Website zu erleichtern.

benutzen:

  • Laden Sie das Archiv bslwatcher_sources.zip herunter.
  • Entpacken Sie es auf Ihre Festplatte.
  • Lesen Sie die Datei how_to_build.txt für Details zum Build.

Schritt 7: Erster Start

Beim Starten der Box sind vor allem zwei Dinge zu beachten:

1- Es gibt keine Möglichkeit für das System, selbst zu wissen, wo sich die Flags befinden. Das System geht davon aus, dass beim Start die grüne Flagge oben ist.

2- Beim Einschalten des Arduino-Boards sollte sich nichts bewegen. Da wir kontinuierliche Servos verwendet haben, ist die Nullposition in der Skizzendatei standardmäßig auf 90 eingestellt. Wenn ein Servomotor anfängt sich zu drehen oder Geräusche zu machen. Möglicherweise müssen Sie die Nullposition neu definieren. Dazu müssen Sie nur das Potentiometer im kleinen Loch an der Seite des Servomotors einstellen.

www.arduino.cc/de/Referenz/ServoWrite

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

Schritt 8: Fazit

Dieses kleine Gerät meldet physisch den Status Ihres Continuous Integration Systems.

Da sich die "Intelligenz" in der Desktop-Anwendung befindet, können Sie mit der Box jede andere Software oder jeden Prozess (Mail, ein Temperatursensor…) überwachen. Sie müssen nur Zugriff auf eine andere API haben und entscheiden, was "gut" oder "schlecht" ist. Wenn Sie keine roten und grünen Konventionsfarben verwenden, können Sie sogar die Bedeutung der "Nachricht" ändern.

Verbesserungen könnten auch an der Box selbst vorgenommen werden:

  • Verwenden Sie eine Batterie.
  • Verwenden Sie ein anderes Kommunikationsprotokoll.
  • Fügen Sie Sensoren hinzu, um zu wissen, welche Flagge sich oben befindet.

Ich hoffe, Sie fanden dieses Projekt interessant.

Danke bis hier zu lesen.

Schritt 9: Anhang

Einige der Links, die zum Erstellen dieses Projekts verwendet wurden:

Arduino-Website:

DIGI-Website:

XCTU-Software:

Einige Informationen von anderen verwendet:

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

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

www.mon-club-elec.fr/pmwiki_reference_ardui… (auf Französisch)

jeromeabel.net/

MSDN-Website im Allgemeinen:

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

Empfohlen: