5. Sõrmede liigutamine

Website: Bios4You
Kurs: (4) Robootika biotehnoloogias
Buch: 5. Sõrmede liigutamine
Gedruckt von: Guest user
Datum: Donnerstag, 13. August 2026, 04:19

Ülevaade

Nagu varem näidatud, on üks lihtsamaid viise bioonilise käe liigutuste teostamiseks kasutada servomootoreid, mis tõmbavad nööre (“kõõluseid”), mis on ühendatud sõrme kõige kaugema liikuvama osaga (vt joonis 35).

Joonis 35. Bioonilise käe sõrme liigutamine

Mootoreid saab juhtida suhteliselt autonoomse elektroonikaseadmega – krediitkaardi suuruse üheplaadilise arvutiga (SBC). Selliseid seadmeid on turul palju, kuid soovitatav on kasutada Arduino UNO mikrokontrollerit (vt joonis 36), sest:

  • See on avatud lähtekoodiga, suhteliselt odav ja äärmiselt populaarne elektroonika- ja väikse automaatikaentusiastide seas;
  • See on kaasatud ka Tinker CAD-i kui üks simuleeritud virtuaalseadmetest – veebipõhisel tasuta platvormil disaini õppimiseks. See on eriti kasulik, kuna 3D-modelleerimist, skeemide ja tarkvara disaini saab teha samas keskkonnas. Lisaks aitab riistvara ja tarkvara virtuaalne disain, modelleerimine ja testimine vältida seadmete kahjustamist (seega ka kulutusi), kuna virtuaalsed riistvaraelemente ei lähe valesti ühendamisel ega kasutamisel katki. Mõned soovitatavad ennetavad ettevalmistusetapid enne disaini päris riistvaral kasutuselevõttu tuuakse allpool välja.

 Joonis 36. Arduino UNO mikrokontroller (reaalne vaade – vasakul, virtualiseeritud TinkerCAD-is – paremal) 

Arduino UNO mikrokontroller

Arduino UNO mikrokontrolleril (edaspidi nimetatud kui “UNO”) on piiratud arvutusressursid võrreldes lauaarvutite, sülearvutite, tahvelarvutite või isegi mobiiltelefonidega, kuid see sobib meie ülesandeks täielikult – juhitava liikumise rakendamiseks:

  • UNO saab ühendada Windowsi arvutiga USB-kaabli kaudu, et varustada seadet toitega ja laadida tarkvaraprogramm;
  • Tarkvara arendatakse tavaliselt piiratud C programmeerimiskeele versioonis spetsiaalses Arduino tarkvaraarenduskeskkonnas nimega SKETCH. Tasub mainida, et tarkvara saab kujundada ja testida ka Tinker CAD-is, seejärel eksportida failina, mida SKETCH loeb, kompileerida ja laadida UNO seadmesse.
  • UNO koos laaditud programmiga saab töötada ilma arvutita ja juhtida ühendatud seadmeid, kui see on iseseisvalt toidetud (soovitatav on 7–12 V alalisvoolutoide või 9V patarei).

A close-up of a computer

Description automatically generated

Joonis 37. Arduino UNO mikrokontroller ja SKETCH programmide arenduskeskkond. Märgata võib, et UNO täidab ainult kahte protseduuri, mis tuleb kujundada: setup() – SBC initsialiseerimine; ja loop() – kordub seni, kuni toide on ühendatud.

A screenshot of a computer

Description automatically generated

Joonis 38. „Circuits“ sektsioon (vasak veerg) Tinker CAD-is

Arduino UNO Tinker CAD-is

Elektroonika ja tarkvara disaini modelleerimine toimub Tinker CADi “Circuitide” sektsiooni (joon. 38) kaudu (varem võidi kasutada “3D disaini” sektsiooni sõrmede osade modelleerimiseks). Tinker CADis on olemas põhjalik näidiste ja disainide raamatukogu õppimiseks.

Tinker Cadi graafiline arenduskeskkond koosneb kahest osast: vasakul on virtuaalne elektroonika ning paremal elektroonikaelementide kogud või programmeerimisredaktor (nagu näha joonisel 39). Viimast saab kasutada kahes alternatiivses režiimis:

  • C programmi redaktor, nagu SKETCH-is – C programmi faili saab eksportida ja laadida päris UNO-le;
  • Graafiline programmeerimiskeskkond “CodeBlocks”, mis on väga sarnane SCRATCH-ile2. CodeBlocks programm konverteeritakse automaatselt C programmiks (vastupidises suunas see ei kehti, seega tuleb olla ettevaatlik, et oma tööd mitte kaotada).

Virtuaalses eksperimendis kasutatakse bionilise käe sõrmede liigutamiseks 5 servo-mootorit, nagu on skeemilisel kujutatud joonisel 39 ja joonisel 40. Mootoreid juhib ja käitab UNO ning liikumise algatamiseks kasutatakse 10 nuppu (5 sõrme x 2 suunda = 2 rida nuppe).

Joonis 40. Virtuaalne eksperiment – 5 servo-mootori (sõrme) liigutamine UNO-ga. Lisaks kasutatakse multimeetreid, et kontrollida voolu nuppude ja servo-mootori kaudu, vältimaks võimalikku ülekoormust

Servo-mootor on digitaalne seade, mis pöörab võlli etteantud asendisse (tavaliselt 0 kuni 180 kraadi). Mootorid (juhtpinnid) tuleb ühendada UNO PWM (Pulse-Width Modulation – pöördenurga määramise viis) märgitud digitaalväljunditega. Kokku on UNO-s 6 sellist (PWM) digitaalväljundit.

Üks nuppude komplekt (nt “Up”) ühendatakse UNO analoogsisenditega, teine komplekt (nt “Down”) UNO digitaalsete sisenditega. Tuleb märkida, et nupu ühendamine analoogsisendiga ja väärtuse lugemine nõuab veidi rohkem pingutust kui digitaalsega.


2 Graafiline programmeerimiskeskkond, mille on loonud MIT.EDU ning mida kasutatakse laialdaselt programmeerimise õpetamiseks koolides https://scratch.mit.edu/

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 

Jätkates edasi

On olemas mõned ettevaatusabinõud, mida tuleks arvestada, kui proovida kokku panna tõelist töötavat riistvaramudelit:

  • Servo mootorid on erineva võimsusega ja võivad vajada erinevaid toiteallika skeeme, kuna UNO plaat ei pruugi pakkuda piisavalt voolu, eriti kui seda toidetakse USB-ühenduse kaudu.
  • Tegelikus elus võib olla kasulik kasutada iga sõrme otsas jõuandurit ning kasutada seda liikumise peatamiseks. Selliseid andureid saab lugeda analoogsisendite kaudu, seega on nuppude jaoks vajalik erinev seadistus (ümberpaigutamine ja lisakomponendid).

Et alustada iseseisvalt…

On olemas kujundus, millega soovitatakse alustada (Tinker CAD-is), mis on esitatud joonisel 42:

  • Lihtsalt võta virtuaalne UNO ja virtuaalne servomootor.
  • Ühenda toiteallikas ja maandus UNO plaadilt vastavatele servomootori klemmidele ning UNO PWM-väljund servomootori “Signaali” klemmile.  Loo programm, mis pöörab servomootorit mingisse asendisse ja tagasi.

Joonis 42. Esimese simulatsiooni soovituslik skeem

AR-põhised liikumissimulatsioonid

Enne koodi üleslaadimist füüsilistesse mikrokontrolleritesse saavad õpilased kasutada liitreaalsust (AR), et simuleerida sõrmede liikumist virtuaalselt. See tagab, et programmeeritud liigutused on täpsed, ning vähendab mehhaaniliste vigade või komponentide kahjustamise riski reaalses testimises.