IULIE, 2014 NR. 3 VOL. 2 PREţ: 10 LEI
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Sumar
DESIGN HOBBY 4 Freescale Cup, Erlangen, 2014 8 Little Ecu Simulator Lesy
Necesitatea realizării acestui proiect a apărut din dorinţa de a testa diferite interfeţe şi software compatibile OBD2 înainte de a fi cuplate pe un autoturism care poseda un ECU cu protocol KWP2000.
Revista Electronica Azi Hobby poate fi cumpărată de la partenerii noştri: Direct de la magazinele:
11 myParts Kit de la Texas Instruments O selecţie de piese din portofoliul de componente analogice TI. Studenții și hobbyștii pot rapid să construiască și să verifice circuite electronice esențiale folosind myParts Kit de la Texas Instruments!
12 Sushi, Akebono şi Slim - Roboții de Mini Sumo Competițiile de robotică încep să câștige tot mai mult teren şi în țara noastră, stârnind interesul tinerilor, studenților şi chiar elevilor de liceu. Există mai multe categorii la care pot participa: Line Follower, Micro Sumo, Mini Sumo, Mega Sumo, Fotbal Robotic şi multe altele, dar noi ne vom concentra atenția în cele ce urmează asupra categoriei Mini Sumo.
CONEX ELECTRONIC - Bucureşti Str. Maica Domnului nr. 48, Sector 2 Tel.: 021-242.22.06 office@conexelectronic.ro vinzari@conexelectronic.ro www.conexelectronic.ro
17 Imprimanta 3D K8200 Velleman V-aţi dorit vreodată să vă creaţi propriile produse? Aţi visat ca o creaţie virtuală 3D să devină produs adevărat? Acum aveţi această posibilitate cu ajutorul imprimantei 3D K8200 Velleman.
18 Red Pitaya - instrumentul de măsurare open-source 20 BeagleBone Black vs Raspberry Pi În lumea amatorilor de proiecte electronice, atunci când este vorba de Sisteme Embedded, primează două platforme: BeagleBone Black şi Raspberry Pi. Apare, însă, întrebarea: care sistem este mai bun?
Sau online de la: O’BOYLE - Timişoara Tel. +40 256-201346 office@oboyle.ro www.oboyle.ro
23 Wolf - De la desen, la realitate Aș dori să încep acest articol cu o scurtă prezentare a sportului de “Sumo Robotic”, de data aceasta din perspectiva constructorului de roboți, și nu prin ochii spectatorului.
Câştigaţi cu Electronica Azi Hobby
28 Raspberry Pi pentru electronică şi automatizări 30 Robot specializat pentru competiții de MiniSumo - Blackbox Domeniul roboticii și al sistemelor embedded devine din ce în ce mai popular în rândul studenților din ziua de astăzi. Pe lângă proiectele făcute pentru a ocupa timpul liber există și competiții specializate unde stundenții își pot măsura capacitățile de construire a roboților. Astăzi vă vom prezenta pe scurt ce se află în spatele construcției unui robot de MiniSumo pentru competițiile de nivel înalt.
34 Programarea robotului RAPIRO folosind Wyliodrin Imaginează-ţi cum ar fi să îți creezi propriul robot: să îl faci să meargă, să-şi mişte mâinile, să-şi rotească capul sau să-şi schimbe culoarea ochilor, totul folosind browser-ul preferat şi o plăcuţă Rasberry Pi. Acum acest lucru este posibil, folosind robotul RAPIRO şi Wyliodrin.
Trimiteţi la redacţie proiectul unei aplicaţii practice şi aveţi şansa de a câştiga un sistem de evaluare şi dezvoltare “ENERGY-HARVEST-RD” de la Silicon Labs.
Colaboratori la această ediţie: Revista Electronica Azi - HOBBY apare de 6 ori pe an.
Management Director General - Ionela Ganea Director Editorial - Gabriel Neagu Director Economic - Ioana Paraschiv Publicitate - Irina Ganea
Revista este publicată numai în format tipărit.
Redacţie:
2014© Toate drepturile rezervate.
office@electronica-azi.ro www.electronica-azi.ro
Preţul revistei este de 10 Lei. Preţul unui abonament pe 1 an (6 apariţii Hobby + 10 apariţii Electronica Azi) este de 100 Lei.
Ing. Emil Floroiu - emilfloroiu@gmail.com Ing. Daniel Rosner - daniel.rosner@cs.pub.ro Asis. Drd. Ing. Răzvan Tătăroiu - razvan.tataroiu@cs.pub.ro Asis. Dr. Ing. Alexandru Radovici - msg4alex@gmail.com Șl. Dr. Ing. Dan Tudose - dan.tudose@cs.pub.ro Sorin Purluca - gl_02_lpp@yahoo.com Alexandru-Viorel Pălăcean - palacean_alexandru@yahoo.com Răzvan Soare - soare.razvan94@yahoo.com Răzvan Mazilu - razvanc.mazilu@gmail.com
EURO STANDARD PRESS 2000 srl Tel.: +40 (0) 31 8059955 Mobil: 0722 707-254 office@esp2000.ro www.esp2000.ro
O parte din articolele prezentate în această ediţie au fost realizate de către tinerii pasionaţi din cadrul laboratoarelor:
Alexandru Aungurencei - alex.aungurencei@gmail.com Flavius Tîrnăcop - flavius.tirnacop@yahoo.com Irina Goșu - irina.gosu@gmail.com Alexandru Alistar - alistar_alex@yahoo.com
CUI: RO3998003 J03/1371/1993 Tiparul executat la Tipografia Everest
2
Teodor Roşca - teodor.rosca@epfl.ch
ROBOLAB - wonderbots.cs.pub.ro
Tătaru Miruna - tataru.miruna@yahoo.com Ioana Culic - ioana.culic@wyliodrin.com
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Reportaj realizat de Gabriel Neagu
Maşinile sunt gata pentru concurs
Fraunhofer IIS 4
Revista noastră a prezentat multe competiţii locale având ca temă concursuri între roboţi, competiţii organizate de obicei de facultăţile de profil electric din Bucureşti sau din ţară. În acest număr vă voi prezenta un concurs internaţional organizat de această dată de unul dintre cei mai mari şi importanţi producători de componente electronice din lume - Freescale Semiconductor. Nu cred că trebuie să dau prea multe detalii despre portofoliul impresionant de produse al acestei companii deoarece sunt sigur că foarte mulţi profesionişti (sau chiar simpli pasionaţi de electronică) folosesc deja microcontrolerele sau microprocesoarele sau senzorii Freescale, asta ca să amintesc doar câteva din gama largă de produse create de Freescale Semiconductor. La sfârşitul lunii Aprilie am fost invitat de către Freescale Semiconductor să particip la finala (Europeană) a concursului “Freescale Cup 2014”, competiţie care a avut loc în acest an la Erlangen, Germania, gazda finalei fiind institutul de cercetări în domeniul circuitelor integrate Fraunhofer IIS. O descriere amănunţită a tuturor serviciilor oferite de acest institut o puteţi găsi la adresa web: www.iis.fraunhofer.de Freescale Cup, sponsorizată de Freescale Semiconductor, este o competiţie globală în care echipe de studenţi din Europa construiesc şi programează maşini de curse inteligente cu care participă apoi la concursuri de viteză pe trasee special amenajate de către organizator. Maşinile concurenţilor trebuie să parcurgă, pe rând, tot traseul. Acestea sunt autonome, trebuie să treacă de toate şicanele întâlnite pe traseu (curbe strânse, intersecţii, denivelări, traseu în pantă) nu trebuie sub nicio formă să iasă de pe traseul impus şi bineînţeles, trebuie să obţină un timp cât mai bun. Cea mai rapidă maşină care a reuşit să treacă linia de final fără niciun incident câştigă cursa. Mai trebuie menţionat faptul că fiecare echipă are dreptul la 3 încercări de finalizare a traseului. În cazul în care (din diverse motive tehnice sau de programare) maşina nu poate parcurge tot traseul, echipa respectivă este descalificată. Toate maşinile aflate în concurs au partea electronică dezvoltată pe baza microcontrolerelor produse de Freescale Semiconductor. De asemenea, regulile concursului impun folosirea aceleiaşi mecanici şasiu, motoare - şi baterii similare. Anul acesta au participat 75 de studenţi din 25 de echipe reprezentând universități din 11 țări Europene. La acest concurs au participat şi patru echipe din România după cum urmează: • Echipa Bolt - Universitatea Tehnică din Iaşi (Ionel Aungurencei, Radu-Ionel Rusu, Valentin Mihalcuţ, Alexandru Păduraru) • Echipa MIKA - Institutul Politehnic Bucureşti (Valeriu Balaban, Tudor Voicu, Remus Popescu, Sorina Lupu) • Echipa EMMA - Universitatea din Craiova (Marius Dan Anghel, Eugen Marian Dan, Mădalin Mamuleanu, Andrei-Alexandru Bădescu) • Echipa AIA - Universitatea Transilvania din Braşov (Ionuţ Răcaru, Alexandru Tabalai, Daniel Ştefancu, Cătălin Laurenţiu Cristoiu). Ü
FREESCALE CUP 2014
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Concurenţii se antrenează pe trei trasee mai mici care conţine diverse obstacole. În ziua concursului, traseul va fi diferit, dar va conţine toate elementele care vor face până la urmă, diferenţa dintre echipe...
Echipa Bolt - Universitatea Tehnică din Iaşi Ionel Aungurencei, Radu-Ionel Rusu, Valentin Mihalcuţ, Alexandru Păduraru Două zile de teste (traseu + laborator) 5
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Ü
Aşa cum vă spuneam, traseul plin de şicane, întins pe o suprafaţă de 180 m2 a produs multe “victime”, care nu au putut să termine cursa, dar trebuie apreciaţi toţi studenţii în egală măsură pentru efortul lor depus timp de șase luni pentru a asambla, programa și testa vehiculele lor. Trebuie menţionat faptul că, în comparaţie cu concursurile din România unde fiecare student (sau echipă) poate să-şi construiască propriul robot ţinând cont
bineînţeles de anumite cerinţe impuse de organizatori (gabarit, greutate etc.) la concursul organizat de Freescale, fiecare echipă primeşte o maşină complet echipată d.p.d.v. mecanic, sarcina cea mai importantă care revine fiecărei echipe este să realizeze hardware-ul şi software-ul pe baza cărora maşina Freescale este pusă în mişcare şi este capabilă să depăşească toate şicanele care apar pe traseu. Mai mult, 1 zi şi jumătate (din cele 2 zile
alocate finalei din Germania) au fost destinate zecilor de ore de laborator pentru ultimele teste şi reglaje înainte de începerea concursului. În aceste ore, studenţii trebuiau să rezolve toate detaliile privind viteza maşinii, momentele de accelerare și de frânare pe o anumită distanță pentru a putea evita obstacolele. Nu este o competiţie uşoară, iar pe de altă parte rigorile şi cerinţele sunt din ce în ce mai mari. Un singur exemplu vă dau: Flavio Stiffan (responsabilul cu activităţile universitare din cadrul companiei) îmi spunea că pentru Flavio Stiffan anul viitor, una din cerinţele tehnice impuse participanţilor va fi de realizare a unui sistem de recuperare a energiei de către maşinile aflate în concurs. Echipa Fei-minetors de la Universitatea de Tehnologie din Bratislava - Slovacia a câștigat competiția, fiind urmată de echipa Politecnico din Torino și de echipa KNE Fideltronic de la Universitatea de Știință și Tehnologie AGH Cracovia. Primele 2 echipe au fost invitate să participe la “Finala Mare” Freescale Cup, care va avea loc la Universitatea Hanyang, Seoul, Coreea de Sud în perioada 29 - 30 august 2014. La această finală - Freescale Cup Worldwide finaliști din toate continentele se vor “bate” cu cei mai buni studenţi din Asia.
Şicane pe traseu
Şicane pe traseu Traseul întins pe o suprafaţă de 180 m2 este gata pentru concurs! După cum se poate vedea, traseul este diferit faţă de traseele pe care s-au antrenat concurenţii în cele două zile de pregătire. Totul este filmat şi redat pe un ecran mare, unde sunt afişaţi şi timpii intermediari şi clasamentul pe echipe. 6
Înainte să închei, vreau să felicit toate echipele româneşti şi în special echipa Bolt de la Universitatea Tehnică din Iaşi care, nu numai că a reuşit să termine cursa, dar a condus “ostilităţile” până aproape de finalul competiţiei! n
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Little Ecu Simulator
Lesy Necesitatea realizării acestui proiect a apărut din dorinţa de a testa diferite interfeţe şi software compatibile OBD2 înainte de a fi cuplate pe un autoturism care poseda un ECU cu protocol KWP2000. Acest proiect a fost realizat cu mulţi ani în urmă (2009), dar din diverse motive a rămas “sechestrat” într-un sertar. Simulatorul nu este o “sculă” profesională ci doar un banal experiment reuşit pentru care am folosit informaţii “free” de pe diverse forumuri. De altfel, o simplă căutare pe Google despre “KWP2000” este deajuns pentru a obţine informaţiile necesare. Autor: Sorin Purluca - gl_02_lpp@yahoo.com Nu voi insista în acest articol asupra protocolui KWP2000 şi nici asupra sarcinii unui “ECU” pe autoturismele din ziua de azi. De ce “Little”? Pentru că acest simulator nu are implementate decât câteva din funcţiile unui ECU adevărat.
8
Lesy suportă (în această versiune): l Protocolul ISO14230 cu conectare FAST INIT; l Adresare fizică (0×11) şi funcţională (0×33); l Modurile 1,3 şi 4; l În modul 1 suportă Pid-urile:
l l
0×05 – temperatură motor; 0×0C – RPM motor; 0×11 – poziţie pedală acceleraţie; 0×1C – tip OBD;
În modul 3 citirea alarmelor (DTC); În modul 4 ştergerea alarmelor (DTC);
ECU SIMULATOR
Simulatorul este realizat cu ajutorul unui microcontroler Microchip PIC16f876a care funcţionează la frecvenţa de 20Mhz. Schema electronică şi circuitul imprimat al simulatorului au fost realizate utilizând o versiune free a CadSoft Eagle PCB. Aplicaţia pentru microcontroler a fost scrisă în limbajul de programare C utilizând varianta demo (45 zile) a compilatorului “CCS C”. Scrierea programului în microcontroler se poate efectua utilizând programatorul Pickit2. PRINCIPIUL DE FUNCŢIONARE Cu ajutorul a 3 potenţiometre şi folosind 3 intrări analogice pe 10 biţi (AN0, AN1 şi AN2) ale microcontrolerului PIC16f876a sunt simulate poziţia pedalei de acceleraţie, temperatura şi RPM motor. Prin apăsarea push-button–ului S1, intrarea RC4 va fi conectată la GND, iar microcontrolerul va genera un cod de eroare şi anume P0001. Eroarea va fi semnalizată prin aprinderea LED-ului MIL. Citirea codurilor de eroare se va face cu comanda 0×03. Anularea erorii se va face cu comanda 0×04 şi se va stinge şi LED-ul MIL dacă intrarea RC4 a fost deconectată de la GND. Tranzistorul T1 va realiza conversia de nivel de la 5V din microcontroler la 12V pentru
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
K-line (montajul fiind de tip invers, ieşirea RC0 din microcontroler este şi ea inversată). Cu IC3 (comparator LM393) s-a realizat conversia de nivel de la 12V (K-line şi L-line) la 5V necesară pentru microcontroler. Cele 5 LED-uri afişează diverse stări şi evenimente ale ECU astfel: l l
ECU Running – la alimentarea montajului LED-ul 1 este setat 1; ECU WAKE UP – iniţial LED-ul 2 este stins pentru că nu este iniţializată o conexiune cu un tester. Atunci când testerul va efectua o comandă de FAST INIT, LED-ul 2 va fi setat 1;
l
l l
ECU TX/RX – LED-ul 3 va semnaliza transmisia de date (10400 bps) dintre ECU şi tester; MIL LAMP – LED-ul 4 va semnaliza apariţia unui DTC; FW UPDATE.
SCENARII DE TESTARE Pentru conectarea la simulator am utilizat interfeţele ELM323 (conexiune serială) şi ELM327 (conexiune prin Bluetooth). Pentru ambele interfeţe, în procesul de testare, se poate folosi versiunea demo a aplicaţiei ScanMaster-ELM dar şi banalul Hyperterm. Ü
9
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Ü
Cu Hyperterm s-a verificat dacă ECU răspunde la interogări şi au fost testate comenzile: l 0100 – pid-uri suportate; l 0105 – temperatură motor; l 010C – turaţie motor; l 0111 – poziţie pedală de acceleraţie; l 011C – tip OBD; l 0101 - stare DTC; l 03 - coduri de eroare. Acest lucru este exemplificat mai jos:
După aceste verificări, am utilizat Scanmaster - ELM Demo pentru conectare la ECU cu interfaţa ELM323. Dacă acest articol va indus plăcerea de a simula un “ECU” pe birou, puteţi trece la realizarea practică a acestui experiment. Majoritatea componentelor necesare acestui proiect au fost achiziţionate de la TME.ro. Documentul .xls cu materialele necesare şi link-urile aferente fiecărei componente sunt disponibile la redacţia revistei Electronica Azi (office@electronica-azi.ro). La cerere, puteţi primi programul pentru microcontroler în format .hex, schema electronică în format .pdf şi Eagle. Pentru eventuale sugestii sau alte probleme de natură tehnică privind proiectul descris aici, puteţi contacta redacţia revistei Electrinica Azi Hobby sau direct pe autorul articolului n
Verificarea pid-urilor suportate şi valorile acestora:
10
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Digilent Inc. în Romania ECAS ELECTRO este distribuitor autorizat al produselor Digilent Inc. Pentru a oferi sprijin în mediul universitar studenților și profesorilor, dar și tuturor specialiștilor și celor care au ca hobby electronica, automatica și robotica - ECAS ELECTRO poate livra orice produs de la Digilent Inc. la PREȚURI SPECIALE.
myParts Kit de la Texas Instruments O selecţie de piese din portofoliul de componente analogice TI. Studenții și hobbyștii pot rapid să construiască și să verifice circuite electronice esențiale folosind myParts Kit de la Texas Instruments! Setul de componente cheie din myParts Kit încurajează experimente proprii cu scheme de circuite de bază, contribuind la învățarea productivă și plăcută pentru începători și cei avansați deopotrivă. Pasionații și dezvoltatorii independenți vor găsi util acest Kit, pentru investigarea conceptelor de design electronic. Kit-ul conține o colecție de piese care sunt elementele constitutive ale tuturor aparatelor electronice, inclusiv amplificatoare operaționale, un amplificator de instrumentație, un comparator, regulatoare de tensiune, regulatoare pentru surse de alimentare cu comutare, porți logice digitale, timere, convertoare de date, senzori de temperatură, tranzistoare, rezistoare, condensatoare, LED-uri, switch-uri, un kit de cabluri și altele. myParts Kit permite studenților să facă experimentele care îi ajută să înțeleagă aplicații din viața reală, în domenii cum ar fi gestionarea energiei, amplificare audio, motoare, detectare de lumină, condiționarea semnalelor, achiziție de date și telecomunicații, pentru a numi doar câteva. Proiectele care pot fi construite cu kit-ul includ: • amplificatoare inversoare și ne-inversoare • filtre • repetoare de tensiune • regulatoare • condiționare de semnale • generatoare de semnal cu puls modulat (PWM) • integratoare • diferențiatoare • detectoare de lumină • convertoare de date ... și multe altele Kit-ul este o mare completare la produsul myDAQ National Instruments și instrumentele ELVIS, precum și la Digilent Electronics Explorer Board, pentru învățarea prin efort propriu. Se poate utiliza software-ul de simulare, care este deja disponibil, pentru a simula rezultatele înainte de construirea circuitelor. În plus, în cazul în care se utilizează National Instruments Multisim, aveți capacitatea de a folosi multe dintre aceste dispozitive TI, într-un proiect. myParts Kit poate ajuta utilizatorii să lanseze imediat proiecte avansate, de specialitate, în domeniul energiei regenerabile, bio-medicale, robotică și automatizare, pentru a numi doar câteva aplicații. Pentru aceste sisteme, studenții și hobbyștii pot apela la portofoliul larg de dispozitive semiconductoare oferite de TI, inclusiv microcontrolere, procesoare, soluții de conectivitate wireless, de gestionare a energiei, conversie de date, amplificatoare și logică. Multe dintre dispozitivele analogice sunt sprijinite de kit-uri educaționale disponibile prin Programul universitar TI, cum ar fi Analog System Lab Kit PRO, care vă ajută să înțelegeți blocurile analogice esențiale ale unui sistem electronic.
Digilent Inc. este o filială a National Instruments Corporation www.digilentinc.com
www.ecas.ro
Detalii tehnice: ing. Emil Floroiu emil.floroiu@ecas.ro 11
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Sushi, Akebono şi Slim
Competițiile de robotică încep să câștige tot mai mult teren şi în țara noastră, stârnind interesul tinerilor, studenților şi chiar elevilor de liceu. Există mai multe categorii la care pot participa: Line Follower, Micro Sumo, Mini Sumo, Mega Sumo, Fotbal Robotic şi multe altele, dar noi ne vom concentra atenția în cele ce urmează asupra categoriei Mini Sumo. Acești roboți sunt destul de ușor de construit, iar piesele sunt accesibile ca preț.
Roboții de Mini Sumo Autori: Alexandru-Viorel Pălăcean - (Facultatea de Automatică și Calculatoare, UPB) - palacean_alexandru@yahoo.com Răzvan Soare - (Facultatea de Automatică și Calculatoare, UPB) - soare.razvan94@yahoo.com Răzvan Mazilu - (Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei, UPB) - razvanc.mazilu@gmail.com Atunci când construim un robot de Mini Sumo suntem constrânși în primul rând de dimensiunile şi greutatea maxim admisă conform regulamentului. Un astfel de robot poate avea o greutate de maxim 500 grame, iar lungimea şi lățimea nu pot depăși 10 cm. Din aceste considerente, construcția unui robot de Mini Sumo necesită multă muncă şi atenție la alegerea pieselor şi dimensionarea circuitului electronic şi al carcasei. Pentru a detalia modul de proiectare al robotului, vom analiza trei componente: l l l
Partea mecanică Partea electronică Programarea
Mecanica unui robot de Mini Sumo Un factor cheie al unui robot de Mini Sumo îl reprezintă partea mecanică. Aceasta poate fi analizată în funcție de următorii factori: l l l
Rampa Motoarele Centrul de greutate
Rampa este foarte importantă deoarece într-o confruntare frontală, cu o rampă ascuțită un robot își poate ridica adversarul câștigând runda. O mare problemă o reprezintă faptul că robotul nu are voie să deterioreze ringul prin zgâriere. 12
Poziția rampei este influențată de componentele interne ale robotului, ceea ce reprezintă de cele mai multe ori un dezavantaj. Motoarele sunt cele care fac robotul să se miște, dar nu orice motoare pot fi folosite. Dacă se folosesc motoare prea slabe riscăm să nu ne putem deplasa. Marea problemă a acestora este aceea că nu pot avea în același timp şi putere și turație mare, iar aici este necesar un compromis. Centrul de greutate trebuie să se afle cât mai aproape de sol. Dacă acesta se află prea sus, robotul poate fi răsturnat cu ușurință. Plasarea centrului de greutate este problematică datorită dimensiunilor componentelor (senzori, baterie, motoare, electronică). Partea electronică a unui robot de Mini Sumo Aceasta asigură alimentarea și funcționarea robotului. Deoarece este o componentă complexă, o putem împărți în mai multe secțiuni pe care le vom detalia în cele ce urmează: l l l l
Circuitul de comandă (programabil) Tipuri de senzori şi alimentarea lor Tipuri de motoare Schema plăcii principale
Circuitul de comandă Pentru ca robotul să poată detecta adversarii și pentru a se putea deplasa, acesta are nevoie de senzori și motoare. Aceste componente trebuie alimentate corespunzător, iar semnalele de date de la senzori și cele de control ale motoarelor vor fi conectate la un circuit de comandă programat să citească informațiile de la senzori și, pe baza unei “strategii de atac”, să comande sensul de rotație și turația motoarelor. Acest circuit de comandă utilizează un microcontroler ce dispune de un anumit număr de intrări digitale și analogice, ieșiri digitale, ieșiri de semnal PWM pentru controlul motoarelor. Dacă de obicei este de preferat să proiectăm noi un circuit de comandă cu microcontroler pentru aplicația respectivă, în cazul de față fiind limitați de spațiul disponibil pentru partea electronică, am ales să folosim o plăcuță programabilă disponibilă pe piață. Este vorba despre Baby Orangutan, produs de Pololu, ce dispune de un microcontroler Atmega 328p și totodată de un driver pentru motoare, lucru ce ne oferă un mare avantaj. Driverul integrat pe Baby Orangutan suportă curenți de ieșire destul de mari și poate fi folosit cu succes pentru controlul motoarelor folosite la roboții de Mini Sumo.
MINI SUMO
Driverul integrat TB6612FNG suportă o tensiune de intrare de maxim 15V și un curent constant de ieșire de 1.2A (3.2A peak). Pinii săi de comandă sunt conectați la microcontroler, iar ieșirile pentru motoare sunt legate la pinii laterali ai plăcuței. În acest fel, conexiunea la motoare se face foarte ușor. Baby Orangutan dispune și de un stabilizator de tensiune de 5V a cărui ieșire poate fi accesată și prin intermediul pinului VCC (out). Cu toate acestea, curentul suportat de acest stabilizator este destul de mic, 100mA. Deoarece aveam nevoie de curenți mai mari în circuitul robotului, nu am conectat nimic la acest stabilizator intern și am preferat să adăugăm altul, mai puternic. Printre pinii acestui circuit de comandă se numără: pini analogici (ADC6, ADC7 etc), digitali (PB0, PB1 etc), pinul de RESET, ieșirile pentru motoare (M1A, M1B, M2A, M2B), alimentarea VIN, Ground-ul şi cei 6 pini pentru portul SPI. Un mare avantaj al circuitului Baby Orangutan este că poate fi programat cu ușurință întrucât producătorul pune la dispoziție o librărie cu funcții pentru comanda motoarelor și citirea simplificată a porturilor ADC (a senzorilor). Despre acest aspect vom vorbi mai târziu, în secțiunea dedicată programării. Senzorii unui robot de Mini Sumo Pentru a putea detecta adversarul sau pentru a nu părăsi fără motiv ringul, un robot de Mini Sumo are nevoie de “ochi”.
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Rolul acestora este preluat în realitate de perechi de senzori, atent aleși și plasați în interiorul robotului. Pentru rezultate optime se amplasează frontal doi senzori și lateral alți doi. De asemenea, pentru a nu ieși din greșeală din ring, se folosesc senzori de linie ce pot detecta marginea albă a ringului și atunci robotul se poate întoarce. Cei mai importanți senzori sunt cei frontali deoarece aceștia trebuie să detecteze primii adversarul și trebuie să facă acest lucru cât mai repede. Există mai multe tipuri de senzori ce pot fi folosiți: senzori laser, infraroșu sau ultrasonici (sonar). Dintre aceștia, de obicei sunt folosiți cei pe bază de diodă infraroșu deoarece oferă performanțe bune: timp de răspuns bun, distanță de detecție relativ mare și un preț decent. În cazul unui robot, este nevoie de mai mulți senzori, iar din acest motiv, prețul joacă un rol destul de important în alegerea acestora. Bineînțeles că ne dorim ca senzorii să fie cât mai performanți, dar acest lucru costă și de multe ori ajungem să ne mulțumim cu un senzor ce “vede” pe o distanță mai scurtă, dar este mai ieftin. Acest neajuns poate fi compensat prin alegerea unei strategii de atac mai eficientă. Un alt factor foarte important este reprezentat de dimensiunea senzorului. În cazul robotului de Mini Sumo, spațiul este destul de limitat și este de preferat ca senzorii să fie cât mai mici. În urma testelor pentru
alegerea unor senzori pentru robot am obținut rezultate bune în cazul senzorilor Sharp 340K și Leuze Electronic HRT 3B. Senzorii Sharp sunt ieftini, mici (15 × 8,7 × 10,9mm) dar au o distanță de detecție limitată la aproximativ 30 - 40cm. Acești senzori sunt alimentați la tensiunea de 5V, deci necesită doar un stabilizator de tensiune de 5V, dacă nu este deja inclus în circuit. Modelul produs de Leuze Electronic poate fi reglat să detecteze obiecte aflate la distanțe mai mari: 1 – 1,5m. Avantajul acestora este reprezentat de raza de detecție mult superioară cât și de viteza de răspuns excelentă. Mai mult, am fost surprinși în mod plăcut de conul de detecție foarte îngust oferit de senzorii HRT 3B/44 practic, la raza de 1m, la 2mm de suprafața de joc, senzorii nu dau citiri false. Din punct de vedere al susceptibilității la variația luminii ambientale / blitz-uri foto, comportamentul acestui model de senzori a fost iarăși excelent. Din punct de vedere al conexiunii electrice, aceștia se alimentează la 12V, și prezintă o ieșire de tip PNP - necesitând astfel un divizor de tensiune pe ieșire. Ü 13
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Ü
Pentru reglarea razei de detecție, producătorul a integrat în design-ul senzorului un potențiometru multi-tură (8 ture) - ceea ce oferă un reglaj extrem de precis. Cum bateria din care este alimentat robotul are două celule și o tensiune de 7,4V, este nevoie de introducerea în schema electronică a unui circuit de Boost. Acesta ne permite să obținem o tensiune mai mare decât cea oferită de baterie. Senzorii de linie, ce detectează marginea albă a ringului și împiedică robotul să iasă afară sunt amplasați sub robot, de preferat cât mai aproape de partea din față. Senzorii folosiți sunt senzori de reflexie ce pot fi cumpărați fie gata montați pe un circuit suport (cu rezistori și a cărui ieșire poate fi conectată direct la microcontroler) sau de sine stătători (caz în care trebuie adăugați rezistorii necesari în circuitul electronic principal al robotului).
Circuitul de Boost Un circuit de Boost de dimensiuni reduse (10.7 × 22.4 × 5.8mm) și care este potrivit pentru o asemenea aplicație este Pololu Adjustable Boost Regulator. Acesta oferă o tensiune de ieșire reglabilă între 4 și 25V. Dispune de 3 pini: Vin, GND, Vout. Simplitatea și dimensiunile reduse îl fac ideal pentru folosirea în cadrul robotului de Mini Sumo.
Motoarele Atunci când vine vorba despre motoare, trebuie luați în considerare mai mulți factori: putere, dimensiune, tensiune de alimentare, turație nominală, cuplu și bineînțeles prețul. Micromotoarele produse de Pololu reprezintă o soluție bună și acceptabilă ca preț. 14
Acestea sunt alimentate la 6V și consumă 100 – 120mA în condiții normale de funcționare (1,6A înfrânate-blocate). Motoarele au montate și un reductor care asigură o turație mai mică la roată dar un cuplu mai bun. Există mai multe motoare, cu diferite rapoarte de transmisie (30:1, 50:1, 100:1), în funcție de necesitățile proiectului. Motorul se poate prinde de șasiul robotului prin intermediul unor suporți de plastic special construiți pentru acesta.
www.pololu.com
Circuitul electronic principal Pentru a putea conecta motoarele, senzorii și celelalte componente la circuitul de comandă Baby Orangutan trebuie construit un circuit suport. Acesta ne permite sa montăm circuitul de comandă pe un soclu, circuitul de Boost, să conectăm senzorii şi motoarele. Deoarece senzorii frontali folosiți la acest robot (Leuze) ofereau un semnal de date digital cu o tensiune de aproximativ 10V, a fost nevoie să adăugăm în circuit două divizoare rezistive de tensiune. Acestea ne asigură o tensiune de ieșire de maxim 5V, tensiune ce nu poate duce la arderea microcontroler-ului cu care este echipat Baby Orangutan.
MINI SUMO
Pentru alimentarea senzorilor de linie şi a circuitului de selecție a strategiei de atac am adăugat un integrat stabilizator de tensiune LM7805 ce asigură o tensiune de ieșire de 5V. De asemenea, au fost integrați rezistorii necesari bunei funcționări a senzorilor de linie, întrucât aceștia au fost montați direct pe robot, fără circuit suport. Toate conexiunile între senzori și circuitul principal au fost realizate prin intermediul cablurilor panglică dotate cu mufe JST ce asigură un contact foarte bun. Firele motoarelor au fost lipite pentru că avem de-a face cu curenți mari, iar cele de alimentare a robotului au fost de asemenea lipite și legate la un comutator ON/OFF și o mufă de conectare a bateriei.
Programarea robotului Pentru programarea Baby Orangutan-ului se folosește limbajul C şi utilitarul AVR Studio produs de Atmel. Acesta vine cu o gamă largă de biblioteci pentru facilitarea programării. Structura codului este identică cu cea din C, prima parte o reprezintă declararea bibliotecilor şi definirea variabilelor, urmând funcțiile auxiliare şi desigur funcția main(). Pentru început, trebuie selectat în Avr Studio un nou proiect. Se alege din meniu proiectul pentru Baby Orangutan şi se apasă OK. Acum suntem pregătiți să scriem codul sursă. Primul pas este să includem biblioteca de la Pololu pentru a putea folosi funcțiile predefinite pentru motoare şi senzori, definițiile de variabile pentru viteză şi timp de atac.
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
#include <pololu/orangutan.h> #define viteza_atac 100 #define timp_atac 200 Funcția de căutare este practic creierul programului. În această funcție vom determina dacă senzorii robotului văd inamicul sau dacă trebuie să îl caute. Cum lucrează funcția de căutare? Se fac citiri de senzori şi se acționează motoarele. Această funcție se execută infinit până la oprirea robotului. 1. Dacă amândoi senzorii aflaţi în faţă văd, atunci setăm motoarele la viteză maximă înainte. 2. Dacă vede senzorul din stânga şi cel din dreapta nu, atunci trebuie să ne întoarcem spre stânga, motorul din stânga merge în spate şi cel din dreapta înainte. 3. Dacă vede senzorul din dreapta şi cel din stânga nu, atunci trebuie să ne întoarcem către dreapta, motorul din dreapta merge în spate şi cel din stânga înainte. 4. Altfel robotul se învârte până unul din senzori detectează ceva. void Cauta() { while(1) { if (is_digital_input_high(IO_B0) == 0 && is_digital_input_high(IO_B1) == 0){ //cazul 1 set_motors(viteza_atac, viteza_atac); delay_ms(timp_atac); // dupa funcţia de motoare trebuie un delay } else if (is_digital_input_high(IO_B0) == 0 && is_digital_input_high(IO_B1) != 0){ //cazul 2 set_motors(-viteza_atac, viteza_atac); delay_ms(timp_atac); } else if (is_digital_input_high(IO_B1) == 0 && is_digital_input_high(IO_B0) != 0 ) //cazul 3 { set_motors(viteza_atac, - viteza_atac); delay_ms(timp_atac); } else // cazul default set_motors(viteza_atac, - viteza_atac); } }
set_digital_input (IO_B1, HIGH_IMPEDANCE); Cauta(); return 0; }
Acum că avem codul trebuie să îl urcăm pe Baby Orangutan şi pentru aceasta avem nevoie de un programator de la Pololu sau Atmel. După conectarea acestuia, Baby Orangutan-ul trebuie alimentat individual. Se compilează codul apoi se selectează din meniu opțiunea Device Programming, apoi în meniul Memories, la memoria Flash se selectează fișierul .hex al programului compilat şi se încarcă pe Baby Orangutan. Ü
În funcția main() vom avea inițializarea senzorilor urmată de apelul funcției de căutare. main() { set_digital_input (IO_B0, HIGH_IMPEDANCE); 15
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Ü
Cu toate că necesită multă muncă, atenție şi timp de gândire, construcția unui robot de Mini Sumo reprezintă un exercițiu interesant şi oferă satisfacții mari în urma participării la concursurile de profil.
Câştigaţi cu Electronica Azi
Hobby
Cu ajutorul celor trei roboți pe care i-am construit în cadrul laboratorului de electronică EAP InGeAr (Facultatea de Automatică şi Calculatoare, Universitatea Politehnica din București), noi am reușit să obținem premiul I (Sushi) la etapa națională a concursului Robochallenge (2013) şi trei medalii, două de aur (Sushi, Slim) şi una de argint (Akebono) la etapa internațională a concursului Infomatrix (2014).
(de la stânga la dreapta): Iulia Vlad, Alexandru-Viorel Pălăcean, Răzvan Mazilu, Răzvan Soare şi Sabrina Melinco. Implicaţi în proiect au fost doar băieţii. Așadar, îi încurajăm pe toți cei pasionați de robotică să își construiască propriul robot cu care să participe la competiții. Nu este nevoie de fonduri însemnate atâta timp cât totul este gândit şi planificat cu atenție n 16
Trimiteţi la redacţie proiectul unei aplicaţii practice şi aveţi şansa de a câştiga un sistem de evaluare şi dezvoltare “ENERGY-HARVEST-RD” de la Silicon Labs.
Articolul propus spre publicare trebuie să conţină următoarele elemente: • Introducere (~ 50 cuvinte) • Conţinut (~ 1000 cuvinte) • Poză autor şi pentru aplicaţia propusă • Diagrame (schemă electronică, detalii, circuit PCB).
V-aţi dorit vreodată să vă creaţi propriile produse? Aţi visat ca o creaţie virtuală 3D să devină produs adevărat? Acum aveţi această posibilitate cu ajutorul imprimantei 3D K8200 Velleman. Este o imprimantă 3D cu ajutorul căreia puteţi printa obiecte de maximum 20 × 20 × 20cm folosind fir PLA sau ABS (fir din material plastic 3mm). Este o imprimantă extrem de rapidă, fiabilă şi precisă chiar şi atunci când tipăriţi la viteze mari. K8200 este compatibil cu toate software-ele RepRap gratuite şi firmware. Este fabricată din profile de aluminiu şi este uşor de asamblat, lăsând utilizatorul să schimbe în mod liber maşina şi să o modifice după propriul plac. Planşa pe care se printează este încălzită.
Specificaţii: rulmenţi liniari cu bile: 8 şi 10mm (0.314" şi 0.393") n tehnologie: FFF (Fused Filament Fabrication) pentru PLA şi ABS n alimentare: 12V/3A max. n dimensiuni zona printabilă: 20 × 20 × 20cm / 7.87 × 7.87 × 7.87" n viteză tipică de printare: 120mm/s n viteză maximă de printare: 150 ... 300mm/s (în funcţie de obiectul ce urmează a fi printat) n duză de extrudare: 0.5mm n
Conex Electronic s.r.l. Tel.: 021 242.22.06 I
profile extrudate din aluminiu: 27.5mm / 1.08" lăţime n mişcare: 4 motoare pas cu pas NEMA 17 n rezoluţie: - rezoluţie mecanică nominală: • X şi Y: 0.015mm / 590.55 μin (cel mai mic pas de pe placa de printare în direcţia X şi Y) • Z: 0.781 μm / 30.74 μin (cel mai mic pas de pe placa de printare în direcţia Z) - rezoluţia de printare nominală: n
Fax: 021 242.09.79
I
• grosime perete (X, Y): 0.5mm / 0.019" • grosime strat (Z): 0.020 - 0.25mm / 0.0078 - 0.0098" n dimensiuni: - lăţime: 50cm / 19.7" - adâncime: 42cm / 16.5" - înălţime: 62cm / 24.4" - greutate: 9kg / 19.84lbs n software: versiune Repetier 0.84 şi mai nouă n inclus: 5m PLA - eşantion negru
office@conexelectronic.ro
I
www.conexelectronic.ro
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Red Pitaya instrumentul de măsurare open-source • Status RoHS: Conform • Nr. stoc RS: 800-7403 • Marca: Red Pitaya D.O.O • Cod de producător: Red Pitaya v 1.0
Instrumente bazate pe PC Reprezentând câteva instrumente de măsurare într-o singură unitate mică, osciloscopul bazat pe PC este mai uşor şi mai portabil decât echipamentele de testare şi măsurare tradiţionale. Astfel, un inginer de teren poate avea la îndemână un laborator complet de electronică, încărcat pe un laptop. Printre caracteristicile de bază ale unui astfel de dispozitiv pot fi enumerate: • compactitate şi portabilitate; • datorită ecranului PC-ului imaginile pot fi afişate color şi detaliate; • pot fi afişate simultan forma de undă, analizor de spectru şi modul de măsurare; • memorarea formelor măsurate este limitată doar de memoria PC-ului; • formele de undă măsurate şi parametri de reglare se pot fi partaja cu uşurinţă; • noi funcţionalităţi pot fi adăugate cu uşurinţă prin actualizarea software-ului. Red Pitaya V1.0.1 Red Pitaya este un proiect open source dezvoltat în jurul unui instrument de măsurare reconfigurabil de mărimea unei cărţi de credit (dimensiuni: 107 × 60 × 21 mm). El poate înlocui numeroase şi costisitoare instrumente de măsurare şi control de laborator. Utilizatorii pot începe prin utilizarea aplicaţiilor disponibile gratuit. Acestea pot fi obţinute cu un singur click. În acelaşi timp ei pot vedea şi modifica programele sursă pentru a dezvolta noi aplicaţii şi pentru a le oferi apoi comunităţii de utilizatori. Red Pitaya este un dispozitiv ce se ataşează într-o reţea şi este bazat pe sistem de operare Linux. El include tehnologie de achiziţie
18
şi generare semnal de radio-frecvenţă, FPGA, procesare de semnal digital DSP şi procesare CPU. Red Pitaya permite acum tuturor să utilizeze tehnologii anterior disponibile doar în laboratoarele de cercetare şi în industrie. Dispozitivul Red Pitaya este echipat cu soclu Micro USB cu scop de conectare, un soclu de memorie Micro SD pentru card de memorie, un conector RJ45 pentru conectare la internet şi un conector USB pentru dispozitive USB standard.
Impedanţă de sarcină: 50Ω Conector: SMA-F Canale de intrare analogice auxiliare: Număr de canale: 4 Viteză de eşantionare: 100ksps Rezoluţie conversie analog/digitală 12 biţi Domeniul tensiunii de intrare: de la 0 la +3,5V Cuplare intrare: DC Conector: IDC Canale de ieşire analogice auxiliare: Număr de canale: 4 Tip ieşire: PWM filtrat trece jos Rezoluţie de timp PWM: 4ns (1/250MHz) Domeniul tensiunii de ieşire: de la 0 la 1,8V Cuplare ieşire: DC Conector: IDC Red Pitaya - dispozitiv ataşat în reţea, comportându-se ca un server web Utilizatorii se pot conecta la Red Pitaya prin simpla scriere a adresei sale IP în bara de adrese a browser-ului web. O descriere mai detaliată a modului de conectare se poate obţine la site-ul www.redpitaya.com
Intrări RF: Număr de canale: 2 Lăţime de bandă: 50MHz (3dB) Impedanţă de intrare: 1MΩ // 10pF Conector: SMA-F Ieşiri RF: Număr de canale: 2 Lăţime de bandă: 50MHz
Dispozitivul implementează o utilitate de descoperire automată a IP-ului, conectându-se în reţeaua locală. Implicit, Red Pitaya obţine parametri de reţea utilizând protocol DHCP. Dacă în 20 de secunde nu se primeşte nici un răspuns de la serverul DHCP, Red Pitaya va configura interfaţa sa astfel:
INSTRUMENTE BAZATE PE PC • adresă IP: 192.168.1.100 • Netmask: 255.255.255.0 La conectarea prin browser web, pot fi vizualizate o listă de aplicaţii instalate local. Acestea pot fi pornite prin click pe butonul “RUN”. La nevoie pot fi instalate şi aplicaţii noi.
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
driverul FTD. După instalare, noul port COM va apare în Device Manager şi va fi utilizat în Hyperterminal sau altă aplicaţie de tip terminal pentru conectare la Red Pitaya. Driverul FTD este disponibil pe pagina de web: www.ftdichip.com/Drivers/VCP.htm. Configuraţia portului serial va fi: Speed Data bits Stop bits Parity Flow control
115200 8 1 None None
La conectare nu este nevoie de nume de utilizator sau parolă. Secvenţa de pornire se finalizează cu un prompter de comandă: redpitaya>. Una dintre aplicaţii este aceea de OSCILOSCOP. Aceasta transformă Red Pitaya într-un sistem de vizualizare de semnale cu două canale. Partea principală a aplicaţiei o constituie zona de prezentare grafică, funcţiile semănând cu cele ale unui osciloscop.
Accesorii recomandate Pentru funcţionare dispozitivul are nevoie de câteva accesorii de uz larg. Dacă nu dispuneţi deja de acestea, vă stăm la dispoziţie tot ceea ce este nevoie: sursă de tensiune (nr. stoc 765-3311), sondă osciloscop (nr. stoc 729-6649), adaptoare SMA-
Conectare prin USB (consolă) O altă modalitate de conectare la un sistem de calcul este aceea prin cablu USB. Conectarea în consolă serial este independentă de conectarea Ethernet. Suportul fizic prin intermediul căruia se realizează această conexiune este un cablu Micro USB.
BNC (nr. stoc 761-9985 sau 124-6825), card de memorie Micro SD (nr. stoc 6957321 sau 695-7734).
Modalitatea de conectare variază în funcţie de sistemul de operare. De exemplu, în cazul Windows-ului se va descărca şi instala pe PC
Sursă de tensiune Micro USB, 5V, 2A • Status RoHS: Conform • Nr. stoc RS: 765-3311 • Marca: HN Electronics Components • Cod de producător: HNP10I-microUSB
Sondă de măsurare, 100MHz, ×1, ×10 • Nr. stoc RS: 729-6649 • Marca: PINTEK • Cod de producător: CP-2100
Adaptor SMA(M) - BNC(F) • Status RoHS: Conform • Nr. stoc RS: 761-9985 • Marca: RF Solutions • Cod de producător: ADP-SMAM-BNCF Adaptor coaxial BNC (f) - SMA (m) • Status RoHS: Conform • Nr. stoc RS: 124-6825 • Marca: Binder • Cod de producător: J01008A0025
Memorie flash 4GB microSDHC Clasă 4 • Status RoHS: Conform • Nr. stoc RS: 695-7321 • Marca: Kingston Technology Europe • Cod de producător: SDC4/4GB Pe memoria micro SD trebuie instalat software-ul Red Pitaya. Pentru aceasta trebuie urmată procedura de mai jos: • Se descarcă fişierul arhivat zip Red Pitaya SD card image de pe pagina de web www.redpitaya.com; • Se conectează memoria Micro SD la calculator, dacă este nevoie prin intermediul unui adaptor. Memorie trebuie să fie liberă şi formatată FAT32, capacitatea sa nedepăşind 32 GB; • Se dezarhivează fişierul descărcat anterior şi se copiază conţinutul său pe memorie;
• Structura directorului de pe card trebuie să se prezinte astfel: • Se deconectează memoria de la calculator şi se introduce în soclul său de pe Red Pitaya.
Aurocon COMPEC SRL www.compec.ro 19
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
vs În lumea amatorilor de proiecte electronice, atunci când este vorba de Sisteme Embedded, primează două platforme: BeagleBone Black şi Raspberry Pi. Apare, însă, întrebarea: care sistem este mai bun? Autor: Alexandru Aungurencei - alex.aungurencei@gmail.com Raspberry Pi îşi are originile în Marea Britanie, unde a început ca proiect educaţional. Preţul mic şi performanţele foarte bune l-au făcut, în scurt timp, cea mai populară platformă cu microprocesor de pe piaţă. Vine în două variante: Raspberry Pi Model A şi Raspberry Pi Model B. Cel din urmă este versiunea “high-spec”, fiind şi cel mai popular model. Seria Beaglebone este rezultatul colaborării dintre Texas Instruments, Digi-Key şi Newark element14. Prima versiune a acestui SBC (Single-Board Computer) apare în 2008, însă preţul relativ ridicat o impedieca să fie achiziţionată în masă de către hobbyşti. Beaglebone Black apare în 2013 ca un răspuns la Raspberry Pi, compensând timpul în care nu a fost prezent pe piaţă prin dotările hardware. Specificaţii Pentru a facilita comparaţia “out of the box” a celor două platforme, am trecut în Tabelul 1 20
specificaţiile fiecărui SBC. Vom vorbi despre BeagleBone Black Rev. A5B şi de Raspberry Pi Model B. Cea mai rapidă platformă Procsorul este cea mai importantă componentă atunci când vorbim de viteza cu care răspunde sistemul vostru. Beaglebone-ul vine cu 1GHz în timp ce Pi oferă doar 700Mhz, dar Pi-ul poate fi “overclocat” pentru a atinge aproape aceleaşi viteze ca şi BBB-ul, dar chiar şi la aceeaşi frecvenţă, procesorul ARM A8 este de aproape 2 ori mai rapid decât ARM11 (ARM A8 execută 2000 MIPS / MHz în timp ce ARM11 doar 1250 MIPS/ MHz). Din punct de vedere al arhitecturii procesorului, BBB câştigă competiţia bucurânduse de cel mai folosit set de instrucţiuni în sistemele embeded: ARMv7, faţă de ARMv6 ale Pi-ului. Lista îmbunătăţirilor aduse odată cu v7 este una lungă, dar printre cele mai impresionante se numără instrucţiunile pentru operaţii SIMD (Single
Instruction, Multiple Data), algoritmi de predicţie (Branch Prediction Algorithms) şi arhitectură superscalară. Avantajul Beaglebone-ului vine şi din partea comunităţii de dezvoltatori software care încep să abandoneze arhitectura ARMv6 în favoarea v7-ului. Un exemplu concludent îl constituie Ubuntu, care nu mai oferă suport pentru acest set de instrucţiuni din Aprilie 2013. Periferice Nu se pune problema unei competiţii. Beaglebone Black domină detaşat cu cei 2 pini headeri a 46 de intrări fiecare, rezultând 92 de puncte de conectare a perifericelor. În manual apar următoarele posibilităţi: l 3 magistrale I2C l 1 magistrală CAN l 1 magistrală SPI l 4 timere l 5 porturi seriale l 65 pini GPIO (Genereal Purpose Input Output)
BeagleBone Black vs Raspberry Pi
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Tabelul 1
Beaglebone Black
Raspberry Pi
Procesor
1GHz TI Sitara AM3359 ARM Cortex A8
700 MHz ARM1176JZFS
RAM
512 MB DDR3L @ 400 MHz
512 MB SDRAM @ 400 MHz
HDD
2 GB on-board eMMC, MicroSD
SD
Ieşiri Video
1 Mini-HDMI
1 HDMI, 1 Analog (RCA)
Rezoluţii
1280×1024 (5:4), 1024×768 (4:3), 1280×720 (16:9), 1440×900 (16:10) toate pe 16 biţi
De la 640 × 350 la 1920 × 1200, incluzând şi 1080p
Ieşire Audio
Stereo prin HDMI
Stereo prin HDMI, Stereo prin mufă jack de 3.5mm
OS
Angstrom (Default), Ubuntu, Android, ArchLinux, Gentoo, Minix, RISC OS etc.
Raspbian (Recomandat), Android, ArchLinux, FreeBSD, Fedora, RISC OS etc.
GPIO
65 pini
8 pini
Consum
210-460 mA @ 5V
150-350 mA @ 5V
Periferice
1 USB Host, 1 Mini-USB Client, 1 10/100 Mbps Ethernet
2 USB Hosts, 1 Micro-USB Power, 1 10/100 Mbps Ethernet, RPi conector pentru cameră
Preţ
45$
35$
l l
8 ieşiri PWM 7 intrări ADC cu 12 biţi rezoluţie, maxim 1.8V
Raspbery Pi are un header de 26 de pini, rezultând următoarele interfeţe posibile: l 8 pini GPIO l 1 interfaţă UART l 1 magistrală SPI l 1 magistrală I2C Procesare grafică şi conectivitate audio Sunt singurele categorii în care Raspberry Pi-ul se remarcă. Procesorul grafic integrat Videocore transformă Pi-ul într-o platformă ce face faţă cu uşurinţă randării stream-urilor video 1080p. Procesează la fel de uşor şi OpenGL. Platforma este dotată cu un conector HDMI şi o ieşire video composită pentru conexiuni ce necesită doar rezoluţii mai mici. Din punct de vedere al conectivităţii audio,
Figura 1
Pi-ul câştigă din nou deoarece are o capacitate “out of the box” mai mare: audio prin HDMI plus o mufă jack de 3.5 mm.
listă completă de cape-uri puteţi accesa: http://elinux.org/Beagleboard:BeagleBone_ Capes . Eu voi aminti doar:
Beaglebone-ul are suport video dedicat, însă nu se ridică la performanţele Pi-ului şi nu suportă 1080p. Ca periferice, nu are decât un port mini-HDMI ce vă va permite să îl conectaţi la monitor sau TV. Cu toate că există plăci de extensie care mai adaugă câteva opţiuni pentru conectare, nu există substituent pentru procesorul Videocore al Pi-ului. Nici la capitolul audio BBB nu stă mai favorabil, oferind ieşire audio doar prin portul mini-HDMI.
l l l l l
l
Extensii, Shield-uri Pentru a evita viitoare neclarităţi, voi menţiona acum la ce mă refer când spun extensie: plăci PCB care au ca scop extinderea capacităţilor de bază ale Pi-ului sau BBB-ului. Aici nu sunt incluse: cabluri, carcase, sau alte accesorii lipsite de funcţionalitate. Pentru Beaglebone, lista extensiilor este una impresionantă. Aceste extensii poartă numele de “cape”. Sunt realizate de dezvoltatori şi majoritatea au hardware-ul open source. Pentru mai multe detalii, scheme electrice şi o
l
l
DVI cape – Vă permite conectarea unui monitor DVI. VGA cape – Vă permite conectarea unui monitor VGA. HDMI cape – Extensia are mufă HDMI (the real deal, nu mini-HDMI). LCD capes – Puteţi adăuga cu uşurinţă un ecran LCD peste BBB. (Figura 1) Camera cape – Aduce o cameră de 3.1MP şi este configurat să puteţi conecta şi un LCD cape, în acelaşi timp. Audio cape – Mufă jack de 3.5 mm pentru streaming audio input-output. Motor cape – driver de motor Texas Instruments care poate comanda până la 8 motoare DC, sarcina maximă suportată de fiecare motor fiind de 500mA. Battery cape – Sloturi pentru 4 baterii AA. (Figura 2)
Competiţia din partea Pi-ului constă în faptul că este compatibil cu shield-uri Arduino, întrucât plăcile dedicate Pi-ului sunt puţine şi necentralizate. Acest lucru vă poate părea minor la început, dar ţinând cont că pe piaţă există aproximativ 300 de shield-uri Arduino, îl face un aspect greu de ignorat. Ü 21
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Ü
Cu toate acestea, ţinând cont că Arduino este un mediu de dezvoltare bazat pe microcontrolere, obţinem o remiză între Pi şi BBB la capitolul Extensii şi Shield-uri. Consum Singura platformă care are specificaţii oficiale despre puterea consumată este Beaglebone Black (BeagleBone Black System Reference Manual – vă recomand să îl rasfoiţi cel puţin o dată). Un extras din manualul BBB este prezentat mai jos.
Figura 2 puţin decât Beaglebone-ul, însă, după cum am menţionat anterior, aceste date nu sunt de necontestat.
În cazul Pi-ului, singurele măsurători pe care le avem la dispoziţie sunt cele efectuate de utilizatorii săi, însă acestea variază foarte mult. Efectuând o medie, Pi-ul consumă mai
22
Concluzii Câştigătorul este Beaglebone Black, deoarece nu numai că are o capacitate computaţională aproape dublă faţă de Raspbery Pi, posibilităţi nelimitate de upgrade şi periferice (datorită celor doi headeri), dar hardware-ul lui este Open Source. Raportul putere de procesare – preţ este unul greu de atins, BBB detaşându-se de concurenţă fără efort. Este de asemenea foarte uşor de folosit, întrucât vine cu un OS preinstalat, rămânând doar să descărcaţi driverele corespunzătoare sistemului vostru. Este cea mai bună alegere în proiecte care cer interfaţarea cu numeroşi senzori, proiecte la care dimensiunea hardware-ului trebuie să fie cât mai redusă fără a compromite performanţele, acolo unde extrem de
importante sunt vitezele mari de procesare, proiectele comerciale pe post de platforme educaţionale pentru Sisteme Embedded şi mai ales pentru acele momente în care trebuie ca totul să funcţioneze perfect cât mai repede (Beaglebone Black poate fi gata de testare în doar câteva minute, spre deosebire de Rapberry Pi care necesită o oră sau mai mult). Există însă şi proiecte în care Raspberry Pi este alegerea cea mai potrivită. Printre acestea se numără proiectele multimedia (Pi face faţă cu succes interfeţelor multimedia care necesită o putere de procesare grafică mare), ca platformă educaţională grafică (este mult mai interesant să înveţi Linux când acesta rulează pe Pi în loc de maşină virtuală) n În numărul viitor vom integra platforma Beaglebone Black într-un proiect hardware complex: un GameBoy ce foloseşte ca unitate de procesare placa Beaglebone Black.
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Figura 1
De la desen, la realitate. Aș dori să încep acest articol cu o scurtă prezentare a sportului de “Sumo Robotic”, de data aceasta din perspectiva constructorului de roboți, și nu prin ochii spectatorului. Am avut primul contact cu acest fenomen acum doi ani, când am decis alături de câțiva colegi să construim un robot cu care să participăm la competiția locală binecunoscută, și anume RoboChallenge, eveniment anual organizat de o echipă de foști studenți ai Facultății de Electronică din București. Autor: Teodor Roşca - teodor.rosca@epfl.ch Performanțele au fost satisfăcătoare, dat fiind faptul că nivelul roboților construiți la acel moment încă nu ajunsese foarte avansat. Au existat, însă, și două excepții. Două echipe de tineri ingineri avuseseră contact cu concursul internațional Robotchallenge Vienna, unde au avut ocazia să privească alți roboți și să “fure” câteva idei și secrete, care s-au dovedit a fi cheia succesului în participarea la concursul din România. A fost primul moment când ne-am dat seama că pentru a avansa, este necesar în primă fază să învățăm de la cei mai bine pregătiți decât noi. A fost absolut evident că în anul următor am pregătit un robot mult mai competitiv decât primul și am decis să asaltăm și noi concursul internaţional din Viena. Rezultatele au fost însă neașteptate, pentru că ne-am lovit de echipe net superioare, care ne-au arătat că încă mai avem de învățat. A urmat un an în care am studiat îndeaproape roboții acelor echipe, și am reușit să construim un robot care se află cu adevărat la nivelul necesar pentru a obține un loc înalt în clasamente. Bineînțeles, loc de îmbunătățiri există, trebuie doar să ne gândim că Japonezii joacă Sumo Robotic de 25 de ani, dar pentru moment, performanța este mai mult decât satisfăcătoare.
Vă voi prezenta, așadar, în cele ce urmează, robotul de Sumo construit pentru participarea la ediția din 2014 a concursului internațional de robotică din Viena, Austria. Voi analiza robotul alături de voi din perspectiva mecanicului, electronistului și puțin și din perspectiva programatorului și a tacticianului. Sper din tot sufletul să fie o incursiune interesantă și să vă stârnesc interesul spre a merge mai departe în această lume a sportului de Sumo Robotic. Primii pași în proiectarea robotului sunt stabilirea componentelor utilizate, alegerea motoarelor, managementul puterii electrice disponibile, stabilirea unei ținte a puterii mecanice dorite, toate acestea urmate de proiectarea mecanică spre a îndeplini cu succes cerințele de gabarit (pentru cei care nu sunt familiari cu acest aspect, aș dori să reamintesc faptul că roboții de Sumo pot măsura maxim 20 × 20 centimetri în amprentă la sol, și o masă totală nu mai mare de 3 kilograme). Am făcut așadar la început, cu colegii de echipă o ședință destul de lungă de “brainstorming”, pentru a alege soluțiile optime. După schimburile de idei, am decis să construim robotul în jurul a două motoare puternice construite de compania elvețiană Maxon, cunoscute pentru eficiența
crescută și raportul foarte bun între putere și dimensiuni. Motoarele alese, modelul 148866, au o tensiune nominală de funcționare de 12 Volți, putere nominală de 150 de Wați, și un cuplu nominal de 95 mNm. Totuși, aceste valori nominale sunt rareori menținute în timpul meciurilor de sumo, și la prima vedere par niște cifre prea mici pentru a asigura performanțele de viteză și putere ale robotului. Aici intervin valorile ne-nominale ale acestor parametri. În robot, motoarele sunt utilizate la o tensiune de aproximativ 20.5 Volți, iar puterile de interes nu sunt calculate în regim continuu, ci în regimuri tranzitorii. Se ajunge astfel la puteri instantanee de ordinul KiloWaților. În aceste condiții, amintesc și faptul că turația motoarelor atinge ușor valori de 89000 de rotații pe minut. Ü
Figura 2
23
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Ü
Odată alese motoarele s-a pus problema transmisiei energiei la roți. Acest robot este construit în jurul unei arhitecturi cu două roți, poziționate central pe șasiu. Motivul utilizării acestei arhitecturi este scăderea forțelor axiale ce apar pe roți în timpul întoarcerilor (viraj diferențial!) care pentru o arhitectură cu 4 roți ar fi fost foarte mari. În plus, poziţionarea roților central pe șasiu asigură centrul de rotație la viraj în poziția optimă pentru întoarceri foarte rapide și cu pierderi minime de energie.
Toate aceste elemente mecanice stau ținute laolaltă de un șasiu din titan cu grosimea de 2 milimetri, de care se află prinsă și carcasa exterioară a robotului, confecţionată din fibră de carbon, și câteva piese din aluminiu. Proiectarea tuturor acestor piese a fost făcută folosind software specializat, produs de compania Autodesk, “mama” AutoCAD-ului. Dacă îmi permiteți să fiu puțin ambiguu, din punct de vedere electronic, robotul este în același timp simplu, dar şi destul de complicat.
Voi clarifica ideea în cele ce urmează. La nivel de bloc, schema electrică poate fi pusă în forma din figura 6. Un sistem electronic dealtfel simplu, compus dintr-o parte de alimentare, reprezentată aici de acumulator și stabilizatorul în comutație (DC/DC), o unitate de procesare logică (MCU), o unitate de achiziție (Senzori) și inevitabilul modul ce facilitează comanda corectă a motoarelor. La nivel detaliat, însă, lucrurile devin puțin complicate. Dat fiind faptul că puterile la care sunt supuse aceste
Figura 3
Am amintit mai devreme de turația foarte mare a motoarelor. A fost necesară, așadar implementarea unui sistem de transmisie de la motor la roată, cu un raport bine stabilit, pentru a scădea viteza de rotație și pentru a crește cuplul. Am proiectat astfel o transmisie în două trepte, cu un raport total de 5.7:1. Acest raport asigură o viteză maximă a robotului de aproximativ 5 metri pe secundă, iar cuplul este crescut semnificativ (ca să aveți o idee, robotul este capabil să împingă de pe ring o ladă de bere cu un om stând pe ea).
24
Figura 5
Wolf
module pot deveni foarte mari, iar efectele parazite (spre exemplu rezistența serie a acumulatorului și comportamentul puternic inductiv al motoarelor) pot pune în pericol funcţionarea corectă a întregului sistem, proiectarea blocurilor se cere a fi riguroasă, şi cu multe module de protecție.
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
pe scurt despre fiecare bloc în parte, dând și câteva specificații utile. Acumulatorul ales este bazat pe tehnologie Litiu-Polimer, tehnologie care în momentul de faţă asigură cel mai bun raport Putere Stocată / unitate de volum (și masă). La o tensiune nominală de 18,5V și curent
Figura 6 Aici pot aminti cele mai importante astfel de module: protecție la supracurent, la supratensiune și la temperatură. Voi vorbi acum
maxim continuu de 91A și pulsat de 182A, avem un acumulator ce poate debita o putere de 1,6 respectiv 3,2kW. Totul într-un
pachet ce cântărește 400 de grame. Sursa în comutație, de tip Buck, furnizează la ieșire o tensiune stabilă de 5 Volţi, la un curent maxim debitat de 4A, cu pierderi minime de energie și deci eficiență mare, incomparabilă cu cea a stabilizatoarelor liniare. Modulul de procesare este construit în jurul microcontrolerului Atmel ATMega 324P, rulat la o frecvență de ceas de 16MHz. Ca periferice, pot aminti două magistrale de comunicație (una dintre ele este utilizată pentru programare, iar a doua este utilizată pentru debug). Alăturat controlerului este un șir de 8 comutatoare SPST ce permit alegerea strategiilor de luptă fără a mai fi nevoie de reprogramare. Modulul de motor-control este poate cel mai complicat bloc electronic din componența robotului. Capabil să comande independent 2 motoare de curent continuu la tensiuni de până la 33.6 Volţi și curenți de până la 120 Amperi în pulsuri, acest driver a fost în mod logic alegerea preferată când a venit vorba de comanda optimă a motoarelor fără riscuri. Presărat cu sisteme de monitorizare a temperaturii și a curentului, și sisteme de protecție, driverul a rezistat eroic la câteva confruntări de-a dreptul violente în concursurile trecute. Ü Figura 7
25
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Ü
Ca să glumesc puțin, ne e mai frică să nu se ardă motoarele, decât driverul. Și, ajungem în cele din urmă, și la simțul de bază al robotului, și anume sistemul de senzori. Dispuși mecanic în așa fel încât să acopere eficient un azimut de 180 de grade, cei 11 senzori optici, în tehnologie infraroşie, sunt capabili să detecteze în mai puțin de o milisecundă, obiecte aflate pe o rază de 1 metru în jurul robotului. Problema mare, însă, a acestor senzori este că pot fi destul de ușor păcăliți. O culoare neagră, eventual lucioasă, pe o geometrie cu unghiuri ascuțite poate fi ratată foarte uşor de razele puternic concentrate ale acestor senzori. Există nenumărate polemici pe acest subiect, însă un lucru este cert, și anume că utilizând combinația ideală de rază de bătaie, apertură și montaj mecanic, pot fi detectate și cele mai “negre” din obiecte.
Figura 8
26
Figura 9
Wolf
Modelul Banner Q20xDXL (x poate fi N sau P) s-a dovedit a fi alegerea optimă. Cu o rază maximă de 1.5 metri (implicit sensibilitate crescută) și directivitate relativ mică (în sensul că raza emisă nu este concentrată într-un fascicul îngust, ci este împrăștiată mai larg) acești senzori au fost capabili să detecteze în timp foarte scurt obiecte altfel nedetectabile. Pentru moment, acest model de senzor rămâne din punctul nostru de vedere alegerea optimă pentru aplicația curentă. Partea de programare a tacticilor de luptă rămâne probabil acel aspect care conferă avantajul în fața altor roboți. Deși încă se mai poate îmbunătăți mecanic, robotul poate fi făcut acum mult mai competitiv doar cu ajutorul unor strategii bine puse la punct. Interfața de debug despre care am vorbit mai devreme s-a dovedit a fi foarte utilă în monitorizarea diverșilor parametri. Cu ajutorul acestui software se poate vizualiza în timp real ce detectează senzorii, starea în care se află automatul care constituie tactica, se pot trimite comenzi către motoare pentru a verifica funcţionalitatea acestora și multe alte informații utile. Un exemplu al acestui software într-o fază incipientă poate fi văzut în figura 9, funcționând în comunicație cu un robot de MiniSumo. Multe informații legate de tactici nu ar fi de menționat, cu excepția faptului că fiecare tactică programată se bazează pe calibrarea
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
riguroasă a constantelor programate, astfel încât rezultatul efectiv (mișcarea în ring) să fie cel așteptat. Se petrec astfel ore bune reglând întîrzieri și timpi de execuţie pentru a obţine spre exemplu rotiri cu precizii de câteva grade. Totul se finalizează cu alcătuirea câtorva secvențe bine stabilite de plecare, în funcție de poziția robotului la începutul meciului. Primele câteva milisecunde de joc sunt decisive în meciurile spectaculoase de astăzi, astfel că o plecare orizontală sau diagonală executată precis poate face diferența între un meci pierdut și un meci câștigat. Totul este povestit, bineînţeles, din proprie experiență.
Aș dori ca prin acest articol să vă fi atins puțin spiritul competitiv, și să vă determin și pe voi să porniți în această incursiune care, deși costisitoare și care necesită timp și dedicare, vă poate oferi satisfacție și fericire, odată ce obțineți un trofeu la un concurs național / internațional n Sunteți așteptați cu brațele deschise să participați la competiția noastră anuală, RoboChallenge. Mult succes! Teodor Roşca, membru al echipei Team Flex.
Echipa Team Flex
27
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Raspberry Pi pentru electronică şi automatizări Raspberry Pi este un mini-computer foarte popular, de dimensiunea unui card de credit, capabil sa ruleze Linux, cu placă de reţea ethernet inclusă, ieşire video HDMI, 2 port-uri USB, 512MB memorie RAM, procesor ARM la 700MHz capabil să ruleze fişiere high definition. Vă prezentăm câteva module de expansiune care transformă Raspbery Pi într-un instrument foarte versatil pentru automatizări sau electronică:
Modul de expansiune PIFACE • • • • •
2 relee de comutare 5 butoane de comandă 8 ieşiri digitale 8 ieşiri open collector 8 LED-uri de semnalizare
Modul de expansiune I/O • Porturi UART / 245FIFO / SPI / I2C / JTAG / GPIO • EEPROM 93LC56 pentru configurarea portului FT2232H
Modul de expansiune cu PIC32 • Microcontroler PIC32MX250F128B, 128K Flash, 32K RAM • Conectori USB, ICSP and JTAG • Dezvoltare de aplicaţii Arduino pentru Rpi
Modul de expansiune ENOCEAN PI 868 • Permite realizarea unei punţi de legătură între sistemele radio EnOcean 868MHz, 315MHz şi 902MHz şi un RPi
Modul de expansiune RasPiComm • • • • • • • 28
canal RS485 canal RS232 ceas de timp real (RTC) 5 intrări digitale, conectate la un joystick (4-căi & presiune) 2 ieşiri digitale, max. 5V/100mA conectori pentru canal serial SPI, RM 2 2 conectori pentru canalul I2C
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Raspberry Pi pentru electronică şi automatizări
Sursă alimentare CW2 PiUSV • Pentru funcţionarea neîntreruptibilă în cazul unei pene de curent sau a fluctuaţiilor de tensiune. • Poate fi folosit şi ca modul de diagnosticare şi monitorizare a alimentării
Placă breadboard pentru Raspberry Pi • Utilă pentru realizarea de circuite electronice de test.
Mai multe detalii despre produsele prezentate aici se găsesc în noul Catalog Minitechnicus, la pagina 21. Catalogul se poate obţine gratuit de la sediul nostru din Timişoara, Piaţa Ştefan Furtună nr 5, Ap 9/1 sau se poate comanda online pe website-ul nostrul www.oboyle.ro
Tel.: 0256-201346 office@oboyle.ro, www.oboyle.ro 29
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Robot specializat pentru competiții de MiniSumo
Blackbox Domeniul roboticii și al sistemelor embedded devine din ce în ce mai popular în rândul studenților din ziua de astăzi. Pe lângă proiectele făcute pentru a ocupa timpul liber există și competiții specializate unde stundenții își pot măsura capacitățile de construire a roboților. Astăzi vă vom prezenta pe scurt ce se află în spatele construcției unui robot de MiniSumo pentru competițiile de nivel înalt. Autori: Flavius Tîrnăcop - flavius.tirnacop@yahoo.com Irina Goșu - irina.gosu@gmail.com Alexandru Aungurencei - alex.aungurencei@gmail.com Alexandru Alistar - alistar_alex@yahoo.com Ce este un concurs de sumo? Competiția de minisumo are la bază lupta între doi roboți complet autonomi care încearcă să se elimine unul pe celălalt dintr-un ring rotund, foarte asemănător cu competiția de sumo între oameni. Spre deosebire de aceasta, roboții sunt limitați la o greutate de doar 500 grame și o dimensiune de maxim 10 × 10 cm. Așadar, cei doi roboți sunt poziționați într-un ring (numit și Dohyo) cu diametrul de 77cm, iar la semnalul de start al arbitrului de la telecomandă lupta începe și continuă până când unul dintre cei doi roboți obține 2 puncte “Yuhkoh” moment în care arbitrul desemnează câștigătorul meciului. Cum facem un design eficient al unui robot de sumo? Deși de-a lungul competițiilor participanții au venit cu idei care mai de care mai inovatoare, la baza unui robot de minisumo stau aceleași principii: mecanica, electronica și 30
BLACKBOX
programarea. În continuare vom prezenta abordarea noastră în a îmbunătăți robotul care s-a clasat pe poziția a doua la faza națională a concursului Robochallenge 2013 la proba de MiniSumo. Mecanica Există o infinitate de proiecte mecanice, de la roboți cu 2 roți, până la roboți cu 6 roți sau chiar cu șenile. Pentru robotul nostru am ales să folosim un sistem cu două roți motoare datorită simplității pe care o aduce cât și eficienței și probabilității mai mici de apariție a erorilor. Astfel, se elimină necesitatea de a echilibra nivelul roților, în cazul mai multor perechi. Unul din cele mai importante elemente mecanice este lama din față a robotului. Tehnica principală în lupta de sumo este ca robotul să facă robotul advers să aibă un contact cu solul cât mai mic și odată cu asta o forță de tracțiune minimă. Lama aleasă de noi este realizată dintr-un oțel călit de o duritate foarte mare pentru a rezista în lupte unde forțele la impact pot deteriora componentele sale. Trebuie menționat că lucrul cu astfel de lame este destul de periculos, ele fiind foarte ascuțite și se recomandă multă grijă în timpul construcției. În ansamblu, am încercat să aducem robotul la un profil și un centru de greutate cât mai jos pentru a-i oferi stabilitate sporită în cazul în care este împins de alt robot.
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Electronica După ce am spus că unul din cele mai importante elemente este lama robotului putem spune că aproape la fel de importanți sunt senzorii. Astfel am folosit unii din cei mai buni senzori în domeniu și anume senzorii industriali Banner Engineering.
interferențelor, făcându-i cu atât mai avantajoși în competiții unde pot apărea lumini, blițuri etc. Următorul element important este microcontrolerul. Acesta este practic creierul robotului și în același timp cel care face legătura între senzori și motoare.
Senzor Banner Engineering Acești senzori sunt net superiori celor infraroșii obișnuiți funcționând până la o distanță de 150cm și având un timp de răspuns de 0.6ms. Totodată acești senzori dispun de filtraje suplimentare împotriva
Am ales să folosim o platformă de la Pololu numită “Baby Orangutan B-328”. Aceasta are avantajul că pe lângă microcontrolerul AVR ATmega328p include și un driver de motoare cu două canale a câte 1A per canal. Toate astea sunt bine împachetate într-un board de doar 3cm lungime. Microcontrolerul ATmega328p este un microcontroler puternic ce rulează la 20MHz și ne oferă 6 canale PWM pe care le putem folosi spre exemplu la controlul motoarelor, 8 canale ADC cu precizie de 10 biți pentru citirea senzorilor precum și porturi IO, timere sau interfața serială pentru USART.
Baby Orangutan - 328P Pe lângă senzorii și microcontrolerul menționați la început, evident, mai intră în discuție și senzorii de linie, senzorii din lateral, circuite ridicatoare de tensiune, dar și bateria. Ü 31
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Ü
Toate acestea au fost interfațate cu microcontrolerul printr-un PCB conceput de noi în laboratorul EAP-Ingear.
În cele din urmă trebuie interfațat și senzorul de start/stop. Acesta este de obicei impus de către regulile organizatorilor
competițiilor pentru a putea face roboții să pornească și să se oprească în același timp. Acesta este un modul separat care are la
Placă interfaţare senzori
Circuit de control
Circuitul de control
32
BLACKBOX
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
bază un receptor infraroșu și un microcontroler ce are grijă să rețină în memoria flash starea în care se află robotul. Acestea pot fi Power On, Started și Stopped. După programarea codului de identificare a ringului (în cazul în care se desfășoară mai multe meciuri în paralel) la semnalul arbitrului se trece din starea Power On în starea Started. În momentul acesta, chiar dacă alimentarea robotului este oprită la revenirea acesteia robotul va ști că încă se află în starea Started. În final, la un nou semnal de la arbitru se trece din starea Started în starea Stopped, iar la o restartare a robotului se reia procedeul de la început. Programarea Programarea este și ea un element esențial în luptele de sumo. Practic, aceasta descrie modul de funcționare al robotului, creierul acestuia. Astfel, am realizat un ansamblu de strategii după un studiu detaliat al comportamentului roboților competitori.
Schema bloc a componentelor
Versiunea actuală dispune de 8 strategii individuale interschimbabile înainte de fiecare meci în funcție de adversar și de poziția în ring. Aproape orice algoritm al unui robot autonom ar trebui să urmeze un model de mașină cu stări. Astfel, întâi se citesc inputurile (senzorii) și în funcție de acestea și de starea curentă se poate lua o decizie și trece în urmatoarea stare. Un exemplu de astfel de strategie pleacă de la următorul algoritm. Cel mai important lucru este verificarea senzorilor de linie pentru a ști tot timpul dacă ne mai aflăm în ring sau e timpul să facem o manevră de evitare. După aceasta se verifică senzorii laterali pentru a ști sigur că adversarul nu se află în imediata apropiere. În caz că acesta este foarte aproape, motoarele se comandă astfel încât să se facă o întoarcere foarte rapidă către el. Nu în ultimul rând, cu senzorii din față se caută robotul adversar în ring prin diverse mișcări de rotire. Odată găsit, adversarul este urmărit și se încearcă scoatarea acestuia din ring prin împingere.
Exemplu de schemă bloc programare
Concluzie În acest articol am prezentat o abordare a construcției unui robot pentru competiții de Minisumo. Evident, asta nu impune ca toți roboții să urmeze aceeași structură. Oricine poate construi un robot după propria imaginație, poate chiar mai bun și eficient în competiții n 33
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
Programarea robotului RAPIRO
folosind Wyliodrin Imaginează-ţi cum ar fi să îți creezi propriul robot: să îl faci să meargă, să-şi mişte mâinile, să-şi rotească capul sau să-şi schimbe culoarea ochilor, totul folosind browser-ul preferat şi o plăcuţă Rasberry Pi. Acum acest lucru este posibil, folosind robotul RAPIRO şi Wyliodrin. Autori: Tătaru Miruna - tataru.miruna@yahoo.com Ioana Culic - ioana.culic@wyliodrin.com
Despre RAPIRO RAPIRO este robotul pe care toată lumea și-l dorea când era copil şi care poate fi programat cu mare ușurință. Robotul are 12 servo-motoare, unul pentru gât, unul la mijloc, patru pentru cele două picioare, și ultimele șase pentru cele două brațe. Ochii conţin două LED-uri RGB, astfel ei pot avea orice culoare. Cântăreşte 1 kg și are dimensiunile de 257mm × 196mm × 159mm când este asamblat. 34
Poate fi alimentat la priză sau poate funcţiona până la 90 de minute cu cinci baterii AA. Conform producătorului, RAPIRO a fost construit pentru a fi folosit de persoane care au peste 15 ani. RAPIRO este potrivit atât pentru cei cu experienţă în programare, cât și pentru începători. El vine cu o plăcuţă compatibilă cu Arduino și poate fi programat direct din IDE-ul specific Arduino. Plăcuța vine din
fabrică cu bootloader-ul de Arduino UNO. Ea este alătuită dintr-un microcontroler ATmega328P, 16 pini pentru a controla servo-motoarele, 2 pini I2C, 2 pini la care pot fi conectați senzori, astfel robotul poate primi informații din mediul înconjurător. Pe lângă aceștia, plăcuța se poate conecta la un Raspberry Pi folosind portul serial. În acest mod, robotul poate fi controlat într-un mod mai elaborat.
RAPIRO
Wyliodrin Wyliodrin este o platformă care permite programarea plăcuțelor precum Raspberry Pi la distanță, din browser-ul favorit: Google Chrome, Mozilla Firefox, Apple Safari sau Opera. Codul scris de programator în browser se stochează în Cloud şi ajunge direct pe plăcuţă. Programarea Vizuală Cu ajutorul programării vizuale, totul devine extrem de ușor de învățat. Se utilizează simboluri vizuale, asemănătoare cu piesele unui puzzle. Singurul efort necesar constă în aranjarea unor elemente grafice pe ecran aplicând un număr de reguli. Majoritatea limbajelor de programare vizuală se bazează pe sistemul de “cutii și săgeți”. Cutiile sunt entități, precum dreptunghiuri, cercuri, elipse. Aceste cutii sunt conectate prin săgeți sau linii, cunoscute sub numele de relații. Limbajul de programare vizual folosit de Wyliodrin se bazează pe Google Blockly, un limbaj care seamănă cu Scratch. Pe lângă blocurile implementate în Google Blockly, Wyliodrin aduce un număr mare de blocuri specializate pe electronică. În plus, există blocuri special concepute pentru a putea controla robotul RAPIRO. Blocurile sunt foarte intuitive, fiind facilă folosirea lor chiar de către copii. Pe site-ul Wyliodrin se găsește un tutorial despre cum pot fi folosite blocurile de programare vizuală
Electronica Azi HOBBY • Iulie, 2014 • Nr. 3
(https://projects.w yliodrin.com/wiki/ languages/visual). Blocurile generează cod în Python. Astfel, pe lângă ușurința de a scrie programe, se poate face o legătură între codul generat și efectul rezultat, facilitând învățarea programării. Cum să programezi RAPIRO folosind Wyliodrin Wyliodrin a creat blocuri special pentru a putea programa RAPIRO direct din browser (figura 1). Iată pașii necesari pentru a programa robotul folosind Wyliodrin.
de rețea și două porturi USB. Oricare dintre acestea pot fi utilizate pentru conectarea la internet, fie printr-un cablu Ethernet sau un adaptor WiFi. Ultimul pas pentru a pune în funcțiune robotul RAPIRO constă în realizarea alimentării: fie prin baterii, fie printr-un adaptor de 9V și 3A conectat la priză. Noi recomandăm folosirea de acumulatori. Următoarea etapă constă în programarea robotului prin Wyliodrin. Conectarea la site se poate realiza prin contul de Facebook, GitHub sau Gmail. Pentru a putea programa RAPIRO cu ajutorul blocurilor de programare vizuală, este necesară crearea unui nou proiect de tipul Visual Programming. Folosind blocurile specifice, RAPIRO se poate mișca. Poate merge cu faţa sau cu spatele, îşi poate mișca mâinile, capul, corpul stânga-dreapta, sau se poate opri. De exemplu, robotul poate fi programat pentru a direcționa traficul folosind programarea vizuală.
Figura 1 Sunt necesare următoarele: l RAPIRO l Raspberry Pi l Un adaptor WiFi pentru Raspberry Pi (opţional) l Un adaptor de 9V cu 3A (opţional) În pagina web a producătorului (www.rapiro.com) se găsește un tutorial complet despre cum se asamblează robotul. Înainte de finalizarea asamblării capului robotului, trebuie introdus un card SD, pe care a fost descărcată imaginea Wyliodrin în interiorul plăcuţei Raspberry Pi. Mai multe instrucțiuni cu privire la modul în care se realizează acest lucru se găsesc în tutorialul despre Raspberry Pi de pe siteul Wyliodrin (https://projects. wyliodrin.com/wiki/boards_setup/ raspberrypi). Pentru a utiliza RAPIRO cu Wyliodrin, robotul trebuie să aibă un Raspberry Pi atașat. Dacă plăcuța este conectată la internet, ea va fi capabilă să se conecteze la Wyliodrin și să transfere comenzile robotului. Pe partea din spate a capului acestuia se găsesc o conexiune
Figura 2 Întâi ochii se colorează în roșu și robotul va ridica mâna atunci când trebuie să oprească mașina. După aceea, ochii vor deveni verzi și își va mișca mâinile atunci când va semnala mărirea vitezei (figura 2). Concluzii În acest articol am prezentat ușurința cu care oricine poate să își construiască și să-și programeze un robot. Folosind programarea vizuală, am exemplificat cum controlarea unui robot precum RAPIRO devine facilă și chiar distractivă. Vă recomandăm parcurgerea tutorialelor de programare vizuală și realizarea de proiecte folosind blocurile puse la dispoziție pe platforma Wyliodrin pentru a vă familiariza cu acest concept. n 35