Programmi arendamine
Tinker CAD graafiline programmeerimiskeskkond (GPE) on piiratud ainult loop() funktsiooni arendamisega, setup() käivitatakse vaikimisi. Seda väikest piirangut saab ületada, jätkates arendust ainult C keeles (ilma CodeBlocksita), mis võib olla suuremate praktiliste rakenduste puhul aktsepteeritav. GPE sisaldab 6 tüüpi “CodeBlocks” operatsioone, mis on kodeeritud erinevate värvidega (Joonis 41a): muutujad, juhtimine, väljund, sisend, matemaatika (sisaldab tingimuse täitmise arvutamist, nn Boole'i tehteid, mida kasutatakse juhtlausetes), märgendid (kommentaarid). Erinevat tüüpi lauseid kombineeritakse omavahel vastavalt nende kujule.
|
Servo-mootorite (“sõrmede”) liigutamise programm koosneb ühest väiksemast ja kahest suuremast osast (Joonis 41b), mis on eraldatud hallide kommentaaridega:
-
Pöörlemiskiiruse seadistamine (rotationStep muutuja, roosa) – kui programm viiakse üle reaalsele UNO-le, võib selle lause paigutada setup() protseduuri.
-
Iga servo-mootori pööramiseks kindlasse asendisse antakse juhised – 5 väljundit (sinine), kus tuleb hoolikalt määrata õige väljundnõel (UNO plaadil) ja asend (erinevad muutujad, roosa). Kuna need muutujad on vaikimisi seatud väärtusele 0 setup() käigus, ei juhtu pärast sisselülitamist midagi enne, kui mõni nupp on vajutatud.
-
Nupupaaride kontrollimine ja servo-mootorite asendi ümberarvutamine. Seda osa korratakse (joonisel 41b on nähtav ainult üks) 5 korda iga kahe nupu ja ühe servo-mootori komplekti kohta.
-
Nupu “Up” seisund (pinge) loetakse analoogsisendist. Võimalik lugemisvahemik on 0 kuni 1023 ühikut, mis vastab vastavalt 0 ja 5 voldile. Tuleb hoolikalt määrata õige sisendnõel UNO plaadil.
-
Kui loetud väärtus on suurem kui 256 (1,25V), siis arvutatakse konkreetse servo-mootori asend ümber, suurendades seda rotationStep võrra;
-
Arvutatud asend ei tohi ületada 180°. Kui see juhtub, seatakse see piirväärtusele.
-
Kui nuppu “Up” ei vajutatud, täidetakse else haru.
-
Nupu “Down” seisund loetakse digitaalsisendist (0 = Ei, 1 = Jah). Tuleb hoolikalt määrata õige sisendnõel UNO plaadil.
-
Kui loetud väärtus on suurem või võrdne 1-ga, siis arvutatakse konkreetse servo-mootori asend ümber, vähendades seda rotationStep võrra. Negatiivse rotationStep väärtuse saamiseks oli vajalik täiendav aritmeetiline (matemaatika, roheline kategooria) tehe.
-
Arvutatud asend ei tohi langeda alla 0°. Kui see juhtub, seatakse see piirväärtusele.
|

Joonis 41. Osa servo-mootorite käivitamise graafilisest programmist
|