Satura rādītājs:

Veidot mašīnu vērotāju: 9 soļi
Veidot mašīnu vērotāju: 9 soļi

Video: Veidot mašīnu vērotāju: 9 soļi

Video: Veidot mašīnu vērotāju: 9 soļi
Video: Алан де Боттон: Добрая, мягкая философия успеха 2024, Novembris
Anonim
Veidot mašīnu vērotāju
Veidot mašīnu vērotāju
Veidot mašīnu vērotāju
Veidot mašīnu vērotāju

Šī projekta sākumpunkts bija darbs pie konkrēta projekta, lai uzzinātu dažas lietas par mikrokontrolleru plates.

Sākotnējā ideja bija izveidot fizisku objektu, kas varētu uzraudzīt nepārtrauktas integrācijas sistēmu (VSTS | Azure DevOps) un ziņot par programmatūras būves kļūmēm. IT nodaļas drošības apsvērumu dēļ man tika atteikts pieslēgt "nestandarta" ierīci tieši uzņēmuma tīklam.

Es beidzu ar arhitektūru, kas parādīta iepriekšējā attēlā. Izpildes darbplūsmu var apkopot šādi:

Windows darbvirsmas lietojumprogramma skenē (velk) VSTS būvējuma definīcijas. Tas analizē būvēšanas rezultātus un pēc tam nosūta komandu uz fizisko ierīci, kas izpilda nelielu animētu secību, pirms tiek parādīts sarkans vai zaļš karogs.

1. darbība: nepieciešamās detaļas

Šajā sarakstā ir apkopoti visi nepieciešamie elementi:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Paplašināšanas vairogs (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 XBee S1 moduļi (https://www.adafruit.com/product/128).
  • 1 XBee explorer dongle (https://www.sparkfun.com/products/11697).
  • 2 nepārtraukti servomotori 5VDC ar stiprinājuma piederumiem (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 9VDC barošanas avots.
  • 3 gaismas diodes.
  • 3 rezistori 220 omi.
  • izvelkama termo piedurkne.
  • 1 spiedpoga.
  • 10KΩ vilkšanas rezistors pacelšanai.
  • 100nF kondensators.
  • elektriskie vadi.
  • sloksnes dēlis (pogas uzstādīšanai)
  • 5 mm koks (50 x 50 cm).
  • koka nūjas kvadrātveida sekcija 5x5 mm (1m).
  • kartons.
  • 10 X skrūve 2 mm diametrā.
  • 4 skrūves 5 mm diametrā.
  • spēcīgs magnēts.
  • pagrieziena modulis. Es atkārtoti izmantoju mirgojošas gaismas iekšējo kustīgo daļu. vari likt ko gribi. Jums vienkārši būs jārūpējas par to, lai divas kustīgās daļas varētu brīvi pārvietoties, nepieskaroties kopā.

2. darbība: kastes izveide

Kastes veidošana
Kastes veidošana

Patiesībā jums var būt jebkuras formas kastīte. Galvenais, kas jādomā pirms darba uzsākšanas, ir tas, kur atradīsies kustīgās daļas un jānodrošina, lai tās varētu brīvi pārvietoties, nepieskaroties kopā. Vēl viens jautājums ir tas, kur jūs ievietojat ierīci? Es beidzu ar magnētu (spēcīgu), lai to pielīmētu pie jebkura metāla atbalsta. ja vēlaties izveidot to pašu lodziņu, varat izpildīt norādījumus failā box_drawings.pdf.

Tādā gadījumā jums vienkārši jāizgriež visi dažādi gabali, jāizveido caurumi servomotoriem, gaismas diodēm, pogai un skrūvēm un visbeidzot jāpielīmē visas detaļas. Kad tas ir sauss, nedaudz slīpējiet un nedaudz krāsojiet.

Abi karogi ir izgatavoti, izmantojot sarkanu un zaļu kartonu. Lai piestiprinātu karoga mastu uz servomotoriem, varat izmantot komplektācijā iekļautās stiprinājuma detaļas, pērkot tās.

3. darbība: Arduino iestatīšana

Arduino iestatīšana
Arduino iestatīšana

Ar Arduino pagarinātāju saistītie priekšmeti ir:

  • D2 PIN: spiedpoga.
  • D4 PIN: gaismas diode, kas norāda, ka sistēma ir ieslēgta.
  • D5 PIN: gaismas diode, kas norāda, ka mēs veicam ciklu.
  • D6 PIN: gaismas diode, kas norāda, ka ierīce ir saņēmusi jaunu ziņojumu.
  • D9 PIN: PWM impulsa signāls servomotorei, kas apstrādā žiroskopu.
  • D10 PIN: PWM impulsa signāls servomotorei, kas apstrādā karodziņu.
  • XBee ligzda: viens ZigBee modulis.

Iepriekš redzamā shēma parāda, kā visi vienumi ir savienoti ar plāksni.

Gaismas diodēm rezistors un vadi ir tieši metināti uz tā (rūpējieties par polaritāti). Pēc tam viss tiek iepakots kādā termoizvelkamā uzmavā.

Spiedpogai visas detaļas (poga, rezistors un kondensators) ir tieši metinātas uz nelielas satelīta lentes. Pēc tam sloksnes plāksne tiek tieši piestiprināta ar divām skrūvēm (2 mm)

Servomotori darbojas ar 5 V jaudu, tāpēc tos var savienot tieši ar Arduino. Ja izmantojat tos, kuriem ir augstāks spriegums (12V), barošanas avotam būs jāpievieno vēl viens slānis.

XBee moduļiem, kad tie ir konfigurēti sarunai kopā (sk. Nākamo sadaļu), tos var pieslēgt kontaktligzdām tieši.

Piezīmes: Gaismas diodes un spiedpoga varēja būt tieši savienotas ar Arduino tapām, jo tā var iekšēji ieviest nepieciešamos vērtspapīrus. Es vienkārši darīju veco ceļu, jo šis aspekts man nebija ļoti skaidrs.

4. solis: programmatūra - XCTU

Programmatūra - XCTU
Programmatūra - XCTU

Kā minēts iepriekš, abām XBee ierīcēm jābūt konfigurētām, lai runātu kopā. Lai to izdarītu, jums jāizmanto DIGI speciālā X-CTU programmatūra. Šī konfigurācijas darbība jāveic tikai vienu reizi. lūdzu, izpildiet xbee_configuration.pdf failā aprakstīto procedūru.

Kad konfigurācija ir pabeigta, katru moduli var savienot ar ligzdu. Viens uz USB/sērijas pārveidotāja un viens uz Arduino paplašinājuma plates.

USB/sērijas pārveidotājs automātiski jāatpazīst logos 10. Ja tas tā nav, iespējams, draiveris būs jāinstalē manuāli

Piezīme:

XBee moduļu izmantošana pamata sērijas sakaru veikšanai ir nedaudz pārspīlēta. Laikā, kad sāku projektu, man neizdevās atrast vienkāršas seriālās sakaru ierīces, kuras būtu ērti lietojamas operētājsistēmā Windows 10 (draivera problēmas). Tā bija arī iespēja uzzināt dažas lietas par vietni

5. solis: programmatūra - Arduino skice

Programmatūra - Arduino skice
Programmatūra - Arduino skice

Lai programmētu Arduino, mēs izmantojam IDE, kas pieejams no oficiālās vietnes.

Programmas loģika ir diezgan vienkārša, tā vienkārši noklausās tāfeles noklusējuma seriālo portu ar atsevišķiem burtiem (“a”, “b”,…). Ja saņemtā rakstzīme atbilst zināmai komandai, tad apakšfunkcija atskaņo atbilstošo secību.

Divas galvenās noderīgās komandas ir veiksmes animācija (“a”) un kļūdu animācija (“b”).

Lai varētu nedaudz vairāk spēlēt (vai atkļūdot) ar lodziņu, ir dažas papildu komandas, kuras var izpildīt. Viņi ir:

  • “O”: piespiediet IESLĒGT gaismas diode
  • “P”: piespiest IESLĒGT gaismas diodei
  • “Q”: piespiest iedegties jaunā ziņojuma gaismas diodei
  • “R”: piespiediet jaunā ziņojuma gaismas diodei izslēgties
  • “S”: piespiest cikla gaismas diodei iedegties
  • “T”: piespiediet cikla LED izslēgt
  • “U”: aktivizējiet žiroskopa servomotoru
  • “V”: aktivizējiet karoga servomotoru.

Papildus sērijveida komandai ir apakšrutīns (handlePushButton), kas tiek aktivizēts, nospiežot ierīces pogu. Tādā gadījumā kļūdu vai panākumu animācija tiek atskaņota automātiski. Šī funkcija ļauj pārbaudīt, vai fiziskā ierīce ir pareizi uzstādīta.

Arduino skices kods ir vienā failā bsldevice.ino. To var augšupielādēt tieši, izmantojot IDE.

6. darbība: programmatūra - darbvirsmas lietojumprogramma

Programmatūra - darbvirsmas lietojumprogramma
Programmatūra - darbvirsmas lietojumprogramma

Darbvirsmas lietojumprogrammas mērķis ir uzraudzīt Microsoft Azure DevOps (iepriekš VSTS) vietni un noteikt, vai būvējuma definīcija ir veiksmīga vai kļūdaina. Katru reizi, kad būvniecība ir pabeigta, darbvirsmas lietojumprogramma nosaka būves statusu un nosūta atbilstošo komandu (“a” vai “b”) uz seriālo portu (COMx).

Pēc lietojumprogrammas palaišanas pirmā darbība ir izvēlēties pareizo portu, kuram ir pievienots ZigBee modulis. Lai noteiktu portu, varat izmantot Windows ierīču pārvaldnieku (sadaļā Porti (sadaļa COM un LPT)). Savienojums ar Azure DevOps tiek veikts automātiski, startējot, izmantojot pašreizējā lietotāja akreditācijas datus. Jebkuru iepriekš definētu komandu varat nosūtīt arī manuāli, izmantojot kombinēto lodziņu labajā pusē.

Visi avoti ir ģenerēti, izmantojot Visual Studio 2017 profesionālo izdevumu. Tas prasa. NET Framework 4.6.1. Šī Framework versija ir vēlama, lai atvieglotu savienojumu/autentifikāciju ar VSTS vietni.

izmantot:

  • lejupielādējiet arhīvu bslwatcher_sources.zip.
  • Izvelciet to savā diskā.
  • Plašāku informāciju par būvēšanu lasiet failā how_to_build.txt.

7. solis: pirmais starts

Uzsākot lodziņu, jāņem vērā divas galvenās lietas:

1- Sistēma pati nevar zināt, kur ir karogi. Sistēma pieņem, ka palaišanas laikā zaļais karogs ir uz augšu.

2- Ieslēdzot Arduino dēli, nekas nedrīkst kustēties. Tā kā mēs izmantojām nepārtrauktus servos, skices failā nulles pozīcija pēc noklusējuma ir iestatīta uz 90. Ja servomotors sāk griezties vai rada troksni. iespējams, nāksies no jauna definēt tā nulles pozīciju. Lai to izdarītu, vienkārši noregulējiet potenciometru mazajā caurumā servomotora sānos.

www.arduino.cc/en/Reference/ServoWrite

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

8. solis. Secinājums

Šī mazā ierīce fiziski ziņos par jūsu nepārtrauktās integrācijas sistēmas statusu.

Tā kā "inteliģence" ir darbvirsmas lietojumprogrammā, varat izmantot lodziņu, lai uzraudzītu jebkuru citu programmatūru vai procesu (pastu, temperatūras sensoru …). Jums vienkārši jāpiekļūst citai API un jāizlemj, kas ir “labs” vai “slikts”. Ja neizmantojat sarkanās un zaļās konvencijas krāsas, varat pat mainīt "ziņojuma" nozīmi.

Uzlabojumus varētu ieviest arī pašā kastē:

  • Izmantojiet akumulatoru.
  • Izmantojiet citu saziņas protokolu.
  • Pievienojiet sensorus, lai uzzinātu, kurš karogs atrodas augšpusē.

Ceru, ka šis projekts jums šķita interesants.

Paldies, ka izlasījāt līdz šejienei.

9. solis: pielikums

Dažas saites, kas izmantotas šī projekta izveidošanai:

Arduino vietne:

DIGI vietne:

XCTU programmatūra:

Daļa no citiem izmantotās informācijas:

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

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

www.mon-club-elec.fr/pmwiki_reference_ardui… (franču valodā)

jeromeabel.net/

MSDN vietne kopumā:

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

Ieteicams: