Štitovi Arduina (8) Arduino je uz pomoć servo motora u stanju da pomera ozbiljne stvari. Nije mali broj primera na internetu gde maleni Uno pokreće razne mehaničke poluge, pa čak i čitave kompleksne robote. Da bismo upravljali servo motorima, neophodni su PWM (pulse with modulation) pinovi, ali Uno ih ima samo šest, pa je za više motora potrebno više pinova. Isti slučaj je ako uz PWM želimo da koristimo gomilu LE dioda. U tu svrhu je zgodan PCA9685, 16-kanalni, 12-bitni PWM/Servo šild. Ovaj šild sa Arduinom ostvaruje komunikaciju putem I2C, a dodavanjem čak do 62 šilda jedan na drugi moguće je imati 992 PWM izlaza. Kada kažemo 16-kanalni to znači da ima 16 kanala (hedera, izlaza) na koje možemo povezati 16 servo motora ili LED, a 12-bitni znači da šild radi u 12-bitnoj rezoluciji, što znači da se komunikacija ostvaruje na 60 herca.Šild koji ćemo vam predstaviti je kopija Adafruit šilda, što je veoma zgodno zbog biblioteka i primera. Za povezivanje, osim naponskih hedera (opciono), šild koristi samo I2C (SDA i SCL) hedere, odnosno A4 i A5. Ukoliko će se koristiti, recimo, Mega, najbolje je šild koristiti kao breakout ploču i I2C pinove povezati žicama ili preseći vodove na samom šildu i I2C prespojiti žicama. Šild je oblika Una i ima prolazne hedere. Odmah do analogne i naponske sekcije nalaze se i četiri grupe od po četiri seta hedera (GND, V+ i PWM) za konekciju sa PWM uređajima. Do same naponske sekcije nalazi se VCC select grupa džampera, gde u zavisnosti od ploče ispod spajamo odgovarajuće tačke (5V i 3,3V). Šild se, osim na ovaj način, može napajati i preko terminala naponima od pet do šest volti. Ukoliko će se šild koristiti za pokretanje servo motora, apsolutni je imperativ napajati šild eksterno preko terminala sa ozbiljnim napajanjem. Čak i najmanji servo motori povuku nekoliko stotina miliampera, pa je preporuka da za četiri servo motora napajanje bude dva ampera, a za svih 16 čak 10 ampera. Reset taster i dve LED nalaze se odmah do terminala. Veoma zanimljivi su i I2C adresni džamperi. Naime, s obzirom na broj eventualnih šildova koji se mogu postaviti jedan na drugi, potrebno je svakom dodeliti drugu I2C adresu, što se radi spajanjem odgovarajućih tačaka, koje su jasno označene. Šild po definiciji ima 0x40 I2C adresu, a ako spojimo A0 i A1, dobićemo 0x43 (00011 binarno). Takođe, odmah do naponskog regulatora nalazi se mesto za dodavanje kondenzatora, u zavisnosti od projektovanog broja servo motora po jednačini n*100uF, gde je n broj motora. Prevedeno, za deset motora treba nam kondenzator od 1000 mikrofarada. Kondenzator nije neophodan, ali svakako ga treba dodati, ako se koristi više motora. Ukoliko će se šild koristiti za LED, tu su otpornici od po 220 oma za svaki izlaz, tako da je i to jedna briga manje. Desni deo šilda se može koristiti kao proto ploča.Za ovaj šild se može koristiti Adafruit biblioteka, koju možete preuzeti sa ove adrese goo.gl/n1qi1A. U sklopu biblioteke su GPIO i PWM testovi, kao i primer za servo motore. Za DC i steper motore je potreban drugi šild, a mi ćemo vam predstaviti L293D, koji je opet kopija Adafruit V1.0 motor šilda. Ovaj šild se često upotrebljava kod malenih „avoid obstacles” robota. Razlog tome je što je jeftin, dosta tutorijala je na mreži i dozvoljava upravljanje servo, DC i steper motorima. Ovaj šild, za razliku od šilda PCA9685, ima samo dva PWM kanala za povezivanje servo motora, što je za pomenute robote sasvim dovoljno, a kanali su povezani na PWM digitalne pinove 9 i 10. Pomenuti roboti se mogu kretati na dva ili četiri točka, tako da ovde imamo mogućnost upravljanja sa do četiri DC motora dvosmerno u 8-bitnoj selekciji brzine. DC motori se povezuju preko terminala, a tu se nalazi i reset taster Arduina. Nasuprot DC terminalima su terminali za povezivanje do dva steper motora u raznim varijantama. I ovaj šild ima terminale za eksterno napajanje (EXT_PWR), a za selekciju izvora napajanja ne treba ništa lemiti, dovoljno je izvaditi PWR džamper. Tada će se razdvojiti strujna kola Arduina i šilda. Prilikom povezivanja eksternog napajanja treba obratiti pažnju na povezivanje jer šild u ovom slučaju nema nikakvu zaštitu. Preko eksternog napajanja mogu se koristiti motori od 4,5 volti do 36 volti. Šild ipak nije u stanju da odjednom pokrene sve ove motore. Ako će se koristiti sva četiri DC motora, onda ne može steper i obrnuto ili mogu jedan steper i do dva DC motora. Servo motori ne prave problem jer se njima zapravo upravlja sa samog Arduina preko pomenutih pinova i napajaju se sa pet volti, a ne putem DC napajanja. S druge strane, ako će se koristiti jači servo motori, potrebno je preseći 5V vod i premostiti ga direktno na napajanje šilda.Šild ne koristi analogne pinove, a ostavljeni su otvori za lemljenje koji su povezani sa pinovima. Isto važi i za naponsku sekciju, dok je kod digitalnih pinova to jedino moguće sa pinom 2, koji je uz pin 13 slobodan za dalje korišćenje. Na sredini se nalaze tri DIP soketa sa čipovima gde su dva L293D Dual H-bridge čipa, koji po mostu obezbeđuju 0,6 ampera (1,2 ampera peak), a treći, srednji je 74HC595N (latch – parallel), preko koga DC i steper motori komuniciraju sa Arduinom. Nije moguća direktna komunikacija Arduina i DC i/ili steper motora. Ako šild ima odgovarajuće napajanje, postojeća LED će sijati i motori će moći da se pokrenu. Tu je i niz otpornika koji je zadužen za pull-down L293D čipova da se motori ne bi pokrenuli odmah po napajanju strujom, već nakon što se Arduino butuje i dok im skeč to ne naredi. Na mreži se mogu naći primeri gde se u DIP sokete umesto L293D čipova ubadaju SN754410 da bi se dobilo više struje po motoru, ali ovo nije preporučljivo jer nemaju ugrađene povratne diode, iako će šild i sa njima raditi. Dalje, ukoliko će motori trošiti više od jednog ampera, poželjno je postaviti hladnjake preko čipova jer može doći do pregorevanja. Za povećanje snage se može postaviti još po jedan set L293D preko postojećih i zalemiti im nogice na čipove ispod.  | I za ovaj šild preuzimamo Adafruit biblioteku sa adrese goo.gl/NMrRyD. Servo motore pokrećemo sa servo.attach (9 ili 10) u zavisnosti od toga na koji red servo hedera smo priključili motore. Obično je oranž na troredom hederu S linija. Steper motori su malo komplikovaniji i naš unipolarni steper 288BYJ-48 smo povezali na donje terminale sledećim redom: roze i oranž idu na M3, crvena je zajednička i ide na srednji terminal, dok plava i žuta idu na M4. DC motore smo povezali na M1 i M2 terminale. Koristimo MotorParty u okviru Adafruit biblioteke, uz malo modifikacije, i zabava može da počne.Dejan PETROVIĆ | | |