Sunteți pe pagina 1din 27

Proiect SCR ROBOT COMANDAT RC

Studenti: Alexandru-Daniel Ghidan Alexandru Dinca Marius-Stefan Moisa Coordonator: Conf. Dr. Ing. Adrian Popovici

Cuprins
1. Introducere 2. Scurt istoric despre roboti 3. Descrierea structurala 3.1 Descrierea Hard are 3.1.1 Arduino !no 3.1.2 Arduino "ro Mini 3.1.3 Receptorul si trans#itatorul radio 3.1.$ Dri%erul de #otoare 3.1.& 'it pentru robot 3.1.( )o*stic+ 3.2 Descrierea So,t are 3.2.1 Mediul de pro-ra#are 3.2.2 Biblioteca .irtual/ire 3.2.3 "ro-ra#ul de la recei%er 3.2.$ "ro-ra#ul de la trans#itter $.I#ple#entare practica &. Conclu0ii

1. Introducere. Pre"entul proiect are ca scop utili"area a doua platfor#e de de"voltare Arduino$ pentru trans#iterea si receptionarea unor grupuri de octeti$ si in functie de octetii pri#iti vo# actiona doua #otoare de current continuu carora sunt atasate roti pentru #o%ilitatea unui ro%ot. Pentru a co#anda cele doua #otoare si pentru protectia #icrocontrolerului se foloseste un driver de #otoare %a"at pe circuitul &!'(). Pentru progra#area celor doua #otoare dar si a ledurilor pre"ente pe ro%ot se foloseste placuta de de"voltare Arduino *no i#preuna cu un #odul de receptie radio ce functionea"a la frecventa u"uala de +,+ Mh"$ iar pentru generarea si trans#isia octetilor se foloseste un -o.stic/$ care este co#pus defapt din doua potensio#etre$ un #odul de trans#itere radio si placuta de de"voltare Arduino ProMini. Progra#area celor doua platfor#e de de"voltare se reali"ea"a intr-un li#%aase#anator cu C-ul$ Arduino Soft0are. In ur#atoarele capitole se va detalia structura ro%otului$ dar si a progra#elor folosite.

2. Scurt istoric despre roboti

*n robot este este un operator #ecanic sau virtual$ artificial. Ro%otul este un siste# co#pus din #ai #ulte ele#ente: #ecanic1$ sen"ori i actori precu# i un #ecanis# de direcionare. Mecanica sta%ilete 2nf1iarea ro%otului i #ic1rile posi%ile pe ti#p de funcionare. Sen"orii i actorii sunt 2ntre%uinai la interacia cu #ediul siste#ului. Mecanis#ul de direcionare are gri-1 ca ro%otul s1-i 2ndeplineasc1 o%iectivul cu succes$ evalu3nd de exe#plu infor#aiile sen"orilor. Acest #ecanis# reglea"1 #otoarele i planific1 #ic1rile care tre%uiesc efectuate. 4ot 5ro%ot6$ prescurtat 5%ot6$ pot fi nu#ite progra#e 7soft0are8 de calculator care 2ndeplinesc auto#at anu#ite funcii sau operaiuni. Astfel de ro%oi sunt virtuali$ i nu #ecanici. Terminologie Sensul cuv3ntului s-a schi#%at de-alungul ti#pului. 4er#enul ro%ot

7din ceh1 robot8 a fost utili"at de 9osef :ape/ i ;arel :ape/ 2n lucr1rile lor de science fiction la 2nceputul secolului !<. Cuv3ntul robot este de origine slav1 i se poate traduce prin: #unc1$ clac1 sau #unc1 silnic1. ;arel :ape/ a descris 2n piesa sa R.*.R. din anul '! #uncitori de ase#1nare u#an1$ care sunt crescui 2n re"ervoare. :ape/ folosete 2n lucrarea sa #otivele clasice de gole#. Denu#irea de ast1"i a creaturilor lui :ape/ este de android. =naintea apariiei ter#enului de ro%ot s-au utili"at de expe#plu 2n u"inele lui Stanis>a0 &e#ter#enii auto#at i se#iauto#at. Robotic Apariia deas1 a ro%oilor 2n fil# i literatur1 a atras atenia tiinei asupra acestui tip de #aini. Do#eniul tiinific$ care se ocup1 de construcia ro%oilor se nu#ete ro%otic1. 4er#enul a fost folosit pentru pri#a dat1 2n '+! de Isaac Asi#ov 2n cartea sa$ Runaround. *n do#eniu general teoretic tiinific$ care se ocup1 de ro%oi$ nu exist1. Acestea sunt #ai ales su%do#enii ale infor#aticii.

Te1nica de ba02 Ro%oii sunt reali"ai #ai ales prin co#%inaia

disciplinelor: #ecanic1$ electrotehnic1 i infor#atic1. =ntre ti#p s-a creat din leg1tura acestora #ecatronica. Pentru reali"area de siste#e autono#e 7care s1 g1seasc1 singure soluii8 este necesar1 leg1tura a c3t #ai #ultor discipline de ro%otic1. Aici se pune accent pe leg1tura conceptelor de inteligen1 artificial1 sau neuroinfor#atic1 7parte a infor#aticii8 precu# i idealul lor %iologic %ioci%ernetic1 7parte a %iologiei8. Din leg1tura 2ntre %iologie i tehnic1 s-a de"voltat %ionica. Cele #ai i#portante co#ponente ale ro%oilor sunt sen"orii$ care per#it #o%ilitatea acestora 2n #ediu i o diri-are c3t #ai precis1. *n ro%ot nu tre%uie neap1rat s1 poat1 s1 acione"e autono#$ fapt pentru care se distinge 2ntre ro%oii autono#i i cei teleghidai.

(< 9oseph 9ac?uard inventea"a o #asina de produs textile operata de cartele perforate. '!< 4er#enul de Ro%ot a fost introdus pentru pri#a data de ;arel Cape/ in piesa @R.*.R.A or ARossu#Bs *niversal Ro%otsA. ',( Cillard Pollard si Darold Roselund reali"ea"a o #asina de vopsit progra#a%ila. ',' Pri#ul ro%ot construit a fost Electro si era insotit de un ciine ro%ot: Spar/o. Ei au fost pre"entati la Expo"itia Mondiala din )e0 For/ din ','. Electro spunea GG de cuvinte si se putea #isca inainte si inapoi. '+ Isaac Asi#ov a inceput sa scrie despre ro%oti. '+H George Devol patentea"a Aa pla.%ac/ device for controlling #achines A '+( )or%ert Ciener$ profesor la M.I.4.$ pu%lica C.%ernetics 'I *n %rat diri-at de la distanta este facut de Ra.#ond Goert" pentru Ato#ic Energ. Co##ission.

'I+ Pri#ul ro%ot progra#a%il este construit de George Devol. *ni#ation$ devine pri#a co#panie de produs ro%oti. 'I' Planet Corporation devine pri#a co#panie ce produce ro%oti pentru productie. 'H! General Motors instalea"a pri#ul ro%ot pe o linie de asa#%lare a auto#o%ilelor. 'HG 9aponia i#porta pri#ul ro%ot. 'G, Pri#ul ro%ot controlat de un #inico#puter este reali"at de Richard Dohn for Cincinnati Milacron Corporation. Ro%otul este denu#it 4,$ 4he 4o#orro0 4ool. 'GH Jrate atriculate ro%otice sint folosite de pro%ele spatiale Ki/ing ro%ot. ''G P, L ro%ot hu#anoid reali"at de Donda Motor Co. cu#parat pe internet pentru nu#ai..!I<< de M !<<< ASIMN L ro%ot hu#anoid reali"at de Donda. Tipuri de roboi 4er#enul de robot descrie un do#eniu destul de vast$ cau"1 din care ro%oii sunt sortai 2n #ulte categorii. Iat1 c3teva din acestea:

si Ki/ing !.

'(< Incepe practic explo"ia industriala ro%otica. Practic in fiecare luna apare cite un nou

Ro%ot autono# #o%il Ro%ot u#anoid Ro%ot industrial Ro%ot de servicii Ro%ot -uc1rie Ro%ot explorator Ro%ot p1itor JEAM Ro%ot #ilitar

Robo3i 1ibri0i Glo%al Da0/

A fost %ote"at ASouthern Cross IIA in cinstea avionului Southern Cross$ pri#ul avion care a "%urat intre Australia si S*A in '!(. )u#ele real este insa Glo%al Da0/ si are o anvergura a aripilor #ai #are decit cea a unui Joeing G,G. Glo%al Da0/ a costat GI< de #ilioane de M 7pretul unui avion de pasageri gen Joeing G,G este de aprox. << de #ilioane de M8. Acest avion nu are nici un o# la %ord. Avionul este teleco#andat de la sol$ fiind un hi%rid intre un ro%ot si o #asina teleco#andata. Pe !+ Aprilie !<< Glo%al Da0/ a "%urat singur$ traversind Pacificul fiind pri#ul avion teleco#andat care a reali"at o ase#enea perfor#anta. A "%urat la aproape !< de /# inalti#e 7cursele de pasageri "%oara la aprox. < /# altitudine8 pe o distanta de peste ,.<<< de /#. Si a -uns in *SA cu + #inute #ai devre#e$ decit a fost planificat. Punctul de decolare a fost in Adelaide$ Australia. Avionul a fost construit de )orthrop Gru##an Corporation. Robo3i 4n spa3iu DART Testbed7 DAR4 a fost pri#a 2ncercare de de"voltare a ro%oOilor pentru a a-uta oa#enii 2n efectuarea activit1Oilor spaOiale. DePi$ Ro%onautul a 2nlocuit DAR4-ul$ totuPi DAR4ul este 2nc1 utili"at pentru testarea co#ponentelor. 5De6terous Ant1ropo#orp1ic Robotic

Robonaut )ASA a reali"at ur#atoarea generatie de ro%oti$ pentru lucrul in Spatiul Cos#ic. Denu#it Ro%onaut$ este teleco#andat de la distanta de un tehnician$ avind ca ter#inal o sofisticata pereche de ochelari ce-i dau o vi"iune

panora#ica. Qiecare %rat are I< de sen"ori si siste#ul de co#puter centrali"at aran-ea"a o coordonare stinga$ dreapta. De ase#enea are o putere autono#a de a invata si perfectiona diferite sarcini. In Mai si Iunie !<<, )ASA a declarat ca va lansa doua #isiuni spre Marte. )avele vor A a#arti"aA la suprafata planetei Rosii utili"ind acelasi siste# de saci cu aer ca in ca"ul #isiunii Pathfinder din ''G. A-unsi pe Marte cei doi ro%oti vor stra%ate aproxi#ativ << de # pe "i. Pe + Iunie !<<, )ASA va lansa un alt ro%ot care va cauta ur#e de apa la suprafata planetei. Ro%otul Cater-Sniffing Rover &ansat de o racheta tip Delta !$ ro%otul va intra in at#osfera #artiana pe !< Ianuarie !<<+. Ro%otul nu#it ACater-Sniffing RoverA va fi activ aproxi#ativ '< de "ile. Robot pentru care -1eata nu e o piedica R!<<!-< - IS Ro%otul nu#it Cr.o%ot$ este cea #ai noua descoperire a lui )ASA$ si ar putea fi$ folosit la explorarea partilor inghetate de pe Marte sau a cavitatii dintre crusta de gheata si satelitul lui 9upiter nu#it Europa. El culege date si infor#atii despre su%suprafetele oceanelor$ pri#ul sau test avand un adevarat succes. Acest test$ a inse#nat$ co%orarea la !, de #etri a ro%otului intr-un ghetar de pe Insula Spits%ergen$ unul dintre Insulele Sval%ard din cercul Arctic$ acest test constand in explorarea la adanci#e in gheata prin forare$ extragandu-se o #ostra din #ie"ul suprafetei. Ro%otul Cr.o%ot foloseste apa fier%inte si forta gravitatiei pentru a patrunde in aceasta gheata. Ro%otul$ #asoara un #etru si ! centi#etri$ este conectata la un echipa#ent ce se afla la suprafata si care o ali#entea"a cu energie electrica. "INO$ prietenul electronic 9apone"ii lansea"a ro%otul personal PI)N. Ro%otul PI)N are urechi cenusii$ un nas lung #etalic$ #erge cu dificultate si nu poate vor%i$ insa a fost de-a populari"at intrun videoclip$ #arcind nasterea unei noi generatii de ro%oti de co#panie. Co#pania

-apone"a TMP Inc l-a pre"entat pu%licului pe si#paticul ro%ot u#anoid$ sperind ca PI)N sa devina in scurt ti#p o pre"enta o%isnuita in casele oa#enilor. )u#ele si nasul ro%otului a fost inspirat din cele%ra poveste pentru copii Pinocchio. Predecesorii sai sint ro%otul u#anoid ASIMN$ creat de co#pania -apone"a Donda Motor Co$ si AIJN$ al co#paniei Son. CorpBs. Desi PI)N$ care are o inalti#e de G< c# si e activat de un cip Pentiu# III G,, Mh"$ nu poate face deoca#data prea #ulte lucruri$ specialistii co#paniei TM4 spera ca aspectul sau prietenos sa cree"e o pre#isa pentru de"voltarea viitoarei generatii de ro%oti care pot interactiona cu oa#enii. Co#pania esti#ea"a ca PI)N va produce vin"ari de circa I< de #ilioane de .eni 7+<<.<<< de dolari8 in pri#ul an$ ro%otul fiind lansat pe piata la pretul de ( #ilioane de .eni 7H+.,I< de dolari8.

Neuroelectronica 54otul are un aer de science-fictionU6 L sunt cuvintele folosite chiar de cercetatorii care au facut posi%ila aceasta sen"ationala reali"are a stiintei si tehnicii 2nceputului de secol VVI. Se poate spune ca neuroelectronica s-a nascut cu adevarat 2n #o#entul 2n care Peter Qro#her" si GWnther Tec/$ de la Institutul de Jiochi#ie 5Max Planc/6 din MWnchen$ au plasat o serie de celule nervoase de #elc pe un cip de siliciu$ fix3ndu-le cu un fel de 5cuie6 de plastic. Re"ultatul a fost ca$ drept consecinta$ celulele din vecinatate au 2nceput sa sta%ileasca conexiuni 2ntre ele si cu cipul 2nsusi. Aceasta co#%inatie de celule nervoase si cipuri este fara 2ndoiala revolutionara$ 2ntruc3t poate duce 2n final la adevarate i#planturi 5neuroprostetice6$ care sa poata 2nlocui portiuni deteriorate de tesut nervos. Ca sa nu #ai vor%i#$ pe de alta parte$ despre perspectivele care se deschid pentru o noua generatie de calculatoare avansate$ care sa 5#i#e"e6 circuitele vii L circuite care... pot 2nvataU 86e#ple Roboinsectele Pot "%ura$ 2nota sau #erge 2n grup co#pact pe un dru# drept. Se str3ng unul l3nga altul si 2#preuna pot escalada orice o%stacol. Kor putea veni 2n a-utorul oa#enilor oric3nd si oriunde$ de la o si#pla constructie p3na la cele #ai riscante si i#posi%ile operatiuni de salvare. Aceasta va fi noua generatie de ro%oti aflata 2n studiu 2n

'

la%oratoarele Politehnicii din &ausanne$ Elvetia$ su% conducerea lui Dario Qloreano. Exe#plul este cel al stolurilor de pasari$ al roiurilor de furnici si de al%ine sau al %ancurilor de pesti. Inteligenta individuala este AprelungitaA$ a#plificata$ 2n inteligenta de grupU Cu# altfel ar putea al%inele sau #ai ales ter#itele sa reali"e"e uluitoarele constructii pe care le cunoaste#X Caci aceasta capacitate nu este 2nscrisa 2n genele lor$ este$ cu# se spune$ o Aproprietate e#ergenta si colectivaA... Qloreano a construit ro%oti dotati cu... cod genetic: fiecare AindividA este dotat cu o secventa unica de %itiU Si se co#porta 2ntr-un #od specific$ dupa cu# este A2nscrisA 2n "estrea lor genetico-electronicaU Mai #ult$ lor li se i#ple#entea"a Ao #inteA$ un progra# - o neuroretea - care si#ulea"a co#porta#entul celulelor nervoase. =n felul acesta$ ro%oinsectele pot 2nvata$ pot genera spontan un co#porta#ent de grup$ pot deveni parteneri indispensa%ili pentru noi$ oa#enii. N caracteristica a noii generatii de ro%oti este 2nalta pro%a%ilitate de de"voltare a unui co#porta#ent 2n care interesul personal este sacrificat 2n favoarea interesului de grupU Ca si furnicile$ de pilda$ care renunta la transportul unei sarcini usoare pentru a se ase"a alaturi de AcolegeleA lor transport3nd greutati uneori i#ense$ dar utile 2ntregului furnicar.

.e1icule inteli-ente Dean Po#erleau a pre"entat re"ultatele cercetYrii colectivului de AI de la Carnegie Mellon 2n do#eniul Avehiculelor inteligenteA. Siste#ul lor a fost 2ncYrcat 7la propriu8 2ntr-o du%itY ce a parcurs distanta de !(I< #ile 7circa +(<< /#8 dintre Cashington$ DC si San Diego 7California8. Este de-a dreptul uluitor faptul cY '($!Z din distantY a fost condusY de pilotul auto#at$ fYrY nici un a-utor din partea Afactorului u#anAU )oul siste# de Avi"iune adaptivYA nu#it RA&PD 7ARapidl. Adapting &ateral Position DandlerA8 a fost capa%il sY se descurce perfect 2n aproape toate conditiile: condus pe "i sau pe noapte$ pe ploaie sau soare$ la apus sau la rYsYritU QYrY nici un fel de

<

pro%le#e$ pilotul auto#at a fost capa%il sY efectue"e depYsiri dificile$ sY pYstre"e o distantY Ade sigurantYA fatY de ceilalti participanti la trafic$ si AsY se asigureA 2nainte de a schi#%a %andaU Pe tot parcursul au existat douY pro%le#e reale: pe o %ucatY de autostradY proaspYt asfaltatY nu erau trasate liniile de de#arcatie si atunci siste#ul As-a prostitA$ iar 2n traficul Ane%unA de l3ngY San Diego autorii siste#ului au preferat sY preia Aco#anda #anualYA 7dar sY nu credeti cY 2n A%ala#uculA retelei de autostrY"i californiene e #ult #ai sigur sY tii volanul Acu #3na taAU8. Evident$ siste#ul nu e perfect$ pe #o#ent nu conduce dec3t pe autostrY"i$ si$ 2n plus$ de c3te ori AvedeA un AexitA are tendinta sY iasY de pe autostradY. Dar aceasta din ur#Y pro%le#Y a fost re"olvatY Adin "%orA printr-un siste# auto#at de #ascare a exit-urilor AnerelevanteA 2ntr-o #anierY ase#YnYtoare cu solutia Aochelarilor de calA. Dezvoltarea pe viitor =n !<<+ au fost ! #ilioane de ro%oi 2n u"$ pe c3nd doar pentru anul !<<( se ateapt1 G #ilioane de instalaii noi. *niunea European1 susine financiar lucr1rile din cercetare$ care p3n1 2n !< < ar putea per#ite ca ro%oii s1 fie introdui 2n spitale 2n activit1i si#ple$ ca de exe#plu: transporturi de paturi 2n spital$ livrarea #3nc1rii$ salu%ri"are. P3n1 la sf3ritul lui !<<( va fi de"voltat un ro%ot$ care s1 a-ute la recoltarea live"ilor.

3. Descrierea structurala 3.1 Descrierea Hard are 3.1.1 Arduino !no *no Arduino este o placa #icrocontroler %a"at pe A4#ega,!(. Are + pini digitali de intrare[iesire7 dintre care H pot fi utili"ati ca iesiri PCM8$ H intrari analogice$ un oscilator cu cristal de H MD"$ o conexiune *SJ$ un -ac/ de putere$ ICSP$si un %uton de reset. A*noA 2nsea#n1 unul 2n li#%a italian1 Pi este nu#it pentru a #arca lansarea viitoare de Arduino .<. *no Pi versiunea .< vor fi versiunile de referinO1 ale Arduino. *no este ulti#ul dintr-o serie de placi Arduino cu interfata *SJ$ Pi #odelul de referinO1 pentru platfor#a Arduino. Microcontroller Nperating Koltage Input Koltage 7reco##ended8 Input Koltage 7li#its8 Digital I[N Pins Analog Input Pins DC Current per I[N Pin DC Current for ,.,K Pin Qlash Me#or. SRAM EEPRNM Cloc/ Speed 3.1.2 Arduino "ro Mini Arduino ProMini este o placa de de"voltare %a"ata pe A4MEGA H(. Ea are A4#ega,!( IK G- !K H-!<K + 7of 0hich H provide PCM output8 H +< #A I< #A ,! ;J 7A4#ega,!(8 of 0hich <.I ;J used %. %ootloader ! ;J 7A4#ega,!(8 ;J 7A4#ega,!(8 H MD"

+ pini digitali de intrare [ iePire 7din care H pot fi utili"ati ca iePiri PCM8$ H intrari analogice$ un re"onator pe placa$ un %uton de resetare$ Pi g1uri pentru pini conectori. Arduino Mini Pro este destinat pentru instalari se#i-per#anente$ scop pentru proiectare. Placa in sine nu este preva"uta cu conectori$ de aceea se lasa la latitudinea utili"atorului alegerea interfetei de conectare. Exist1 dou1 versiuni de Mini Pro. *na rulea"a la ,$, K Pi ( MD"$ ceal1lalta la IK Pi H MD". Microcontroller Nperating Koltage Input Koltage 7reco##ended8 Input Koltage 7li#its8 Digital I[N Pins Analog Input Pins DC Current per I[N Pin DC Current for ,.,K Pin Qlash Me#or. SRAM EEPRNM Cloc/ Speed A4#ega,!( IK G- !K H-!<K + 7of 0hich H provide PCM output8 H +< #A I< #A ,! ;J 7A4#ega,!(8 of 0hich <.I ;J used %. %ootloader ! ;J 7A4#ega,!(8 ;J 7A4#ega,!(8 H MD"

Pentru progra#area acestei placute$ a# folosit o placa Q4DI careia i-a# adaugat H pini pentru lipirea la Arduino ProMini.

3.1.3 Trans#itatorul Radio $3$ MH0 Este un #odul Rf foarte folositor si usor de utili"at. Are aplica%ilitate in ur#atoarele: trans#isie de date 0ireless$ -o.stic/ 0ireless$ teleco#en"i$ -ucarii co#andate 0ireless$ chei de la #asini$ auto#ati"area casnica$ etc

Caracteristici:

Receptorul Radio $3$ MH0 Qunctionea"a in pereche cu trans#itatorul radio$ fiind folosit la aceleasi aplicatii. Caracteristici:

3.1.$ Dri%erul de #otoare *n driver de #otoare se %a"ea"a pe o punte D$ astfel incat atunci cand co#anda# doua tran"istoare actione"e anu#ita #otorul$ actiona# celelalte doua sa se poata invarti #otorul in cealalta directie iar sa se intr-o directie cand

DRIKER MN4NARE ! AMPERI 4IP SDIE&D 7&!'()8$ ASAMJ&A4: Ja"at pe circuitul &!'()$ acest driver de #otoare poate co#anda ! #otoare de curent continuu$ curent #axi# ! a#peri. Driverul este co#plet asa#%lat su% for#a unui shield Arduino$ facilitand astfel utili"area si#pla. Conectarea la Arduino se face cupland placa shield peste placa Arduino si conectand pinii #arcati KI) si G)D la sursa de ali#entare pentru #otoare. Pinii PCM care controlea"a driver-ul &!'( sunt ,$ I$ H si ' . Cele doua #otoare se conectea"a in pinii cu suru% #arcati AMN4NR A si AMN4NR!A$ iar ali#entarea pentru #otoare se conectea"a la pinii cu suru% #arcati AKI)A si AG)DA. Pentru suportul si accesorii necesare infaptuirii fi"ice a

ro%otului a# folosit un /it de ro%ot$ ce contine scheletul ce tre%uie asa#%lat pentru a sustine co#ponentele dar si pentru a a-uta la loco#otive.

3.1.& 'it pentru robot ;itul de ro%ot /it are incluse doua #otoare de curent continuu !<: tip Pololu$ ! roti special reali"ate pentru aceste #otoare$ o roata de spri-in #etalica si tot setul de conectori$ suru%uri si piulite necesari pentru #onta- co#plet.

Acest /it contine doar #otoarele$ rotile$ platfor#a sasiu$ roata de spri-in #etalica$ placile pentru platfor#a si ele#entele de #onta-.

3.1.6 Joystick 9o.stic/ul pre"ent este folosit pentru a #anevra ro%otul$ continand doua potensio#etre$ cate unul pentru fiecare axa. Kaloarea citita este un nu#ar intre < si <!,$ in functie de acest nu#ar facandu-se anu#ite operatii. Acestuia pentru o si#pla functionalitate i-a# atasat un shield.

3.2 Descrierea So,t are 3.2.1 Mediul de pro-ra#are Mediul de de"voltare a progra#elor arduino este unul si#plu$ dar in acelasi ti#p si foarte util$ avand posi%ilitatea si de progra#are grafica in #ediul de de"voltare Processing. Interfata este una usoara si setarile aferente functionarii se setea"a rapid si foarte si#plu$ singurele care tre%uie facute fiind setarea portului la care este pre"enta placuta de de"voltare si tipul placii de de"voltare. Este disponi%il pentru \ Cindo0s \ Mac NS V \ &inux: ,! %it$ H+ %it

3.2.2 Biblioteca .irtual/ire KirtualCire este o %i%liotec1 de co#unicare pentru Arduino$ care per#ite cai #ultiple de a co#unica folosind e#iO1toare Pi receptoare radio de preturi reduse. KirtualCire este o %i%liotec1 care ofer1 funcOii pentru a tri#ite #esa-e scurte$ fara adresare$ retrans#itere sau confir#are. Pentru a%ordarea proiectului a# folosit doar cateva din functiile i#ple#entate aici: v0]setup 7setarea vite"ei de trans#isie8$ v0]rx]start 7pornirea receptiei8$ v0]0ait]tx 7asteptare pana se tri#ite intreg #esa-ul8$ v0]send7tri#iterea #esa-ului8. Kite"a reco#andata pentru tri#iterea #esa-elor este de !<<< de %iti pe secunda$ pentru a asigura o co#unicare fara erori.

3.2.3 "ro-ra#ul de la recei%er Pentru progra#area placii de de"voltare careia ii sunt atasate #otoarele si + leduri pentru a arata directia de #ers$ s- a pornit de la cateva progra#ele esentiale pentru progra#ul final$ cu# ar fi$ aprinderea unui led$ co#andarea unui #otor$ receptarea unui #esa- pri#it de la trans#itator. Cu Arduino$ aprinderea unui led si intar"ierea acestuia este relative si#pla$ deoarece functiile folosite au un nu#e usor de retinut si sunt foarte usor de inteles.

Ex: int led ^ ,_ [[se declara pinul afferent ledului

void setup78 [[functia principala de setare a pinilor ` pinMode7led$N*4P*48_[[ drept output sau input a void loop78 [[corpul %uclei repetitive ` digitalCrite7led$DIGD8_ [[scrierea valorii de high adica on dela.7I<<8_ [[intar"ierea de I<< de #ilisecunde digitalCrite7led$&NC8_ [[scrierea valorii de lo0 adica off dela.7I<<8_ a Daca #ai sus progra#ul a folosit doar scrierea unor valori logice de Digh sau &o0$ pentru #otoare folosi# scrierea analogical a unui se#nal PCM. Ex. int M ] ^ ,_ [[se declara pinii aferenti #otoarelor int M ]! ^ I_ [[pentru fiecare #otor folosi# doi pini pentru a putea da int M!] ^ H_ [[ o directie int M!]! ^ '_ void setup78 ` pinMode7M ] $ N*4P*48_[[declara# pinii ca fiind de tip output pentru pinMode7M ]!$ N*4P*48_[[ca acolo vo# scrie valorile pinMode7M!]!$ N*4P*48_ pinMode7M!] $ N*4P*48_ a

void loop78 `

analogCrite7M ] $<8_[[pentru ca #otorul sa se roteasca analogCrite7M ]!$!II8_[[in directia dorita analogCrite7M!] $<8_[[vo# face ca la un pin sa fie valoarea analogCrite7M!]!$!II8_[[dorita de noi de la la !II a [[si la celalalt pin valoarea < pentru [[ a putea roti #otorul intr Lo anu#e [[ [[ directie

Pentru a putea co#anda ro%otul de la distanta ave# nevoie de un progra#el pe %a"a caruia vo# recepta anu#ite valori sau #esa-e de la trans#itator. Progra#ul ur#ator doar pri#este un si#plu #esa- de la trans#itator. binclude cKirtualCire.hd [[includerea %i%liotecii din care void setup78 ` Serial.%egin7'H<<8_ Serial.println7AsetupA8_ v0]setup7!<<<8_ [[ Jits per sec v0]rx]start78_ a void loop78 ` uint(]t %ufRKC]MAV]MESSAGE]&E)S_ [[vectorul #esa- pri#it uint(]t %uflen ^ KC]MAV]MESSAGE]&E)_ [[lungi#ea vectorului aferent if 7v0]get]#essage7%uf$ e%uflen88 [[ in ca" de pri#ire #esa` int i_ [[ afisa# co#ponentele vectorului Serial.print7AGot: A8_ for 7i ^ <_ i c %uflen_ iff8 ` ' [[ pornirea P&& de la reciever [[fac parte functiile folosite pentru [[trans#itere si receptie [[pornirea co#unicatii seriale$ pentru [[afisare

Serial.print7%ufRiS8_ Serial.print7A A8_ a Serial.println7AA8_ [[ter#inarea afisarii unei linii aa

Progra#ul de la receptie final sufera putine #odificari deoarece grupurile de octeti pri#ate le vo# face sa fie inapoi nu#ere si ledurile pre"ente pe ro%ot se vor aprinde in functie de cu# va #erge ro%otul.

binclude cKirtualCire.hd [[includerea %i%liotecii cu functiile pentru receptie int M ] ^ ,_ int M ]! ^ I_ int M!] ^ H_ int M!]! ^ '_ void setup78 ` pinMode7G$N*4P*48_ [[declararea tipului pentru fiecare pin utili"at pinMode7($N*4P*48_ pinMode7 !$N*4P*48_ pinMode7+$N*4P*48_ pinMode7M ] $ N*4P*48_ pinMode7M ]!$ N*4P*48_ pinMode7M!]!$ N*4P*48_ pinMode7M!] $ N*4P*48_ Serial.%egin7'H<<8_ v0]setup7!<<<8_ v0]rx]start78_ a !< [[ Jits per sec [[ Pornirea P&& de la reciever [[declararea pinilor pentru cele doua #otoare

void loop78 ` ` %.te te#pRKC]MAV]MESSAGE]&E)S_ [[declara# vectorul de octeti pri#iti %.te te#plen ^ KC]MAV]MESSAGE]&E)_ [[precu# si lungi#ea sa if 7v0]get]#essage7te#p$ ete#plen88 [[in ca" ca #esa-ul de octeti s-a pri#it ` int x$._ digitalCrite7 ,$ true8_ [[aprinde# ledul de pe placa pentru a arata ca s-a pri#it [[reface# nu#erele citite de la cele [[doua potensio#etre [[afisa# cele doua nu#ere sa vede# [[daca sunt ca cele de la trans#itere x^ 7te#pR S cc (8 g te#pR<S_ .^ 7te#pR,S cc (8 g te#pR!S_ Serial.print7x$DEC8_ Serial.print7A A8_ Serial.println7.$DEC8_ if 7.d'<<8 ` analogCrite7M ] $<8_ analogCrite7M ]!$!II8_ analogCrite7M!] $<8_ analogCrite7M!]!$!II8_ digitalCrite7G$&NC8_ digitalCrite7($&NC8_ digitalCrite7+$&NC8_ digitalCrite7 !$DIGD8_ a else if 7.c <<8 `analogCrite7M ] $!II8_ analogCrite7M ]!$<8_ analogCrite7M!] $!II8_ analogCrite7M!]!$<8_ [[in functie de axele x si . [[vo# face ro%otul sa se #iste fata[spate$ sau sa se r [[roteasca stanga dreapta [[in functie de directia aleasa vo# aprinde [[unul din cele patru leduri pre"ente [[x si . sunt nu#ere cuprinse intre < si <!, [[de aceea alege# o #ar-a de eroare sufficient de [[#are pentru a putea efectua operatiile dorite [[ initiali"a# cele doua axe

digitalCrite7G$&NC8_ digitalCrite7($&NC8_ digitalCrite7+$DIGD8_ digitalCrite7 !$&NC8_ a else if 7xd'<<8 `analogCrite7M ] $<8_ analogCrite7M ]!$!II8_ analogCrite7M!] $!II8_ analogCrite7M!]!$<8_ digitalCrite7G$DIGD8_ digitalCrite7($&NC8_ digitalCrite7+$&NC8_ digitalCrite7 !$&NC8_ a else if 7xc <<8 `analogCrite7M ] $!II8_ analogCrite7M ]!$<8_ analogCrite7M!] $<8_ analogCrite7M!]!$!II8_ digitalCrite7G$&NC8_ digitalCrite7($DIGD8_ digitalCrite7+$&NC8_ digitalCrite7 !$&NC8_ a else `analogCrite7M ] $<8_ analogCrite7M ]!$<8_

!!

analogCrite7M!] $<8_ analogCrite7M!]!$<8_ digitalCrite7G$&NC8_ digitalCrite7($&NC8_ digitalCrite7+$&NC8_ digitalCrite7 !$&NC8_ a a a a

3.2.3 "ro-ra#ul de la trans#itter Progra#ul pentru trans#iterea varia%ilelor in functie de care vo# face operatiile dorite$ se %a"ea"a pe doua progra#ele #icute. *nul care citeste valorile de la cele doua potensio#etre$ si unul care trans#ite datele. Pri#ul progra# doar citeste de la un potensio#etru valoarea pe care acesta o trans#ite. int analog^ _ [[declararea pinului analogic void setup78 ` pinMode7analog$I)P*48_ Serial.%egin7'H<<8_ a void loop78 ` Serial.println7analogRead7analog88_ [[afisa# ceea ce pri#i# de la dela.7 <<<8_ [[potensio#etru si ur#atoarea valoare o afisa# [[declararea lui ca intrare [[incepe# afisarea

!,

[[dupa o secunda Cel de-al doilea progra# tri#ite un si#plu #esa-.

binclude cKirtualCire.hd [[includerea %i%liotecii cu functiile aferente void setup78 ` v0]setup7!<<<8_ [[ Jits per sec a void loop78 ` const char h#sg ^ AhelloA_ [[#esa-ul care vre# sa-l trans#ite# v0]send77uint(]t h8#sg$ strlen7#sg88_ a [[pentru a tri#ite$ ave# dela.7+<<8_ [[nevoie de vectorul de caractere$ dar si lungi#ea sa

Progra#ul final are unele retusuri datorita citirii de la potensio#etre Si aceste nu#ere scriindu-se pe < %iti$ nu pute# trans#ite pe ( %iti acest nu#ar$ de aceea vo# i#parti nu#arul in doua siruri de %iti.

binclude cKirtualCire.hd [[includerea %i%liotecii pentru functii void setup78 ` Serial.%egin7'H<<8_ [[ inceperea afisarii Serial.println7AsetupA8_ v0]set]ptt]inverted7true8_ [[ inceperea trans#isiei #esa-ului v0]setup7!<<<8_ a [[ Jits per sec

!+

void loop78 ` char axisRHS_ [[declara# un vector #axi# pentru cati octeti vo# avea int x^analogRead7!8_ [[citi# cele doua axe de la potensio#etre int .^analogRead7<8_ Serial.print7x8_ Serial.print7A A8_ Serial.println7.8_ %.te lo0erJ.te ^ 7x e <xQQ8_ [[ i#parti# cele doua nu#ere in doi %.te upperJ.te ^7x dd(8_ %.te upperJ.te!^7. dd(8_ axisR<S^lo0erJ.te _ axisR S^upperJ.te _ axisR!S^lo0erJ.te!_ axisR,S^upperJ.te!_ ` v0]send77uint(]t h8axis$ si"eof7axis88_ [[trans#ite# vectorul$ v0]0ait]tx78_ [[ #ari#ea sa in octeti$ si se asteapta pana se digitalCrite7 ,$ false8_[[tri#ite tot #esa-ul a a [[initiali"a# co#ponentele vectorului [[ octeti pentru a putea pune octetii %.te lo0erJ.te! ^ 7. e <xQQ8_ [[ in vector [[afisa# cele doua valori

$.I#ple#entare practica

!I

I#ple#entarea practica a ro%otului s-a facut progresiv$ pornind de la testarea tuturor co#ponentelor prin testarea lor soft0are$ si apoi asa#%larea ca si un intreg. 4estarea lor soft0are s-a facut prin co#pilarea #icilor progra#e descries intr-un capitol anterior$ testandu-se functionarea in para#etrii nor#ali descrisi in foaia de catalog de la producator. Pentru ca totul sa fie #ai usor si reutili"a%il a# folosit doua #ini %read%oard-uri. Sunt instru#ente foarte practice pentru a infaptui circuite fara a fi nevoie de lipituri. Atat partea ce constituie teleco#anda siste#ului cat si partea de circuit de la ro%ot au fost i#ple#entate pe doua %read%oard-uri.

4eleco#anda reali"ata cu a-utorul unui -o.stic/ si un Arduino Pro Mini In cele din ur#a re"ultatul final folosind drept ali#entare pentru driverul de #otoare doua %aterii de ' K legate in parallel$ si pentru Arduino o singura %aterie de 'K.

Arduino plus driverul de #otoare asa#%late pe /itul de ro%ot.

!H

&. Conclu0ii Pre"entul proiect are ca scop initierea in progra#area Arduino$ care este un #ediu destul de usor de progra#at. De la acest lucru a# incercat trans#iterea unor anu#ite valori intregi prin inter#ediul unor #odule RC. In functie de valorile tri#ise face# co#anda unor #otoare. 4oate co#ponentele electrice au fost asa#%late correct pentru functionarea corecta a siste#ului. Aceasta functionalitate a fost de#onstrata prin functionarea corecta a progra#elor i#ple#entate in placutele de de"voltare$ dar si trans#iterea corecta a datelor..

!G

S-ar putea să vă placă și