VIDI Project X #97: Upravljanje servo motorom - 5.0 out of 5 based on 1 vote
VIDI Project X #97: Upravljanje servo motorom

VIDI Project X #97: Upravljanje servo motorom

Kako VIDI PROJECT X iskoristiti za stop - motion animaciju

Senzori i aktuatori kompatibilni s Arduinom mogu se koristiti i s VIDI Project X-om.

Project X Stop Motion 1

Mnoštvo aktuatora i senzora za mikrokontrolere postoji na tržištu, a dobar dio smo već obradili u Vidi radionicama koristeći Arduino. Arduino ima napajanje od 5 V i senzori personalizirani za njega izravno se ne mogu koristiti s Project X pločicom, tj. s ESP32. Logički pretvarači napona (Logic voltage converter) uvelike olakšavaju stvar jer pretvaraju naponske razine 5 i 3.3 V te je uz pomoć njih moguće spojiti većinu senzora na ESP32 iako su primjereni za 5 V, naravno, napajanje im mora biti izvedeno eksterno te zadovoljavati nazivne podatke (baterijsko). Glavni aktuator u radionicama je servo motor SG90. Servo je vrlo korisna stvar, a predstavlja maleni elektromotor s reduktorom koji uz pomoć enkodera prati položaj izlaznog vratila. Reduktor je set zupčanika pomoću kojih se reducira brzina vrtnje, ali povećava moment uz konstantnu snagu. Enkoder je uređaj pomoću kojeg je moguće pratiti poziciju rotora ili pak mjeriti njegovu brzinu.

Project X Stop Motion 2

U slučaju SG90 motora, enkoder mjeri poziciju, a izveden je uz pomoć promjenjivog otpornika rotacijske putanje. (0-270° hod rotora predstavlja tipičnu putanju rotacijskih trimera). SG90 servo motor izrađen je od strane Tower Pro tvrtke te ima nazivne podatke prikazane u Tablici 1:

SG90

Masa 9g
Dimenzije  23x12.2x29 mm
Moment 1.6 kg/cm 
Napon  4.8 V 
Brzina  0.1 s/60° 

Servo motori se prodaju u nekoliko kategorija po karakteristikama, tako je moguće pronaći servo motore malih masa (9 grama), s plastičnim ili metalnim (čak i titanskim) zupčanicima, velike brzine, velikog kuta rotacije ili kontinuirane rotacije (360°) i velikog zakretnog momenta. Servači imaju nazubljeno vratilo s rupom u sredini za mogućnost pričvršćivanja raznih nastavaka po željama korisnika. Nazubljeno vratilo sprječava proklizavanje tereta s vratila, a vijak pouzdanost spoja. Kod snažnijih motora s velikim zakretnim momentom govorimo o brojkama koje premašuju 32 kg/cm i tu počinje priča o konkretnoj primjeni servo motora u funkcionalnim modelima (robotske ruke, zakretanje ventila, itd).

Projekt X Ivor 3

Projekt X Ivor 6

Primjer:

U konkretnom primjeru, prikazat ćemo korištenje SG90 Tower Pro servo motora uz pomoć Project X pločice kako bi simulirali izlaženje i zalaženje sunca. Biblioteka SG90 servača razlikuje se za ESP32 u usporedbi s onim za Arduino te je potrebno ubaciti novu biblioteku (ukoliko ju korisnik nema). Biblioteka će se nalaziti na Github stranici Vidija. Tipkama A i B korisnik može podešavati vrijednost kuta rotora (u ovom slučaju Sunca) u rasponu +/- 5° po kliku. Servo je spojen na napajanje od 3.3 V, da, jedan servo se može napajati s tim naponom kako bi funkcionirao bez tereta na vratilu, ali pločica ne može isporučiti dovoljno struje za 2 ili više servo motora, stoga je potrebno napajati s vanjskim napajanjem što može uključivati i bateriju. Gibanje sunca se vrši u rasponu 0-180° kako bi simulirali putanju od jedne do druge strane horizonta tokom dana. U krajnjim pozicijama (0° i 180°) svijetli LED-ica STAT na pločici.

 

Fizičke tipka A i B s pločice deklariraju se kao INPUT_PULLUP te daju logičku nulu dok su pritisnute (HIGH signal na digitalnom ulazu dok nisu pritisnute, a LOW dok su pritisnute, ne stvara komplikacije, dovoljno je negirati uvjete s uskličnikom „!“). Varijable je moguće povećavati ili smanjivati za neku vrijednost naredbom varijabla+=5; / varijabla-=5; to je ekvivalentno naredbi varijabla = varijabla + 5; / varijabla = varijabla - 5; Biblioteka za zaslon se također može pronaći na Github stranici Vidija kao i svi kodovi priloženi u tekstu. Ekran je ugrađen na pločici i ne zahtijeva nikakvo uključivanje, samo softversko upravljanje. Moguće je mijenjati orijentacije ekrana što znači da može raditi vodoravno i okomito te zrcaljeno u svakom načinu što daje četiri orijentacije. Kada se Project X pločica drži u rukama, tada je prikladna orijentacija 3. Također ekran je u boji što nudi mogućnost ispisivanja poruka u raznim bojama, veličinama, pozicijama i razmacima. serCursor(X,Y) omogućava pozicioniranje pokazivača (cursor) u željenu poziciju kako bi korisnik mogao ispisati poruku na određenom dijelu ekrana. Ulazne vrijednosti X i Y predstavljaju broj stupca i retka zaslona. U orijentaciji 3, ekran je širok te X može poprimati vrijednosti 0-319, a Y 0-230. Tj. rezolucija ekrana iznosi 320x240 pixela.

 

Stop motion animaciju fotografirali smo mobitelom, a za svaku fotografiju smo pomaknuli poziciju servo motora za 5° te pojačali rasvjetu scene kako bismo simulirali izlazak i zalazak Sunca. Da smo još imali i figurice vikinga koje su sposobne pomicati ruke i noge, stvorili bismo još realniji doživljaj animacije:

slika 1

 

TIPKAMA A i B pomičemo poziciju servo motora za 5 strupnjeva, kako je programski definirano, a na ekranu možemo kontrolirati poziciju servo motora:

Project X Stop Motion 1

 

 Servo library najbolje je instalirati iz Arduino IDE sučelja:

servo lib

Vidi X mikroračunalo pokazalo se idealnim za kreiranje projekata koji osim aktuatora tj. servo motora u ovom primjeru, koriste i tipkala kao ulaznu jedinicu te zaslon kao izlaznu jedinicu.
Zaslon smo iskoristili za prikazivanje trenutne pozicije servo motora, dok tipkama možemo povećati ili smanjiti vrijednost kuta tj. pozicije u koju želimo postaviti servo motor. Takav princip iskoristili smo za kretanje Sunca kroz našu scenu kojoj je krajnji cilj stop-motion animacija.
Za one koji možda ne znaju, stop-motion animacija je metoda kreiranja animacije sličicu po sličicu pri ćemo odredimo trajanje neke scene te izračunamo broj sličica koji su nam potrebni za kreiranje scene, a zatim postavljamo objekte unutar scene te snimimo fotografiju. Zatim se objekti minimalno pomaknu nakon čega opet snimimo fotografiju. Taj postupak ponavljamo dok ne snimimo dovoljan broj fotografija za kreiranje jedne video sekvence. Za sekvencu od 10 sekundi trebalo bi nam 250 fotografija ukoliko video kreiramo s 25 fotografija u sekundi. No često se pri kreiranju stop-motion animacije odabire manji broj sličica u sekundi, ili zbog raznih razloga kao što su jednostavnost izvedbe, dojam koji umjetnik želi postići ili zbog nekih drugih razloga poznatih autorima animacije. S obzirom da nismo stručnjaci za stop-motion animaciju, naša kreacija nije slijedila pravilo 25 fotografija za kreiranje jedne sekunde jer nam je cilj demonstrirati nam kako vrlo jednostavno možete uz pomoć Vidi X-a, dobiti instrument koji će vam olakšati izradu vaših stop-motion animacija. Za pokazivanje ovog primjera dobili smo ideju jer se učenici 3. razreda nekih osnovnih škola, na satovima likovne kulture, već susreću s kreiranjima projekata koristeći stop-motion animaciju, a i brojne trgovine i kiosci u ponudi imaju Stikbot igračke za kreiranje stop-motion animacije. No zašto jednostavno ne biste nekoliko malenih servo motora iskoristiti za promjenu vaše scene. Ukoliko ne stignete u jednom danu snimiti kompletan projekt koji ste imali na umu, drugi dan možete vrlo jednostavno nastaviti sa snimanjem, a s obzirom na to da na zaslonu Vidi X-a imate ispisane vrijednosti pozicija u kojim se nalazi servo motor.

 

Kompletan kod pronađite na poveznici https://github.com/VidiLAB-com/Vidi-X/tree/master/Servo_tipke_AiB

 

Spajanje Servo motora, kao na slici, na pin 13 ne zahtijeva pomicanje mikroprekidača kako bi pin 13 postao aktivan na expander slotu nego je pin 13 aktivan uvijek.

PIN 13 je signalni pin koji kontrolira kut na kojem se servo motor treba zaustaviti. Njegova žica najčešće je u narančastoj boji. Na crvenu žicu servo motora spajamo +5 V dok na smeđu spajamo GND.

Servo-radionica-1.jpg

 

 

Ocijeni sadržaj
(1 Glasaj)

// možda će vas zanimati

Newsletter prijava


Kako izgleda naš posljednji newsletter pogledajte na ovom linku.

Copyright © by: VIDI-TO d.o.o. Sva prava pridržana.