Inhaltsverzeichnis:
- Schritt 1: Benötigte Teile
- Schritt 2: Aufbau der Box
- Schritt 3: Arduino-Setup
- Schritt 4: Software - XCTU
- Schritt 5: Software - Arduino-Skizze
- Schritt 6: Software - Desktop-Anwendung
- Schritt 7: Erster Start
- Schritt 8: Fazit
- Schritt 9: Anhang
Video: Build Machine Watcher - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
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
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
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
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
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
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:
PC-Build: 5 Schritte
PC Build: Heute bauen Sie Ihren eigenen Computer. Die Komponenten, die Sie benötigen, sind: Motherboard RAM CPU Heat Sync Festplatte oder SSD Netzteil Gehäuselüfter GPUEs gibt viele Vorteile, einen eigenen Computer zu bauen, z
DIY RACING GAME SIMULATOR BUILD TEIL 1: 6 Schritte
DIY RACING GAME SIMULATOR BUILD TEIL 1: Hallo zusammen Willkommen, heute zeige ich euch, wie ich einen "Racing Game Simulator" mit Hilfe von Arduino UNO. YouTube-Kanal " abonnieren Sie unbedingt meinen Kanal A Builds(Hier klicken)" Dies ist der Build-Blog, So le
Computer-Build-Anleitung: 8 Schritte
Computer Build Guide: Dies ist eine Anleitung zum Bau eines eigenen, benutzerdefinierten PCs. Obwohl einige denken, dass es einfach billiger und bequemer ist, einen vorgefertigten PC zu kaufen, würden die meisten Benutzer feststellen, dass es tatsächlich weniger teuer ist, ihn zusammenzustellen
IT-PC-Build: 9 Schritte
IT PC Build: Dies sind die einfachen Schritte zum Erstellen eines PCs. Dies sind die Materialien, die Sie benötigen…1. Motherboardi. CPUii. RAMiii. Kühlkörper und Wärmeleitpaste2. Stromversorgung3. Fall4. Ventilatoren5. Festplatte6. Kabel für Festplatte, Netzteil usw. 7. Antistatik
Benutzerdefinierter PC-Build: 5 Schritte
Benutzerdefinierter PC-Build: Dies ist eine Anleitung für einen benutzerdefinierten PC-Build mit den Materialien, die ich zur Hand hatte, damit Ihr Computer nicht genau so aussieht wie meiner, es sei denn, Sie erhalten genau die gleichen Komponenten