Turinys:

Sukurkite mašinos stebėtoją: 9 žingsniai
Sukurkite mašinos stebėtoją: 9 žingsniai

Video: Sukurkite mašinos stebėtoją: 9 žingsniai

Video: Sukurkite mašinos stebėtoją: 9 žingsniai
Video: Nov 3rd, 2023 Podcast: Uber and Lyft CAUGHT again! $328mil Scandal! 2024, Liepa
Anonim
Sukurkite mašinų stebėtoją
Sukurkite mašinų stebėtoją
Sukurkite mašinų stebėtoją
Sukurkite mašinų stebėtoją

Šio projekto pradinis taškas buvo dirbti prie konkretaus projekto ir sužinoti keletą dalykų apie mikrovaldiklių plokštes.

Pradinė idėja buvo sukurti fizinį objektą, kuris galėtų stebėti nuolatinės integracijos sistemą (VSTS | Azure DevOps) ir pranešti apie programinės įrangos kūrimo gedimus. Dėl IT skyriaus saugumo problemų man buvo atsisakyta tiesiogiai prijungti „nestandartinį“įrenginį prie įmonės tinklo.

Aš baigiau architektūra, parodyta aukščiau esančiame paveikslėlyje. Vykdymo darbo eigą galima apibendrinti taip:

„Windows“darbalaukio programa nuskaito (traukia) VSTS kūrimo apibrėžtis. Jis analizuoja kūrimo rezultatus ir tada siunčia komandą fiziniam įrenginiui, kuris vykdo šiek tiek animacinę seką prieš parodydamas raudoną arba žalią vėliavą.

1 žingsnis: reikalingos dalys

Šiame sąraše apibendrinami visi reikalingi elementai:

  • 1 „Arduino UNO R3“(https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 išplėtimo skydas (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 „XBee S1“moduliai (https://www.adafruit.com/product/128).
  • 1 „XBee explorer“raktas (https://www.sparkfun.com/products/11697).
  • 2 nuolatiniai 5VDC servo varikliai su tvirtinimo priedais (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 9VDC maitinimo šaltinis.
  • 3 šviesos diodai.
  • 3 rezistoriai 220 omų.
  • ištraukiama termo rankovė.
  • 1 paspaudimo mygtukas.
  • 10KΩ traukos rezistorius traukimui.
  • 100nF kondensatorius.
  • elektros laidai.
  • juostelės lenta (mygtuko tvirtinimui)
  • 5 mm medžio (50 x 50 cm).
  • medinė lazdelė kvadratinė sekcija 5x5 mm (1m).
  • kartonas.
  • 10 x 2 mm skersmens varžtas.
  • 4 varžtai 5 mm skersmens.
  • stiprus magnetas.
  • tekinimo modulis. Aš pakartotinai panaudojau mirksinčios šviesos vidinę judančią dalį. galite dėti ką tik norite. Jums tereikia pasirūpinti, kad dvi judančios dalys galėtų laisvai judėti, nesiliesdamos.

2 žingsnis: pastatykite dėžutę

Dėžutės statymas
Dėžutės statymas

Tiesą sakant, galite turėti bet kokios formos dėžutę. Pagrindiniai dalykai, apie kuriuos reikia pagalvoti prieš pradedant, yra judančių dalių vieta ir užtikrinimas, kad jos galėtų laisvai judėti, nesiliesdamos. Kitas dalykas yra tai, kur ketinate įdėti įrenginį? Galų gale turėjau magnetą (stiprų), kad galėčiau jį pritvirtinti prie bet kokios metalinės atramos. jei norite sukurti tą patį langelį, galite laikytis failo box_drawings.pdf nurodymų.

Tokiu atveju jums tereikia nupjauti visas skirtingas dalis, padaryti skyles servovarikliams, šviesos diodams, mygtukui ir varžtams ir galiausiai suklijuoti visas dalis. Kai jis išdžius, šiek tiek šlifuokite ir šiek tiek spalvos.

Abi vėliavos buvo pagamintos naudojant raudoną ir žalią kartoną. Norėdami pritvirtinti vėliavos stiebą ant variklių, galite naudoti pirkimo metu pateiktas tvirtinimo dalis.

3 žingsnis: „Arduino“sąranka

„Arduino“sąranka
„Arduino“sąranka

Prie „Arduino“prailginimo plokštės prijungti elementai yra šie:

  • D2 PIN: mygtukas.
  • D4 PIN: šviesos diodas, rodantis, kad sistema įjungta.
  • D5 PIN: šviesos diodas, rodantis, kad vykdome ciklą.
  • D6 PIN: šviesos diodas, rodantis, kad prietaisas gavo naują pranešimą.
  • D9 PIN: PWM pulso signalas, skirtas servo varikliui, valdančiam giroskopą.
  • D10 PIN: PWM pulso signalas, skirtas servovarikliui, valdančiam vėliavą.
  • „XBee“lizdas: vienas „ZigBee“modulis.

Aukščiau pateikta schema rodo, kaip visi elementai yra prijungti prie plokštės.

Šviesos diodams rezistorius ir laidai yra tiesiogiai suvirinti ant jo (pasirūpinkite poliškumu). Tada viskas supakuojama į termo ištraukiamą rankovę.

Spausdami mygtuką visos dalys (mygtukas, rezistorius ir kondensatorius) yra tiesiogiai suvirintos ant mažos palydovinės juostos plokštės. Tada juostinė plokštė tiesiogiai pritvirtinama dviem varžtais (2 mm)

Servo varikliai veikia su 5 V galia, todėl jie gali būti tiesiogiai prijungti prie „Arduino“. Jei naudojate aukštesnės įtampos (12 V) įtampą, turėsite pridėti kitą maitinimo sluoksnį.

Kai „XBee“moduliai yra sukonfigūruoti kalbėti kartu (žr. Kitą skyrių), juos galima tiesiogiai prijungti prie lizdų.

Pastabos: šviesos diodai ir mygtukas galėjo būti tiesiogiai prijungti prie „Arduino“kaiščių, nes jie gali įdiegti reikalingus vertybinius popierius. Aš tiesiog padariau seną būdą, nes šis aspektas man nebuvo labai aiškus.

4 žingsnis: programinė įranga - XCTU

Programinė įranga - XCTU
Programinė įranga - XCTU

Kaip minėta aukščiau, abu „XBee“įrenginiai turi būti sukonfigūruoti kalbėti kartu. Norėdami tai padaryti, turite naudoti specialią X-CTU programinę įrangą iš DIGI. Šį konfigūracijos veiksmą turite atlikti tik vieną kartą. atlikite xbee_configuration.pdf faile aprašytą procedūrą.

Baigę konfigūraciją, kiekvieną modulį galite prijungti prie lizdo. Vienas USB/serijos keitiklyje ir vienas „Arduino“plėtinio plokštėje.

USB/serijos keitiklis turėtų būti automatiškai atpažįstamas „Windows 10.“. Jei ne, gali tekti tvarkyklę įdiegti rankiniu būdu

Pastaba:

„XBee“modulių naudojimas pagrindiniam nuosekliam ryšiui palaikyti yra šiek tiek perdėtas. Kai pradėjau projektą, man nepavyko rasti paprastų serijinio ryšio įrenginių, kuriuos būtų galima lengvai naudoti „Windows 10“(tvarkyklės problemos). Tai taip pat buvo proga sužinoti keletą dalykų apie

5 veiksmas: programinė įranga - „Arduino Sketch“

Programinė įranga - „Arduino Sketch“
Programinė įranga - „Arduino Sketch“

Norėdami programuoti „Arduino“, naudojame IDE, pasiekiamą iš oficialios svetainės.

Programos logika yra gana paprasta, ji tiesiog klausosi numatytojo plokštės nuoseklaus prievado, kad gautų atskiras raides („a“, „b“, …). Jei gautas simbolis atitinka žinomą komandą, tada papildoma funkcija paleidžia atitinkamą seką.

2 pagrindinės naudingos komandos yra sėkmės animacija („a“) ir klaidų animacija („b“).

Kad būtų galima šiek tiek daugiau žaisti (arba derinti) su langeliu, yra keletas papildomų komandų, kurias galima vykdyti. Jie yra:

  • „O“: priversti ĮJUNGTI šviesos diodą
  • „P“: priversti ĮJUNGTI šviesos diodą išjungti
  • „Q“: priversti įjungti naujo pranešimo šviesos diodą
  • „R“: priversti išjungti naujo pranešimo šviesos diodą
  • „S“: priversti įjungti ciklo šviesos diodą
  • „T“: priversti ciklo šviesos diodą išjungti
  • „U“: įjunkite giroskopo variklį
  • „V“: įjunkite vėliavos variklį.

Be serijinės komandos, yra papildoma rutina (handlePushButton), kuri suaktyvinama paspaudus įrenginio mygtuką. Tokiu atveju klaidos ar sėkmės animacija paleidžiama automatiškai. Ši funkcija leidžia patikrinti, ar fizinis įrenginys sumontuotas teisingai.

„Arduino“eskizo kodas yra viename faile bsldevice.ino. Galite jį įkelti tiesiogiai naudodami IDE.

6 veiksmas: programinė įranga - darbalaukio programa

Programinė įranga - darbalaukio programa
Programinė įranga - darbalaukio programa

Stalinio kompiuterio programos tikslas yra stebėti „Microsoft Azure DevOps“(anksčiau VSTS) svetainę ir nustatyti, ar kūrimo apibrėžimas yra sėkmingas, ar yra klaida. Kiekvieną kartą, kai baigiamas kurti, darbalaukio programa nustato sąrankos būseną ir siunčia atitinkamą komandą („a“arba „b“) į nuoseklųjį prievadą (COMx).

Paleidus programą, pirmiausia reikia pasirinkti tinkamą kom portą, prie kurio prijungtas „ZigBee“modulis. Norėdami nustatyti prievadą, galite naudoti „Windows“įrenginių tvarkytuvę (skiltyje „Uostai“(COM ir LPT skyrius)). Ryšys su „Azure DevOps“atliekamas automatiškai paleidžiant, naudojant dabartinio vartotojo kredencialus. Bet kurią iš anksto nustatytą komandą taip pat galite siųsti rankiniu būdu, naudodami dešinėje esantį kombinuotąjį laukelį.

Visi šaltiniai sukurti naudojant „Visual Studio 2017“profesionalų leidimą. Tam reikia. NET Framework 4.6.1. Šią „Framework“versiją pageidautina palengvinti prisijungimui/autentifikavimui prie VSTS svetainės.

naudoti:

  • atsisiųskite archyvą bslwatcher_sources.zip.
  • Ištraukite jį į diską.
  • Jei reikia išsamios informacijos apie kūrimą, skaitykite failą how_to_build.txt.

7 žingsnis: Pirmasis paleidimas

Pradėdami dėžutę, turite atsižvelgti į du pagrindinius dalykus:

1- Sistema negali pati žinoti, kur yra vėliavos. Sistema daro prielaidą, kad paleidžiant žalia vėliava yra iškelta.

2- Įjungus „Arduino“plokštę, niekas neturėtų judėti. Kadangi mes naudojome nuolatines servo sistemas, eskizo faile pagal numatytuosius nustatymus nulinė padėtis nustatyta 90. Jei servovariklis pradeda suktis ar kelti triukšmą. gali tekti iš naujo nustatyti jo nulinę padėtį. Norėdami tai padaryti, tiesiog sureguliuokite potenciometrą mažoje skylėje, esančioje variklio šone.

www.arduino.cc/en/Reference/ServoWrite

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

8 žingsnis: Išvada

Šis mažas įrenginys fiziškai praneš apie jūsų nuolatinės integracijos sistemos būseną.

Kadangi „intelektas“yra darbalaukio programoje, galite naudoti dėžutę, kad galėtumėte stebėti bet kokią kitą programinę įrangą ar procesą (paštą, temperatūros jutiklį …). Jums tereikia turėti prieigą prie kitos API ir nuspręsti, kas yra „gerai“ar „blogai“. Jei nenaudojate raudonos ir žalios spalvos, galite net pakeisti „pranešimo“reikšmę.

Patobulinimai taip pat gali būti pateikti pačioje dėžutėje:

  • Naudokite bateriją.
  • Naudokite kitą ryšio protokolą.
  • Pridėkite jutiklius, kad žinotumėte, kuri vėliava yra viršuje.

Tikimės, kad šis projektas jums buvo įdomus.

Ačiū, kad perskaitėte iki čia.

9 žingsnis: Priedas

Kai kurios nuorodos, naudojamos kuriant šį projektą:

„Arduino“svetainė:

DIGI svetainė:

XCTU programinė įranga:

Kai kuri informacija naudojama iš kitų:

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

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

www.mon-club-elec.fr/pmwiki_reference_ardui… (prancūzų kalba)

jeromeabel.net/

MSDN svetainė apskritai:

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

Rekomenduojamas: