Sunteți pe pagina 1din 46

Robot mobil deplasat prin comenzi vocale

Propus de Departamentul Electronic, Telecomunicaii i Inginerie Energetic ca Lucrare de Licen

la Facultatea de Inginerie Electric Universitatea VALAHIA din T rgovi!te

susinut de Specializarea - Electronic aplicat septembrie 17, !1"

"imion Alin #ezar

S#PE$%I&'T( DE dr)ing) con*) +E,$I - .E/$.E 0/',D(

$eproducerea se poate *ace doar cu permisiune din partea autorului

Facultatea de Inginerie Electric

Facult$ o% Electrical Engineering

"imion Alin #ezar


'#T/$ 1#0$'$E 2 '#T+/$ /3 T+ESIS

Inginer &'("c()
.$'D 2 DE.$EE

Inginerie Electronic !i Telecomunicaii


D/4E,I# 2 D/4'I,E

Robot mobil deplasat prin comenzi vocale


TIT1#1 1#0$($II 2 TIT1E /3 T+ESIS

Henri * +eorge #,A-./


0//$D/,'T/$ 1#0$'$E 2 T+ESIS S#PE$%IS/$

0/-S#PE$%I&/$ 1#0$'$E 2 T+ESIS 0/-S#PE$%IS/$

E0A1I-AT,RI LU#RARE 2 THE"I" E0A1I-ER" Dinu 0/15#0 3eli6 '17# Dan-0onstantin P#0+I',# ,icoleta ',.E1ES0# 3lorian I/,

Henri * +eorge #,A-./


DE0', 3'0#1T'TE' DE I,.I,E$IE E1E0T$I0( 2 DE', /3 E1E0T$I0'1 E,.I,EE$I,. 3'0#1T8

$eproducerea se poate *ace doar cu permisiune din partea autorului

Robot mobil deplasat prin comenzi vocale


Simion 'lin 0ezar

Abstract

9ma6) "!! cu:inte;

Se prezint un robot care poate e6ecuta comenzile :ocale ale utilizatorului prin intermediul componentelor <ard=are) 0omenzile au *ost antrenate >n so*t=are-ul s<ield-ului de recunoatere :ocal? Eas@%$ 0ommander) 0omenzile sunt receptate de s<ield-ul de recunoatere :ocal Eas@%$ i transmise ctre placa 'rduino #no iar apoi sunt preluate i e6ecutate de ctre dri:er-ul de motor tip s<ield 1 AB) 0odul a *ost scris cu aCutorul programului 'rduino 1)!)D) Instruciunile pe care robotul trebuie s le e6ecute sunt? 3or=ard, $e:erse, 1e*t, $ig<t, Dance, 1ongE3or=ard, 1ongE$e:erse i Stop) Piesele au *ost cumprate de pe site-ul? ===)robo*un)ro) 0u:inte c<eie? 'rduino #no, Eas@%$, 1 AB, Eas@%$ 0ommander, recunoatere :ocal, 'rduino1)!)D, comenzi, dri:er)

1obile robot moved t3roug3 voice commands Abstract


It is presented a robot t<at can e6ecute t<e userFs :ocal commands t<roug< <ard=are components) T<e commandFs =<ere trained in t<e :oice recognitionFs s<ield so*t=are? Eas@%$ 0ommander) T<e 0ommandFs are reci:ed b@ t<e :oice recognition s<ield Eas@ %$ and set to t<e 'rduino #no board and t<en are taGen and e6ecuted b@ t<e s<ield t@pe motor dri:er 1 AB) T<e code =as =ritten =it< t<e <elp o* 'rduino 1)!)D program) T<e instructions t<at t<e robot <as to e6ecute are? 3or=ard, $e:erse, 1e*t, $ig<t, Dance, 1ongE3or=ard, 1ongE$e:erse and Stop) T<e parts =<ere boug<t *rom? ===)robot*un)ro =eb-site)

He@=ords? 'rduino #no, Eas@%$, 1 AB, Eas@%$ 0ommander, speec< recognition, 'rduino1)!)D, 0ommands, dri:er)

T<esis Super:isor? +E,$I - .E/$.E 0/',D' 'ssociate pro*essor, P<)D) Eng), Electronic, Telecommunication and Po=er Energ@ Department Electrical Engineering 3acult@ #ni:ersit@ %'1'+I' o* Targo:iste

'ne6a 1
#,I%E$SIT'TE' I%'1'+I'J DI, T'$./%ISTE 3'0#1T'TE' DE I,.I,E$IE E1E0T$I0' Specializarea? Electronic aplicat !1" 'nul uni:ersitar !1 -

TE4' proiectului de licen al absolventului "imion Alin #ezar


4( Tipul proiectului5 Aplicativ Domeniul? Inginerie electronic i telecomunicaii Implementabil in cadrul unei (unor) lucrri didactice Domeniul? Inginerie electronic i telecomunicaii Fundamental Domeniul? Inginerie electronic i telecomunicaii

6( Tema proiectului5

Robot mobil deplasat prin comenzi vocale


7( #oninutul proiectului5 ")! Introducere 9scopul proiectului, rezumat capitole;K ")1 $ecunoaterea :ocal 9generalizare, metodologia sistemelor :ocale, De*ormarea Dinamic a Timpului, 4odelul 4arGo: 'scuns, #tilizri;K ") #tilizarea recunoaterii :ocaleK ")" Prezentare <ard=are 9piese i preuri, prezentare pieseK ")L 4icrocontrolerul 'tmega " B 9caracteristici,con*iguraia pinilor, sc<ema bloc;K ")D 'samblarea robotuluiK ")M Programarea robotuluiK ")7 $ezultate si concluzii 'ne6e 9cod surs) 8( Locul unde va %i implementat proiectul5 1aborator Aplicaii distribuite B2-310K 9( 'ibliogra%ie5 D)1 Fundamentals of Speech Reco nition, 1) $abiner N 7) Ouang, 1AA"K D) Speech Reco nition, InTec<, !!BK D)" 'tmega " B - DataS<eetK D)L !e" #evelopments in Robotics Automation and $ontrol , InTec<, !!B% D)D &odern Speech Reco nition Approaches "ith $ase Studies, S) $amaGris<nan, !1 % D)M 'ractical and E(perimental Robotics, 3erat S<ain N Pus<Gin Hac<roo) DE0', 0on*)dr)ing) +enri-.eorge 0/',D( DI$E0T/$ DEP'$T'4E,T s)l)dr)ing) ,icoleta ',.E1ES0#

0/,D#0'T/$ PTII,5I3I0 0on*)dr)ing) +enri-.eorge 0/',D( Tema a *ost data spre >mplinire la data ,#4E1E si SE4,'T#$' ST#DE,T#1#I Simion 'lin 0ezar

List %iguri
3I.#$' 1 I-TR,.U#ERE(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( : #A;IT,LUL 4* RE#U-,A<TEREA V,#AL/(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((= 1)11) 1)"1)L.E,E$'1I&'$E )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) A 4ET/D/1/.I' SISTE4E1/$ %/0'1E)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1! DE3/$4'$E' DI,'4I0( ' TI4P#1#I 9DTQ;)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1! 4/DE1#1 4'$H/% 'S0#,S 9+44;)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1!

#A;IT,LUL 6* UTILI>AREA RE#U-,A<TERII V,#ALE(((((((((((((((((((((((((((((((((((((((((((((((44 )1- PE$SPE0TI%E)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 11 ) - DE3E0TE '1E $E0#,/'PTE$II %/0'1E)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))11 #A;IT,LUL 7* ;RE>E-TARE HAR.?ARE((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((46 ")1- PIESE PI P$E5#$I))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1 ") - P$E&E,T'$E PIESE ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1" #A;IT,LUL 8* 1I#R,#,-TR,LERUL AT1E+A 76@((((((((((((((((((((((((((((((((((((((((((((((((((64 L)1- 0'$'0TE$ISTI0I?))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1 L) - 0/,3I.#$'5I' PI,I1/$))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) " L)"- S0+E4' 71/0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) L #A;IT,LUL 9* A"A1'LAREA R,',TULUI(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((69 #A;IT,LUL A* ;R,+RA1AREA R,',TULUI((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((74 #A;IT,LUL :* RE>ULTATE <I #,-#LU>II((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((7A 'I'LI,+RAFIE(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 7:

List tabele

"imboluri !i abrevieri
H11 .T? +idden 4arGo: 4odel D@namic Time Qarping

#uprins
I-TR,.U#ERE(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( : #A;IT,LUL 4* RE#U-,A<TEREA V,#AL/(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((= 1)11) 1)"1)L.E,E$'1I&'$E )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) A 4ET/D/1/.I' SISTE4E1/$ %/0'1E)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1! DE3/$4'$E' DI,'4I0( ' TI4P#1#I 9DTQ;)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1! 4/DE1#1 4'$H/% 'S0#,S 9+44;)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1!

#A;IT,LUL 6* UTILI>AREA RE#U-,A<TERII V,#ALE(((((((((((((((((((((((((((((((((((((((((((((((44 )1- PE$SPE0TI%E)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 11 ) - DE3E0TE '1E $E0#,/'PTE$II %/0'1E)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))11 #A;IT,LUL 7* ;RE>E-TARE HAR.?ARE((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((46 ")1- PIESE PI P$E5#$I))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1 ") - P$E&E,T'$E PIESE ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1" #A;IT,LUL 8* 1I#R,#,-TR,LERUL AT1E+A 76@((((((((((((((((((((((((((((((((((((((((((((((((((64 L)1- 0'$'0TE$ISTI0I?))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1 L) - 0/,3I.#$'5I' PI,I1/$))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) " L)"- S0+E4' 71/0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) L #A;IT,LUL 9* A"A1'LAREA R,',TULUI(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((69 #A;IT,LUL A* ;R,+RA1AREA R,',TULUI((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((74 #A;IT,LUL :* RE>ULTATE <I #,-#LU>II((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((7A 'I'LI,+RAFIE(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 7:

Introducere
,oi, ca i *iine umane a:em D simuri dintre care unul este auzul) 'm speci*icat asta doarece cel mai utilizat miCloc de comunicare dintre doi oameni este cea :erbal adic pe cale :ocal) Desigur :orbitul nu >nseamn nimic dac oamenii nu se pot >nelege unul cu cellalt, de aceea pe lRng *aptul de a putea :orbii este necesar un al*abet i un :ocabular) Dei nimeni nu >i >n:a pe copiii mici s :orbeasc, pot >n:a uor) Este ade:rat c recunoaterea :ocal este uoar pentru noi) Dar >n:tura :orbirii i recunoaterii :ocale, a *ost subestimat de secole) 4ulte progrese >n te<nologie au dus la implementarea te<nicii de :orbire i a recunoaterii :ocale >n anumite aparate) Sn maCoritatea *ilmelor S3 din 1AB!-1AA!, :edeam oameni care :orbeu cu robo i i computere >ns >n ziua de astzi aceste lucruri au de:enit posibile) De i recunoaterea :ocal este o sarcin *oarte di*icil, acesta poate *i *olosit >n multe aplica ii de pRn la un anumit grad) Sistemele automate de recunoatere :ocal pot *i puse >n aplicare >n calculatoare pentru a *i utilizate >n dictare i >n controlul programelor, care pot *i *oarte utile persoanele cu <andicap) #tilizri ale recunoaterii :ocale cu un computer? 4( Recunoa!terea vocal are scopul de a cunoa!te coninutul vorbirii )

3igura 1

6( Recunoa!terea vorbitorului are scopul de a cunoa!te persoana care vorbe!te(

3igura

7( Identi%icarea limbii are scopul de a cunoa!te limba vorbit )

3igura "

Tema aleas a *ost structurat pe capitole i sub-capitole distincte) Scopul *inal al acestui proiect este acela de a putea controla :ocal un robot) Pentru a putea realiza asta, am studiat bibliogra*ia recomandat de pro*esorul >ndrumtor i m-am *olosit de materiile studiate >n cei patru ani petrecui la ,,3acultatea de Inginerie ElectricFF a ,,#ni:ersitii %ala<iaFF din TRrgo:ite)

Capitolul 1- Recunoaterea Vocal


4(4* +eneralizare
$ecunoaterea :ocal este procesul de con:ersie a unui semnal :orbit la o sec:en de cu:inte >n *orm de date digitale, prin intermediul unui algoritm implementat ca un program de calculator) 0u:intele recunoscute pot *i rezultatele *inale, pentru aplica ii cum ar *i comand i control, introducere de date i pregtirea documentelor) De asemenea ele pot ser:i ca intrare pentru prelucrarea ling:istic, >n scopul de a realiza >nelegerea :orbirii) Sistemele de recunoatere pot *i proiectate >n mai multe moduri pentru a atinge un obiecti: speci*ic sau un criteriu de per*orman ? 4( "istem dependend2independend de vorbitor Pentru sistemele dependente de :orbitor, utilizatorul este rugat s rosteasc cu:inte sau *raze prede*inite) 'ceste semnale acustice *ormeaz datele de antrenament, care sunt utilizate pentru recunoaterea :ocal) Din moment ce aceste sisteme sunt *olosite doar pentru un :orbitor prede*init, per*ormana lor de:ine mai mare comparati: cu sisteme independente de :orbitor) 6( Recunoa!terea izolat a cuvintelor De asemenea acesta este numit sistem discret de recunoatere) Sn acest sistem, trebuie s e6iste pauze >ntre rostirea cu:intelor) Prin urmare, sistemul nu trebuie s aib griCa de a gsi pauzele :ocale dintre cu:inte) 7( Recunoa!terea vorbirii continue 'ceste sisteme sunt scopul *inal al unui proces de recunoa tere) ,u conteaz cum sau cRnd un cu:Rnt este rostit, ele sunt recunoscute >n timp real i aciunea corespunztoare este e*ectuat) Sc<imbri >n :iteza de :orbire, pronun iile negliCent, detectarea s*Rritului de cu:Rnt sunt principalele probleme pentru acest mod de recunoa tere) 8( .imensiunea vocabularului 0u cRt dimensiunea :ocabularului >ntr-un sistem de recunoa tere este mai mic cu atRt este mai superior per*ormana de recunoatere) Sarcinile speci*ice pot *olosi :ocabulare mici) 0u toate acestea un sistem natural ar trebui s recunoasc independent i continuu *a de :orbitor, un :ocabular mare, care este mai di*icil) 9( Recunoa!terea cuvintelor c3eie 'ceste sisteme sunt utilizate pentru a detecta un cu:Rnt >n :orbirea continu) Din acest moti:, ele pot *i la *el de bune ca recunoa terea izolat, acestea a:Rnd i capacitatea de gestiune continu)

3igura L? Sisteme de recunoatere :ocal

4(6* 1etodologia sistemelor vocale


Dez:oltatorii *olosesc mai multe metode pentru punerea >n aplicare a recunoaterii :ocale) 0ele mai *rec:ente metode sunt? 4odelul 4arGo: 'scuns 9+44;K De*ormarea Dinamic a Timpului 9DTQ;)

4(7* .e%ormarea .inamic a Timpului &.T?)


De*ormarea dinamic a timpului este un algoritm pentru msurarea similitudinii dintre dou sec:ene, care pot :aria >n timp sau :itez) Principiul de baz al DTQ-ului este de a permite unor serii de ,,msuriFF >n spaiul inter:alelor de timp >n eantion i s gseasc o cale prin acel spaiu, care ma6imizeaz potri:irea local >ntre inter:alele de timp aliniate, >n *uncie de constrRngerile implicite >n etapa admis) Totalitatea costurilor similare gsite de algoritm este un bun indicator al similitudinii eantionului cu ablonul, care poate *i *olosit pentru alegerea celui mai asemntor ablon) /rice date care pot *i trans*ormate in reprezentri liniare pot *i analizate cu DTQ)

4(8* 1odelul 1arBov Ascuns &H11)

3igura D? 4odel 4arGo: 'scuns 4aCoritatea sistemelor de recunoatere :ocal moderne sunt bazate pe acest sistem care o*er modele statice din care ies o sec:en de simboluri sau cantiti) Din +44 ies o sec:e de :ectori cu :alori reale de n dimensiuni ast*el >ncRt *iecare din aceti :ectori se compun din coe*icieni, care se obin luRnd o trans*ormat 3ourier dintr-o *ereastr scurt de timp de :orbire i decolerRnd spectrul *olosind trans*ormata cosinusului, luRnd apoi primii coe*icieni) Sn *iecare stadiu, +44 :a a:ea tendina s aib o distribuie static, care estre un amestec de diagonale co:ariate .aussiene care :or o*erii probabilitate pentru *iecare :ector obser:at) 3iecare cu:Rnt sau *iecare *enomen :a a:ea o distribuie de ieire di*erit) #n +44 pentru o sec:en de cu:inte sau *enomene se *ace prin concatenarea indi:idual a unui +44 instruit pentru cu:inte i *enomene separate) Decodarea cu:intelor se :a *ace, probabil cu algoritmul %iterbi pentru a gsi cea mai bun cale i aici e6ist o alegere >ntre a crea dinamic o combinaie de +44 care include atRt in*ormaii modele acustice i de limb, sau combinRndu-l static >n prealabil)

#apitolul 6* Utilizarea recunoa!terii vocale


Practic recunoaterea :ocal este *olosit >n dou scopuri principale? prima este dictarea care, >n conte6tul recunoaterii :ocale este traducerea de cu:inte :orbite >n cu:inte scriseK a doua este controlul unui computer sau a unui microcontroler)

6(4* ;erspective
4( 1edicale Persoanele cu <andicap pot bene*icia de programe de recunoatere :ocal) $ecunoa terea :ocal este util mai ales pentru persoanele care au di*icult i >n utilizarea mRinilor, >n ast*el de cazuri programele de recunoa tere :ocal sunt mult mai bene*ice i pot *i *olosite calculatoare de operare) 6( 1ilitare Programele de recunoatere :ocal sunt importante din punct de :edere militar, pentru 3orele 'eriene, recunoaterea :ocal are un potenial clar de reducere a :olumului de munc al pilotului) Pe lRng 3orele 'eriene ast*el de programe pot *i, de asemenea instruite pentru a *i utilizate >n managementul de lupt i alte aplicaii) 7( Educaionale Persoanele cu dizabiliti de >n:are, care au probleme de comunicare 9>n esen , ei se gRndesc la o idee, dar ea este procesat >ntr-un mod incorect determinRnd-o s aCung >n mod di*erit pe <Rrtie;, pot bene*icia de pe urma unui so*t=are de recunoatere :ocal) De asemenea recunoaterea :ocal poate *i *olosit >n cadrul unui proiect pentru studiul roboticii)

6(6* .e%ecte ale recunoa!terii vocale


Pe lRng toate aceste a:antaCe i bene*icii pe care le o*er, >nc nu este dez:oltat un sistem per*ect de recunotere :ocal) E6ist un numr de *actori care reduc acurateea i per*ormana unui sistem de recunoatere :ocal) Procesul de recunoatere :ocal este o sarcin uoar pentru un om, dar este di*icil pentru o mainrie) 0omparati: cu un om, programele de recunoa tere :ocal par mai puin inteligente, acest lucru se datoreaz *aptului c omul are capacitatea natural de gRndire, >n elegere i de a reaciona, >n timp ce pentru un program de calculator este o sarcin complicat, mai >ntRi trebuie s >neleag cu:intele rostite 9semni*icaia lor;, i trebuie s creeze un ec<ilibru >ntre cu:inte, zgomote i pauze) #n om are capacitatea de a *iltra zgomotul unei con:ersaii >n timp

ce o mainrie necesit o pregtire) 0alculatorul necesit aCutor pentru separarea sunetelor de :orbire de alte sunete) 0Ri:a *actori care trebuiesc luai in considerare? ,monime Sunt cu:intele cu *orm identic i acelai corp *onetic, dar cu >neles total di*erit) Este o pro:ocare pentru mainrie, s *ac distincia >ntre aceste tipuri de cu:inte) Vorbire suprapus / a doua pro:ocare, este de a >nelege :orbirea rostit de ctre di*erii utilizatori, sistemele actuale au o di*icultate de a separa :orbirea simultan a mai multor utilizatori) Factori de zgomot Trebuie sa se aud cu:intele rostite distinct i clar) /rice sunet suplimentar poate crea inter*erene, >n primul rRnd a:em ne:oie de a plasa sistemul departe de medii zgomotoase i apoi de a :orbi clar, ast*el mainria nu :a con*unda i nu :a amesteca cu:intele)

#apitolul 7* ;rezentare HardCare


7(4* ;iese !i preuri

,$ 0$T

,umele piesei

Preul piesei

4agic $obot Hit

1 L $on

Plac 'rduino #no %"

1!A $on

"

Dri:er de motor tip s<ield 1 AB S<ield de recunoatere

7D $on

comenzi :ocale E'S8%$

"!! $on

7aterie 1IP/ 7)L% 1!!!4'

"B $on

Hit conectori 'rduino $"

M $on

Total ? MD $on
Tabel 1? Piese i preuri

7(6* ;rezentare piese


1agic Robot Dit 'cest Git este *ormat din?

-plat*orma asiuK - dou motoare de curent continuu 1 !?1 PololuK -dou roi speciale pentru aceste motoareK -roat metalica de spriCin, setul de conectori) Speci*icaii? -Tensiune motoare ? M %K -%itez de rotaie >n gol ? BD rotaii per minutK -0urent >n gol ? 7! m'K -0urent >n sarcin ma6im ? B!! m'K -0uplu ? D)L H. *ort T cm)

3igura M? Pasiul i suporturile de motoare

3igura 7? 4otoarele i roile

3igura B? $oata metalic

3igura A? 0onectorii pentru suporturile de motoare

3igura 1!? 0onectori 9uruburile i piuliele;

.river*ul de motor tip s3ield L6=@ 'cest dri:er de motoare poate comanda dou motoare de curent continuu, de un curent ma6im de amperi) Dri:erul este complet asamblat sub *orma unui s<ield 'rduino, *acilitRnd ast*el utilizarea simpl)

3igura 11? Dri:er de motor tip s<ield 1 AB "3ield*ul de recunoa!tere comenzi vocale* EA"EVR S<ield-ul Eas@%$ este proiectat pentru a permite adugarea de comenzi :ocale) 4odulul o*er *uncii de recunoatere :ocal pentru o serie de comenzi stocate din *abric 9care sunt independente de :orbitor adic recunoscute automat;, i pRn la " de comenzi de*inite de utilizator 9care sunt dependente de :orbitor;)

Speci*icaii? - dispune de o serie de comenzi deCa con*igurate, independente de :orbitorK - suport pRn la " de comenzi con*igurabile de ctre utilizatorK - inter*a gra*ic simpl care permite programarea comenzilor :ocale cu uurinK - utilizeaz portul serial pentru comunicare)

3igura 1 ? S<ield de recunoatere comenzi :ocale- E'S8 %$

Dit conectori Arduino R7 Hit-ul conine conectori de B pini, un conector de M pini i un conector de 1! pini ) Este compatibil cu placile 'rduino #no %" i 'rduino 1eonardo) 'cest Git mi-a *ost necesar pentru a putea conecta S<ield-ul de recunoatere :ocal >n sti: cu placa 'rduino i dri:er-ul de motor)

3igura 1"? Hit conectori 'rduino $"

'ateria LI;, :(8V 4FFF1A Speci*icaii? -7)L% -1!!! m'< - 0elule -$ata de descrcare D0

3igura 1L? 7aterie 1IP/ 7)L% 1!!!4' ;laca Arduino Uno V7

'rduino #,/ este o plat*orm de procesare open-source, bazat pe so*t=are i <ard=are *le6ibil i simplu de *olosit) 0onst >ntr-o plat*orm de mici dimensiuni 9M)B cm 2 D)" cm - >n cea mai des intRlnit :ariant; construit >n Curul unui procesor de semnal i este capabil de a prelua date din mediul >nconCurator printr-o serie de senzori i de a e*ectua aciuni asupra mediului prin intermediul luminilor, motoarelor, ser:omotoarelor, i alte tipuri de dispoziti:e mecanice) Procesorul este capabil s ruleze un cod scris >ntr-un limbaC de programare care este *oarte similar cu limbaCul 0UU) Placa 'rduino #,/ se conecteaz la portul #S7 al calculatorului *olosind un cablu de tip #S7 '7) Poate *i alimentat e6tern 9din priz; *olosind un alimentator e6tern) Speci*icaii ? -4icrocontroler? 'Tmega" BK -Tensiune de lucru? D%K -Tensiune de intrare 9recomandat;? 7-1 %K -Tensiune de intrare 9limit;? M- !%K -Pini digitali? 1L 9M PQ4 output;K -Pini analogici? MK -Intensitate de ieire? L! m'K -Intensitate de ieire pe ")"%? D! m'K -3las< 4emor@? " H7 9'Tmega" B; !)D H7 pentru bootloaderK -S$'4? H7 9'Tmega" B;K

-EEP$/4? 1 H7 9'Tmega" B;K -0locG Speed? 1M 4+z)

3igura 1D? Plac 'rduino #no %"

#apitolul 8* 1icrocontrolerul ATmega 76@


8(4* #aracteristici5
per*orma >nalt, putere mic '%$ pe B biiK ar<itectur de tip $IS0?

-1"1 de instruciuni de putere, maCoritatea cu e6ecuie pe un singur cicluK -operaie static >ntreagK -capacitate de pRn la ! 4IPS la !4<zK -multiplicator pe-c<ip >n dou cicluriK durabilitate ridicat pe segmentele de memorie non-:olatilK

-memorie *las< " H7K -EEP$/4 1H7K -S$'4 H7K -cicluri de scriere2tergere? 1!!!! 3las<21!!!!! EEP$/4K -reinerea datelor ? ! de ani la BD V021!! de ani la D V0K 0aracteristici peri*erice?

-doi timer2counters de B bii cu Prescalar Separat i 4od 0omparareK -un timer2counter de 1M bii cu Prescalar Separat, 4od 0omparare i 4od 0apturK -0ounter de timp real cu oscilator separatK -ase canale PQ4K -serial programabil #S'$TK -serial inter*a 4aster2Sla:eK 0aracteristici speciale ale microcontrolerului?

-Po=er-on $eset i detecie 7ro=n-out programabilK -oscilator intern calibratK -surse e6terne i intrerupte internK -ase moduri Sleep? 'D0 ,oise $eduction, Po=er-sa:e, Po=er-do=n, Standb@, i E6tended Standb@K I2/ i pac<ete?

- " de linii programabile I2/K - B de pini PDIPK Tensiune de lucru?

-1,B-D % Temperatur?

--L! V0 la BD V0 .rad de :itez?

-!- ! 4<z Putere mic consum la 14<z de 1,B% la D V0?

-mod acti:? !, m'K -mod Po=er-do=n? !,1 W'K -mod Po=er-sa:e? !,7D W' 9inclusi: " G+z $T0;)

8(6* #on%iguraia pinilor

3igura 1M? 0on*iguraia pinilor

8(7* "c3ema bloc

3igura 17? Sc<ema bloc

#apitolul 9* Asamblarea robotului


Sn acest capitol :oi prezenta pas cu pas modul de asamblare al robotul) Primul pas a *ost asamblarea Gitului i al motoarelor >mpreuna cu roile) Pentru >nceput am conectat motoarele pe suporturile de motoare cu aCutorul uruburilor)

3igura 1B? 4otoarele conectate la suporturi

#rmtoarea etap a *ost conectarea suporturilor la asiu cu aCutorul conectorilor speciali)

3igura 1A? 0onectarea suporturilor la asiu

Etapa urmtoare a constat >n conectarea rotiei metalice la asiu pentru stabilitate cu aCutorul uruburilor, piulielor i al celor dou cadre metalice)

3igura !? 0onectarea rotiei metalice

Sn *inalul asamblarii Gitului 4agic $obot a rezultat partea locomotorie a robotului)

3igura 1? 4agic $obot Hit asamblat

Dup asamblarea acestui Git a *ost necesar lipirea *irelor pentru motoarele de curent continuu cu aCutorul unui letcon)

3igura

? 3ire lipite de motoare

Sn continuare am *i6at circuitul pe asiu >ncepRnd cu placa 'rduino #no cu aCutorul a dou uruburi i a dou piulie)

3igura "? Placa 'rduino #no *i6at pe asiu

'm ales conectarea pieselor >n sti: pentru a putea lucra mai uor, pinii de pe placa 'rduino *iind identici cu cei de la dri:er-ul de motor care l-am conectat peste placa 'rduino #no)

3igura L? 0onectarea dri:er-ului de motor Pentru c acest dri:er nu permitea conectarea direct >n sti: a s<ield-ului de comand :ocal a *ost ne:oie de a ataa Git-ul de conectori 'rduino $")

3igura D? 'taarea Git-ului de conectori 'rduino $" Sn urmtoarea etap am conectat *irele motoarelor de curent continuu la dri:er-ul de motor)

3igura M? 0onectarea *irelor de la motoare la dri:er-ul de motoare ' urmat conectarea >n sti: a s<ield-ului de comand :ocal a:Rnd griC ins, deoarece con*iguratia pinilor este uor di*erit *a de cea a placii 'rduino #no i al dri:er-ului de motor)

3igura 7? 0onectarea S<ield-ului de comand :ocal E'S8 %$

Sn *inal am ataat micro*onul pentru s<ield-ul de comand :ocal)

3igura B? 'taarea micro*onului

Toate piesele au *ost cumprate de pe site-ul ===)robo*un)ro i au *ost asamblate cu aCutorul urmtoarelor ustensile? -urubelni steaK -urubelni dreaptK -letconK -imbus)

#apitolul A* ;rogramarea robotului


Pentru a putea programa robotul am *olosit un cablu #S7 )! tip '-7 de la 7elGin i un laptop 1eno:o .7B!) 'm conectat cablul #S7 cu mu*a de tip ' >n laptop i mu*a de tip 7 >n placa 'rduino)

3igura A? 4u* tip '

3igura "!? 4u* tip 7

De pe site-ul <ttp?22arduino)cc2en24ain2So*t=are am descrcat ar<i:a? 'rduino IDE 1)!)D, menionRnd c am ales aceast :ariant pentru c este destul de stabil) Programul de inter*a cu placa 'rduino #no nu necesit instalare *iind ne:oie doar de dezar<i:are) Pentru asta am *olosit programul Qin$'$ :ersiunea ")B!) #rmtorul pas a *ost s conectez placa 'rduino #no la laptop prin intermediu cablului '-7) 3iind prima interaciune a plcii 'rduino cu acest laptop a *ost necesar s instalez dri:erele >n urmtorul mod? -clicG dreapta pe iconia ,,4@ 0omputerFF de pe DesGtop K -din acel set de optiune am ales ,,4anageFFK -din acea *ereastr nou desc<is am ales seciunea 4anagerFFK ,,S@stem ToolsFF subcategoria ,,De:ice

->n subcategoria ,,/t<er de:icesFF cu denumirea de ,,#nGno=n de:iceFF este placa 'rduino #noK -am dat clicG dreapta pe aceasta i am ales opiunea ,,#pdate Dri:er So*t=areFFK -am ales opiunea ,,7ro=se m@ computer *or dri:er so*t=areFF alegRnd apoi *olderul ,,dri:ersFF din *iierul dezar<i:at ,,'rduino 1)!)DFF a:Rnd bi*at opiunea ,,Include sub*oldersFF dup care am apsat butonul ,,,e6tFF i am lsat instalarea s ruleze) Pasul urmtor a *ost s instalez programul pentru interaciunea cu s<ield-ul Eas@%$) 'cesta se numete Eas@%$ 0ommander i l-am descrcat de pe site-ul? <ttp?22===)robo*un)ro2s<ields2modulErecunoastereEcomenziE:ocaleEeas@:r )

Pentru a putea interaciona cu laptopul i programul Eas@%$ 0ommander am mutat Cumpper-ul de pe s<ieldul Eas@%$ din poziia SQ >n poziia P0)

3igura "1? Oumpper conectat la modul P0 Dup mutarea Cumperului >n poziia ,,P0FF am desc<is programul Eas@%$ 0ommander)

3igura " ? Inter*aa Eas@%$ 0ommander

'm sc<imbat portul pentru a *i identic cu cel pe care am instalat placa 'rduino #no)

3igura ""? 'legerea portului #rmtorul pas a *ost conectarea s<ieldu-lui Eas@%$ la programul Eas@%$ 0ommander

3igura "L? 0onectarea s<ield-ului Eas@%$ la programul Eas@%$ 0ommander

Dup conectarea s<ield-ului a urmat introducerea a cinci noi comenzi >n grupul 1 i anume? 3/$Q'$D, $E%E$SE, $I.+T, 1E3T, ST/P i un cu:Rnt >n seciunea Trigger respecti:? 4/%E) Pentru ca s<ield-ul s >neleag aceste noi cu:inte a *ost ne:oie de antrenarea lor >n etape)

3igura "D? 'ntrenarea >n prima etap

3igura "M? 'ntrenarea >n etapa a doua

'ntrenarea acestor comenzi >n dou etape, a *ost necesar pentru ca aceste comenzi s nu intre >n con*lict >n momentul >n care utilizatorul rostete comanda) Etapa *inal >n programul Eas@%$ 0ommander a *ost generarea codului pe care l-am sal:at cu e6tensia )ino, dup care am mutat din nou Cumperul de pe s<ield-ul Eas@%$ de pe poziia ,,P0FF pe poziia ,,SQFF ' *ost necesar modi*icarea cod-ului >n programul 'rduino IDE 1)!)D pentru a putea aciona dri:er-ul de motor)

3igura "7? Inter*aa 'rduino IDE 1)!)D 'm >ncrcat codul modi*icat pe placa 'rduino #no dup :eri*icare)

#apitolul :* Rezultate !i concluzii


Se prezint un robot care poate e6ecuta comenzile :ocale ale utilizatorului prin intermediul componentelor <ard=are) 0omenzile au *ost antrenate >n so*t=are-ul s<ield-ului de recunoatere :ocal? Eas@%$ 0ommander) 0omenzile sunt receptate de s<ield-ul de recunoatere :ocal Eas@%$ i transmise ctre placa 'rduino #no iar apoi sunt preluate i e6ecutate de ctre dri:er-ul de motor tip s<ield 1 BA) 0odul a *ost scris cu aCutorul programului 'rduino 1)!)D) Instruciunile pe care robotul trebuie s le e6ecute sunt? 3or=ard, $e:erse, 1e*t, $ig<t, Stop) Piesele au *ost cumprate de pe site-ul? ===)robo*un)ro) $ezultatele au *ost urmtoarele? comenzile :ocale au *ost scrise >n limba englez >n Eas@%$ 0ommander i >n codul surs >ns a *ost posibil antrenarea lor >n limba romRn ceea ce a dus la e6ecutarea comenzilor din limba romRnK am reuit implementarea i antrenarea a nou comenzi :ocale, ase a:Rnd un timp de e6ecuie, dou comezi care ruleaz *ara timp de e6ecuie i una care s *ie *olosit pentru oprireK micro*onul de la s<ield-ul de recunoatere :ocal Eas@%$ este unul destul de slab, captRnd destul de greu cu:intele rostite de utilizator >n cazul >n care acesta, se a*la la o distan mare de el, dar aceast problem ar putea *i rezol:at prin >nlocuirea micro*onului cu unul mai puternic, sau *cRnd o transmisie radio prin dou module Tbee i >nc o plac 'rduino #,/K circuitul robotului *iind unul >n sti: trebuie a:ut griC ca pinii *iecrui s<ield sa *ie bine conectai pentru ca robotul s *uncioneze corespunztorK comenzile :ocale trebuiesc spuse clar i la un ni:el corespunztor alt*el robotul nu le :a gsi >n :ocabular, sau :a e6ecuta o comand asemntoare, un sistem de recunoatere :ocal per*ect nee6istRnd deocamdatK

0ontribuiile autorului sunt? analiza stadiului >n domeniu 9circa D articole de limb englez din care D au *ost citate;K asamblarea pieselor <ard=are dup propria sc<i *iind inspirat de un tutorial pentru Gitul E&-$/7/TK antrenarea comenzilor :ocaleK programarea robotuluiK

0ercetrile :or continua >n cadrul studiilor de masterat *iind >ndreptate spre? reuirea implementrii comenzilor :ocale utilizRnd module TbeeK implementarea senzorilor i a camerelor :ideo pe roboiK testarea altor plat*orme precum Eas@Pic, $aspberr@, E&-7 pentru creearea i testarea roboilorK per*ecionarea unui sistem de recunoatere :ocal)

'ibliogra%ie
$ri )i articole de specialitate
X'1Y X' Y X'"Y X'LY X'DY 3undamentals o* Speec< $ecognition, 1) $abiner N 7) Ouang, 1AA"K Speec< $ecognition, InTec<, !!BK ,e= De:elopments in $obotics 'utomation and 0ontrol, InTec<, !!BK 4odern Speec< $ecognition 'pproac<es =it< 0ase Studies, S) $amaGris<nan, Practical and E6perimental $obotics, 3erat S<ain N Pus<Gin Hac<roo)

!1 K

Arduino *no )i Eas+,R shield


X71Y X7 Y 'tmel 0orporation, 'Tmega" B datas<eetK %eear, Eas@%$ #ser 4anualK

Site-uri "eb
X01Y <ttp?22===)@outube)com2=atc<Z:[TgzMu1t1'r' X0 Y <ttp?22===)@outube)com2=atc<Z:[QiDd=0cH7ss X0"Y <ttp?22===)@outube)com2=atc<Z:[<1*E/B:AS3s X0LY <ttp?22===)robots<op)com2blog2en2carlitos-proCects-speec<-controlled-arduinorobot-"MBL X0DY <ttp?22===)instructables)com2id2Speec<-$ecognition-=it<-'rduino2

AneGa
#if defined(ARDUINO) && ARDUINO >= 100 #include "Arduino.h" #include "Soft !reSeri!l.h" Soft !reSeri!l "ort(1#$1%)& #el'e #include "()ro*r!+.h" #include "Ne SoftSeri!l.h" Ne SoftSeri!l "ort(1#$1%)& #endif #include ,-!'./R.h> -!'./R e!'.0r("ort)& int 1O2OR13)IN1 = %& int 1O2OR13)IN# = 4& int 1O2OR#3)IN1 = 5& int 1O2OR#3)IN# = 6& 778rou"' !nd 9o++!nd' enu+ 8rou"' : 8ROU)30 8ROU)31 ;& enu+ 8rou"0 : 8031O/- = 0$ ;& enu+ 8rou"1 : 813<OR(ARD = 0$ 813R-/-RS- = 1$ 813RI8=2 = #$ = 0$ = 1$

813>-<2 = %$ 813DAN9- = ?$ 813>ON83<OR(ARD = 4$ 813>ON83R-/-RS- = 5$ 813S2O) = @$ ;& -!'./RArid*e Brid*e& intC3t *rou"$ idD& 0oid 'etu"() : "in1ode(1O2OR13)IN1$ OU2)U2)& "in1ode(1O2OR13)IN#$ OU2)U2)& "in1ode(1O2OR#3)IN1$ OU2)U2)& "in1ode(1O2OR#3)IN#$ OU2)U2)& 77 Brid*e +odeE if (Brid*e.checF()) : cli()& Brid*e.loo"(0$ 1$ 1#$ 1%)& ; 77 run nor+!ll. Seri!l.Be*in(6500)& "ort.Be*in(6500)& if (Ge!'.0r.detect()) : Seri!l."rintln("-!'./R not detectedG")& for (&&)& ; e!'.0r.'et)inOut"ut(-!'./RHHIO1$ >O()& Seri!l."rintln("-!'./R detectedG")& e!'.0r.'et2i+eout(4)& e!'.0r.'et>!n*u!*e(0)& *rou" = -!'./RHH2RI88-R& 77,II 't!rt *rou" (cu'to+iJe) ;

0oid !ction()& 0oid loo"() : e!'.0r.'et)inOut"ut(-!'./RHHIO1$ =I8=)& 77 >-D on (li'tenin*) Seri!l."rint("S!. ! co++!nd in 8rou" ")& Seri!l."rintln(*rou")& e!'.0r.reco*niJe9o++!nd(*rou")& do : 77 c!n do 'o+e "roce''in* ; hile (Ge!'.0r.h!'<ini'hed())& e!'.0r.'et)inOut"ut(-!'./RHHIO1$ >O()& 77 >-D off idD = e!'.0r.*et(ord()& if (idD >= 0) : 77 BuiltIin tri**er (ROAO2) 77 *rou" = 8ROU)3K& ,II Lu+" to !nother *rou" K return& ; idD = e!'.0r.*et9o++!nd()& if (idD >= 0) : 77 "rint deBu* +e''!*e uintC3t tr!in = 0& ch!r n!+eM%#N& Seri!l."rint("9o++!ndH ")& Seri!l."rint(idD)& if (e!'.0r.du+"9o++!nd(*rou"$ idD$ n!+e$ tr!in)) : Seri!l."rint(" = ")& Seri!l."rintln(n!+e)& ; el'e hile !itin* for ! '"oFen co++!nd

Seri!l."rintln()& e!'.0r."l!.Sound(0$ -!'./RHH/O>3<U>>)& 77 "erfor+ 'o+e !ction !ction()& ; el'e 77 error' or ti+eout : if (e!'.0r.i'2i+eout()) Seri!l."rintln("2i+ed out$ tr. !*!in...")& int153t err = e!'.0r.*et-rror()& if (err >= 0) : Seri!l."rint("-rror ")& Seri!l."rintln(err$ =-K)& ; ; ; 0oid 1o0e#(): !n!lo*(rite(1O2OR13)IN1$ #44)& !n!lo*(rite(1O2OR13)IN#$ 0)& !n!lo*(rite(1O2OR#3)IN1$ 0)& !n!lo*(rite(1O2OR#3)IN#$ #44)& ; 0oid 1o0e(): !n!lo*(rite(1O2OR13)IN1$ 0)& !n!lo*(rite(1O2OR13)IN#$ #44)& !n!lo*(rite(1O2OR#3)IN1$ #44)& !n!lo*(rite(1O2OR#3)IN#$ 0)& ; 0oid for !rd(): !n!lo*(rite(1O2OR13)IN1$ #44)& !n!lo*(rite(1O2OR13)IN#$ 0)& !n!lo*(rite(1O2OR#3)IN1$ #44)& ;

0oid re0er'e(): !n!lo*(rite(1O2OR13)IN1$ 0)& !n!lo*(rite(1O2OR13)IN#$ #44)& !n!lo*(rite(1O2OR#3)IN1$ 0)& !n!lo*(rite(1O2OR#3)IN#$ #44)& ; 0oid ri*ht(): !n!lo*(rite(1O2OR13)IN1$ 0)& !n!lo*(rite(1O2OR13)IN#$ #44)& !n!lo*(rite(1O2OR#3)IN1$ I#44)& !n!lo*(rite(1O2OR#3)IN#$ 0)& ; 0oid left(): !n!lo*(rite(1O2OR13)IN1$ I#44)& !n!lo*(rite(1O2OR13)IN#$ 0)& !n!lo*(rite(1O2OR#3)IN1$ 0)& !n!lo*(rite(1O2OR#3)IN#$ #44)& ; 0oid 'to"(): !n!lo*(rite(1O2OR13)IN1$ 0)& !n!lo*(rite(1O2OR13)IN#$ 0)& !n!lo*(rite(1O2OR#3)IN1$ 0)& !n!lo*(rite(1O2OR#3)IN#$ 0)& ; 0oid !ction() : ' itch (*rou") : c!'e 8ROU)30H ' itch (idD) : c!'e 8031O/-H 1o0e()& del!.(1400)& for !rd()&

del!.(400)& re0er'e()& del!.(#40)& 'to"()& 77 rite .our !ction code here

*rou"=8ROU)31& 77 *rou" = 8ROU)3K& ,II or Lu+" to !nother *rou" K for co+"o'ite co++!nd' Bre!F& ; Bre!F& c!'e 8ROU)31H ' itch (idD) : c!'e 813<OR(ARDH for !rd()& del!.(%000)& 'to"()& 77 co++!nd' Bre!F& c!'e 813R-/-RS-H re0er'e()& del!.(%000)& 'to"()& 77 co++!nd' rite .our !ction code here 77 *rou" = 8ROU)3K& ,II or Lu+" to !nother *rou" K for co+"o'ite Bre!F& c!'e 813RI8=2H ri*ht()& del!.(400)& 'to"()& 77 co++!nd' Bre!F& c!'e 813>-<2H left()& del!.(400)& rite .our !ction code here 77 *rou" = 8ROU)3K& ,II or Lu+" to !nother *rou" K for co+"o'ite rite .our !ction code here 77 *rou" = 8ROU)3K& ,II or Lu+" to !nother *rou" K for co+"o'ite

'to"()& 77 co++!nd' rite .our !ction code here 77 *rou" = 8ROU)3K& ,II or Lu+" to !nother *rou" K for co+"o'ite Bre!F& c!'e 813DAN9-H 1o0e()& del!.(#000)& re0er'e()& del!.(400)& 1o0e#()& del!.(1000)& for !rd()& del!.(400)& left()& del!.(1000)& ri*ht()& del!.(400)& for !rd()& del!.(#40)& 1o0e()& del!.(#000)& re0er'e()& del!.(400)& 1o0e#()& del!.(1000)& for !rd()& del!.(400)& left()& del!.(1000)& ri*ht()& del!.(400)& for !rd()& del!.(#40)& re0er'e()& del!.(400)&

1o0e#()& del!.(1000)& for !rd()& del!.(400)& left()& del!.(1000)& ri*ht()& del!.(400)& for !rd()& del!.(#40)& re0er'e()& del!.(#40)& 1o0e()& del!.(400)& 'to"()& 77 co++!nd' rite .our !ction code here 77 *rou" = 8ROU)3K& ,II or Lu+" to !nother *rou" K for co+"o'ite Bre!F& c!'e 813>ON83<OR(ARDH for !rd()& 77 co++!nd' Bre!F& c!'e 813>ON83R-/-RS-H re0er'e()& 77 co++!nd' rite .our !ction code here 77 *rou" = 8ROU)3K& ,II or Lu+" to !nother *rou" K for co+"o'ite Bre!F& c!'e 813S2O)H 'to"()& 77 co++!nd' Bre!F& ; Bre!F& rite .our !ction code here 77 *rou" = 8ROU)3K& ,II or Lu+" to !nother *rou" K for co+"o'ite rite .our !ction code here 77 *rou" = 8ROU)3K& ,II or Lu+" to !nother *rou" K for co+"o'ite

; ;