Cuprins:

Build Machine Watcher: 9 pași
Build Machine Watcher: 9 pași

Video: Build Machine Watcher: 9 pași

Video: Build Machine Watcher: 9 pași
Video: 35 de videoclipuri cu fantome înfricoșătoare: Mega compilație din 2023 [V1] 2024, Noiembrie
Anonim
Construiți Machine Watcher
Construiți Machine Watcher
Construiți Machine Watcher
Construiți Machine Watcher

Punctul de plecare pentru acest proiect a fost lucrul la un proiect concret pentru a învăța câteva lucruri despre plăcile de microcontrolere.

Ideea inițială a fost crearea unui obiect fizic care să poată monitoriza un sistem de integrare continuă (VSTS | Azure DevOps) și să raporteze erorile de construire a software-ului. Din motive de securitate din partea departamentului IT, mi s-a refuzat să conectez un dispozitiv „non standard” direct la rețeaua întreprinderii.

Am ajuns cu arhitectura prezentată în imaginea de mai sus. Fluxul de lucru de execuție poate fi rezumat ca:

O aplicație desktop Windows scanează (trage) definițiile VSTS Build. Acesta analizează rezultatele compilării și apoi trimite o comandă dispozitivului fizic care execută o mică secvență animată înainte de a afișa fie steagul roșu, fie cel verde.

Pasul 1: Piese necesare

Următoarea listă rezumă toate elementele necesare:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Scut de expansiune (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 module XBee S1 (https://www.adafruit.com/product/128).
  • 1 dongle XBee explorer (https://www.sparkfun.com/products/11697).
  • 2 servo motoare continue 5VDC cu accesorii de fixare (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 sursă de alimentare de 9VDC.
  • 3 LED-uri.
  • 3 rezistențe 220 Ohm.
  • manșon termo retractabil.
  • 1 buton.
  • Rezistență de tragere de 10KΩ pentru tragere în sus.
  • Condensator 100nF.
  • fire electrice.
  • bandă (pentru montarea butonului)
  • Lemn de 5mm (50x50cm).
  • lemn lemn secțiune pătrată 5x5 mm (1m).
  • carton.
  • 10 X șurub diametru 2mm.
  • 4 șuruburi diametru 5mm.
  • magnet puternic.
  • modul de strunjire. Am refolosit partea mobilă internă a unei lumini intermitente. poți pune orice vrei. Va trebui doar să aveți grijă ca cele 2 părți mobile să se poată mișca liber fără să se atingă împreună.

Pasul 2: Construirea cutiei

Construind Cutia
Construind Cutia

De fapt, puteți avea o cutie de orice formă doriți. Principalele lucruri la care trebuie să vă gândiți înainte de a începe este locul unde vor fi piesele în mișcare și asigurarea faptului că acestea se pot deplasa liber fără a se atinge împreună. Un alt punct este unde vei pune dispozitivul? Am ajuns cu un magnet (puternic) pentru a-l lipi de orice suport metalic. dacă doriți să construiți aceeași casetă, puteți urma instrucțiunile din fișierul box_drawings.pdf.

În acest caz, trebuie doar să tăiați toate piesele diferite, să faceți găurile pentru servomotoare, LED-urile, butonul și șuruburile și, în cele din urmă, să lipiți toate părțile împreună. Odată ce este uscat, puțin șlefuire și puțină culoare.

Cele două steaguri au fost realizate folosind niște cartoane roșii și verzi. Pentru a fixa catargul steagului pe servomotoare, puteți utiliza piesele de montare furnizate la achiziționarea acestora.

Pasul 3: Configurare Arduino

Configurare Arduino
Configurare Arduino

Elementele conectate la placa de extensie Arduino sunt:

  • PIN D2: butonul.
  • PIN D4: LED-ul pentru a spune că sistemul este pornit.
  • PIN D5: LED-ul pentru a spune că executăm un ciclu.
  • PIN D6: LED-ul pentru a spune că dispozitivul a primit un mesaj nou.
  • PIN D9: semnalul de impuls PWM pentru servomotorul care manipulează giroscopul.
  • PIN D10: semnalul de impuls PWM pentru servomotorul care manipulează pavilionul.
  • XBee Socket: un modul ZigBee.

Schema de mai sus arată cum toate elementele sunt conectate la tablă.

Pentru LED-uri, rezistorul și firele sunt sudate direct pe el (aveți grijă de polaritate). Totul este apoi ambalat într-un manșon termo retractabil.

Pentru buton, toate piesele (buton, rezistor și condensator) sunt sudate direct pe o placă mică de bandă de satelit. Placa este apoi fixată direct cu două șuruburi (2 mm)

Servomotoarele funcționează cu o putere de 5V, astfel pot fi conectate direct la Arduino. Dacă utilizați cele cu tensiune mai mare (12V) va trebui să adăugați un alt strat pentru alimentarea cu energie electrică.

Pentru modulele XBee, odată ce acestea sunt configurate pentru a vorbi împreună (vezi secțiunea următoare), acestea pot fi conectate direct la prize.

Note: LED-urile și butonul ar fi putut fi conectate direct la pinii Arduino deoarece ar putea implementa intern valorile mobiliare necesare. Am făcut doar vechiul mod, deoarece acest aspect nu era foarte clar pentru mine.

Pasul 4: Software - XCTU

Software - XCTU
Software - XCTU

După cum sa menționat mai sus, cele două dispozitive XBee trebuie configurate pentru a vorbi împreună. Pentru a face acest lucru, trebuie să utilizați software-ul dedicat X-CTU de la DIGI. Trebuie să faceți acest pas de configurare o singură dată. vă rugăm să urmați procedura descrisă în fișierul xbee_configuration.pdf.

Odată ce configurarea este finalizată, puteți conecta fiecare modul la soclul lor. Unul pe convertorul USB / Serial și unul pe placa de extensie Arduino.

Convertorul USB / Serial ar trebui să fie recunoscut automat de Windows 10. Dacă nu este posibil, va trebui să instalați manual driverul

Notă:

Utilizarea modulelor XBee pentru a face o comunicare serială de bază este un pic exagerată. La momentul în care am început proiectul, nu am reușit să găsesc dispozitive de comunicații seriale simple ușor de utilizat pe Windows 10 (probleme cu driverele). A fost, de asemenea, o oportunitate de a învăța câteva lucruri despre

Pasul 5: Software - Arduino Sketch

Software - Arduino Sketch
Software - Arduino Sketch

Pentru a programa Arduino folosim IDE accesibil de pe site-ul oficial.

Logica programului este destul de simplă, doar ascultă pe portul serial implicit al plăcii pentru litere simple („a”, „b”, …). Dacă caracterul primit corespunde unei comenzi cunoscute, atunci o subfuncție redă secvența corespunzătoare.

Cele 2 comenzi utile principale sunt animația de succes („a”) și animația de eroare („b”).

Pentru a putea juca (sau depana) puțin mai mult cu caseta există câteva comenzi suplimentare care pot fi executate. Sunt:

  • „O”: forțează LED-ul ON să fie aprins
  • ‘P’: forțează LED-ul ON să fie OFF
  • „Q”: forțează LED-ul Noul mesaj să fie aprins
  • „R”: forțați LED-ul Noul mesaj să fie OPRIT
  • „S”: forțați LED-ul Cycle să fie aprins
  • ‘T’: forțează LED-ul Cycle să fie OFF
  • ‘U’: activați servomotorul giroscopului
  • ‘V’: activați servomotorul steagului.

În plus față de comanda serial există o sub-rutină (handlePushButton) care este activată atunci când butonul este apăsat pe dispozitiv. În acest caz, eroarea sau animația de succes sunt redate automat. Această caracteristică permite să verificați dacă dispozitivul fizic a fost montat corect.

Codul schiței Arduino se află în fișierul unic bsldevice.ino. Îl puteți încărca direct utilizând IDE.

Pasul 6: Software - Aplicație desktop

Software - Aplicație desktop
Software - Aplicație desktop

Scopul aplicației desktop este de a monitoriza site-ul web Microsoft Azure DevOps (anterior VSTS) și de a detecta dacă o definiție de construcție are succes sau este eronată. De fiecare dată când o construire este terminată, aplicația desktop determină starea construcției și trimite comanda corespunzătoare („a” sau „b”) la portul serial (COMx).

După lansarea aplicației, prima acțiune este de a selecta portul de com dreapta pe care este conectat modulul ZigBee. Pentru a determina portul, puteți utiliza Managerul de dispozitive Windows (sub Porturi (secțiunea COM & LPT)). Conexiunea la Azure DevOps se face automat la pornire utilizând acreditările utilizatorului curent. De asemenea, puteți trimite manual orice comandă predefinită utilizând caseta combinată din dreapta.

Toate sursele au fost generate cu Visual Studio 2017 ediția profesională. Necesită. NET Framework 4.6.1. Această versiune de Framework este preferabilă pentru a facilita conectarea / autentificarea la site-ul web VSTS.

a folosi:

  • descărcați arhiva bslwatcher_sources.zip.
  • Extrageți-l pe disc.
  • Citiți fișierul how_to_build.txt pentru detalii despre construire.

Pasul 7: Începeți mai întâi

Există două lucruri principale pe care trebuie să le aveți în vedere la pornirea casetei:

1- Nu există nicio modalitate prin care sistemul să știe de la sine unde sunt steagurile. Sistemul presupune că la pornire steagul verde este activat.

2- Când porniți placa Arduino, nimic nu ar trebui să se miște. Pe măsură ce am folosit servouri continue, poziția zero este setată la 90 în mod implicit în fișierul de schiță. Dacă un servomotor începe să se întoarcă sau să facă ceva zgomot. este posibil să trebuiască să-i redefiniți poziția zero. Pentru a face acest lucru, trebuie doar să reglați potențiometrul în gaura mică din partea laterală a servomotorului.

www.arduino.cc/en/Reference/ServoWrite

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

Pasul 8: Concluzie

Acest mic dispozitiv va raporta fizic starea sistemului dvs. de integrare continuă.

Deoarece „inteligența” se află în aplicația desktop, puteți utiliza caseta pentru a monitoriza orice alt software sau proces (poștă, un senzor de temperatură …). Trebuie doar să aveți acces la un alt API și să decideți ce este „bun” sau ce este „rău”. Dacă nu utilizați culori convenționale roșii și verzi, puteți chiar să schimbați semnificația „mesajului”.

Îmbunătățirile ar putea fi aduse și cutiei în sine:

  • Folosiți o baterie.
  • Folosiți un alt protocol de comunicare.
  • Adăugați senzori pentru a afla ce steag este în partea de sus.

Sper că ți s-a părut interesant acest proiect.

Vă mulțumim că ați citit până aici.

Pasul 9: Anexă

Câteva dintre legăturile utilizate pentru a crea acest proiect:

Site-ul web Arduino:

Site-ul web DIGI:

Software XCTU:

Unele informații utilizate de la alții:

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

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

www.mon-club-elec.fr/pmwiki_reference_ardui… (în franceză)

jeromeabel.net/

Site-ul web MSDN în general:

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

Recomandat: