You are on page 1of 89

Universitatea „Politehnică” din București

Facultatea de Electronică, Telecomunicații si Tehnologia Informației

Sistem automat de comandă la


distanţă a unui dispozitiv de afişaj

Proiect de diplomă

Conducători științifici:

Şef de lucrări dr. ing. Surugiu Ioan


Şef de lucrări dr. ing. Dănişor Alin

Absolvent

Meantu I. Maria Mădălina

Constanța

2014
Universitatea „Politehnica” din București

Facultatea de Electronică, Telecomunicații si Tehnologia Informației

Sistem automat de comandă la


distanţă a unui dispozitiv de afişaj

Proiect de diplomă

Prezentată ca cerința parțială pentru obținerea titlului de


Inginer în domeniul Electronică si Telecomunicații
programul de studii Electronică aplicată

Conducători științifici

Şef de lucrări dr. ing. Surugiu Ioan


Şef de lucrări dr. ing. Dănişor Alin

Absolvent

Meantu I. Maria Mădălina

Constanța

2014
Copyright © 2014 , Meantu Mădălina Maria

Toate drepturile rezervate

Autorul acordă Universității “Ovidius” din Constanța dreptul de a reproduce şi de a distribui public
copii pe hârtie sau electronice ale acestei lucrări, în formă integrală sau parţială.
Cuprins

Introducere ........................................................................................................................................... 9

CAPITOLUL 1. Evoluţia sistemelor de comandă la distanţă ............................................................ 11

1.1.Concept .................................................................................................................................... 11
1.2.Exemple ................................................................................................................................... 11
1.3.Tipuri ........................................................................................................................................ 12
1.4.Utilitate .................................................................................................................................... 12
1.5.Istoric ....................................................................................................................................... 12

CAPITOLUL 2. Sistem automat de comandă la distanţă .................................................................. 15

2.1. Sistem automat comandat de către operatorul uman .............................................................. 15


2.1.1. Automatizare – aspecte generale ...................................................................................... 15
2.1.2. Sistemul om-maşină-mediu ............................................................................................. 19
2.1.3. Considerente ergonomice în dezvoltarea sistemelor automate ........................................ 20
2.1.4. Interacţiunea om-maşină .................................................................................................. 21
2.1.5. Interfaţa om-calculator ..................................................................................................... 23
2.1.6. Mijloacele actuale de interacţiune neconvenţională cu utilizatorul ................................ 26
2.2. Stabilirea mediilor de comunicaţii într-un sistem de comandă automat ................................. 27
2.2.1.Sisteme de comunicaţii ..................................................................................................... 27
2.2.2. Medii de comunicaţii ....................................................................................................... 28
2.2.3. Alegerea unei soluţii de comunicare între dispozitive ..................................................... 30
2.2.4. Tehnologia Bluetooth ....................................................................................................... 31

CAPITOLUL 3. Implementarea hardware a sistemului automat de comandă la distanţă a unui


dispozitiv de afişaj ............................................................................................................................. 39

3.1. Microcontrolerul ..................................................................................................................... 40


3.1.1.Generalități ........................................................................................................................ 40
3.1.2. Descrierea structurii microcontrolerului .......................................................................... 41
3.1.3 Caracteristici importante ale microcontrolerelor .............................................................. 44
3.1.4. Limbaje de programare utilizate ..................................................................................... 44
3.2. Specificaţii ale microcontrolerului ATmega 328P .................................................................. 45
3.3. Placa de dezvoltare Seeeduino v2.21 ..................................................................................... 53
3.3. Modulul Bluetooth .................................................................................................................. 57
3.4. Terminalul de tip Smartphone ................................................................................................. 58
3.5. Matricea de LED-uri ............................................................................................................... 59
3.6. Construcţia ansamblului.......................................................................................................... 60
3.7. Utilizare................................................................................................................................... 60
7
CAPITOLUL 4. Implementarea software a sistemului automat de comandă la distanţă a unui
dispozitiv de afişaj ............................................................................................................................. 61

4.1. Introducere în mediul de programare Arduino....................................................................... 61


4.2. Schema logică a funcţionării sistemului ................................................................................. 63
4.4. Sistemul de operare Android ................................................................................................... 65
4.5. MIT App Inventor .................................................................................................................. 67
4.6. Aplicaţia de comandă realizată cu App Inventor .................................................................... 69
4.5.1. Descrierea ferestrei de design .......................................................................................... 70
4.6.2. Descrierea blocurilor de program .................................................................................... 71
4.6.3. Etape de proiectare–execuție şi componente utilizate ..................................................... 76

Concluzii ............................................................................................................................................ 81

Bibliografie ........................................................................................................................................ 83

Anexe ................................................................................................................................................. 85

8
Introducere
Motivaţia lucrării
Caracterul dinamic evolutiv al sistemelor electronice este determinat de tendinţa majorării
continue a eficienţei cu care societatea acţionează asupra mediului.
În spatele acestei lucrări stă problema relaţiilor om-maşină-mediu, care a devenit tot mai
importantă odată cu dezvoltarea tehnologiei şi schimbarea concepţiei despre muncă, prin
diminuarea efortului necesar şi prin creşterea cantităţii şi a calităţii rezultatelor obţinute de la
mediu, făcând necesară adaptarea optimă între subsistemele componente, prin cercetarea
factorilor tehnici în continuă schimbare.
Acţiunea omului asupra mediului este, prin definiţie, mijlocită de un obiect - sistem fizic –
adecvat, numit în mod convenţional, maşină.
În prezent, operatorul uman dispune de conducerea şi controlul uneltelor şi a resurselor de
energie artificiale cu ajutorul dispozitivelor automate.
Se consideră că adaptarea maşinii la om este mai uşoară decât adaptarea omului la maşini,
iar avansul tehnologiei şi complexitatea tot mai mare a sistemelor tehnice a făcut necesară
reproiectarea unor dispozitive de afişare care să ţină cont de specificul şi limitele utilizatorilor,
astfel încât integrarea tehnologică a condus la apariţia de noi dispozitive, având capabilităţi diferite
şi fiind utilizate în diferite contexte de lucru, diferite de cel tradiţional, drept exemplu concret putem
avea în vedere multifuncţionalitatea unui terminal de tip Smartphone.
Utilizatorii, ca dezvoltatori de aplicaţii – disponibile la nivel de desktop şi/sau Web,
încorporate în diverse echipamente şi utilaje, oferite pe scară largă de tehnologiile telefoniei mobile
se confruntă actualmente cu o multitudine de tipuri de controale de interacţiuni şi cu proliferarea
interacţiunilor neconvenţionale, mai ales via dispozitive fără fir şi/sau senzori.
Tehnologiile telefoniei mobile, dispun de un software, care are tot mai mult un profund
caracter social, masă de utilizatori de aplicaţii fiind într-o creştere fără precedent. Suplimentar,
există aşteptări tot mai mari, una dintre cerinţe fiind aceea că aplicaţiile să prezinte un caracter
familiar publicului-ţintă acesta fiind şi unul dintre factorii importanţi de evaluare a utilizabilităţii.
De asemenea, asistăm la apariţia unei multitudini de metafore şi de idiom-uri de
interacţiune, concretizate prin tipuri/stiluri familiare – recognoscibile – de interfeţe, fiecare având
propriul vocabular de obiecte, acţiuni, înfăţişări etc., cu implicaţii importante în ceea ce priveşte
crearea unei anumite experienţe – deseori, unice – utilizatorului.
Tehnologiile prezente, pun la dispoziţie interfeţele haptice – bazate pe senzaţii tactile; drept
„input‖ poate fi considerat ecranul şi/sau tabla haptic(ă) ce permite „atingerea‖ obiectelor digitale,
iar cu ajutorul acestora, putem obţine drept „output‖ rezultate chiar şi în afara mediului virtual.
Rezultatul, se obţine prin mediere, utilizând un sistem de calcul adecvat (cu rol de
traductor), ce stabileşte mediile de comunicaţie, atât cu terminalul de comandă, cât şi cu sistemul
controlat, fiind capabil să interpreteze şi să analizeze informaţiile primite, astfel încât acţiunea
comandată să fie executată eficient şi în timp real, în scopul transpunerii într-un proces concret
dezvoltat de un sistem.
Ideea de control la distanţă, în timp real a mai multor dispozitive electronice sau a mai
multor procese din mediul înconjurător, cu ajutorul unui singur produs, ce încearcă să acopere o
arie cât mai largă a necesităţilor utilizatorilor, prin aplicaţiile aferente, este tot mai promovată,
discutată şi în plin proces de dezvoltare.
O bună oportunitate pentru noi în favoarea acestei tendinţe, de a obţine acces şi control
asupra unei întregi reţele de dispozitive cu care intrăm în contact, sunt telefoanele inteligente. Ele în
prezent pot înlocui subsisteme de comandă, cum ar fi telecomanda televizorului, însă privim cum
cerinţele se extind către case inteligente a căror iluminare, uşi şi o mare varietate de dispozitive
electronice se doresc a fi controlate prin intermediul acestora, de asemenea, ne imaginăm, la o
scară mai largă, un întreg sistem industrial care are la bază comanda, controlul şi monitorizarea
proceselor comprimate într-un astfel de sistem.

9
Scopul lucrării
Lucrarea îşi propune proiectarea unui sistem de comandă la distanţă, în timp real a până la
64 de dispozitive, care în cazul de faţă sunt reprezentate prin LED-uri, dispuse matriceal, pentru
complexitate şi evidenţierea posibilităţii manifestării unor preferinţe, în momentul introducerii
comenzii, scopul fiind diminuarea efortului operatorului uman în monitorizarea şi controlul unui
sistem electronic.

Obiectivele lucrării
Această lucrare îşi propune să analizeze atât etapele proiectării şi elaborării unui model
experimental pentru comandă automată la distanţă a unui sistem electronic matriceal de LED-uri cu
ajutorul unui terminal mobil de tip Smartphone, cât şi etapele dezvoltării şi construcţiei acestuia
pentru a ajunge în final la un dispozitiv funcţional şi fiabil.
Nucleul platformei mobile va fi reprezentat de placa de dezvoltare Seeeduino, care are la
baza sa microcontrolerul Atmega 328p. Placa de dezvoltare va trebui să preia comanda introdusă de
operatorul uman de la terminalul de tip Smartphone, să o proceseze, să o interpreteze şi să pună în
funcţiune componenta selectată.
Emanciparea software-ului aferent aplicaţiei se va realiza prin generarea programelor cod
aflate în strânsă legătura, ale microcontrolerului şi dispozitivul Android .
Etapa de construcție va reprezenta realizarea conexiunilor modulelor la placa de dezvoltare
centrală prin cabluri electrice. În prima fază modulele vor fi testate individual conectând pe rând la
placa centrală câte una din componentele periferice.
Proiectul fizic va constitui interconectarea componentelor asigurând buna funcționare
a sistemului, prin controlul modulului de execuţie ce constă în matricea de LED-uri, unificând
dispozitivele într-un singur sistem funcțional și fiabil, ușor de realizat și practic pentru situații
generale de monitorizare şi control.

Domeniul lucrării
Lucrarea se încadrează atât în spectrul sistemelor reglabile automate (SRA) cât şi al
sistemelor de comunicaţii (SC), în special radiocomunicaţii, fiind vorba despre comanda la
distanţă, realitată cu ajutorul mediului de comunicaţie Bluetooth, a unui dispozitiv electronic al
cărui nucleu este microcontrolerul Atmega328.

Utilitatea practică a proiectului


Proiectul practic realizat poate acapara o multitudine de arii de specialitate, prin modificarea
uşoară a aplicaţiei în funcţie de dispozitivul ce se doreşte a fi monitorizat şi controlat.
Spre exemplu, LED-urile dispuse matriceal, pot fi privite ca până la 64 de sisteme
electronice din arii diferite ale unei case inteligente, iar cu ajutorul unei aplicaţii similare se pot
realiza diferite comenzi asupra acestora.
De asemenea, LED-urile pot fi înlocuite cu subsisteme automatizate ale unui ansamblu
industrial.
Comanda personalizată în timp real a unui sistem de afişaj, poate fi utilizată atât în sisteme
de producţie sau sisteme inteligente ale unor clădiri, în scop de avertizare, cât şi în entertaiment:
jocuri, afişoare de scor sau reclame personalizate, aşa cum se poate urmări în ANEXA 6.

10
CAPITOLUL 1
EVOLUŢIA SISTEMELOR DE COMANDĂ LA DISTANŢĂ

1.1. Concept

Având în vedere că o mulţime de sisteme tehnologice şi electrocasnice pot fi operate la


distanţă, un dispozitiv prin care se transmit comenzi acestora a devenit imperios necesar.
Comanda de la distanţă a echipamentelor şi aparatajului este realizată cu scopul schimbării
stării operative a acestora şi semnalizarea la distanţă a stării echipamentelor sau aparatelor
controlate.

Prin acest concept facem referire la multitudinea dispozitivelor moderne de


introducere a datelor şi comenzilor într-un sistem de calcul, de tip „calculator‖, iar
rezultatele obţinute la ieşirea acestuia pot fi folosite în mod direct (nemijlocit) drept
decizii în dirijarea altor mașini, de exemplu, în cazul unui robot industrial, cel mai
important dispozitiv de ieșire al sistemului de calcul înglobat în el
creează comenzile detailate necesare pentru toate operațiile mecanice
ale robotului propriu-zis.

1.2. Exemple

Când vorbim despre sistem de control la distanţă ne gândim la un


dispozitiv ce dă comenzi sistemelor electrice şi electronice uzuale, de dimensiuni
relativ mici, pentru a putea fi uşor de manevrat, astfel de dispozitive le întâlnim
frecvent sub forma unor telecomenzi, joystick-uri sau cele mai comune şi mai des
întâlnite modalități de introducere directă de la distanţă a datelor: tastaturile și
mouse-urile.

Figura 1.1 Schema bloc


a unui sistem automat
de comandă . la distanţă

Figura 1.2 Exemple sugestive de sisteme de comandă la distanţă [1]

11
1.3. Tipuri

În principiu, comanda la distanţă se poate stabili prin fir sau fără fir, cu ajutorul butoanelor
sau manşetelor de adaptare la diferite stări. Astfel de sisteme comunică prin intermediul semnalelor
ultrasonice, infraroşii sau radio cu dispozitivul electric pentru care au fost concepute sau cu mai
multe dispozitive, pentru că există şi dispozitive de control la distanţă folosite pentru o gamă mai
largă de produse.

1.4. Utilitate
Utilitatea unui astfel de sistem, de control la distanţă al dispozitivelor, nu poate fi pusă la
indoială, întrucât uşurează considerabil munca operatorilor, astfel nu mai este necesară deplasarea la
dispozitiv pentru a putea face anumite setări şi a stabili parametri de funcţionare. Chiar dacă pare un
capriciu, există situaţii, cum ar fi lucrul în medii radioactive, chimice sau zone de risc, în general,
unde pătrunderea operatorului uman în mediu este practic imposibilă.
Chiar şi asa, sistemele de acest tip au fost concepute pentru largul consum, în scopul
câştigului de timp, confort şi comoditate, în timpul realizării diferitelor activităţi, fiind astfel
utilizate în toate domeniile : în industrie, în armată, în controlarea sateliţilor şi a roboţilor trimişi pe
alte corpuri cereşti, pentru controlarea aplicaţiilor pe calculator, în fotografie sau pentru distracţie.

1.5. Istoric

 Primul concept, realizat pentru controlul unei bărci


Unul dintre primele exemple de dispozitive de comandă la distanţă a fost lansat în 1898 de
Nikola Tesla şi a fost descris în lucrarea sa numită „Metoda unui aparat cu un mecanism de control
al unui vehicol sau vehicule în mişcare‖, conceptul numit pe atunci „teleautomaton‖ acţiona cu
ajutorul undelor radio şi controla o barcă.

 Prima comandă la distanţă a unui robot


Leonardo Torres Quevedo a obţinut un patent pentru Telekino în 1903, acest dispozitiv
emiţând unde electromagnetice care constituiau comenzi pe care un roboţel trebuia să le
îndeplinească, iar cu acest proiect, Torres a pus bazele principiilor operaţionale ale telecomenzilor
din zilele noastre.

 Primul dispozitiv de control pentru aeroplane


Primul dispozitiv de control fără fir pentru aeroplane a fost creat în 1932, iar în timpul celui
de-al Doilea Război Mondial, cercetările în acest sens s-au intensificat.

 Primele dispozitive realizate pentru comanda electrocasnicelor


Spre anii 1940 au apărut primele dispozitive mici de control – ce-i drept cu fir – pentru
utilizatorii casnici.

Figura 1.3. Prima telecomandă pentru utilizatori casnici [2]


12
Prima telecomandă pentru un televizor a fost creată în anii 1950 de către firma Zenith Radio
Corporation, aceasta fiind intitulată sugestiv Lazy Bones (oase leneşe). Era conectată la televizor
printr-un fir, însă făcea o treaba foarte bună pentru cei leneşi, care nu doreau să se ridice din pat
pentru a închide televizorul înainte de culcare.
În 1955 a apărut prima telecomandă cu fir, dezvoltată de Robert Adler, un angajat al firmei
Zenith. Era însă destul de scumpă şi folosea ultrasunete pentru a schimba volumul şi canalul
televizorului.
Deşi înainte de anii 1970 aceste dispozitive nu erau neaparat necesare, pentru uzul casnic,
odată cu dezvoltarea sistemului tehnologic, apariţia teletextului, culorilor, necesitatea şi utilitatea
acestora au crescut, iar designul lor a trebuit să fie schimbat, căci noile opţiuni necesitau noi şi noi
butoane. Aşa au apărut telecomenzile cu butoane numerice.

 Primul sistem de comandă cu infraroşu


Telecomanda pentru transformatorul cablu TV a fost creată în 1980 de către compania
canadiană ViewStar, aceasta devenind şi prima telecomandă cu infraroşu.

 Apariţia dispozitivelor periferice de control al calculatorului


Spre sfârşitul anilor 1990 şi începutul anilor 2000, popularitatea telecomenzilor a crescut tot
mai mult, având un adevarat boom electronic; totul poate fi controlat prin intermediul acestor
dispozitive: sisteme audio, televizoare, calculatoare, DVR, receiver-ul antenei parabolice, luminile
şi multe altele. În medie, în fiecare casă se găsesc cel putin trei astfel de sisteme folosite frecvent.
Producătorii au introdus pe piață şi telecomenzi cu Bluetooth care nu mai necesită o legatură
directă între emiţător şi receptor.

 Primele telefoane inteligente folosite ca sisteme de automatizare şi control


Spre sfârşitul anilor 2000 au fost create şi primele programe pe telefoane inteligente care
permit utilizatorului să folosească telefonul ca telecomandă pentru mai toate dispozitivele ce pot fi
controlate de la distanţă.
Lucru ce ne plasează în tematica acestui proiect, pentru că în era noastră, datorită avansului
tehnologic din ultimii ani, o schimbare majoră la nivelul sistemelor de comandă şi control a venit
odată cu apariția smartphone-urilor și tabletelor, fie iPhone sau iPad, fie a celor cu Android.
În ziua de astăzi, din ce în ce mai multă lume are în buzunar un dispozitiv ―inteligent‖, cu
touchscreen, prin intermediul căruia poate, printre altele, să monitorizeze, prin unde radio
(Bluetooth/Wi-Fi) sau infraroșii, diverse sisteme de automatizare și control.

 Urmează, dar încă nu a intrat în producție și utilizare de masă


Acum folosim o telecomandă pentru TV, una pentru set-top box-ul operatorului de cablu,
una pentru CD sau Blu-ray player, una pentru aerul condiționat etc.
Imaginați-vă că renunțăm la toate și că folosind doar smartphone-ul sau tableta putem
controla toate aceste dispozitive/sisteme, plus multe altele ( iluminat, încălzire etc.).
Deja au apărut sistemele de administrare a clădirilor, numite Building Management Systems
controlează și monitorizează echipamentele mecanice și electrice dintr-o clădire, cum ar fi: sistemul
de ventilație și aer condiționat (HVAC), sistemele de iluminat, sistemele de alimentare cu energie
electrică, sistemele de protecție împotriva incendiilor, sistemele de securitate și control al accesului.
Comenzile de control, monitorizare, modificare a parametrilor se pot realiza de pe un smartphone,
utilizat ca sistem automat de control sau monitorizare la distanţă.

13
Figura 1.4. Telefonul folosit ca sistem de comandă si monitorizare la distanţă pentru diverse
dispozitive [3]

Figura 1.5. Telefonul mobil preluând funcţiile altor dispozitive de control la distanță: mouse,
tastatură şi telecomandă TV [4]

14
CAPITOLUL 2
SISTEM AUTOMAT DE COMANDĂ LA DISTANŢĂ

În acest capitol, avem în vedere faptul că, noi ca utilizatori ai unui sistem de comandă vom
scrie o aplicaţie care va trimite comenzi la şi vom primi date sau rezultate reale de la un instrument,
care poate fi un LED, un senzor, un motor, un robot sau orice dispozitiv electronic.
Utilizatorul trebuie să se orienteze către conexiunea software cu instrumentul. Astfel că,
utilizatorul trebuie să înţeleagă cum comunică aplicaţia cu instrumentul. În plus utilizatorul trebuie
să aibă în vedere şi tipul de conexiune hardware cu instrumentul.

2.1 Sistem automat comandat de către operatorul uman

2.1.1. Automatizare – aspecte generale

Pe parcursul secolelor, oamenii şi-au perfecţionat uneltele, maşinile, echipamentele şi


metodele de lucru (într-un cuvânt, tehnologia) prin care realizau diferite obiecte şi servicii. Unele
dintre aceste îmbunătăţiri au avut o astfel anvergură încât au determinat schimbări majore la nivel
social şi economic.
Problema relaţiilor om-maşină-mediu a devenit tot mai importantă odată cu dezvoltarea
tehnologiei şi schimbarea concepţiei despre muncă, făcând necesară adaptarea optimă între
subsistemele componente (subsistemul om, subsistemul maşină, subsistemul mediu), prin cercetarea
factorilor tehnici în continuă schimbare.
Apariţia sistemelor automate în perioada actuală poate fi justificată prin necesitatea
adecvării omului la mediu. Adecvarea omului la mediu intră în categoria procesului de creştere a
productivităţii interacţiunii, prin diminuarea efortului necesar şi prin creşterea cantităţii şi a calităţii
rezultatelor obţinute de la mediu.
Interacţiunea om-unealtă-mediu, conducerea şi controlul uneltelor şi a resurselor de energie
artificiale se realizează cu ajutorul dispozitivelor automate.
În majoritatea societăţilor industriale datorită , în principal, creşterii productivităţii ,
sistemele automate au un rol important în procesul de automatizare a proceselor tehnologice. S-a
ajuns astfel, prin introducerea acestor utilaje industriale, la transformarea sistemelor de producţie ,
de la sisteme cu interacţiune om-maşină la sisteme complet automate. Această transformare
conduce la un timp mai scurt de fabricare, la eliminarea erorilor apărute în timpul procesului de
producţie.
Maşina automată poate fi comandată cu un program sau cu comanda de la un operator
uman.
Programul de lucru al unei maşini automate este în general rigid, conceput pentru o anumită
maşină , utilaj sau proces.
Automatizarea reprezintă actiunea de concepere, de realizare de automate si de echipare a
sistemelor fizico-tehnice cu automate pentru efectuarea în mod automat a unor operații, mișcări,
acțiuni etc.

Cele mai importante categorii de automatizări sunt:


• de comandă;
• de măsurare;
• de reglare;
• de protecţie şi semnalizare.

15
Scopurile generale ale utilizării sistemelor şi automatizării:
• Creşterea productivităţii;
• Scăderea consumurilor specifice;
• Asigurarea preciziei de execuţie;
• Creşterea siguranţei în funcţionare;
• Protejarea instalaţiilor;
• Scoaterea operatorului uman din medii nocive;
• Eliberarea operatorului uman de procesul producţiei de bunuri şi de servicii.

Operatorul uman conduce, comandă şi supraveghează procesele create de el însuşi.

Dezvoltarea producţiei de bunuri şi servicii a fost marcată de două mari evenimente:


• Revoluţia industrială din secolul XVIII, caracterizată de utilizarea pe scară largă a maşinilor
unelte şi a altor maşini şi utilaje acţionate de maşina cu vapori;
• Revoluţia ştiinţifico-tehnică contemporană, caracterizată de automatizarea sistemelor fizico-
tehnice şi de altă natură, precum şi de informatizarea globală a societăţii omeneşti.

Evoluţia în timp a rolului omului în sistemele de producţie este prezentată sugestiv în figura
2.1.
Acţiunea tehnologică are ca obiectiv principal transformarea determinată, specifică a
resurselor substanţiale, energetice şi informaţionale, disponibile pe diferite trepte de dezvoltare a
societăţii umane.
Caracterul dinamic evolutiv al sistemelor de producţie este determinat de tendinţa majorării
continue a eficienţei cu care societatea acţionează asupra mediului. Evoluţia ştiinţei contemporane a
imprimat ritmuri deosebit de înalte de dezvoltare a producţiei materiale sub aspect cantitativ şi
calitativ, datorate îndeosebi valorificării operative a descoperirilor ştiinţifice şi tehnice şi
perfecţionărilor intervenite în conducerea sistemelor de producţie.

Figura 2.1. Acţiuni ale operatorului uman în sistemul de producţie.[5]

La scara istoriei, producţia de bunuri și de servicii s-a dezvoltat pe urmatoarele trepte:


• Manufactura;
• Mecanizare;
• Automatizare, care a intrat în faza de cibernetizare; aceasta se caracterizează prin
prelucrarea complexă a informaţiei folosind tehnica de calcul şi proceduri matematice şi
informatice adecvate.

16
Cibernetica are în vedere caracteristicile sistemelor induse de comunicaţiile existente în
structura lor, ca şi de mediul ambiant. Aceste aspecte se concretizează astfel:
• Aparatele şi operatorul uman sau dispozitivul de automatizare şi instalaţia tehnologică
formează o unitate relativ delimitată de mediu – adică un sistem;
• Fiecare element component are o funcţie precisă şi ocupă o anumită poziţie în cadrul
sistemului. Sistemul are o structură.
• Între elementele sistemului, conform structurii, există comunicaţii prin care se transmit
informaţii (concret semnale) într-o singură direcţie şi anume în sensul de la cauză la efect.
Mărimea cauză se numeşte mărime de intrare, iar mărimea efect se numeşte mărime de
ieşire.
• Conexiunea cauzală, conform principiului cauzalităţii, este legătura între două evenimente
(mărimi) u şi y, în care apariţia lui u generează, în anumite condiţii, în mod necesar apariţia
lui y. Totodată, absenţa lui u este legată în mod necesar de absenţa lui y. Conexiunea
cauzală poate fi reprezentată ca o relaţie complexă:

Acțiunea comună a elementelor componente asigură realizarea scopului. În cazul sistemelor


cu reacție negativă evoluția are loc în sensul anulării abaterii și respectiv al compensării efectului
perturbațiilor. Sistemul în ansamblu are această proprietate. Nedecelabilă în elementele sistemului,
această proprietate este un rezultat al structurii în care sunt asamblate elementele componente și
comunicațiile dintre elemente.

Figura 2.2. Structura și relațiile în cadrul unei mecanizări sau automatizări [8]

În general, pentru realizarea funcțiilor sale în cadrul structurii cu reacție, dispozitivul de


automatizare este construit din:
• Traductor, cu ajutorul căruia se măsoară valoarea curentă a unei mărimi;
• Regulator, care elaborează comanda, pe baza unui algoritm, astfel încât evoluția sistemului
să aibă loc în scopul anulării abaterii dintre valoarea prescrisă și cea curentă;
• Element de execuție, care reproduce comanda elaborată de regulator la un nivel energetic
adecvat și care acționează organul de reglare asupra fluxurilor de energie și/sau de substanță
implicate în proces.
Automatizarea este utilizată în special pentru sitemele de producţie, u n sistem de
producţie poate fi reprezentat schematic prin elementele esenţiale pe care le conţine: intrări,
ieşiri şi procesul de producţie propriu-zis (figura 2.3). Sistemele de producţie industrială fac
parte din clasa sistemelor om-maşină-mediu, create şi dezvoltate de către om, în vederea
întreţinerii vieţii individului şi societăţii umane.
17
Sistemele om-maşină-mediu, conţin procese de autoreglare pentru menţinerea stabilităţii
precum şi subsisteme informatice şi de conducere, cu caracter optimizator al unor obiective,
imprimând astfel acestor sisteme un caracter activ- acţional.
Acţiunea reprezintă, la modul general, transformarea finalizată a raportului dintre om - ca
subiect al acţiunii - şi mediu - ca obiect al acţiunii. Noţiunea de mediu include atât ambianţa fizică
- fenomene şi obiecte existente în natură sau create de om, cât şi ambianţa socială, rezultată din
relaţiile interumane stabilite pe parcursul acţiunii.

Figura 2.3. Conceperea sistemică a procesului prin automatizare [5]

Acţiunea omului asupra mediului este, prin definiţie, mijlocită de un obiect - sistem fizic -
adecvat (unealtă, maşină, producţie), numit în mod convenţional, maşină.
Mulţimea relaţiilor dintre componentele unui sistem, precum şi a relaţiilor între componente
şi ansamblu formează structura sistemului. Limitele sistemului separă mediul înconjurător de sistem.
Sistemul există în interiorul limitelor sale şi tot ce se petrece în afara acestor limite constituie
mediul. Limitele controlează foarte strict intrările şi ieşirile reglând fluxul şi în afara sistemului. În
esenţă limitele sunt filtre de intrare/ieşire (FIG. 2.4).

Figura 2.4. Structura generală a unui sistem automatizat [5]

În interiorul limitelor se găseşte sistemul însuşi. Acesta poate fi o singură entitate, sau
poate fi compus din mai multe părţi componente, denumite subsisteme. Informaţia încorporabilă
şi canalele de introducere a acesteia în structuri substanţiale, constituie obiectul ştiinţei
metodelor şi mijloacelor de transformare a resurselor în produse.
Această ştiinţă - a tehnologiei materialelor - reprezintă în concepţia modernă,
modalitatea optimă de realizare repetată a unor produse sau servicii.
Aşadar, avem în vedere următoarele aspecte:
-Teoria sistemică oferă posibilitatea de tratare generală a problematicilor referitoare la
procese industriale, ea putând fi apoi particularizată pentru cazuri concrete, sau situaţii reale;
-Rolul omului în sistemele de producţie a evoluat de la intervenţia cu forţa fizică propriu-
zisă la activitatea cerebrală;
-Prezenţa calculatoarelor, a conexiunilor între acestea, precum şi a programelor de
proiectare şi execuţie a condus la dezvoltarea unor sisteme care au posibilitatea de monitorizare
a activităţii, control al calităţii produselor şi chiar autoperfecţionare.
-Dezvoltarea puternică a reţelelor de comunicaţie face ca informaţiile să fie transmise /
recepţionate corect şi în intervalul de timp potrivit pentru utilizarea acestora ca şi parametri
ai proceselor tehnologice.
18
2.1.2. Sistemul om-maşină-mediu
Sistemul om-maşină-mediu este un ansamblu format din unul sau mai mulţi oameni şi una sau
mai multe componente fizice (maşini, echipamente) care interacţionează pe baza unui circuit
informaţional, în cadrul unei ambianţe fizice şi sociale, în vederea realizării unui scop comun .
Această definiţie, care subliniază componentele sistemului, interacţiunea dintre ele şi scopul
interacţiunii dintre componente (motivul pentru care a fost creat: să transporte, să producă, să
transmită informaţie, etc.) descrie un sistem elementar (deseori descriind un post de muncă) care
poate avea structuri diferite.

Proprietăţile sistemului

 Adaptabilitatea sistemului. Este capacitatea sistemului de a se modifica "din mers", fără


perturbări majore datorită schimbărilor interne în echipament, tehnologii, energie, scop,
oameni.
 Stabilitatea sistemului. Un sistem este stabil când îşi îndeplineşte în orice moment scopul
pentru care a fost creat. În caz de perturbări, un sistem stabil îşi redresează funcţionarea prin
compensarea perturbărilor, eliminarea efectelor negative prin reglare, omul jucând în acest
sens, rolul esenţial.
 Fiabilitatea sistemului sau siguranţa în funcţionare, poate fi măsurată pe două căi:
 prin probabilitatea de a realiza cu succes o anumită performanţă, care se află în opoziţie cu
probabilitatea de apariţie a unei erori sau disfuncţionări (pană, incident, avarie);
 prin timpul mediu pentru o eroare care are, la rândul său, mai multe variante: timpul până la
o eroare sau timpul între erori, etc.

Componentele de bază al unui sistem om-maşină-mediu sunt ilustrate în figura 2.5.


Observăm că există trei subsisteme între care există interacţiuni, rezultanta lor influenţând calitatea
şi cantitatea muncii depuse de om.
Subsistemul om este descris prin funcţiile de recepţie, procesare a informaţiilor şi de luare a
deciziilor şi funcţia de acţiune prin care se acţionează direct asupra maşinii.
Subsistemul maşină este format din următoarele elemente: dispozitive de afişare şi
semnalizare, dispozitivele de comandă; între acestea două maşina realizează o serie de operaţii.
Subsistemul mediu influenţează funcţionarea sistemului prin componentele sale, date de:
zgomot, temperatură, umiditate, noxele toxice, iluminat, etc.

Urmărind în continuare figura 2.5. observăm că intrările (din perspectiva utilizatorului)


constituie informaţiile afişate de maşină care trebuie să fie compatibile cu simţurile umane
(imaginile, sunetele trebuie să aibă o durată şi intensitate care să permită recepţia optimă, eliminând
pe cât posibil erorile). Ieşirile (instrucţiuni de la om spre maşină) trebuie să ţină cont de capacităţile
motrice ale unui operator uman mediu. Dacă maşinile necesită intrări care depăşesc aceste capacităţi
fizice, sistemul nu funcţionează la potenţialul maxim. De exemplu, tastaturile calculatoarelor sunt
standardizate astfel încât introducerea datelor să fie cât mai eficientă atât în ceea ce priveşte
dispunerea tastelor cât şi pentru a nu obosi încheietura mâinii.

19
Figura 2.5. Sistemul om-maşină-mediu [6]

2.1.3. Considerente ergonomice în dezvoltarea sistemelor automate


Abordarea ergonomică vizează, transferarea de la om la maşină a funcţiilor de recepţie,
prelucrare a informaţiei şi chiar a unor funcţii de decizie, aceasta fiind un pas firesc în dezvoltarea
tehnologiei, care după preluarea de către echipamente a funcţiilor de agent motor, prelucrare
tehnologică şi transmitere, a ajuns la un nivel de dezvoltare suficient de ridicat pentru a prelua o
parte din funcţiile superioare de prelucrare a informaţiei şi de luare a deciziei.
Principalii factori care au făcut necesară apariţia ergonomiei au fost :
 Progresul tehnic şi tehnologic:
 A devenit tot mai evidentă discrepanţa între nivelul tehnic şi posibilităţile organismului
uman;
 Complexitatea tot mai mare a echipamentelor, precum şi valoarea lor tot mai ridicată, au pus
în evidenţă pericolul de accidentare şi costul enorm al erorii umane din punct de vedere al
pagubelor materiale (o eroare mică, poate genera costuri foarte mari);
1. Evoluţia concepţiei omului despre muncă şi viaţă:
 Exigenţe ridicate în ceea ce priveşte calitatea vieţii în general, calitatea vieţii profesionale,
confortul la locul de muncă;
 Progresul ştiinţelor tehnice, umane, economice şi sociale.
Ergonomiştii utilizează informaţiile despre oameni: de exemplu, abilităţile lor cognitive şi
motrice precum şi limitele lor, dimensiunile antropometrice, abilităţile de prelucrare a informaţiilor
şi decizie, particularităţile proceselor senzoriale şi perceptive, precum şi condiţiile optime de
temperatură, presiune, etc.
Aceste informaţii sunt apoi utilizate împreună cu proiectanţii de echipamente şi ingineri
pentru a se asigura că sistemele, produsele, încăperile, clădirile în care se desfăşoară munca oferă
condiţii de confort, eficienţă şi siguranţă.
Rolul specialistului în ergonomie este de a proiecta interfeţe între utilizator şi maşină, astfel
încât sistemul om-maşină să îşi atingă obiectivele într-un mod cât mai eficient. Metodele şi
tehnicile care sunt utilizate pentru a atinge acest deziderat ilustrează o importantă diferenţă între
perspectivele psihologului industrial şi ale specialistului în ergonomie. În timp ce psihologul pune
accent pe selecţie, training, motivare şi alte acţiuni având ca scop schimbarea angajatului,
perspectiva ergonomistului este centrată pe schimbarea componentelor maşinii din sistem,
considerându-se că adaptarea maşinii la om este mai uşoară decât adaptarea omului la maşină.

20
2.1.4. Interacţiunea om-maşină
Proiectarea interfeţei om-maşină este parte a proiectării sistemelor informatice. Din punct de
vedere teoretic, proiectarea interfeţei om-maşină se bazează pe studiul interacţiunii om-maşină.
Această reorientare teoretică a fost determinată de cerinţele proiectării centrate pe utilizator, care au
impus criteriile de utilizabilitate în evaluarea unui sistem informatic.

Figura. 2.6. Structura sistemului om-maşină

Interacţiunea om-maşină este un domeniu al ştiinţei şi tehnologiei informaţiei care s-a


constituit prin convergenţa unor preocupări asociate din psihologie, ingineria factorilor umani,
ergonomie şi ingineria software.

Figura 2.7. Reprezentarea analizei comunicării dintre mașini și oameni

Interacţiunea om-maşină ca disciplină, trebuie să răspundă problemelor generale de


ergonomie, pe care le ridică orice activitate umană, dar şi problemelor specifice unei activităţi
cognitive. Cu alte cuvinte, este necesară proiectarea corespunzătoare a sistemului (hardware-
software) astfel încât să asigure un mediu de lucru ergonomic pentru om, atât din perspectiva
efortului fizic cât şi a celui cognitiv. Diferenţa față de ergonomia clasică este orientarea către
fenomenele cognitive studiate de psihologie cum sunt percepţia, memorarea, reprezentarea
cunoştinţelor şi rezolvarea de probleme, în acest fel, ergonomia cognitivă extinde spaţiul de analiză
al sarcinii de lucru la procesele mentale care sunt determinate de folosirea unui artefact cognitiv.
Mai recent, se observă tendinţe de integrare a unor concepte din sociologie. Pe de o parte,
progresele făcute în tehnologia informaţiei şi comunicaţiilor şi creşterea utilizatorilor Internetului au
condus la apariţia de noi activităţi economice (comerţ electronic, sisteme de plată electronică,
sisteme de guvernare electronică) cu noi utilizatori, având noi cerinţe.
21
Pe de altă parte, integrarea tehnologică a condus la apariţia de noi dispozitive, având
capabilităţi diferite şi fiind utilizate în diferite contexte de lucru, diferite de cel tradiţional. În plus,
integrarea Tehnologiilor de Informare şi Comunicare (TIC) cu masmedia, în special cu televiziunea,
a creat un număr mare de utilizatori la domiciliu, cu o pondere crescândă în cerinţele pieţei.

În fine, posibilităţile de comunicare oferite de web au creat premisele dezvoltării


comunităţilor virtuale, care unesc utilizatori ai Internetului având preocupări şi obiective comune.
Se anticipează că în perioada următoare numărul utilizatorilor de Internet va creşte vertiginos iar
aspectele sociale ale utilizării TIC să treacă în centrul atenţiei. Atât din punct de vedere teoretic cât
şi practic este greu de conceput dezvoltarea tehnologiilor destinate să suporte comunităţile virtuale
şi democraţia electronică fără implicarea unor specialişti în sociologie şi etnografie.

IOM constituie un domeniu al ştiinţei si tehnologiei informaţiei, interacţiunea om-maşină


fiind o teorie esenţială pentru fundamentarea proiectării sistemelor interactive.

Scop:
• Proiectarea unor sisteme capabile să accentueze abilitățile umane prin adaptarea la
nevoile acestora
• Înțelegerea proceselor cognitive de bază implicate în dezvoltarea interfețelor om-
mașină
• Dezvoltarea de sisteme automate orientate spre utilizator
• Înțelegerea problemelor de utilizare ce apar în procesul de design
• Modalități de testare a calității interfețelor
• Modalități de îmbunătățire a interfețelor

Obiectul de studiu
Interacţiunea om-maşină este definită ca disciplină a ştiinţei şi tehnologiei informaţiei, al
cărei obiect de studiu este proiectarea, evaluarea şi implementarea sistemelor interactive şi studiul
fenomenelor majore legate de acestea:
• aspecte sociale şi organizaţionale legate de proiectarea sistemelor;
• capabilităţi (inclusiv de învăţare) de utilizare a maşinilor;
• performanţele activităţilor desfăşurate în comun de om şi maşină;
• structura comunicaţiei om-maşină;
• algoritmi şi programare a interfeţelor propriu-zise;
• ingineria dezvoltării de interfeţe.

În plan vertical spectrul preocupărilor este mai larg decât cel al ingineriei factorilor umani,
având în vedere nu numai interfaţa de interacţiune om-maşină dar şi partea de proiectare a
sistemului interactiv, în plan orizontal este mai puţin extins, limitându-se la o clasă de maşini
(calculatoare).

O altă definiţie, cu o exprimare mai concisă a obiectului de studiu.Interacţiunea om-maşină


este definită ca arie interdisciplinară de cercetare aplicativă şi practică deproiectare, a cărei
preocupare de bază o constituie înţelegerea şi facilitarea creării interfeţelor utilizator, prin care omul
interacţionează cu maşina.

22
2.1.5. Interfaţa om-calculator
Pentru ca sarcina să fie efectiv executată, utilizatorii trebuie să primească informaţii de la
echipament, într-un format pe care ei să îl poate recunoaşte şi înţelege.
Sub aspectul recepţionării de informaţii, în designul unui echipament proiectanţii pot opta
între diferite modalităţi senzoriale prin care să se realizeze aceasta. Deşi de cele mai multe ori
aceste modalităţi sunt determinate de natura situaţiei, există şi cazuri în care designerii pot alege
între diferite variante de semnalizare (vizuale, auditive, tactile, etc.). În luarea unei decizii de
proiectare trebuie luaţi în considerare doi factori:
1. avantajul relativ al unei modalităţi senzoriale asupra alteia, în funcţie de scopul
echipamentului (un exemplu: timpul de reacţie la diferiţi stimuli);
2. cerinţele existente deja asupra canalelor senzoriale.
Avansul tehnologiei şi complexitatea tot mai mare a sistemelor tehnice a făcut necesară
reproiectarea unor dispozitive de afişare care să ţină cont de specificul şi limitele utilizatorilor.
În figura 2.10 (a) este prezentată o carlingă cu dispozitive analogice. Principalele
dezavantaje ale acestor dispozitive le reprezintă numărul mare de cadrane, cifrele care ofereau
informaţii erau de dimensiuni reduse făcând dificilă citirea lor, fiecare cadran prezenta o singură
informaţie (de exemplu: viteza, altitudinea, etc.).

Figura 2.8. Dispozitive de afişare analogice (a) şi digitale (b) [7]

Modernizarea acestui sistem de afişaj s-a făcut prin introducerea cadranelor digitale (figura
2.10. b) care prezentau următoarele avantaje: reducerea numărului de dispozitive de citire (acesta
putând afişa informaţii sub format diferit: grafic, text, numeric), posibilitatea de a schimba
dimensiunile informaţiei afişate, folosirea unor coduri de culori diferite, posibilitatea de a configura
sistemul pentru a prezenta informaţii într-o anumită secvenţă în funcţie de etapa de zbor (decolare,
aterizare, etc.).
Procesarea informaţiilor şi luarea de decizii. După recepţia informaţiilor, utilizatorul
trebuie să fie capabil să înţeleagă informaţia pentru a lua decizia corespunzătoare. În cadrul fazei de
procesare a informaţiilor omul este implicat în diferite operaţii mintale (judecăţi, evaluări,
raţionamente, calcule), iar la sfârşitul acestora se ia o decizie.
În funcţie de informaţiile de la intrare, procesele de prelucrare vor conduce la luarea unei
decizii urmate de cea mai potrivită acţiune asupra echipamentelor. În cazul sarcinilor
repetitive, decizia este practic predeterminată. Acesta este cazul proceselor de muncă mecanizate şi
automatizate, în care omul se întâlneşte cu aceeaşi stimuli care îi semnalizează evoluţia activităţii
sale. În cazul sarcinilor mai puţin structurate şi nepredictibile, capacităţile intelectuale ale omului
sunt mai mult utilizate. În acest caz, pe lângă acurateţea informaţiilor de la intrare, un rol important
îl au experienţa, pregătirea profesională şi aptitudinile omului).
Funcţia de acţiune asupra maşinii (echipamentelor). Această funcţie se manifestă sub forma
instrucţiunilor de la om la maşină. Specialiştii care proiectează diferitele echipamente şi maşini
(ciocane, macarale, computere, avioane, etc.) sunt preocupaţi atât de subsistemul om (prin
înţelegerea capabilităţilor motoare), cât şi ale subsistemului maşină (prin particularităţile maşinii
care trebuie să corespundă abilităţilor umane).
Pentru exemplificarea acestei funcţii prezentăm cazul tastaturilor de calculator. Tastatura
QWERTY (figura 2.9. a) a fost proiectată în 1868, de către Sholes, inventatorul maşinii de scris.
23
Numele acestei tastaturi vine de la primele 6 taste de pe primul rând de litere. Tastele au fost astfel
dispuse pentru a împiedica blocarea mecanismului maşinii de scris la o dactilografiere mai rapidă.

Figura 2.9. Sisteme de tastaturi QWERTY (a) şi Dvorak (b) [10]

Odată cu dezvoltarea maşinilor electrice de scris au fost proiectate şi alte variante de


tastatură, dintre care cea mai cunoscută este cea a lui Dvorak (figura 2.9. b).

Dezvoltarea necesităţii facilitării interfeţelor om-sistem de calcul

Adoptarea noilor tehnologii informaţionale la locul de muncă a devenit o experienţă comună


în majoritatea organizaţiilor care investesc masiv în echipamente cât mai moderne şi performante,
sperând la o creştere a eficienţei angajaţilor. S-a dovedit astfel utilă concentrarea studiilor
ergonomice pe design-ul interfeţei om-calculator, a particularităţilor sistemelor computerizate şi pe
modalităţile de integrare a sistemelor informatice în organizaţii Prin tehnologia informaţiei se
înţelege totalitatea echipamentelor (electronice şi informatice), precum şi a programelor rulate de
calculatoare care asigură memorarea, procesarea, transferul informaţiei care au un rol important în
asigurarea comunicării şi în procesul decizional
În secolul care tocmai s-a încheiat, noi echipamente, procese şi metode, noi relaţii între
oameni şi noi sarcini în muncă sunt introduse în societate. Toate acestea vor forţa oamenii să se
adapteze la aceste schimbări şi să răspundă prin dezvoltarea unor abilităţi de învăţare continuă
Interacţiunea om-calculator este disciplina care are ca obiect de studiu proiectarea, evaluarea
şi implementarea sistemelor computerizate, precum şi a fenomenelor legate de utilizarea acestora de
către oameni.
Aspectele vizate se încadrează în două mari categorii: omul (procesele psihice implicate -
percepţie, memorare, luarea deciziei, motivare, etc.) şi calculatorul (aspecte multimedia,
miniaturizarea, dispozitive de intrare şi ieşire, etc.)
Diversitatea problemelor apărute odată cu difuziunea masivă a tehnologiei informaţiei,
precum şi nevoia de a găsi soluţii rapide şi eficiente în rezolvarea lor a grăbit naşterea unei noi
discipline care să aibă ca obiect de studiu interacţiunea dintre om-calculator.
Îmbunătăţirea performanţelor operatorilor de calculator prin proiectarea unor interfeţe cu
sistemele informatice constituie un alt aspect important al interacţiunii om-calculator. În cadrul
muncii cu calculatorul, întrebuinţarea dispozitivelor de intrare (tastaturi, mouse, etc.) ocupă o parte
semnificativă din timpul de lucru. Astfel, s-a cuantificat că ponderea folosirii mouse-ului poate
ajunge până la 2/3 din timpul de lucru. De aici şi nevoia de a proiecta periferice cât mai
confortabile pentru utilizatorul uman.

Figura 2.10. Tipuri de periferice (mouse) [1]

24
Principalele tipuri de interfeţe om-sistem de calcul:
- Graphical user interface (GUI): acceptă informații de intrare prin utilizarea
tastaturii și mouse-ului; ieșirea este sub formă grafică pe monitor
- Web user interface (WUI): intrarea o reprezintă paginile web, transmise via Internet și
vizualizate cu ajutorul unui browser
- Interfețe ce nu utilizează calculatoare personale: în linie de comndă, tactile , touch

Etape de proiectare:
-Analiza cerinţelor (mediu de lucru, trăsăturile utilizatorului, obiectivele
utilizatorului – decizii, procese cognitive, interactiune cu altii, constientizarea situatiilor)
-Design (definirea functiilor ce trebuie efectuate pentru indeplinirea obiectivelor,
generarea optiunilor, selectia actiunilor, implementarea actiunilor)
-Masuratori si feedback (utilizatorul si proiectantul interactioneaza pana la
convergenta catre un design optim)

Principii generale:
• Feedback către utilizator:Atunci când utilizatorul transmite o comandă, mașina trebuie
să raporteze înțelegerea acesteia
• Control deținut de utilizator.
• Funcționare previzibilă: elementele constituente ale sistemului să aibă un comportament
constant
• Transparență: utilizatorul poate observa ce se întâmplă (dispozitive mecanice –
vizualizarea mișcărilor componentelor principale, panou de control; dispozitive
electronice – diagrame)
• Funcționare fără întreruperi: evitarea întreruperii utilizatorului prin mesaje, ducând
la scăderea atenției
• Anticiparea dorințelor utilizatorului
• ‡ Toleranță la erori: sistemul nu ar trebui să corecteze ce consideră a fi o eroare, fără
confirmarea utilizatorului
• Evitarea interfețelor cu caracter antropomorf: evitarea construirii unor interfețe ce
arată ca personaje de desene animate sau comunică cu utilizatorul utilizând un dialog
uman
• Designul ar trebui să reflecte logica utilizatorului, nu a constructorului:
• operații ce reprezintă diverse situații ar trebui stocate în porțiuni diferite ale interfeței
• ‡ Designul unui buton ar trebui să îi reflecte importanța: butoanele pe panoul de
comandă ar trebui aranjate astfel încât cele mai utilizate să fie cele mai mari și cu
poziții preferențiale‡
• Oferirea de alternative pentru ieșirea dintr-o situație: existența de diverse opțiuni
pentru utilizator (trecerea la următorul pas, întoarcerea la pasul anterior, undo/redo
operații anterioare, întreruperea operațiunii, salvare și întrerupere, informații despre pasul în
curs, părăsirea programului)
• CONTRAST – zonele care fac lucruri diferite trebuie să arate foarte diferite
• REPETIȚIE – elemente vizuale repetitive
• ALINIERE – fiecare element trebuie să aibă o conexiune vizuală cu alt element
• PROXIMITATE – elementele care fac lucruri similare trebuie să stea împreună,
celelalte nu
• Optimizarea pentru utilizatori începători/experimentați
Standardizare: atunci când se face designul pentru o interfață hardware trebuie verificat dacă
există standarde pentru această situaţie
• ‡ Standarde accesibile: toate produsele tehnice ce interacționează cu alte produse trebuie să
aibă o interfață standardizată; trebuie avute în vedere diversele niveluri de standardizare

25
2.1.6. Mijloacele actuale de interacţiune neconvenţională
cu utilizatorul

Subcapitolul în cauză descrie o serie de aspecte de interes referitoare la mijloacele actuale de


interacţiune neconvenţională cu utilizatorul. Experimentele şi tehnologiile realizate până în prezent
au vizat dispozitive hardware specifice – e.g. mănuşi senzoriale, terminale mobile.
Ca dezvoltatori de aplicaţii – disponibile la nivel de desktop şi/sau Web, încorporate în
diverse echipamente şi utilaje, oferite pe scară largă de tehnologiile telefoniei mobile sau destinate
unei nişte de utilizatori specializaţi (ex., medici, cercetători în domeniul fizicii nucleare etc.) – ne
confruntăm actualmente cu o multitudine de (tipuri de) controale de interacţiune şi cu proliferarea
interacţiunilor neconvenţionale, mai ales via dispozitive fără fir şi/sau senzori.
Software-ul are tot mai mult un profund caracter social, masa de utilizatori de aplicaţii fiind
într-o creştere fără precedent. Suplimentar, există aşteptări tot mai mari, una dintre cerinţe fiind
aceea ca aplicaţiile să prezinte un caracter familiar publicului-ţintă acesta fiind şi unul dintre factorii
importanţi de evaluare a utilizabilităţii.
De asemenea, asistăm la apariţia unei multitudini de metafore şi de idiom-uri de
interacţiune, concretizate prin tipuri/stiluri familiare – recognoscibile – de interfeţe, fiecare având
propriul vocabular de obiecte, acţiuni, înfăţişări etc., cu implicaţii importante în ceea ce priveşte
crearea unei anumite experienţe – deseori, unice – utilizatorului.
Astfel, în activităţile cotidiene mediate de calculator ne confruntăm uzual cu formulare,
editoare de text, vizualizatoare sau editoare de conţinut grafic sau multimedia, foi de calcul,
navigatoare Web, calendare, jocuri cu caracter imersiv, spaţii virtuale sociale, aplicaţii de comerţ
electronic în contextul – mai larg – al afacerilor digitale.
Tipuri de interacţiune neconvenţională
În ceea ce priveşte interacţiunea neconvenţională, sunt implicate mai multe simţuri,
interpretarea informaţiilor senzoriale oferite de diverse dispozitive – e.g., senzori, ecrane tactile,
mănuşi, console de jocuri etc. – depinzând de aşteptările curente ale utilizatorilor.
Principalele tipuri de interacţiuni neconvenţionale vizează următoarele :
 interfeţele haptice – bazate pe senzaţii tactile; drept input poate fi considerat ecranul şi/sau
tabla haptic(ă) care permite „atingerea‖ obiectelor digitale, iar ca output neconvenţional se
poate menţiona sistemele bazate pe vibraţii; în acest context, se pot considera şi interfeţele
pseudo-haptice ;
 interacțiunea bazată pe gesturi – inspirată de interacțiunile nonverbale, alternative la
interacțiunea clasică; vizează gesturi generate de mână sau cele faciale, dar poate considera
şi postura corpului uman, fiind larg folosite în contextul consolelor de jocuri, laptopurilor și
terminalelor mobile (exemple : iPhone, Android);
 interfețele locomotorii – oferă sau simulează mijloace de deplasare a utilizatorului într-un
mediu real sau virtual;
 interfețele audio și vocale – facilitează prezentarea datelor la nivel sonor sau preluarea
input-ului bazat pe voce; de interes este reprezentarea simbolică și semantică a informației la
nivel sonor via auditory icons, earcons sau spearcons;
 interacțiunea tangibilă – dă forma fizică (palpabilă) informației digitale, informațiile
digitale putând fi percepute și manipulate direct .

26
2.2. Stabilirea mediilor de comunicaţii într-un
sistem de comandă automat

2.2.1.Sisteme de comunicaţii
În primul rând, un sistem de comandă trebuie să asigure comunicaţia între modulul de
comandă şi dispozitivul controlat, monitorizat, pentru transmiterea datelor de aceea trebuie să
avem în vedere, ce reprezintă un sistem de comunicaţii.
Un sistem de comunicaţii este un ansamblu coerent de mijloace tehnice interdependente ce
asigură transferul informaţiilor între două puncte oarecare, aflate la o anumită distanţă, cu o
fiabilitate şi fidelitate cât mai mare, eficient din punct de vedere economic, utilizând undele
electromagnetice ca mijloc de transport.
Un sistem de comunicaţii de date conţine trei componente de bază: sursa de date, canalul de
comunicaţie şi receptorul de date. În comunicaţiile de date bidirecţionale, sursa de date şi receptorul
de date îşi schimbă funcţiile, deci putem afirma că se transmit / recepţionează date în acelaşi timp.
Sistemul de comunicaţii de date are ca obiectiv doar transmiterea corectă a informaţiei, el nu
acţionează asupra conţinutului informaţiei.

Figura 2.11. Schema bloc a unui sistem de comunicații de date [12]

Sursa de date debitează în sistem impulsurile electrice care reprezintă datele. Informaţia
conţinută în fluxul de date poate să provină de la un calculator.
Transmiţătorul operează asupra fiecărei secvenţe de biţi ce corespunde unui mesaj
elementar (de exemplu: o literă sau un număr), transformând-o într-un anumit semnal electric. Tipul
de semnal electric este ales adecvat mediului de transmisie astfel încât să se asigure protecţie faţă de
deformări şi perturbaţii.
Canalul de comunicaţie poate fi o cale telefonică directă sau indirectă aeriană, fără fir.
Transmiterea semnalului prin oricare din mediile de propagare enumerate se face cu deformări
inevitabile.
Unele deformări cu caracter determinist sunt datorate caracteristicilor de transfer ale canalului
de comunicaţii care nu sunt ideale. Altele sunt provocate de instabilitatea în timp a canalului de
comunicaţii sau de zgomote şi au un caracter întâmplător.
Receptorul sistemului realizează transformarea inversă a semnalului recepţionat în flux de
date. Refacerea datelor şi interceptarea mesajului transmis de sursă trebuie să fie corectă, deşi
semnalul recepţionat nu este identic cu cel transmis. În acest scop, structura semnalului transmis se
alege astfel încât probabilitatea recepţionării eronate să fie cât mai mică.

27
Codarea este operaţia prin care secvenţa de date obţinută de la sursă este transformată într-o
secvenţă codificată, astfel încât fiecărui mesaj al sursei i se asociază o secvenţă de impulsuri
conform unui principiu de codificare; diferenţa între secvenţele codificate ce reprezintă mesaje
diferite trebuie să fie cât mai mare pentru ca la recepţie mesajele să poată fi recunoscute cât mai
exact.
Decodarea este operaţia inversă codării, decodorul având prin urmare rolul de a asocia
fiecărui bloc de n biţi, care ajunge la recepţie, un mesaj de k biţi. Între codor şi decodor apare astfel
o legătură de comunicaţii în care informaţia transmisă este codificată. Codarea/decodarea asigură
stabilitatea semnalului de date la perturbaţii, putând însă să reducă şi volumul fluxului de date
transmis de sursă.
Modulaţia este procesul prin care informaţia numerică conţinută în biţi codificaţi este
transferată asupra unui semnal purtător cu caracteristici convenabile (putere, frecvenţă, etc.)
propagării prin mediul de transmisie utilizat.
Demodulaţia este procesul prin care semnalul modulat, recepţionat la ieşirea din canalul de
comunicaţii este transformat într-o secvenţă de biţi corespunzătoare mesajului codificat. Procesul de
demodulaţie este invers procesului de modulaţie.
Purtătorul este în general un semnal sinusoidal sau rectangular descris printr-o funcţie
continuă în timp şi de un număr finit de parametri.

2.2.2. Medii de comunicaţii


În paginile care urmează sunt prezentate principalele resurse despre mediile de reţea care
sunt de fapt calea actuală prin care călătoresc semnalele electrice în timp ce se deplasează de la o
componentă la alta. Principalele tipuri de medii de reţea sunt: cablul coaxial, cablul torsadat, fibra
optică şi mediile fără fir.

A. Comunicaţia prin fir


În prezent există multe exemple de comunicaţie digitală de distanţă în ceea ce
priveşte computerele şi dispozitivele de comunicaţie în general. O mare parte din această
comunicaţie se face prin mijlocirea legăturilor pe fire, cabluri, de exemplu: reţele
telefonice, sisteme pe cablu coaxial, LAN-uri (reţele locale). Multe televiziuni sunt conectate la
sisteme de cablu, majoritatea reţelelor de calculatoare sunt conectate la liniile telefonice sau reţele
pe cablu, asa cum e cazul reţelelor Ethenet şi chiar şi telefonia mobilă şi cea cordless se bazează
tot pe sisteme de telefonie terestre legate prin fire.
Cele mai utilizate medii de transmisie prin fir sunt cablul coaxial, torsadat şi fibra optică.
Cablul coaxial este un cablu electric compus din : un miez de cupru, izolator, plasă
conducatoare de cupru, teacă de plastic. Se utilizează pentru transmisii de înaltă frecvență sau
semnale de bandă largă de frecvență. Acestea sunt caracterizate de o imunitate foarte bună la
perturbațiile de frecvență înaltă, o impedanță de 75 ohm și de posibilitatea transmiterii unui semnal
de bandă largă. Prin aceste cabluri se pot asigura transmisii la distanțe mari numai cu amplificatoare
montate pe linie.
Cablurile torsadate sunt întâlnite foarte des deoarece răsucirile conductoarelor electrice
anulează interferența electromagnetică produsă la trecerea curentului electric printr-un conductor.
Cablurile torsadate sunt de mai multe feluri: UTP, FTP, S-UTP, S-FTP, STP, S-STP. Cablul UTP
este un cablu simplu cu perechi torsadate, cablul FTP este cablul UTP dar ecranat cu folie, cablul S-
UTP este cablul UTP ecranat cu tresă, cablul S-FTP este cablul UTP ecranat cu folie și tresă, cablul
STP este cablul ecranat cu folie pe fiecare pereche iar cablul S-STP este cablul STP ecranat în
cămașă cu tresă.
Fibra optică este un cablu ce are în componență o fibră din sticlă sau plastic care transportă
lumina. Se folosește în telecomunicații deoarece poate asigura un flux extrem de mare de date cu

28
pierderi minime la distanțe foarte mari. Îmbinarea fibrelor optice este o operațiune destul de dificilă
deoarece presupune foarte multă atenție și aparatură de lipit cu arc electric sau mecanic.

Figura 2.12. Tipuri de medii de comunicaţie cu fir

Cei mai utilizaţi conectori pentru cablul coaxial sunt conectorii de tip BNC (British Naval
Connector sau Bayonet Neill Concelman). Conectorii pentru fibră optică sunt SC, ST si LC (mai
există multe alte tipuri: MT-RJ, LC, MTP etc.) Cel mai utilizat tip de conector folosit la cablurile cu
perechi răsucite este cu 8 poziţii şi este cunoscut sub denumirea de conector RJ-45.
După cum se observă aceste cabluri conectează între ele o multidudine de dispozitive făcând
uz de o mare varietate de conectori cu diverse forme, mărimi şi număr de pini. Fiind necesar un
cablu între fiecare două dispozitive, acest lucru poate da bătăi de cap utilizatorlui care se descurcă
greu într-un asemenea păienjeniş.

B. Comunicaţii fără fir


Multe dintre aplicaţiile cu microcontroller necesită o transmisie de date fără fir.
Comunicaţiile fără fir înseamnă transferul informaţiei prin intermediul câmpului electromagnetic în
gama de frecvenţă 9kHz-300GHz. Spectrul electromagnetic este o resursă publică şi alocarea
gamelor de frecvenţe pentru diferite transmisii se realizează de către organisme naţionale şi
internaţionale. În spectru există benzi de frecvenţă pentru care trebuie licenţă şi benzi libere,
aşa cum este banda ISM (Industrial, Scientific and Medical - 2,4GHz)
Există în prezent o mare varietate de transmisii fără fir. Alegerea uneia sau alteia se face în
funcţie de aplicaţie. Dacă este nevoie ca transferul de date să fie între două module cu
microcontroller la distanţă mică şi aplicaţia trebuie să fie ieftină atunci se pot folosi
protocoale proprietare implementate în module ieftine. Dacă este vorba de un aparat care
transmite date direct în Internet şi este situat mai departe de civilizaţie atunci se poate folosi o
transmisie GPRS. Dacă receptorul de date este un PDA sau un telefon mobil şi distanţa de
transmisie este mică atunci o transmisie Bluetooth este cea mai potrivită. Necesitatea
integrării într-o reţea de măsură existentă poate obliga proiectantul să aleagă metoda folosită
în reţea, de exemplu ZigBee. O transmisie cu debit mare de informaţie poate determina
alegerea unei transmisii WLAN, costurile fiind însă mai mari ca la variantele anterioare. În
consecinţă, principalele criterii de alegere a metodei de transmisie sunt:
• Distanţa de transmisie;
• Debitul de informaţie;
• Restricţii determinate de conectarea la o reţea existenţă;
• Poziţia geografică;
• Costurile admisibile.
29
Cele mai uzuale comunicaţii fără fir utilizează tehnologii dedicate ce au la bază standardul
IEEE 802.11 , care prevede 3 variante de implementare pentru nivelul fizic:
 Folosind radiații în infraroșu (IR)- Infraroşu
 Folosind spectru împrăștiat cu salt de frecvență (FHSS) – Bluetooth
 Folosind spectru împrăștiat cu secvență directă (DSSS) – Wireless LAN (Wi-fi)

a) Infraroşu; b) Bluetooth c) Wireless

Figura 2.13. Logo-urile reprezentative ale principalelor tehnologii fără fir (Sursa : Google images)

2.2.3. Alegerea unei soluţii de comunicare între dispozitive


În acest subcapitol, voi prezenta succint principalele caracteristici ale celor mai uzuale reţele
wireless (fără fir) care pot fi utilizate în scopul stabilirii conexiunii între un modul de comandă şi
dispozitivul controlat.
Rolul acestei scurte prezentări este evidenţierea avantajelor, respectiv dezavantajelor pe care
le prezintă tehnologiile existente şi pe baza acestora, alegerea unei soluţii, în funcţie de sistemul
avut în vedere.

a.Tehnologia de comunicaţie la distanţă ce utilizează infraroşu IR, caracteristici


principale:
 utilizează trenuri de impulsuri optice, cvasi-luminoase (lungimea de undă 700-1600 nm).
 operează pe o distanţă de la 0 la 1 m
 Pentru viteza de acces de bază de 1 Mb/s se folosește tehnica de modulație 16-PPM (Pulse
Position Modulation).Pentru 2 Mb/s se utilizează 4-PPM
 funcţionează numai între două dispozitive în acelaşi timp
 senzorii ambelor dispozitive conectate trebuie să se afle în linie vizuală, fără obstacole între
emiţător şi receptor
Cele mai multe dispozitive infraroşu funcţionează doar cu echipament având acelaşi producător.

b.Tehnologia de comunicaţie la distanţă Bluetooth, principalele caracteristici:


utilizează unde radio ultrascurte (lungimea de undă de ordinul cm) şi operează în spectrul
2,4GHz
 funcţionează pe o distanţă de la 10 la 100 m
Pentru rata de transfer de 1 Mb/s se utilizează modulaţia binară cu deplasarea frecvenţei
GFSK (two-level Gaussian frequency shift keying). Pentru creşterea ratei la 2 Mb/s se utilizează o
modulaţie pe patru nivele GFSK prin codarea simultană a doi biți utilizându-se 4 frecvenţe.
funcţionează între mai multe dispozitive în acelaşi timp
este capabilă să treacă prin obiecte solide, este omi-direcţională şi nu necesită o poziţionare
în linie cu celelalte dispozitive pentru conectare
 costul unui chip este mic
 nu necesită adrese de retea, permisii şi celelalte setări pentru o reţea tipică de Internet
 este îndreptată către aplicaţii de voce şi date
În general, dispozitivele Bluetooth pot comunica unele cu celelalte, indiferent de producător.

30
c. Tehnologia Wi-Fi
 foloseşte aceleaşi frecvenţe radio ca şi Bluetooth-ul , dar cu un consum de putere mai mare,
rezultând o conexiune mai puternică
 operează pe distanţe mai mari
 este mai analog reţelei tradiţionale de Internet şi necesită configurări pentru a împărţii
resursele , transmite fișiere, realizare legături audio
 este potrivit pentru o rețea, realizându-se o conexiune mai rapidă ,o rază de acțiune mult
mai mare și o securitate mai ridicată
 costul este mare

În practică se întâlnesc foarte des, pentru comanda de la distanţă a echipamentelor, sisteme


de comandă în infraroşu. Pentru o astfel de comandă a echipamentelor cel mai mare dezavantaj este
acela că între emiţător şi receptor nu trebuie să existe nici un obiect, distanţa mică reprezintă şi ea
un mare dezavantaj. Pentru rezolvarea acestor probleme se încearcă cu succes înlocuirea
dispozitivelor de emisie-recepţie în infraroşu cu dispozitive de emisie- recepţie în domeniul radio.

În funcţie de tipul de proiect ce trebuie executat se alege cel mai bun mediu de comunicaţie
disponibil. Pentru un proiect de mici dimensiuni, unde comunicaţia se face de la mică sau medie
distanţă cele mai bune medii de comunicaţii aplicabile ar fi Bluetooth şi Wi-Fi, datorită razei de
acoperire şi siguranţa transmiterii datelor.
Soluţia optimă în cazul unui sistem încapsulat este tehnologia Bluetooth, doecarece, ca
dezavantaje, pentru a folosi Wi-Fi, în primul rând avem nevoie de o acoperire Wireless în zona în
care utilizăm sistemul sau de semnal de acoperire pentru partajarea datelor, iar costul unui
microchip Wi-fi este net superior faţă de echivalentul său în mediul de comunicaţie Bluetooth.

2.2.4. Tehnologia Bluetooth


Acest subcapitol subliniază parametri cheie ai funcţionării dispozitivelor radio Bluetooth,
respectiv ahitectura hardware şi sofware, arhitectura reţelelor Bluetooth, în scopul înțelegerii
comunicării între dispozitive, atunci când implementăm un sistem înglobat cu transmisie Bluetooth,
prin utilizarea unei interfeţe Bluetooth conectate la un microcontroler.

Generalităţi

Bluetooth reprezintă cea mai ușoara modalitate de a conecta aceste echipamente într-o
rețea comună, mobilă, însă pentru a înțelege pe deplin această tehnologie trebuie să avem un
minim de cunoștințe, pe care voi încerca să le cuprind în acest subcapitol.
În 1998, cinci companii importante (Ericsson, Nokia, IBM, Toshiba și Intel) au format un
grup, numit Bluetooth SIG (Special Interest Group), pentru a crea o tehnologie care să nu necesite
licenţă destinată conexiunilor universale fără fir între dispozitivele mobile. Rezultatul este
Bluetooth, o tehnologie ce a luat numele regelui care în secolul al X-lea a unit triburile de
războinici Vikingi. Adoptarea acestui nume reprezintă o recunoaştere a rolului deosebit pe care
companiile nordice l-au avut în dezvoltarea tehnologiei Bluetooth. Bluetooth a fost standardizat prin
standardul IEEE 802.15.1-2002.3.
Ideea a fost ca un dispozitiv radio de dimensiuni reduse, introdus atât în telefon cât și în
laptop să poată înlocui cablurile stânjenitoare utilizate pentru a conecta cele două dispozitive.
Bluetooth reprezintă un standard pentru comunicații radio pe distanțe scurte. Principalele
trei scopuri avute în vedere încă din faza de proiectare sunt: dimensiune redusă, consum minim,
preț scăzut. Tehnologia a fost proiectată pentru a fi simplă și pentru a deveni un standard de factor
în conexiunile fără fir. Un atu al tehnologiei Bluetooth este acela că poate asigura transmisie de date
şi de voce în acelaşi timp.
31
Bluetooth-ul se bazează pe microcipuri de transmisie ieftine integrate în fiecare dispozitiv.
El permite acestor dispozitive să comunice între ele atunci când sunt în raza de acțiune.
Dispozitivele folosesc un sistem de comunicare radio, pentru a nu trebui să fie în linie unul cu
celălalt și pot fi chiar și în camere diferite, atât cât permite puterea de transmisie. Fiecare dispozitiv
poate comunica simultan cu până la 7 dispozitive.
În tehnologia Bluetooth, comunicaţia se face în radiofrecvenţă, fiind folosită o bandă de
frecvenţe nelicenţiată ISM (Industrial Scientific and Medical) între 2.402 GHz şi 2.480 GHz
alocată pentru domeniul industrial, ştiinţific, medical şi poate fi folosită astfel aproape oriunde în
lume. Banda este divizată în 79 de canale radio, fiecare canal având o lărgime de bandă de 1 MHz.
Deoarece în această bandă mai operează şi alte tehnologii de comunicaţie, pentru eliminarea
interferenţelor radio, Bluetooth foloseşte tehnica de împrăştiere spectrală cu schimbare în salturi
de frecvenţă, această schimbare de frecvenţă producându-se de 1600 ori pe secundă. Fiecare
dispozitiv având o gama de alegere a 79 de frecvenţe care se schimbă de 1600 ori pe secundă, fiind
puţin probabil ca două dispozitive să fie pe aceeaşi frecvenţa în acelaşi moment, iar dacă totuşi
interferenţa are loc, ea durează doar o mică fracţiune de secundă.

Arhitectura Bluetooth

Tehnologia wireless Bluetooth permite dispozitivelor realizate de diverşi producători să


lucreze împreună. Din acest considerent, arhitectura Bluetooth se defineşte atât ca un sistem radio
cât şi ca o stivă de protocoale prin intermediul căreia este sesizată prezenţa altor dispozitive
Bluetooth, sunt descoperite şi utilizate serviciile oferite de aceste dispozitive. Arhitectura Bluetooth
este o îmbinare între o arhitectură hard şi o arhitectură soft.

ARHITECTURA HARD reprezintă partea fizică a dispozitivului Bluetooth (figura 2.14) şi


este formată din:
 Componenta analogică – Bluetooth Radio
 Componenta digitală – Bluetooth Host Controller (HC)

Bluetooth Host Controller


(HC)
RF LINK
Link Manager Host
Bluetooth Radio Interface
Radio Link Controller CPU External
2,4 GHz interfaces
interface LC core

Figura 2.14. Arhitectura hard – Bluetooth [11]

Bluetooth radio este un dispozitiv electronic analogic cu dublu rol de transmiţător şi


receptor (transceiver). Acest dispozitiv comunică pe de o parte cu nivelul radio din alt dispozitiv
Bluetooth şi pe de altă parte cu link controller-ul dispozitivului Bluetooth. Spre link controller
există o dublă interfaţă logică pentru transportul datelor şi pentru transportul informaţiei de control
între cele 2 părţi ale dispozitivului Bluetooth.

Host Controller este componenta digitală a dispozitivului Bluetooth care conţine:

32
 Link Controller - un procesor de semnal digital care are mai multe funcţii: de transferuri
sincrone şi asincrone, codare radio, criptare. La nivelul Link Controller-ului este adresa
dispozitivului Bluetooth BD_ADDR (similara adreselor MAC) şi ceasul intern Bluetooth.

 CPU core – este procesorul central al dispozitivului Bluetooth care cuprinde stiva de
protocoale (partea de software)

 External interfaces – este o interfaţă fizică între modulul Bluetooth şi dispozitivul gazdă
(host) la care este ataşat modulul Bluetooth.

ARHITECTURA SOFT este reprezentată de stiva de protocoale Bluetooth, figura 2.15.


APLICAŢII
Connection Security
Maneger Maneger
WAP

Commands
Device Manager

UDP TCP
OBEX
IP
TCS SDP
AT

AUDIO
PPP

RFCOMM

L2CAP

Host Host
Audio
Data
Control

Controller Controller
Interface Interface

Baseband:
Link Manager
Link Controller
Radio

Figura 2.15. Stiva de protocoale Bluetooth [11]

Potrivit acestor protocoale, dispozitivele Bluetooth se pot localiza, conecta şi schimba date
între ele şi pot desfăşura aplicaţii interactive.
 Baseband: Link Manager, Link Controller, Radio – sunt protocoale de transport ce permit
dispozitivelor Bluetooth să se localizeze între ele, permit crearea, configurarea şi
administrarea legăturilor logice şi fizice pentru schimbul de date dintre protocoalele de
niveluri superioare şi aplicaţii.

 Host Controller Interface – este o interfaţă comună între nucleul Blutooth şi gazda Bluetooth
(ex. un laptop), care asigură compatibilitatea între diverse implementări hard.
 L2CAP (Logical Link Control and Adaptation Protocol) – protocol de control al legăturii
logice şi adaptării prin care trece traficul de date. La nivelul L2CAP se face multiplexarea
33
aplicaţiilor şi protocoalelor permiţând acestora să utilizeze în comun interfaţa aer. Tot aici se
face segmentarea pachetelor de informaţie de dimensiuni mari adaptându-le la dimensiunea
necesară transmisiunii la nivel baseband şi corespunzător reasamblarea pachetelor la
recepţie.

 RFCOMM – este un port serial virtual pentru aplicaţii, care face posibilă desfăşurarea
comunicaţiilor seriale peste legăturile wireless oferite de tehnologia Bluetooth.

 WAP (Wireless Application Protocol) – este un protocol pentru conectarea wireless la


reţelele de internet şi este folosit de telefoanele mobile. Pentru conectarea la reţelele de
internet prin dial-up se utilizează protocolul AT Commands. Reţeaua accesată este o reţea de
tip TCP/IP care foloseşte protocolul IP. După ce se stabileşte prin dial-up legătura cu reţeaua
TCP/IP, dispozitivul care a iniţiat conexiunea foloseşte protocoalele standard din stiva
Internet: TCP, UDP, HTTP, etc. Un dispozitiv se mai poate conecta la o reţea de tip TCP/IP
printr-un punct de acces la reţea PPP (Point to Point Protocol) -aşa cum se procedează
pentru accesul LAN. În acest caz, dispozitivul se conectează la punctul de acces la reţea
printr-un link Bluetooth, iar la rândul său acesta se conectează la o reţea mai mare. Peste
link-ul Bluetooth se foloseşte protocolul PPP din Internet. După ce s-a stabilit legătura prin
acest protocol, pentru a interacţiona cu reţeaua sunt folosite protocoalele standard din stiva
internet: TCP, UDP, HTTP. Accesul la o reţea WAP folosind un gateway de tip WAP se
desfăşoară în mod similar cu diferenţa că în scopul interacţionării cu reţeaua se foloseşte
protocolul WAP.

 OBEX (Object Exchange) – este un protocol de comunicare care permite schimbul de


obiecte între două dispozitive Bluetooth, cum ar fi: cărţi de vizită electronice (formatul
vCard), e-mail-uri şi alte tipuri de mesaje (formatul vMessage). OBEX este bazat pe
modelul client-server şi oferă aceeaşi funcţionalitate ca şi http dar la un nivel mai redus.

 TCS (Telephony Control Specification) – este un protocol folosit pentru controlul


comunicaţiilor telefonice cu flux audio sau de date. În cazul unui apel telefonic, după ce
apelul este stabilit, semnalul vocal ce constituie convorbirea telefonică este transmis printr-
un canal audio Bluetooth. În cazul conectării prin dial-up la o reţea, după ce apelul de date
(data calls) este stabilit, conţinutul convorbirii este transmis sub formă de pachete de date
prin intermediul protocolului L2CAP.

 SDP (Service Discovery Protocol) – este un protocol care stă la baza tuturor modelelor de
utilizare, care defineşte o metodă standard prin care un dispozitiv Bluetooth descoperă şi
află mai multe informaţii despre serviciile şi caracteristicile unui alt dispozitiv Bluetooth.
Informaţiile descoperite pot fi tabelate în liste, cu ajutorul cărora utilizatorul, având
informaţii despre serviciile dispozitivelor Bluetooth din vecinătate, poate selecta între aceste
servicii şi stabilii conexiuni cu unul sau mai multe dispozitive Bluetooth.

 Device Manager – este un bloc care controlează comportamentul general al dispozitivului


Bluetooth cum ar fi: administrarea numelui dispozitivului, cheile de link-uri memorate,
detectarea altor dispozitive Bluetooth din vecinătate, conectarea la alte dispozitive Bluetooth

 Grupul aplicaţiilor – este constituit din aplicaţiile care efectiv utilizează legăturile Bluetooth.
O parte din aceste aplicaţii sunt „moştenite‖ iar altă parte sunt proiectate pentru a folosi alte
tehnologii care pot fi desfăşurate prin link-uri Bluetooth, cu modificări minore ale software-
lui respectiv.

34
Caracteristici sau parametri cheie ai funcţionării dispozitivelor radio Bluetooth:

 Modulația
Sunt definite 2 moduri de modulație. Unul numit ―Basic Rate ― (Rata de transfer de date de
bază) care folosește o modulație binară FM pentru a minimiza complexitatea transmițătorului/recep-
torului. Și cel de al doilea mod numit EDR (Enhanced Data Rate- Rată de transfer ridicată) ,care
folosește modulație PSK (phase-shift keying) și are 2 variante: DPSK (modulaţie diferenţială de
cuadratură de fază -Differential Quadrature Shift Keying) si DQPSK( modulaţie cu deplasare
diferenţială de fază -Differential Phase Shift Keying). Rata de simboluri pentru toate modulațiile
este de 1Ms/s. Rata de transmisie a datelor prin aer este de 1Mbps pentru Basic Rate și 2 Mbsp
pentru EDR, folosind DQPSK și 3 Mbsp pentru EDR folosind DPSK.
Pentru modul Basic Rate modulația este GFSK (Gaussian Frequency Shift Keying) cu o
perioadă de bit de lățime de bandă = 0,5. În modulaţia cu deplasare gaussiană de frecvenţă, 1 se
codează cu Ft + fd, iar 0 se codează cu Ft - fd, unde Ft este frecvența de transmitere, iar Fd - abaterea
(deviația) frecvenței. Pentru rata de transfer de bază deviația minimă este de 115kHz, figura 2.16.

Figura 2.16. Definiția parametrilor GFSK [21]

Transmisia datelor se face la o viteză de semnalizare de 1 Msimbol/s, ceea ce înseamnă în


condiţiile utilizării modulaţiei binare GFSK că viteza legăturii, de 1Mbps, poate fi ușor atinsă. O
tehnică de modulație mai complexă ar conduce la atingerea unor rate de bit mai ridicate, dar ar
complica structura părții radio a Bluetooth-ului și implicit ar crește costurile de producție.
 Sensibilitatea este definită ca nivelul unui semnal de intrare pentru care se atinge o rată a
erorilor pe bit (BER) de 0,1%, iar sensibilitatea recomandată a receptorului Bluetooth este de
minim -70dB.
 Puterea la emisie, în contextul acestui parametru, echipamentele se împart în 3 clase:
- clasa 1 cu o putere maximă de emisie de 100mW(20dBm);
- clasa 2 cu o putere maximă de emisie de 2,5mW(4dBm);
- clasa 3 cu o putere maximă de emisie de 1mW(0dBm).
Pentru toate cele trei categorii se sugerează un control al puterii până la –30 dBm. Stabilirea
limitei inferioare de –30 dBm este opţională, ea alegându-se conform cerinţelor fiecărei aplicaţii.
Distanţa dintre două dispozitive între care se poate stabili un canal de comunicaţie depinde de clasa
de putere.
 Toleranţele pentru frecvenţele radio
- acurateţea frecvenţei iniţiale, abaterea admisă este de ± 75 kHz;
- abaterea admisã pentru frecvenţele centrale la care se transmit efectiv pachetele de informaţie:
- pachete cu lungimea în intervale temporale 1, abaterea admisã este de ± 25kHz;
- pachete cu lungimea în intervale temporale 3, abaterea admisã este de ± 40kHz;
- pachete cu lungimea în intervale temporale 5, abaterea admisã este de ± 40kHz.

35
Intervin douã tipuri de interferenţã:
- interferenţa co-chanel este interferenţa datorată utilizării în comun a aceluiaşi canal radio,
atunci când douã sau mai multe canale de comunicaţie sunt alocate aceleiaşi frecvenţe şi este fixatã
la valoarea raportului
Nivel purtător/Nivel interferenţă de maximum 18 dBm;
- interferenţa între canalele adiacente situate unele faţã de altele la distanţa de 1 MHz sau 2
MHz, pentru care raportul C/I este 0 dB, respectiv –30 dB.

 Operaţia de căutare, figura 2.17


Dispozitiv ce dorește să descopere alte dispozitive:
 examinare repetitivă primul set la 16 frecvențe
 examinează câte 2 frecvențe la fiecare 625
de microsecunde
 se repetă de cel puțin 256 de ori
 examinează repetitiv al doilea set de 16 frecvențe
 repetă întregul ciclu de cel puțin 2 ori
Dispozitiv ce dorește a fi descoperit :
 ascultă una din cele 32 de frecvențe
pentru cel putin 11.25 ms
 face pauză nu mai mult de 2.56 de secunde
 își revine și ascultă o altă frecvență Figura 2.17. Operația de căutare [18]
 repetă ciclul

 Adresarea :
Adresa dispozitivului Bluetooth -- adresa IEEE 802 pe 48 biți
-- LAP (lower address part) pe 24 biți
-- UAP (upper addres part) pe 8 biți

Figura 2.18. Formatul Adresei BD_ADDR [17]

Nucleul sistemului tehnologiei Bluetooth este format dintr-un dispozitiv emisie/recepție RF,
baseband și o stivă de protocoale. Sistemul oferă servicii care activează conexiunea dispozitivelor și
schimbul de diferite de clase de date între aceste dispozitive.
RF-ul folosește o modulație de frecvență binară pentru a minimiza complexitatea
emițătorului/receptorului . Rata simbolului este de 1 Megasimbol/sec(Msps) care suportă o rată de
bit de 1 Megabit/sec(Mbps) sau cu EDR (Enhanced Data Rate) o rata de bit în aer de 2 la 3 Mb/s.
În timpul unei operații tipice, un canal radio este împărțit de un grup de dispozitive care sunt
sincronizate conform unui tipar după ceas și frecvență.
Dispozitivele dintr-un piconet folosesc un anumit tipar pentru frecvența care este determinat
algorithmic de anumite câmpuri din specificațiile Bluetooth-ului de adresa și ceas ale master-ului.
Tiparul pentru frecvențe poate fi adaptat pentru a exclude o parte din frecvențele folosite pentru
dipozitivele care interferează.
Canalul fizic este subdivizat în unități de timp numite slot-uri. Datele sunt transmise între
dispozitivele Bluetooth prin pachete care sunt poziționate în aceste slot-uri. Când circumstanțele
permit, un număr de slot-uri consecutive pot fi alocate unui singur pachet. Schimbarea frecvenței
are loc între transmisiile și recepțiile de pachete.
36
Deasupra canalului fizic există un nivel de link-uri și canale și protocoale de control
asociate. Ierarhia de canale și link-uri începe cu canalul fizic , link-ul fizic, transportul logic, link-ul
logic și canalul L2CAP.
În canalul fizic se formează o legatură logică între 2 dispozitive care transmit pachete
bidirecțional între ele. Într-un canal fizic piconet sunt restricții pe care dispozitivele pot forma
legături logice între ele. Există o legătură logica între fiecare slave și master.
Legătura fizică este folosită ca un transport pentru una sau mai multe legături logice care
suportă o distribuție unică, un trafic sincron și asincron. Traficul pe legăturile logice este
multiplexat pe legătura fizică prin ocuparea sloturilor asignate de o funcție de programare aflată în
manager-ul de resurse.
Un protocol de control pentru nivelul fizic este transportat peste legătura logică pentru a fi
adăugat datelor utilizate. Acesta este LMP (Link Manager Protocol) . Dispozitivele care sunt active
în piconet au un transport de tip conexiune orientate asincronă standard care este folosit pentru a
transporta protocolul LMP. Acest lucru este cunoscut sub numele de ACL(transport logic). ACL-ul
este creat atunci când un dispozitiv intră în piconet. Pot fi create transporturi logice adiționale
pentru a transporta stream-uri de date atunci când este necesar.

Figura 2.19. Ciclul R/T master pentru pachete [17]

Figura 2.20. Ciclul R/T slave pentru pachete [17]

37
Comunicarea și conectarea

Un dispozitiv Bluetooth care joacă rol de „master‖ poate comunica cu până la 7 dispozitive
care joacă rol de „slave‖. Această rețea de 8 dispozitive poartă numele de „piconet‖. Un „piconet‖
este o rețea ad-hoc de dispozitive care folosesc protocoale Bluetooth pentru a permite unui
dispozitiv „master‖ să se interconecteze cu 7 dispozitive active de tip „slave‖. Până la 255 de
dispozitive „slave ‖ pot fi inactive, pe care master-ul poate să le aducă la status-ul de active în orice
moment, figura 2.21. La orice moment pot fi transferate date între master și 1 slave, dar masterul
poate să schimbe rapid de la un slave la altul prin metoda round-robin (transmisia simultană de la
master la mai multe salve-uri este posibilă, dar nu este prea folosită în practică). Alte dispozitive pot
schimba rolul master/slave în orice moment.

standby

Figura 2.21. Piconet [18]

Specificațiile Bluetooth permit conectarea a două sau mai multe piconet-uri pentru a forma
un „scatternet‖, cu cîteva dispozitive care se comportă ca un pod, jucând în acelașii timp rolul de
master într-un piconet și rolul de slave în alt piconet, figura 2.22. Aceste dispozitive au apărut în
anul 2007.

Figura 2.22. Scatternett [18]

38
CAPITOLUL 3
IMPLEMENTAREA HARDWARE A SISTEMULUI AUTOMAT DE
COMANDĂ LA DISTANŢĂ A UNUI DISPOZITIV DE AFIŞAJ
Sistemul de comandă la distanţă a dispozitivului de afişaj este compus din terminal de tip
Smartphone, modul Bluetooth, placa de dezvoltare şi circuitul matricei cu LED-uri, figura 3.1.
Arhitectura softului permite utilizatorului să activeze în timp real secvenţa dorită, iar în funcţie de
parametrii selectaţi comanda este analizată, apoi preluată de către codor, modulator, mai departe de
către interfaţa de transmisie ce constă în microchip-ul Bluetooth încorporat, apoi, prin canalul de
comunicaţie, informaţia ajunge la interfaţa de recepţie, demodulator şi decodor ca apoi să fie pusă
în execuţie prin intermediul plăcii de dezvoltare, rezultând aprinderea LED-urilor conform comenzii
date.

5
3

Placa de dezvoltare
cu mictrocontrolerul
1 AT mega 328
4 6 7
µC 2

Figura 3.1 Schema bloc a sistemului de comandă la distanţă a unui


dispozitiv de afişaj

1- afişaj digital
2- microcontroler cu funcţie codor, modulator
3- interfaţa de transmisie
4- modul Bluetooth
5- canale de comunicaţie
6- placa de dezvoltare cu microcontroler cu funţie decodor, demodulator
7- matrice LED

FUNCŢIONARE
Secvenţa iniţială constă în sincronizarea celor două dispozitive Bluetooth odată cu lansarea
aplicaţiei. În urma sincronizării, se stabileşte şi mediul de comunicaţie, ca apoi legătura între
dispozitive să se efectueze doar unidirecţional.
Aplicaţia Android, permite prin intermediul afişajului digital (1) să preia de la utilizator
informaţia necesară în funcţie de criteriile prestabilite, informaţie ce ajunge ulterior la
microcontroleru l integrat (2) ce indeplineşte şi funcţia de codor respectiv modulator. Secvenţa de
date, în urma analizei integratului, este preluată de către interfaţa de transmisie (3). Prin
intermediul canalului de comunicaţie (5) stabilit, informaţia recent primită este trimisă către
modulul Bluetooth (4). Placa de dezvoltare ascultă de portul serial când secvenţa de date este
primită, secvenţă ce este decodată şi demodulată prin intermediului microcontrolerului (6) plăcii de
dezvoltare, rezultând aprinderea LED-urilor matricei (7) conform comenzilor introduse.
39
3.1. Microcontrolerul
3.1.1.Generalități
La modul general un controler este, actualmente, o structură electronică destinată controlului
unui proces sau, mai general, unei interacţiuni caracteristice cu mediul exterior, fără să fie necesară
intervenţia operatorului uman.
Destinaţie:
 Aplicații de urmărire și de control
 Sisteme încapsulate
 Senzori inteligenți

Avantaje:
 Cost redus
 Dimensiuni mici
 Consum redus

Apariţia şi utilizarea microprocesoarelor și microcontrolerelor de uz general a dus la o


reducere consistentă a costurilor, dimensiunilor, consumului şi o îmbunătăţire a fiabilităţii. Pe
măsură ce procesul de miniaturizare a continuat, a fost posibil ca majoritatea componentelor
necesare realizării unei astfel de structuri să fie încorporate (integrate) la nivelul unui singur
microcircuit (chip). Astfel că un microcontroler ar putea fi descris ca fiind şi o soluţie a problemei
controlului cu ajutorul a (aproape) unui singur circuit.
O definiţie, cu un sens foarte larg de cuprindere, ar fi aceea că un microcontroler este un
microcircuit care încorporează o unitate centrală (CPU) şi o memorie împreună cu resurse care-i
permit interacţiunea cu mediul exterior.

Resursele integrate la nivelul microcircuitului ar trebui să includă, cel puţin, următoarele


componente:
 o unitate centrală (CPU), cu un oscilator intern pentru ceasul de sistem
 o memorie locală tip ROM/PROM/EPROM/FLASH şi una de tip RAM
 un sistem de întreruperi
 I/O - intrări/ieşiri numerice (de tip port paralel)
 un port serial de tip asincron şi/sau sincron, programabil
 un sistem de timere-temporizatoare/numărătoare programabile
Este posibil ca la acestea să fie adăugate, la un preţ de cost avantajos, caracteristici specifice
sarcinii de control care trebuie îndeplinite:
 un sistem de conversie analog numerică (una sau mai multe intrări analogice)
 un sistem de conversie numeric analogic şi/sau ieşiri PWM (cu modulare în durată)
 un comparator analogic
 memorie de date nevolatilă de tip EEPROM
 facilităţi suplimentare pentru sistemul de temporizare/numărare (captare şi comparare)
 un ceas de gardă (timer de tip watchdog)
 facilităţi pentru optimizarea consumului propriu

Un microcontroler tipic mai are, la nivelul unităţii centrale, facilităţi de prelucrare a


informaţiei la nivel de bit, de acces direct şi uşor la intrări/ieşiri şi un mecanism de prelucrare a
întreruperilor rapid şi eficient.

Utilizarea unui microcontroler constituie o soluţie prin care se poate reduce dramatic
numărul componentelor electronice precum şi costul proiectării şi al dezvoltării unui produs.

40
Există la ora actuală un număr extrem de mare de tipuri constructive de microcontrolere. Un
criteriu de clasificare care se poate aplica întotdeauna este lungimea (dimensiunea) cuvântului de
date. Funcţie de puterea de calcul dorită şi de alte caracteristici se pot alege variante având
dimensiunea cuvântului de date de 4, 8,16 sau 32 de biţi ,chiar şi variante de 64 de biţi.
Având in vedere tehnologiile de fabricație utilizate, practic, toate microcontrolerele se
realizează la ora actuală în tehnologie CMOS. Se pot realiza astfel structuri cu o mare densitate de
integrare, cu un consum redus (care va depinde de frecvenţa de lucru), permiţând eventual
alimentarea de la baterie.
Logica internă este statică, total sau în cea mai mare parte permiţând astfel, în anumite
condiţii, micşorarea frecvenţei de ceas sau chiar oprirea ceasului în ideea optimizării consumului.

3.1.2. Descrierea structurii microcontrolerului

Figura 3.2 Structura tipică a unui microcontroler [22]

1. CPU- Unitatea centrală de procesare


CPU este compusă din două părți: unitatea de control (CU) și unitatea de calcul aritmetic
(ALU). Prima unitate are rol de control în executarea instrucțiunilor programului, iar cea de-a doua
are ca sarcină executarea operațiilor aritmetice logice. Aceste două entități nu sunt singurele
componente ale CPU; există și un număr redus de locații de memorie, numite regiștrii de stocare a
informației (procesată la un anumit moment). Regiştrii sunt deci locaţii de memorie al căror rol este
de a ajuta prin executarea a variate operaţii matematice sau a altor operaţii cu date oriunde se vor fi
găsit datele.
Viteza de lucru a controlerului este determinată în mod direct de dimensiunea magistralei de
date, de numărul de locații interne de memorie ale CPU și de frecvența ceasului.
41
2. Unitatea de memorie
Memoria este o parte a microcontrolerului a cărei funcţie este de a înmagazina date. Pentru o
anumită intrare obţinem conţinutul unei anumite locaţii de memorie adresate şi aceasta este totul.
Două noi concepte ne sunt aduse: adresarea şi locaţia de memorie. Memoria constă din toate
locaţiile de memorie, şi adresarea nu este altceva decât selectarea uneia din ele. Aceasta înseamnă
că noi trebuie să selectăm locaţia de memorie la un capăt, şi la celălalt capăt trebuie să aşteptăm
conţinutul acelei locaţii.
În afară de citirea dintr-o locaţie de memorie, memoria trebuie de asemenea să permită
scrierea în ea. Aceasta se face prin asigurarea unei linii adiţionale numită linie de control. Vom
desemna această linie ca R/W (citeşte /scrie). Linia de control este folosită în următorul fel: dacă
r/w=1, se face citirea, şi dacă opusul este adevărat atunci se face scrierea în locaţia de memorie.
Tipuri de memorii:
RAM (Random Access Memory) este o memorie volatilă care poate fi citită sau scrisă de
unitatea centrală. Locațiile din RAM sunt accesibile în orice ordine. Pe chip, memoria RAM
ocupă mult loc și implicit costurile de implementare sunt mari. De aceea un µC include de obicei
puțin RAM. Memoria RAM static alimentată de la baterie se folosește pentru stocarea nevolatilă a
cantităților mari de date, la o viteză de acces mare și cu un număr nelimitat de ștergeri și rescrieri.
ROM (Read Only Memory) este cea mai ieftină și cea mai simplă memorie și se folosește la
stocarea programelor în faza de fabricație. Unitatea centrală poate citi informațiile,dar nu le poate
modifica.
PROM (Programmable Read Only Memory) este similară cu memoria ROM, dar ea poate fi
programată de către utilizator. După posibilitățile de ștergere, această memorie poate fi de mai
multe feluri:
a) Memoria EPROM (Erasable PROM) care se poate șterge prin expunere la raze
ultraviolete.
µC-ul cu EPROM are un mic geam de cuarț care permite ca chip-ul să fie expus la radiația
ultravioletă. Ștergerea este neselectivă, adică se poate șterge doar întreaga informație și nu numai
fragmente. Memoria poate fi ștearsă și rescrisă de un număr finit de ori.
b) OTP (One Time Programmable PROM) se folosește pentru multe serii de µC. Memoria
OTP este de fapt o memorie EPROM, dar chip-ul a fost capsulat într-o capsulă de material plastic
fără fereastră, care este mult mai ieftină. Memoria nu se poate șterge sau reprograma.
c) EEPROM (Electrically Erasable Programmable Read Only Memory) poate fi ștearsă
electric de către unitatea centrală, în timpul funcționării. Ștergerea este selectivă, iar pentru rescriere
trebuie parcurs o serie de etape. În memoria EEPROM se memorează un mic număr de parametri
care se schimbă din timp în timp. Memoria este lentă și numărul de ștergeri/scrieri este limitat
(aprox 10 000)
d) FLASH este o memorie asemanătoare EPROM și EEPROM în sensul că poate fi ștearsă și
reprogramată în sistemul în care este folosită (fără a fi necesar un sistem dedicat). Are capacitatea
unui EPROM, dar nu necesită fereastra pentru ștergere. Ca și EEPROM, memoria FLASH poate fi
ștearsă și programată electric. Memoria FLASH nu permite ștergerea individuală de locații,
utilizatorul poate să șteargă doar întregul conținut
3. Magistrala
Calea este numită „bus‖- magistrală. Fizic, ea reprezintă un grup de 8, 16, sau mai multe fire.
Principalele tipuri de bus-uri sunt: bus de adresă şi bus de date. Primul constă din atâtea linii
cât este cantitatea de memorie ce dorim să o adresăm, iar celălalt este atât de lat cât sunt datele, în
cazul nostru 8 biţi sau linia de conectare. Primul serveşte la transmiterea adreselor de la CPU la
memorie, iar cel de al doilea la conectarea tuturor blocurilor din interiorul microcontrolerului.
Mai există de asemenea si un alt tip de bus ce constă în linii de control ce conțin semnale de
control ce permit controlerului să gestioneze transferul de informație de-a lungul magistralei.
Capacitatea magistralei de date este primordială într-un sistem bazat pe utilizarea
controlerelor industriale fiindcă ea determină fluxul de biți informaționali ce poate fi transferat de la
sau către CPU într-o singură operație.
42
4. Unitatea intrare-ieşire I/O
Aceste locaţii sunt numite „porturi‖. Sunt diferite tipuri de porturi: intrare, ieşire sau porturi
pe două-căi. Când se lucrează cu porturi, mai întâi de toate este necesar să se aleagă cu ce port
urmează să se lucreze, şi apoi să se trimită date la, sau să se ia date de la port. Când se lucrează cu el
portul se comportă ca o locaţie de memorie
Această unitate cumulează o serie de interfețe între controler (spre exemplu magistrala
sistemului) și unul sau mai multe subsisteme externe ( spre exemplu CAN-uri externe, etc).
Cheia acestor unități I/O este circuitul de interfațare.
5. Comunicaţia serială
Pentru că avem linii separate de recepţie şi de transmitere, este posibil să recepţionăm şi să
transmitem date (informaţii) în acelaşi timp. Blocul aşa numit full-duplex mode ce permite acest
mod de comunicare este numit blocul de comunicare serială. Spre deosebire de transmisia paralelă,
datele sunt mutate aici bit cu bit, sau într-o serie de biţi, de unde vine şi numele de comunicaţie
serială. După recepţia de date trebuie să le citim din locaţia de transmisie şi să le înmagazinăm în
memorie în mod opus transmiterii unde procesul este invers. Datele circulă din memorie prin bus
către locaţia de trimitere, şi de acolo către unitatea de recepţie conform protocolului.
6. Unitatea timer
Blocul timer care este important pentru noi pentru că ne dă informaţia de timp, durată,
protocol etc. Ea este alcătuită din mai multe numărătoare, unul sau mai mulți regiștrii de comparare
și unul sau mai mulți registrii de achiziție / comparare pentru a furniza, compara și înregistra
diverse funcțiuni. Numărătorul primește impuls de ceas de la ieșirea unui ceas de sistem prescalat.
Circuitele funcțiilor de comparare sunt alcătuite din regiștrii de scriere / citire a datelor și din logica
de comparare a valorii curente a numărătorului cu valoarea stocată în registrul de comparare la
fiecare perioadă a sistemului ceas. Validarea unei egalității între cele două valori poate fi
configurată să reseteze numărătorul la zero, să producă o întrerupere sau să furnizeze un impuls
extern pentru tehnicile de comandă Puls Width Modulation (PWM).
7. Unitatea de ceas watchdog
Acest bloc este de fapt un alt contor liber (free-run) unde programul nostru trebuie să scrie
un zero ori de câte ori se execută corect. În caz că programul se "înţepeneşte", nu se va mai scrie
zero, iar contorul se va reseta singur la atingerea valorii sale maxime. Aceasta va duce la rularea
programului din nou, şi corect de această dată pe toată durata.
8. Convertorul analog-digital
Pentru că semnalele de la periferice sunt substanţial diferite de cele pe care le poate înţelege
microcontrolerul (zero şi unu), ele trebuie convertite într-un mod care să fie înţeles de
microcontroler. Această sarcină este îndeplinită de un bloc pentru conversia analog-digitală sau de
un convertor AD. Acest bloc este responsabil pentru convertirea unei informaţii despre o anumită
valoare analogică într-un număr binar şi pentru a o urmări pe tot parcursul la un bloc CPU aşa ca
blocul CPU să o poată procesa.
Acest modul este de fapt un convertor de aproximari succesive, uzual pe 8 biți, cu circuit
integrat de Sample/Hold. Prezintă 8 canale de intrare analogice multiplexate. Deci procesorul poate
converti secvențial nivelul de tensiune de la 8 surse distincte.
Blocurile CNA:
- Multiplexorul analogic (de IN și de referință);
- CAN-ul de aproximări succesive cu circuit intern de S/H;
- Circuitul de întrerupere logică a programului.

43
3.1.3 Caracteristici importante ale microcontrolerelor

Pentru a alege un microcontroler din marea varietate de microcontrolere existente pe piață


trebuie ținut cont de câteva caracteristici importante ale acestora:
 Prețul de cost și ușurința lucrului cu acesta; sculele de dezvoltare trebuie să poată fi
cumpărate la un preț rezonabil;
 consumul de putere să poată fi redus acolo unde este necesar, adică la sistemele portabile (
să suporte stand-by sau sleep – moduri care limitează consumul de curent la câțiva
miliamperi când un circuit este inactiv);
 microcontrolerul trebuie să existe și în varianta reprogramabilă ( flash ) și nu numai în
varianta inscriptibil o singură dată ( One Time Programming ). Se pot folosi microcontrolere
de tipul OTP doar în varianta finală, pentru producția de serie, deoarece sunt mai ieftine;
 testarea funcționării să se poată realiza și prin simulare software fără să necesite un modul
special;
 să dispună de toate resursele de care avem nevoie pentru realizarea proiectului, evitând
astfel utilizare de circuite adiționale.

3.1.4. Limbaje de programare utilizate

Scrierea programului se realizează de obicei într-un editor ce permite salvarea liniilor de


comandă introduse. Există mai multe opțiuni pentru scrierea programului de control al aplicației și
anume:cod mașină, (cod hexadecimal), limbaj de asamblare, sau limbaj de nivel înalt, (C Pascal C,
Pascal, Basic etc) în funcție de viteza de execuție dorită, lungimea memoriei disponibile.
Comenzile recunoscute de microcontroler sunt cele binare (cod masina). Limbajul de
asamblare este mai evoluat, conține instrucțiuni ce sunt usor de reținut, și pentru transformarea
acestora în cod mașina avem nevoie de un compilator. De obicei compilatorul este oferit gratuit de
producătorul microcontrolerelor. Limbajul de nivel înalt simplifică programarea permițând scrierea
într-un rând sau în câteva rânduri a ceea ce ar necesita multe linii de program în limbaj de
asamblare.
De asemenea se poate utiliza un limbaj ca C, Pascal, Basic pentru o gamă mai largă de
microcontrolere, folosind aceleași instrucțiuni, în comparație cu limbajul de asamblare unde
instrucțiunile pot fi diferite chiar pentru aceeași clasă de microcontrolere. După scrierea
programului este necesară testarea acestuia. Chiar dacă microcontrolerul este de tip flash și poate fi
rescris în caz că programul nu funcționează, este preferabilă eliminarea erorilor de programare
înainte de conectarea lui în circuit. Instrumentele de testare sunt simulatoarele și emulatoarele.
Simulatorul este un soft care rulează pe un calculator personal și utilizează monitorul pentru
a demonstra ce se poate întâmpla într-un microcontroler la rularea programului. Se pot vedea
conținutul memoriei, starea liniilor de port, se poate rula programul pas cu pas și se pot vedea
modificările regiştrilor.
Emulatoarele sunt dispozitive hard care înlocuiesc microcontrolerul din dispozitivul de
testat. Ca și simulatoarele permit controlul execuției programului și monitorizarea a ceea ce se
întâmplă la fiecare pas al programului. Emulatoarele de microcontrolere sunt în general scumpe.

44
3.2. Specificaţii ale microcontrolerului ATmega 328P
Acest microcontroler este de tip CMOS pe 8 biţi, ce are un consum redus de curent.
Arhitectura RISC a lui 328P este una îmbunătăţită de AVR. Vitezele de procesare sunt în jur de
1MIPS/MHz, datorită executării instrucţiunilor într-un singur ciclul de ceas.

Figura 3.2. Schema bloc a microcontrolerului Atmega 328P [33]

Nucleul dezvoltat de AVR contopeşte multitudinea de instrucţiuni cu registrele de uz


general. Toate cele 32 de registre sunt legate direct de ALU, iar în acest mod există posibilitatea
accesării a două registre separate printr-o unică instrucţiune executată într-un singur ciclu de ceas.
Arhitectura îmbunătăţită este mai eficace din punctul de vedere al programării obţinându-se
viteze de procesare de 10 ori mai mari decât majoritatea microcontrolerelor uzuale CISC.
Caracteristicile microcontrolerului Atmega 328P:
- Memorie Flash de 8KB
- Memorie EEPROM de 1KB
- Memorie SRAM de 2KB
- 23 de căi I/O de uz general
- 32 de registre de uz general
- 3 timere/numărătoare cu moduri de comparare
- interfaţă serială de programare USART
- Un port serial SPI
- interfaţă serială I2C, orientată pe bit
- Convertor AN de 10 biţi cu 6/8 canale
- Un ceas special Watchdog cu oscilator intern programabil
- 5 moduri software pentru reducerea consumului de putere.

45
Atmel, firma producătoare, a dezvoltat o tehnologie nevolatilă cu densitate ridicată şi a
implementat-o pe acest dispozitiv. Memoria de program poate fi reprogramată prin interfaţa SPI,
printr-un programator uzual de memorii nevolatile sau prin programul integrat de boot ce rulează
în nucleul AVR.

Programul de boot sau bootloader-ul, poate utiliza orice interfaţă pentru a încărca
programul în memoria de program. Softul din secţiunea de bootare a memoriei Flash va rula fără
încetare cât timp secţiunea de program a memoriei este încărcată, asigurând o operaţie de citire
în timp de scriere, reală.

Nucleul AVR

Funcţia principală a nucleului CPU este să asigure execuţia corectă a programului; deci
CPU-ul trebuie să fie capabil să acceseze memorii, să execute calcule, să controleze perifericele
şi să se ocupe de întreruperi.

Figura 3.3. Diagrama bloc a Arhitecturii AVR [33]

Pentru a maximiza performanţele, AVR apelează la o arhitectură Harvard cu memorii şi


magistrale diferite pentru program şi date. Instrucţiunile din memoria de program sunt executate
prin pipeline pe un singur nivel. Cât timp ce o instrucţiune este executată, următoarea este
extrasă (fetch) din memoria de program. Acest concept permite instrucţiunilor să fie executate în
fiecare ciclu de ceas. Memoria de program este o memorie Flash reprogramabilă integrată.

46
Fişierul de acces rapid al Registrelor conţine 32 de registre de uz general pe 8 biţi
fiecare, cu un timp de acces într-un singur ciclu de ceas. Acest lucru permite ca operaţiile
aritmetico-logice să fie executate într-un singur tact. 6 dintre cele 32 de registre pot fi folosite ca 3
registre de adresare indirectă pe 16 biţi, permiţând astfel calcule eficiente ale adreselor. Unul din
aceşti pointeri de adresă poate fi folosit ca pointer de adresă a tabelelor din memoria Flash de
program.

Unitatea Aritmetică Logică (UAL) suportă operaţii aritmetice şi logice între registre sau
între un registru şi o constantă. Pot fi executate şi operaţii cu un singur registru. După o operaţie
aritmetică, Registrul de stare este rescris, pentru a reflecta informaţii referitoare la rezultatul
operaţiei. Spaţiul memoriei Flash este divizat în 2 părţi, partea programului de boot şi partea
programului de aplicaţii. Fiecare secţiune are biţi de blocare dedicaţi pentru protecţie la scriere şi
citire/scriere.

Rularea programului este furnizată de salturi condiţionate/necondiţionate şi de instrucţiuni


de apel, capabile să adreseze direct întregul spaţiul de memorie. Majoritatea instrucţiunilor AVR
au pentru un cuvânt un format de 16 biţi. Fiecare adresă a memoriei de program conţine
instrucţiuni pe 16 / 32 de biţi. În timpul întreruperilor şi subrutinelor de apel, adresa returnată de
Contorul de Program (PC) este memorată în stivă. Stiva este efectiv alocată în memoria de date
generale SRAM. Toate programele utilizatorului trebuie să iniţializeze indicatorul de stivă (SP) în
rutina de Reset (înainte ca întreruperile sau subrutinele să fie executate). Indicatorul de stivă este
accesibil pentru citire/scriere în spaţiul I/O. Datele din memoria SRAM pot fi accesate uşor
prin 5 metode de adresare suportate de arhitectura AVR.

Unitatea Aritmetică Logică (ALU)


Unitatea ALU operează în conexiune directă cu toate cele 32 de registre de uz general.
Astfel într-un ciclu de ceas, sunt executate operaţii aritmetice între registre de uz general, sau
între registru şi o constantă. Operaţiile ALU sunt împărţite în 3 categorii principale: aritmetice,
logice şi de bit. Unele implementări ale arhitecturii asigură şi un multiplicator puternic ce suportă
multiplicări cu/ fără semn sau în format fracţionar.

Registrul de stare
Registrul de stare deţine informaţii referitoare la rezultatul ultimei operaţii aritmetice.
Această informaţie poate fi folosită pentru a modifica rularea programului în scopul de a executa
operaţii condiţionate. Registrul de stare este actualizat după fiecare operaţie a unităţii ALU. În
multe cazuri, acest fapt va elimina nevoia de a folosi instrucţiuni de comparaţie dedicate, rezultând
un cod mai rapid şi mai compact.

Registrele de uz general
Fişierul registrelor este optimizat pentru setul mare de instrucţiuni RISC al AVR-ului. În
scopul de a atinge performanţa şi flexibilitatea dorită, următoarele configurații de intrare/ieşire sunt
suportate de fişierul cu registre:

- Un operând pe 8 biţi de ieşire şi o intrare pe 8 biţi de răspuns;


- Doi operanzi pe 8 biţi de ieşire şi o intrare pe 8 biţi de răspuns;
- Doi operanzi pe 8 biţi de ieşire şi o intrare pe 16 biţi de răspuns;
- Un operând pe 16 biţi de ieşire şi o intrare pe 16 biţi de răspuns.

47
Figura 3.4. Cei 32 de regiștrii cu scop general de lucru [33]

Majoritatea instrucţiunilor ce se desfăşoară în fişierul de regiștrii au acces direct la toți


regiștrii, şi majoritatea sunt instrucţiuni pe un singur ciclu de ceas. Conform figurii de mai sus,
fiecărui registru îi este atribuită o adresă de memorie, grupându-le în primele 32 de locaţii din
spaţiul de date (DS). Chiar dacă nu sunt implementate fizic ca locaţii de memorie SRAM,
această organizare a memoriei oferă o flexibilitate ridicată la accesul regiștrilor, deoarece
regiștrii pointer X- ,Y- şi Z- pot fi puse să arate către oricare registru din fişier.

Regiștrii indici X- ,Y- şi Z-


Regiștrii R26-31 au o serie de funcţii suplimentare adăugate utilizării lor generale.
Acești regiștrii sunt pointeri de adresă pe 16 biţi, pentru adresarea indirectă în spaţiul memoriei.

Figura 3.5. Regiștrii X,Y,Z [33]

Pentru diferitele moduri de adresare, aceste registre de adresă, au funcţii cum ar fi: incre-
mentare/decrementare automată.

Indicatorul de stivă (Pointerul de Stivă)


Indicatorul de stivă este în principal folosit pentru a stoca datele temporare, pentru
stocarea variabilelor locale şi pentru stocarea adreselor de întoarcere după întreruperi şi subrutine
de apel. Pointerul de stivă întotdeauna indică vârful stivei. De reţinut că stiva este implementată
de la locaţiile de memorie mari la cele mici. Această presupune ca operaţia PUSH a stivei
decrementează pointerul de stivă. Stiva memoriei de date SRAM trebuie definită de program
înainte de fiecare apelare a subrutinelor sau întreruperilor. Valoarea iniţială a plânsului de stivă
este ultima adresă a memoriei SRAM. Pointerul este decrementat cu 1 de fiecare dată când datele
sunt introduse în stivă folosind instrucţiunea PUSH şi este decrementat cu 2 când adresa de
întoarcere este introdusă în stivă cu subrutine de apel sau întreruperi.
48
Pointerul de stivă al AVR conţine 2 regiştri de 8 biţi în spaţiul I/O. Numărul de biţi
folosiţi în realitate este dependent de implementare. În unele implementări ale arhitecturii AVR,
spaţiul de date este atât de mic încât doar registrul SPL(Stack Pointer Low) este necesar,
registrul SPH(Stack Pointer High) nu va fi prezent.

Figura 3.6. Regiştrii pointerului de stivă (high/low) [33]


Memoriile AVR
Arhitectura AVR este divizată în două spaţii principale de memorie, memoria de date şi
memoria de program. În plus ATmega328p deţine şi o memorie EEPROM pentru stocarea
datelor. Toate cele 3 spaţii de memorie sunt liniare şi regulate.

Memoria integrată Flash

ATmega328P are o memorie flash reprogramabilă integrată de 32 KB. Deoarece toate


instrucţiunile AVR sunt de 16/32 de biţi, memoria Flash este organizată ca 16 KB x 16. Pentru
securitatea softului, spaţiul memoriei Flash este împărţit în două secţiuni: cea de Boot şi cea de
program de aplicaţii. Memoria Flash rezistă la cel puţin 10000 de cicluri scriere/ştergere.

Figura 3.7. Memoria de program [33]

Memoria SRAM

Atmega328p este un microcontroler complex cu mai multe unităţi periferice decât pot fi
suportate în cele 64 de locaţii rezervate în Opcode (operation code) pentru instrucţiunile de
intrare/ieşire. Ultimele 2303 locaţii de memorie sunt repartizate după cum urmează: primele 32
locaţii aparţin Registrului Fişier, următoarele 64 de locaţii sunt repartizate memoriei de
intrare/ieşire, apoi urmează 160 de locaţii pentru extensia memoriei I/O, iar ultimele 2048 locaţii
de memorie accesează datele interne SRAM.

Figura 3.8. Harta memoriei SRAM [33]

Cele 5 moduri de adresare a memoriei de date sunt: directă, indirectă cu deplasament,


49
indirectă, indirectă cu pre-decrementare şi indirectă cu post-incrementare. În fişierul regiștrilor,
regiștrii R26 până la R31 conţin regiștrii pointer pentru adresarea indirectă. Adresarea directă
atinge întreg spaţiul de date. Adresarea indirectă cu deplasament atinge 63 de locaţii de adrese de
la adresa de bază dată de registrele Y- sau Z- . Atunci când se foloseşte adresarea indirectă cu
registre cu pre-decrementare şi post-incrementare automată, registrele de adrese X,Y şi Z sunt
decrementate sau incrementate. Cei 32 de regiștrii de uz general, 64 de regiștrii de intrare/ieşire,
cele 160 de extensii ale regiștrilor I/O şi cei 2048 de octeți de memorie internă SRAM sunt
accesibili prin toate aceste moduri adresare.

Memoria de date EEPROM


Capacitatea acestei memorii este de 1KB. Ea este organizată ca un spaţiu de date
separat, în care fiecare byte poate fi scris şi citit. EEPROM-ul rezistă de minim 100000 de cicluri
scriere/ştergere. Regiştrii de acces ai EEPROM-ului sunt accesibili în spaţiul I/O.

Ceasul sistemului
Schema următoare prezintă principalele sisteme de ceas ale AVR-ului şi distribuţia lor. Nu
este necesar ca aceste sisteme să fie active toate în acelaşi timp, şi pentru a reduce consumul de
energie, modulele de ceas pot fi oprite folosind diverse moduri de hibernare (sleep).

Figura 3.9. Distribuţia ceasului în C [33]


Ceasul CPU este pus la dispoziţie componentelor ce se ocupă cu funcţionarea nucleului
AVR. Exemple de astfel ce componente sunt Fişierul cu Regiștrii de Uz General, regiștrii de
stare şi memoria de date ce ţine pointerul de stivă. Oprind ceasul CPU-ului inhibă nucleul să
execute operaţii generale şi calcule.
Orice sursă de ceas necesită o tensiune Vcc adecvată pentru a începe oscilaţia şi un
număr minim de cicluri de oscilaţie, înainte ca să poată fi considerat stabil. Pentru a asigura o
tensiune Vcc suficientă, dispozitivul emite un reset intern cu o întârziere de time - out (tTOUT)
după ce reset-ul dispozitivului este eliberat de către toate celelalte surse de reset. Întârzierea este

50
măsurată de Oscilatorul Wachdog, iar numărul de cicluri de întârziere este dat de biţii fuzibili
SUTx şi CKSELx. Întârzierile selectabile sunt reprezentate în tabelul următor:

Time-out tipic Time-out tipic Numărul de cicluri


(Vcc=5V) (Vcc=3V)

0 ms 0 ms 0

4.1 ms 4.3 ms 512

65 ms 69 ms 8.192

TABEL 3.1. Întârzierile selectabile [33]

Principalul scop al întârzierii este să menţină AVR-ul în reset până când acesta este
alimentat cu tensiunea Vcc minimă. Întârzierea nu monitorizează tensiunea şi va fi necesar
selectarea unei întârzieri mai mari decât timpul de creştere al tensiunii Vcc. Dacă acest lucru nu
este posibil, un circuit de detecţie Brown-Out intern sau extern va trebui folosit. Un circuit BOD
ar asigura suficientă tensiune Vcc, înainte de a elibera reset-ul, iar întârzierea de time-out poate
fi dezactivată.

Managementul consumului
Modul Sleep permite aplicaţiei să oprească modulele nefolosite de MCU, salvând astfel
consumul. AVR pune la dispoziţie o serie de moduri Sleep, oferindu-i utilizatorului posibilitatea
de a-şi alege consumul de putere în funcţie de cerinţele aplicaţiei. Pentru a intra în oricare din
modurile Sleep, bitul SE din registrul SMCR(Sleep Mode Control Register) trebuie pus în 1
logic şi trebuie executată o instrucţiune SLEEP. Biţii SM2, SM1 şi SM0 din registrul SMCR
selectează care mod Sleep va fi activat de instrucţiunea SLEEP conform cu tabelul de mai jos:

TABEL 3.2. Biţi ce selectează modul de Sleep[33]

Dacă o întrerupere a fost activată, în timp MCU este în modul Sleep, acesta se
„trezeşte‖. Unitatea MCU este apoi oprită pentru 4 tacturi de ceas în momentul timpului de pornire,
se execută rutina de întrerupere şi se reia execuţia ce urmează după SLEEP. Conţinutul fişierului de
registre şi memoria SRAM nu sunt alterate atunci când dispozitivul se ‖trezeşte‖ din modul Sleep.
Dacă apare o instrucţiune de reset în timpul modului SLEEP, unitatea MCU se ‖trezeşte‖ şi
execută de la vectorul de reset.

Porturi digitale generale I/O


Acestea sunt porturi I/O bidirecţionale cu rezistenţe pull-up interne opţionale. În Anexa3 se va găsi
diagrama completă a porturilor de I/O a microcontrolerului Atmega328P.
Comparatorul Analog Numeric
51
Acesta prezintă următoarele specificaţii
- Rezoluţie pe 10 biți;
- ±2 LSB eroare absolută;
- 13 – 260 µs timp necesar de conversie;
- 6 canale multiplexate de intrare;
- 0 – Vcc limitele tensiunii de intrare CAD;
- Senzor de temperatură la canalul de intrare,
- Tensiune de referinţă selectabilă 1.1V;
- Declanşarea unei întreruperi atunci când conversia este finalizată;
- Atenuarea zgomotului în modul Sleep.
Atmega328p prezintă un convertor analog digital cu aproximări succesive, cu rezoluţie pe 10
biţi. Convertorul este conectat la un multiplexor analog pe 8 canale care permite construirea a 8
tensiuni de intrare din pinii Portului A. Dispozitivul conţine un circuit de eşantionare şi memorare
care asigură menţinerea tensiunii de alimentare constantă în timpul conversiei. Convertorul are un
pin separat de alimentare, AVCC, care nu trebuie să difere mai mult de 0.3V faţa de Vcc.
Referinţele interne de tensiune 1.1V sau AVCC sunt integrate. Convertorul analog digital
transformă tensiunea analogică de intrare într-o valoare digitală pe 10 biţi, prin aproximări
succesive. Valoarea minimă o reprezintă GND(0V), iar valoarea maximă o reprezintă AREF, -1
LSB. Opţional, AVCC sau o tensiunea internă de referinţa 1.1V poate fi conectată la pinul AREF
prin scrierea biţilor ai REFSn din registrul ADMUX. Tensiunea de referinţă internă poate astfel fi
decuplată printr-un condensator extern la pinul AREF pentru a îmbunătăţi imunitatea la zgomot.
Oricare dintre pinii de intrare ADC, şi GND de asemenea, poate fi selectat ca intrare uni-sens
către DAC.

Figura 3.10. Schema bloc convertor analog numeric [33]

52
3.3. Placa de dezvoltare Seeeduino v2.21

Seeeduino este o placă de dezvoltare asemănătoare cu celebra Arduino UNO. Designul său
este bazat pe schema Diecimilia, 100% compatibilă cu programul său existent, shield-ul și IDE-ul
(Integrated Development Environment- mediul de dezvoltare a programelor de calculator). Pe
partea hardware s-au făcut schimbări remarcabile pentru a îmbunătății flexibilitatea și experiența
utilizatorului. Procesorul este optimizat să ruleze cod scris într-un limbaj de programare apropiat ca
structura codului C++, C Sharp.

Figura 3.11. Semnificaţia componentelor [40]

ICSP ( in-circuit serial programming) = este o tehnică prin care un dispozitiv programabil
este programat dupa ce acesta este plasat într-o placă de circuit. Placa Seeeduino dispune de un
astfel de port prin care utilizatorul poate rescrie bootloaderul microcontrolerului de exemplu.
Oscilator cu cristal de 16MHz = acesta este ca o inimă pentru microcontroler. Oscilatorul
prevede un ritm care determină µC-ul să ia măsuri. În seria de µControlere AVR fiecare impuls de
ceas execută o singură instrucțiune ( unele instrucțiuni au nevoie de mai mult de un ciclu de ceas
pentru a executa). Pentru o sincronizare exactă se recomandă un oscilator cu cristal. În general la
AVR-uri se folosesc cristale de la 1MHz la 16 MHz, depinde de aplicație.
Regulator de tensiune (3.3 sau 5V) = este folosit pentru a menține un nivel constant al
tensiunii.
PWM (Pulse-width modulation) = 6 dintre pinii plăcii de dezvoltare Seeeduino sunt capabili
să genereze la ieșire semnale PWM. Termenul PWM aparține limbii engleze și se traduce prin Pulse
Witdh Modulation. În traducere liberă înseamnă Semnal Modulat în Durată. Semnalele PWM sunt
utilizate îndeosebi pentru controlul vitezei unui motor de cc sau pentru variația intensității unui led
s.a.m.d. În cazul motoarelor în cc, acestea permit controlul vitezei prin mărirea sau micșorarea
tensiunii de alimentare dar astfel, viteza variază neliniar. Pentru corecția acestui inconvenient se
recurge la opțiunea de control prin semnale PWM unde putem obține o variație liniară a vitezei
motorului.
Relația matematică prin care putem calcula factorul de umplere al semnalului PWM este:

D= , unde  este durata impulsurilor iar T este perioada semnalului.
T

53
Figura 3.12. Schema simplificată a unui circuit de Figura 3.13 .Reprezentarea
obţinere a semnanului PWM semnalului PWM [37]

Frecvența de lucru a generatorului este fixată de valoarea constantei de timp RC.


Amplificatorul de eroare – are rol în compararea tensiunii de referinţă (Vref) şi semnalului de
reactive (Vf). V fse obţine, uzual, prin divizarea tensiunii de ieşire:
Vf = β V0 fiindcă Vf = Vref şi V0 = Vref/β

Principiu de funcţionare :

În comparator valoarea Va este comparată cu valoarea Vr; în cazul în care Va > Vr atunci
la ieşirea comparatorului vom obţine valoarea `1` (Ton), iar în caz contrar vom obţine
valoarea`0`(Toff). Creşterea tensiunii de ieşire determină Vf să crească peste Vref ceea ce va
rezulta o scădere a Va, deci durata pentru `1` logic la ieşirea comparatorului va fi mai scurtă. În
cazul scăderii tensiunii de ieşire atunci vom obţine o durată mai mare pentru `1`logic la
ieşirea comparatorului. Variaţia lăţimii impulsului în funcţie de tensiunea de ieşire se
datorează factorului de umplere ( în engleză : duty cicle).

Convertor USB- serial UART = FT232R este un dispozitiv de interfaţare între USB şi
serial UART care simplifică configuraţia USB-serial şi reduce numărul componentelor externe
(prin integrarea unui EEPROM pentru configurare, a unor rezistori terminali USB şi a unui
circuit integrat de ceas care nu necesită cristal extern) în dispozitiv. Acest dispozitiv a fost
optimizat pentru a opera eficient cu un controler gazdă USB prin utilizarea cât mai redusă posibil a
benzii de transmisie disponibilă USB-ului.

Figura 3.14. Modul de conexiune al interfeţei USB cu interfaţa UART prin FT232R [41]

54
Semnificaţia pinilor integratului FT232R

Vcc = pinul de alimentare cu tensiune cuprinsă între 3.3v şi 5.25v;


USBDM = Minusul semnalului de date al
USBului;
USBDP = Plusul semnalului de date al USB-lui;
3V3OUT = ieşirea de 3.3V a regulatorului integrat. Acest pin ar trebui să fie decuplat de
GND printr-un condensator de 100nF. Principala utilizare a acestui pin este de a oferi alimentare
internă de 3.3V pentru celula de emisie-recepţie USB şi pinului USBDP printr-un rezistor de pull-
up de 1.5 kohmi;
CBUS0 = pin configurabil I/O. Funcţia acestui pin este configurată în EEPROM-ul intern al
dispozitivului. În acest caz, acest pin administrează oscilatorul de 12 MHz;
TXD = transmiţător asincron de date de ieşire;
RXD = receptor asincron de date de intrare;
RTS = Request to Send Control Output / Semnal de Handshake;
CTS = Clear To Send Control Input / Semnal de Handshake;
VCCIO = pin ce alimentează interfaţa UART.

Sumar Seeeduino

- Microcontroler: ATmega328P;
- Tensiune de operare: 5V;
- Tensiune de intrare (recomandată): 7 - 12V;
- Pini I/O digitali: 14 (dintre care 6 PWM de ieşire);
- Pini I/- analogici: 6;
- Curent continuu per pin I/O: 40mA;
- Memoria Flash: 32 KB dintre care 0.5 KB folosiţi de bootloader;
- SRAM: 2 KB;
- EEPROM: 1KB;
- Viteză de ceas (clock speed): 16 MHz.
- SPI: 10 (SS), 11(MOSI), 12 (MISO), 13(SCK). Aceşti pini suportă comunicaţia de tip
SPI folosind librăria SPI.
- LED: 13. Acesta este un LED încorporat conectat la pinul digital 13. Când pinul este la
nivelul logic 1, ledul este aprins, iar când este la 0 logic , ledul este stins.

Seeeduino v2.21 are 6 intrări analogice, etichetate de la A0 la A5, fiecare generând o


rezoluţie de 10 biţi (echivalentul a 1024 de valori). În modul default ei măsoară de la 0 la 5 volţi,
chiar dacă este posibilă schimbarea limitei superioare a intervalului lor folosind pinul AREF şi
funcţia analogReference. În plus, uni pini au funcţii specializate:

- TWI: pinul A4 ( SDA) sau pinul A5 ( SCL). Susţin comunicarea TWI folosind
librăria WIRE
Alţi pini:
- AREF: tensiunea de referinţă pentru intrări analogice. Este folosită cu funcţia
analogReference.
- Reset: aduce linia la nivelul logic 0 să reseteze microcontrolerul. Este folosit de obicei
pentru a adăuga un buton de resetare pentru shield-urile care îl blochează pe cel deja
existent.

Seeeduino poate fi alimentată prin conectorul USB sau de la o sursă de alimentare externă.

55
Input şi Output

Fiecare din cei 14 pini de placă pot fi folosiţi fie ca input sau ca output, folosind
funcţiile pinMode(), digitalWrite() sau digitalRead. Ei pot opera la 5 volţi. Fiecare pin poate genera
sau primi maxim de 40 mA şi conţine un rezistor de ridicare(pull-up) intern (deconectat prin
default ) de 20-50 kOhmi. Ba mai mult, unii pini au funcţii specializate, precum:
- serial:0(RX) şi 1(TX). Folosit să recepţioneze (RX) şi să transmită (TX) date seriale TTL.
- întreruperile externe: 2 şi 3. Aceşti pini pot fi configuraţi pentru a declanşa o întrerupere la o
valoare joasă, o ridicare , o scădere sau o schimbare a valorii.
- PWM: 3, 5, 6, 9, 10 şi 11. Oferă un semnal PWM de ieşire de 8 biţi cu funcţia
analogWrite().

Comunicaţie

Seeeduino are multiple facilităţi pentru comunicarea cu computerul, cu un alt Seeeduino


sau cu un alt microcontroler. ATmega328 dispune de o comunicare de tipul UART TTL (5V)
care este disponibilă pe pinii digitali 0 (RX) sau 1(TX). Pe Windows este necesar un fişier de tip
.inf. Software-ul Arduino dispune de un serial monitor care permite transmiterea datelor simple
textuale către şi de la Arduino. LED-urile TX şi RX de pe placă vor pulsa când data este
transmisă prin convertorul USB-serial şi de la conexiunea USB la computer . O librărie
SoftwareSerial permite comunicarea serială pe orice pin al plăcii. uC ATmega328 susţine de
asemenea comunicaţiile I2C (TWI) şi SPI. Software-ul Arduino include o librărie Wire pentru a a
simplifica utilizarea busului I2C.

Protecţia USB-ului la supracurent

Seeeduino v2.21 are un polifuzibil resetabil care protejează portul USB de


scurtcircuitări şi suprasarcini. Deşi majoritatea calculatoarelor îşi asigură protecţia internă,
siguranţa fuzibilă oferă un nivel superior de protecţie. Dacă portului USB îi sunt aplicaţi mult de
500mA, atunci siguranţa va închide conexiunea în mod automat până când scurtcircuitul şi
suprasarcina vor fi eliminate.

56
3.3. Modulul Bluetooth

Există două variante de implementare a unui sistem înglobat cu transmisie Bluetooth, prin
utilizarea unei interfeţe Bluetooth conectate la un microcontroller existent sau utilizarea unui
microcontroller cu Bluetooth integrat.
Momentan prima soluţie este preferată asigurând o viteză de implementare mai mare şi
costuri mai mici.
Am ales interfaţa Bluetooth HC-06, ce asigură transfer Bluetooth versiunea 2 cu EDR
(Enhanced Data Rate) de până la 3Mbps. Sunt posibile moduri de lucru cu economie de energie.
Alimentarea este între 3V şi 3,6V, puterea de emisie fiind de 18dBm.
Interfaţa HC-06, are următoare configuraţie a pinilor:

Figura 3.15. Interfaţa


Bluetooth HC-06 [38] Figura 3.16. Configuraţia pinilor [39]

Am folosit pinii 1 și 2 ( TX și RX) pentru comunicația serială cu placa Seeeduino și


bineînțeles pinii 12 și 13 (GND și 3.3 V) pentru alimentare, astfel :
1. Alimentarea modulului se face prin portul de 3.3 V al Arduino. Pinul aferent alimentării al
modulului este pinul 12. Deasemenea va exista un fir între pinul GND al modulului și potențialul de
referința al circuitului.
2. Transmisia de date dintre modul și Arduino se face prin pinii seriali RX și TX. Astfel pinul TX al
modulului se va conecta cu RX de pe Arduino, iar prinul RX din modul cu TX de pe placa.

Figura 3.17. Schema electrică de montaj a modului Bluetooth

Pentru configurarea interfeţei am folosit următoarele comenzi AT :


- pentru configurarea ratei baud a serialului, la valoarea 115200 : AT+BAUD8
- pentru configurarea numelui „=Madalina‖: AT+NAME=Madalina
57
3.4. Terminalul de tip Smartphone

După cum am menţionat în introducere, în prezent se încearcă integrarea cât mai multor
funcţii telefoanelor mobile de tip Smartphone. Dacă ne uităm în trecut, terminalele GSM erau
utilizate strict pentru comunicaţia mobilă, butoanele erau cât mai simple, atât cât să permită
efectuarea unui apel sau scrierea unui mesaj, în timp cerinţele utilizatorilor au crescut, pe lângă
funcţii ca: ceas, alarmă, calendar, calculator, jocuri, radio, cameră foto, acces la internet ş.a.m.d. ,
se observă tendinţa spre comanda dispozitivelor externe terminalului , ca o extindere a aplicaţiilor
realizate de acesta.
Pentru realizarea aplicaţiei de comandă a unui dispozitiv de afişaj am folosit modulul HTC
Desire 300, prevăzut cu un software de tip Android OS, versiunea 4.1.2 (Jelly Bean), unitate
centrală de prelucrare de tip Dual-core 1 GHz Cortex-A5 şi chipset-ul Qualcomm MSM8225
Snapdragon S4 Play.

Acest Smatphone este prevăzut, de asemenea, cu un microchip integrat ce


acaparează tehnologiile GPRS, Wi-fi (802.11 b/g/n împreună cu Wi-Fi
hotspot) şi Bluetooth (v4.0 cu A2DP-Advanced Audio Distribution
Profile).

Aplicaţia însă, poate fi instalată pe orice tip de Smatphone


prevăzut cu platformă Android, superioară versiunii 2.3.4.

În anul 2011, s-au pus bazele unei colaborări între dezvoltatorii


Android şi sistemele de tip open source Arduino. Astfel, platforma
Android, oferă posibilitatea înfiinţării unor accesorii pentru Android cu
ajutorul kit-ului pentru dezvoltarea accesoriilor (Accessory Development
Kit), creat. Când vorbim despre accesorii ne referim la dispozitive externe
Smartphone-ului sau tabletei cu sistem de operare Android, pe care dorim
Figura 3.18 Smartphone să le monitorizăm sau să le controlăm.
HTC Desire 300 [42]
Aplicaţia Android se extinde, aşadar, fiind înţeleasă şi în afara terminalului, prin intermediul
acestui Kit (ADK), iar dispozitivele cu rol de accesorii folosesc protocoalele Android Open
Accesory (AOA) în momentul stabilirii unei conexiuni cu smartphone-ul sau tableta, prin
intermediul Bluetooth-ului sau cablului USB.

În ceea ce priveşte partea hardware, ajungem la concluzia că aplicaţia Android permite


utilizatorului să se conecteze sau deconecteze la, respectiv de la modulul Bluetooth, iar când este
conectat există o comunicaţie serială între Smartphone şi placa de dezvoltare şi prin intermediul
Kit-ului Accesory Development Kit (ADK), oferit de platforma Android, aceasta este capabilă să
perceapă informaţiile primite pentru a le prelucra şi a duce la final aplicaţia.

58
3.5. Matricea de LED-uri

LED-urile folosite pentru realizarea matricei sunt de culoare albastră cu vârful lungimii de
undă 465nm, aliajul utilizat este AlGaInP, tensiunea de polarizare poate varia între 3V şi 3.4V,
curentul de polarizare este de 20 mA, obţinându-se o intensitate luminoasă maximă de 3.2 cd (=
= lm/sr).
Pentru a realiza o matrice cu 8 rânduri şi 8 coloane,
cele 64 de LED-uri necesare au fost conectate având catodul
în comun pe coloane și anodul în comun pe rânduri, astfel :
Cele 8 coloane au fost conectate în ordine
crescătoare la pinii digitali ai plăcii de dezvoltare Seeduino
numerotaţi de la 2 la 9.
Pentru rânduri am utilizat cei 4 pini digitali, rămaşi
10, 11 , 12, 13 şi 4 pini analogici, declaraţi ca şi digitali şi
anume : 0,1,2,3.

Pentru a micşora curentul de polarizare, pe firul


comun corespunzător anodului LED-urilor am montat câte un
rezistor SMD 1001 cu o valoare a rezistenţei de 100Ω. Figura 3.26. Conexiunea LED-
urilor ce compun matricea [43]
Deşi pentru culoarea albastră a LED–urilor este
suportată o tensiune de polarizare de 3.3 V (adică exact
valoarea tensiunii cu care este alimentată matricea de LED-uri
de la placa de dezvoltare) şi un curent de polarizare de 20 mA.
Pentru siguranţă şi protecţia LED-urilor am folosit această
rezistenţă pentru disipare. Dacă avem o alimentare de 3,3 V şi
vrem să obţinem, de exemplu, 3V pentru polarizarea LED-ului,
folosim formula R= ∆U/I = U - U/ I = 3,3 - 3 V/0,02 A =
= 0,3V/0,02A = 15Ω, aşadar în acest caz vom folosi o rezistenţă Figura 3.27. Reprezentarea
de 15Ω. sugestivă terminalelor unui LED

Folosind o rezistenţă de 100 Ω, vom obţine o tensiune de polazirare U = RI = 1000,02 =


2V, iar intensitatea luminoasă a acestora va scădea, pentru a se distinge mai bine comanda
introdusă, deoarece o luminozitate mai mare ar fi creat confuzie, datorită difuziei luminii.

Figura 3.28. Schema electrică de montaj a LED-urilor


59
3.6. Construcţia ansamblului
Etapa de construcție a reprezentat interconectarea tuturor modulelor la placa de dezvoltare
centrală prin conexiuni electrice realizate de cabluri. În prima fază modulele au fost testate
individual conectând pe rând la placa centrală câte una din componentele periferice.
În primul rând am conectat modulul Bluetooth la interfaţa serială a plăcii (Rx şi Tx ) şi
alimentându-l de la aceasta cu 3,3V, apoi a fost conectată matricea de LED-uri utilizând toţi pinii
digitali D2-D13 şi 4 dintre pinii analogici A0-A3.
După testarea individuală s-a conectat tot ansamblul de dispozitive și acestea au fost
montate într-o carcasă de plastic pentru fixarea mecanică a acestora și protejarea lor.

Figura 3.29. Schema electrică de principiu a sistemului

3.7. Utilizare
Sistemul, prin conexiunea mini-USB, alimentează placa cu o tensiune de 3.3V, aceasta este
distribuită tuturor componentelor periferice. Un sistem redundant de alimentare este de asemenea
montat, constituit dintr-o sursă neîntreruptă de energie, o baterie de 9V.
Operatorul uman poate plasa comanda personalizată care va apărea pe afişajul digital ce
constă în matricea de LED-uri, cu ajutorul unui Smartphone/ Tabletă, pe care am instalat aplicaţia
dedicată, la o distanţă de până la 10 m de ansamblu.
Comenzile aplicaţiei sunt simple: căutare dispozitiv, conectare cu acesta, întrerupere
conexiune. Butonul „CĂUTARE‖ presupune căutarea unui dispozitiv disponibil şi selectarea
acestuia, în cazul de faţă, comanda de „pairing‖ cu modulul Bluetooth având numele „=Madalina‖.
Butonul „CONECTARE‖ realizează conexiunea între terminalul mobil şi dispozitivul selectat în
urma sincronizării, stabilindu-se mediul de comunicaţie. Butonul „ÎNTRERUPE‖ va opri
comunicarea între modulul de comandă şi elementul de execuţie, astfel că acesta din urmă nu va
mai asculta de nicio comandă introdusă după activarea acestui buton.
Când există comunicare între terminalul mobil şi ansamblu, utilizatorul poate introduce o
comandă prin simpla atingere a interfeţei în zona de interes, de asemenea poate reseta toate
comenzile introduse până in momentul respectiv şi relua procesul, cu butonul „RESETARE‖.

60
CAPITOLUL 4
IMPLEMENTAREA SOFTWARE A SISTEMULUI
AUTOMAT DE COMANDĂ LA DISTANŢĂ A UNUI DISPOZITIV
DE AFIŞAJ

4.1. Introducere în mediul de programare Arduino


Seeeduino, similar Arduino, este o platformaă de dezvoltare open-source, bazată pe o placă
de dezvoltare simplă cu un microcontroler și un mediu de dezvoltare pentru scrierea de software.
Poate fi folosită pentru a dezvolta proiecte interactive, primind date de la o varietate de comutatoare
sau senzori și controlând lumini, motoare și alte periferice. Plăcile pot fi montate manual sau
cumpărate preasamblate, mediul de dezvoltare open-source poate fi descărcat gratuit.

Figura 4.1. Emblema Arduino [44]

Software-ul constă într-un compilator standard de limbaj de programare și un bootloader


care rulează pe microcontroler.
Sunt multe alte microcontrolere sau platforme de microcontrolere disponibile pentru calcule
fizice care oferă functionalități similare. Toate acestea preiau detaliile dezordonate ale programării
microcontrolerelor și le strâng într-un pachet ușor de folosit. Arduino simplifică procesul de a lucra
cu microcontrolere, oferind multe avantaje cum ar fi:
- Preț mic - Plăcile de tipul Arduino/Seeduino/Broarduino sunt mai puțin costisitoare în
comparație cu alte platforme demicrocontrolere. Cea mai ieftină versiune de Arduino poate fi
asamblată manual, iar modulele preasamblate costă mai puțin de 40$.
- Compatibilitate între platforme - Software-ul Arduino funcționează cu sistemele de operare
Windows, Macintosh OSX și Linux. Majoritatea sistemelor de microcontrolere sunt limitate la
Windows.
- Mediu de programare simplu - Mediul de programare Arduino este ușor de folosit pentru
începători, dar destul de flexibil pentru utilizatorii avansați.
- Software open-source și extensibil - Software-ul Arduino este comercializat ca instrument
open-source, disponibil pentru a fi extins de către programatori experimentați. Limbajul poate fi
extins prin librăriile C++, iar cei ce vor să înțeleagă detaliile tehnice pot face saltul de la Arduino la
limbajul de programare AVR C, pe care acesta este bazat. Similar, se poate atașa codul AVR-C
direct în programele Arduino.
Software-ul scris folosind Arduino se numește schiță. Aceste schițe sunt scrise într-un editor
de text. Are funcții de copiere/lipire și de căutare/înlocuire text. Zona de mesaje oferă feedback în
timp ce se salvează sau se exportă și de asemenea, când afișează erori. Consola afișează textul de
ieșire al mediului Arduino incluzând mesaje complete de eroare și alte informații. Butoanele de pe
bara de meniuri permit verificarea și încărcarea programelor, crearea, deschiderea și salvarea
schițelor, și deschiderea terminalului interfeței serial.
Mediul de dezvoltare Arduino este o aplicație cross-platform scrisă în Java și este derivată
din mediul de dezvoltare (IDE-ul) pentru limbajul de programare pentru ,,Processing‖ și proiectul
,,Wiring‖. Include un editor de cod cu funcții, ca sublinierea sintaxelor, indentare automată, și este
de asemenea capabil să compileze și să uploadeze programe pe placă cu un singur click. De obicei
nu sunt necesare editarea makefiles-urilor sau rularea de programe pe linia de comandă.

61
Figura. 4.2 – IDE-ul Arduino

IDE-ul Arduino are inclusă o librărie C/C++ numită ,,Wiring‖ (de la proiectul cu același
nume), care face anumite operații comune de input/output mult mai ușoare. Programele Arduino
sunt scrise în C/C++, deși utilizatorii trebuie să definească două funcții pentru a crea un program
utilizabil:
- setup() - o funcție rulată odată la începutul programului pentru a iniția setările;
- loop() - o funcție apelată repetat până la oprirea plăcii;
Un anumit număr de lucruri trebuie să se întâmple pentru ca codul Arduino să ajungă pe
placa aferentă. Mai întai, mediul Arduino face câteva mici transformări pentru a se asigura
corectitudinea codului C sau C++. Atunci este transmis unui compilator (avr-gcc), care transformă
codul în instrucțiuni pentru dispozitiv. Apoi, codul este combinat cu librăriile standard Arduino care
furnizează funcții de bază ca ,,digitalWrite()‖ sau ,,Serial.print()‖. Rezultatul este un singur fișier
.hex, care conține octeții specifici necesari pentru a fi scriși pe memoria program a cipului de pe
placa Arduino. Acest fișier este atunci încărcat pe placă: transmis prin USB sau conexiunea în serie
via bootloader-ul de pe cip sau prin componenta externă de programare.
Plăcile de tipul Arduino curente sunt programate via USB, puse în aplicare folosind cipuri
adaptoare USB-to-serial cum ar fi FTDI FT232. Unele variante, cum ar fi Arduino Mini și
neoficialul Boarduino, folosesc un cablu placă adaptoare detașabilă USB-to-serial, Bluetooth sau
alte metode.

62
4.2. Schema logică a funcţionării sistemului
Funcționarea sistemului este centralizată și gestionată de placa de dezvoltare cu
microcontroler Atmega328 ce rulează mediul de programare Arduino. În momentul alimentării
sistemului începe rularea programului stocat în memoria microcontrolerului.
La baza aplicaţiei stă instrucţiunea de
aprindere a LED-urilor. Pentru înţelegerea
principiului putem urmări figura din stânga
unde, unde pinii 1 și 2 sunt reprezentaţi
asemenea unor contacte cu 2 poziţii posibile,
corespunzătoare alimentării LED-urilor cu 3.3V
(HIGH), respectiv voltaj 0 (LOW) , în total 4
posibilităţi de comandă a LED-ului.
Pentru ca acesta să fie polarizat corect
pinul 1 la care a fost conectat anodul trebuie să
fie pe poziția HIGH și pinul 2 corespunzător
catodului trebuie să fie pe poziţia LOW, orice
Figura 4.4. Comanda altă comandă reprezintă o polarizare incorectă a
pentru aprindere dată LED-ului, iar acesta rămâne stins.
pe pinii unui LED Aşadar, instrucţiunea pe care o vom
folosi în codul sursă scris în mediul de
Figura 4.3. Modul de programare Arduino pentru aprinderea unui
conectare a unui LED LED conectat cu anodul la pinul 1 și catodul la
între 2 pini ai plăcii pinul 2, va fi:
Digitalwrite (pin1, HIGH)
Digitalwrite (pin2, LOW),
Respectiv pentru stingerea aceluiaşi LED:
Digitalwrite (pin1, HIGH)
Digitalwrite (prin2, HIGH)
Aprinderea a mai multor LED-uri concomitent nu este realizabilă!
Nefiind posibil ca acestea să ilumineze simultan se foloseşte scanarea matricei, adică
aprinderea LED-urilor pe rând, la momente de timp foarte scurte pentru a nu se observa
interschimbarea.
După ce am reuşit să scriem instrucţiunile de scanare a matricei de LED-uri, în scopul
obţinerii afişajului (Display), acestea vor fi apelate o dată la 1 milisecundă cu ajutorul unei
biblioteci speciale de temporizare Mstimer2. Următorul aspect important rămâne să se respecte
întocmai comanda introdusă de utilizatorul ce foloseşte interfaţa la nivelul terminalului mobil.
Cu ajutorul interfeţei de comunicaţie, prin intermediul căreia totodată a fost stabilit mediul
de comunicare, se transmit 3 comenzi posibile asupra celor 64 de LED-uri ale matricii, pe care
programul le recunoaşte, utilizând instrucţiunile de iniţializare a comunicaţiei seriale: Serial.begin
(115200) , de verificare a datelor primite: if (Serial.available() > 1) şi de citire a acestora.
Cele 3 comenzi sunt de aprindere şi stingere individuală a fiecărui LED, respectiv stingerea
tuturor LED-urilor aprinse precedent, recunoscute de program ca 3 valori posibile ale variabilei
Incomm, primită de la serial: 48 (aprindere), 49 (stingere), 99 (resetare).
Cele 64 de LED-uri au în interiorul codului sursă o adresă unică dată în funcţie de valoarea
unică InValue , primită de la serial, prin intermediul căreia pot fi recunoscute de program pentru a fi
aprinse, respectiv stinse.
Când utilizatorul introduce comanda de aprindere a unui anumit LED, de la serial se
primeşte valoarea 49, pentru variabila Incomm şi programul recunoaşte adresa unică a acestuia prin
variabila InValue. Similar este şi în cazul stingerii unui LED, singura diferenţă e că valoarea
variabilei Incomm primită va fi 48. În cazul resetării matricei, se apelează o funcţie special definită
pentru stingerea tuturor LED-urilor: ClearLeds ().
63
Alte aspecte pot fi urmărite în schema logică a funcţionării sistemului, precum şi în codul
sursă din ANEXA 1.

Organigrama 1. Codul program scris în mediul de programare Arduino


64
4.3. Sistemul de operare Android

Android (al cărui logo este prezentat în Figura 4.5) este o platformă software și un
sistem de operare pentru dispozitive digitale și telefoane mobile, dezvoltată inițial de compania
Google, iar mai târziu de consorțiul comercial Open Handset Alliance. Android permite
dezvoltatorilor să scrie cod gestionat în limbajul Java, controlând dispozitivul prin intermediul
bibliotecilor Java dezvoltate de Google. Aplicațiile scrise în C și în alte limbaje pot fi compilate
în cod mașină ARM și executate, dar acest model de dezvoltare nu este sprijinit oficial de către
Google.

Figura 4.5. Logo Android (sursa: Google images)

Caracteristici:
Printre caracteristicile și specificațiile actuale se numără următoarele:
 platforma Android este adaptabilă la configurații mai mari
 mașina virtuală Dalvik este optimizată pentru dispozitive mobile
 navigatorul web disponibil este bazat pe platforma de aplicații open source WebKit
 biblioteci grafice 2D incluse
 biblioteci grafice 3D incluse, bazate pe specificația OpenGL ES 1.0
 suport media
 software-ul de baze de date SQLite este utilizat în scopul stocării datelor
 Android suportă tehnologii de conectivitate incluzând GSM/EDGE,CDMA, EV -
DO, UMTS Bluetooth și Wi-Fi
 SMS şi MMS sunt formele de mesagerie instant disponibile, inclusiv conversații de
mesaje text.
Software-ul scris în Java poate fi compilat în cod mașină Delvik și executat de mașina
virtuală Delvik, care este o implementare specializată de mașină virtuală concepută pentru
utilizarea în dispozitivele mobile, deși teoretic nu este o Mașină Virtuală Java standard.
Android acceptă următoarele formate media audio/video/imagine: MPEG-4, H.264,
MP3, AAC, OGG, AMR, JPEG, PNG, GIF. Android poate utiliza camere video/foto, touchscreen,
GPS, accelerometru, și grafică accelerată 3D. Include un emulator de dispozitive, unelte de
depanare, un plug-in pentru mediul de dezvoltare Eclipse.
Similar cu App Store de pe iPhone,Android Market (acum Google Play) este un catalog
de aplicații care pot fi descărcate și instalate pe hardware-ul țintă prin comunicație fără fir,
fără a se utiliza un PC. Inițial au fost acceptate doar aplicații gratuite. Aplicaţii contra cost sunt
disponibile pe Android Market începând cu 19 februarie 2009.
Android are suport nativ pentru multi-touch, dar această funcționalitate este dezactivată
(posibil pentru a se evita încălcarea brevetelor Apple pe tehnologia touch-screen). O modificare
neoficială, care permite multi-touch a fost dezvoltată.

Arhitectura Android
Diagrama din Figura 4.6 prezintă principalele componente ale sistemului de operare
Android. Astfel, acesta este oferit cu un set de aplicații incluse, precum client de email,
program SMS, calendar, hărți, navigator pe Internet, contacte etc. (nivelul plicații).
Asigurând o platformă de dezvoltare deschisă, Android oferă dezvoltatorilor
65
posibilitatea de a construi aplicații complexe și inovative. Aceștia sunt liberi să se folosească
de hardware-ul echipamentului, de informații despre accesarea locației, de rularea de servicii
de background, să seteze alarme, să adauge notificații pe bara de stare etc. Dezvoltatorii au
acces total la aceleași API-uri ca și aplicațiile distribuite cu Android. Arhitectura aplicațiilor
este gândită pentru a simplifica reutilizarea componentelor: orice aplicației își poate publica
capabilitățile, iar orice altă aplicație poate utiliza, apoi, aceste capabilități. Același mecanism
permite și înlocuirea componentelor de către utilizator.

Figura 4.6. Arhitectura sistemului Android [46]

Ca suport pentru toate aplicațiile, se află un set de servicii şi sisteme, incluzând:


 Un set bogat și extensibil de vizualizări(Views) care pot fi folosite pentru a construi
o aplicație, incluzând liste, griduri, casete de text, butoane, chiar și un browser web
încorporat.
 Furnizori de conținut (Content Providers) care permite aplicațiilor să acceseze date
din alte aplicații (precum Contacts), sau să își partajeze propriile date.
 Un manager de resurse (Resource Manager), care asigură acces la resursele care nu
sunt cod (și- ruri de caractere, grafice, fișiere)
 Un manager de notificare (Notification Manager) care permite tuturor aplicațiilor să
afișeze aler- te pe bara de stare.
 Un manager al activităților (Activity Manager) care managerizează ciclul de viață al
aplicațiilor și navigare comună backstack (istorie de parcurgere a aplicațiilor pe baza
căreia, cu tasta back, se poate reveni la activități anterioare).
Android include un set de biblioteci C/C++ folosite de diverse componente ale
sistemului. Capabiliățile asociate sunt oferite dezvoltatorilor prin suportul descris anterior.
Câteva dintre aceste biblioteci sunt:
 Biblioteci media: asigură suport de redare și de înregistrare a numeroase formate audio
și video populare, precum și fișiere cu imagini statice, incluzând MPEG4, H.264,
MP3,AAC, AMR, JPG și PNG
 Managerul suprafeței de lucru (Surface Manager): asigură accesul la subsistemul
afișorului și compune layer-e grafice 2D și 3D pentru aplicații
 LibWebCore: un motor de căutare pe Internet
 SGL: motorul grafic 2D
 Biblioteci 3D: API implementat pe baza OpenGL ES 1.0
 SQLite: un puternic motor de baze de date disponibil tuturor aplicațiilor.

66
Android include un set de biblioteci principale care asigură majoritatea funcționalități-
lor disponibile în bibliotecile limbajului de programare Java. Fiecare aplicație Android rulează
în propriul proces și în pro- pria instanță a mașinii virtuale Dalvik, scrisă astfel încât un
dispozitiv să ruleze eficient multiple instanțe ale mașinii virtuale. Mașina virtuală Dalvik se
bazează pe un nucleu Linux pentru funcționalități de bază precum lucrul cu fire de execuție și
managementul memoriei low-level.
Sistemul Android are la bază versiunea 2.6 de Linux pentru servicii de sistem precum
securitatea, mana- gementul memoriei, managementul proceselor etc. Nucleul funcționează și
ca un nivel de abstractizare între hardware și software.

SDK-ul Android

SDK-ul Android include un set complet de instrumente de dezvoltare. Acestea conțin


un program de depanare, biblioteci, un emulator de dispozitiv (bazat pe QEMU),
documentație, mostre de cod și tutoriale. Platformele de dezvoltare sprijinite în prezent
includ calculatoare bazate pe x86 care rulează Linux (orice distribuție Linux desktop modernă),
Mac OS X 10.4.8 sau mai recent, Windows XP sau Vista. Cerințele includ, de asemenea, Java
Development Kit, Apache Ant, și Python 2.2 sau o versiune ulterioară. Mediul de dezvoltare
(IDE) suportat oficial este Eclipse (3.2 sau mai recent), utilizând plugin-ul Android
Development Tools (ADT), deși dezvoltatorii pot folosi orice editor de text pentru a edita
fișiere XML și Java și apoi să utilizeze unelte din linia de comandă pentru a crea, construi și
depana aplicații Android.
O versiune pentru examinare a Android Software Development Kit (SDK) a fost
lansată la data de 12 noiembrie 2007. La 18 august 2008, a fost lansat Android SDK 0.9 beta.
Această versiune oferă un API actualizat și extins, instrumente de dezvoltare îmbunătățite și
un design actualizat pentru ecranul de bază. Instrucțiuni detaliate pentru actualizare sunt
disponibile pentru cei care lucrează deja cu o versiune anterioară. La 23 septembrie 2008 a fost
lansat SDK-ul Android 1.0 (Release 1). Conform documentației de lansare, includea "în principal
remedii pentru probleme, deși au fost adăugate unele capabilități mai puțin semnificative".
Includea, de asemenea, câteva modificări ale API-ului față de versiunea 0.9.
Deși este un produs de tip open source, o parte din dezvoltarea software pentru Android
a fost continuată într-o ramură privată. În scopul de a face acest software public, a fost creată
o ramură oglindă read only, cunoscută sub numele unui desert, anume cupcake. Cupcake este
în mod obișnuit interpretat greșit ca numele unei actualizări, dar după cum este declarat pe
situl de dezvoltare al Google: „Cupcake […] este o ramură de dezvoltare, nu o versiune stabilă.‖
Modificări notabile la software-ul Android introduse în cupcake includ modificări la download
manager, platformă, Bluetooth, software-ul de sistem, radio și telefonie, instrumente de
dezvoltare, sistemul de dezvoltare și câteva aplicații, precum și o serie de remedieri de
probleme. Și alte versiuni Android au fost numite după deserturi: donut, eclair,
gingerbread etc.

4.5. MIT App Inventor


Google App Inventor este un limbaj de programare inițiat de Google și preluat de MIT
din 2012. Acesta este conceput pentru utilizatorii obişnuiţi, fără cunoştinţe speciale de
programare și permite crearea unor aplicații pentru sistemul de operare Android. Pentru a
interacţiona într-un mod cât mai simplu cu utilizatorul, programul a fost conceput vizual:
pentru a crea o aplicaţie, utilizatorul desenează vizual modul în care aplicația va arăta și
folosește blocuri pentru a specifica comportamentul aplicației lui. App Inventor folosește o
interfaţă grafică, foarte asemănătoare cu interfaţa de utilizator de la ScFratch şi StarLogo
TNG, care permite utilizatorilor să așeze obiectele vizuale pentru a crea o aplicație, care poate
rula pe sistemul Android sau alte sisteme.
67
Raţionamentul este că, dacă tinerii dezvoltă aplicația, o vor face pentru a-şi îndeplini
propriile necesități cu ajutorul telefonului mobil.
Prin crearea lui App Inventor pentru Android, Google a făcut cercetări semnificative
prealabile în programarea educațională. Editorul de blocuri folosește biblioteca Java Open
Blocks pentru crearea de limbaje de programare cu blocuri.
Utilizarea MIT App Inventor
App Inventor permite, ca orice mediu vizual, crearea de aplicaţii pentru Android fără a
scrie cod de program, prin crearea aplicației și specificarea comportamentului său prin
configurarea de blocuri. Echipa AppInventator a creat blocuri pentru aproape orice se poate
face cu un telefon Android, precum şi blocuri pentru a face „aproape‖ programare: variabile
pentru memorare, blocuri „for‖ şi „while‖ pentru repetarea operaților şi condiţii (blocuri ,„if
‖), astfel încât aplicația să poată să pună întrebări şi să se ghideze pe răspunsuri. Există chiar
şi blocuri pentru a stoca informaţiile într-o bază de date şi conexiune la servicii online, precum
Twitter.
Se poate construi aproape orice aplicație imaginabilă cu App Inventor: jocuri, aplicații
informaţionale cu datele generate de utilizatori, aplicații personale, aplicații pentru a ajuta
oamenii să comunice, aplicaţii care folosesc senzorii telefonului şi chiar aplicaţii care se
conectează la rețele de socializare. Astfel, pe lângă aplicaţiile de pe telefonul personal sau cele
din Android Market, pot fi create aplicații personalizate.
Aplicațiile construite nu trebuie neapărat să se bazeze pe date fixe, dar pot stoca, în
loc de date fixe, date generate de utilizatori într-o bază de date. Astfel, se poate crea o
aplicație antrenament care per- mite utilizatorului să introducă numărul de abdomene făcute
în fiecare zi, sau se poate modifica o apli- cație test astfel încât întrebări noi pot fi create din
zbor.
Deoarece App Inventor oferă acces la un senzor pentru locație prin GPS, se pot construi,
de asemenea, aplicații de orientare în spațiu. Se pot scrie aplicații care să utilizeze
funcţionalități ale telefonului cu Android. De exemplu, o aplicație care periodic trimite anumite
texte, sms-uri, sau o aplicație cu titlul „Nu trimit sms în timp ce conduc‖, care răspunde la toate
sms-urile automat cu „Îmi pare rău, eu sunt la vo lan și vă voi contacta mai târziu‖. Se pot crea
chiar aplicații de citit sms-urile primite cu voce tare.
Nu în ultimul rând, App Inventor este prevăzut cu componente care permit aplicaţiilor
să comunice cu Internetul. TinyWeb DB este o componentă mult mai generală pentru
comunicarea cu serviciile de web, astfel încât se poate utiliza App Inventor pentru a scrie
Android front-end-uri care vorbesc cu siturile preferate. De exemplu, un programator ar putea
scrie o aplicație web în AppInventor pentru accesarea datelor de pe situl Amazon, o aplicație de
navigare prin librărie care să permită vizualizarea preţului unei cărți.
Nu se pot construi chiar orice fel de aplicații cu App Inventor. Acest instrument oferă,
totuși, un număr limitat de componente de nivel înalt şi nu oferă acces la toate funcţionalităţile
definite în setul Android (care este accesibil prin intermediul limbajului de programare Java,
prin SDK Android). Dar se pot con- strui mai multe aplicaţii doar cu instrumente şi componenta
TinyWebDB care oferă o punte de legătură pentru mai multe elemente de calcul complexe şi
servicii web, astfel încât AppInventor poate fi folosit în colaborare cu programatori back-end.
Modul de lucru
App Inventor a fost conceput pentru a dezvolta aplicaţii pentru telefoanele cu Android,
folosind un browser web şi un telefon conectat la Internet sau emulatorul (figura 4.7.). Servere-
le App Inventor stochează aplicațiile dezvoltate şi oferă, de asemenea, o formă a versiunii de
management, prin urmărirea modificării (change tracking). Practic, aceasta înseamnă că
mediul de programare face uz de metoda numită cloud computing - utilizatorul/programatorul
folosește computerul său doar să se conecteze la Internet şi la server şi utilizează serverul cu
resursele lui partajate — spaţiu de stocare sau chiar puterea de procesare.
68
Figura 4.7. Mediul de dezvoltare App Inventor[20]

Aplicaţiile fi construite în App Inventor :


- în App Inventor Designer, sunt selectate componentele care vor alcătui aplicația
- în App Inventor Blocks Editor, blocurile din program sunt asamblate pentru a
specifica modul în care componentele trebuie să se comporte. Se pot asambla
programele vizual, montând piesele împreună, ca piesele unui puzzle.
Aplicația apare pe telefon pas-cu-pas, pe măsură ce piesele sunt adăugate în ea, aşa că
poate fi testată în timp ce este construită. Când e gata, poate fi ambalată pentru a produce o
aplicaţie de sine stătătoarecare ulterior se poate instala. Dacă nu este disponibil un telefon cu
Android, aplicațiile pot fi rulate cu ajutorul emulatorului Android, un software care rulează pe
calculator şi se comportă exact ca pe telefon.
Mediul de dezvoltare App Inventor poate rula pe Mac OS X, GNU/Linux, sistemele de
operare Windows, şi pe modele de telefon deja populate cu Android. Aplicațiile create cu
App Inventor pot fi instalate pe orice telefon Android. Înainte ca App Inventor să fie folosit,
este necesară instalarea pachetului App Inventor pentru computer.
Pentru a putea lucra cu App Inventor, sunt absolut necesare o conexiune la Internet și un
cont Gmail. Cu un browser web se navighează la pagina http://beta.appinventor.mit.edu/, unde
se cere logarea cu con-tul Gmail. Ceea ce se deschide este App Inventor Designer , unde se
creează proiectele și se adaugă componentele viitoarei aplicații. Pentru a stabili
comportamentul aplicației, este necesară pornirea editorului de blocuri (Blocks Editor), care
se va deschide, dacă este instalată, în prealabil, Java.

4.6. Aplicaţia de comandă realizată cu App Inventor


Aplicaţia cu ajutorul a cărei interfaţă utilizatorul se poate conecta la modulul Bluetooth şi
poate opera asupra ansamblului matriceal de LED-uri a fost creată cu MIT App Inventor.

4.6.1. Descrierea ferestrei de design

Design-ul aplicaţiei Android, a fost realizat pe principiul drag & drop, selectând
componentele necesare din paleta de bază aflată în stânga ferestrei App Inventor Designer.

69
Figura 4.8. Ferastra de design a aplicaţiei Android

Aceasta conţine :
-Butoanele aferente comunicaţiei Bluetooth:
CĂUTARE: în momentul în care va fi apăsat va genera o listă cu toate dispozitivele Bluetooth
asociate cu telefonul;
CONECTEAZĂ : va realiza conexiunea cu dispozitivul Bluetooth selectat;
ÎNTRERUPE: va întrerupe comunicaţia stabilită;
-64 de locuri de imagine sugestive corespunzătoare celor 64 de LED-uri ale matricei:
În momentul în care ecranul este atins în coordonatele bine stabilite corespunzătoare unui
LED, imaginea acestuia va fi înlocuită pe ecran cu poza sugestivă de culoare albastră ce
semnalizează comanda de aprindere a LED-ului, dacă acelaşi LED este selectat iar, la nivelul
ecranului, acesta va reveni la imaginea iniţială sugestivă pentru comanda de stingere.
Dacă nu există comunicaţie între terminalul mobil şi alt dispozitiv, secvenţa se incheie
doar prin interschimbarea acestor imgini corespunzătoare ON şi OFF.
Atunci când există comunicaţie cu dispozitivul, pe lângă modificările apărute la nivelul
ecranului telefonului, acesta transmite microcontrolerului variabilele InComm şi InValue necesare
procesării codului Arduino realizat.
Variabila InComm ne spune dacă LED-ul a fost selectat, prin transmisia caracterului „1‖,
respectiv deselectat, prin transmisia caracterului „0‖, iar variabila InValue indică poziţia LED-ului
în matrice.
-butonul de resetare, personalizat prin apăsare lungă
Acesta va interschimba toate imaginile selectate anterior în poziţia iniţială, de LED stins şi
va trimite microcontrolerului, în cazul în care există comunicaţie, caracterul „c‖.
- etichete şi imagini cu rol de coordonare, de exemplu:„Apăsare lungă”
- 2 elemente invizibile „BluetoothClient1‖ şi „BluetoothServer1‖ folosite pentru stabilirea mediului
de comunicaţie.

70
4.6.1. Descrierea blocurilor de program
Cu ajutorul instrumentelor din App Inventor Blocks Editor ( ANEXA 2 ), am asamblat
blocurile funcţionale ale aplicaţiei. Acestea vor fi considerate răspunsul sistemului de calcul la
atingerea Touchscreen-ului, în zonele definite în fereastra de design, reprezentate prin butoate, etichete
şi imagini cu ajutorul cărora operatorul introduce comanda.

Descrierea blocurilor:
1. Bloc pentru generarea listei de căutare ( ANEXA 5 ) a dispozitivelor asociate cu terminalul
mobil, aceasta este funcţia butonului „CĂUTARE‖:

Figura 4.9. Blocul „CĂUTARE‖

2. Bloc pentru recunoaşterea dispozitivului selectat din lista generată:

Figura 4.10. Blocul „Selectare‖

3. Bloc pentru realizarea conexiunii Bluetooth cu dispozitivul selectat ( stă în spatele butonului
CONECTEAZĂ!) şi în cazul stabilirii acesteia apelarea funcţiei „Sendall‖, care transmite toate datele
introduse anterior momentului conectării:

Figura 4.11. Blocul „CONECTEAZĂ!‖

Obs. Apare eroarea 507 în cazul în care nu se poate realiza conexiunea, iar in cazul în care
aceasta este deja realitază şi butonul este reapăsat este afişat mesajul erorii 503.
Acestea pot fi urmărite în ANEXA 4.

4. Bloc pentru întreruperea conexiunii cu dispozitivul Bluetooth, acţionat la apăsarea


butonului INRERUPE:

Figura 4.12. Blocul „INTRERUPE‖

71
5. Blocul ce transmite simultan toate comenzile introduse anterior conectării:

Figura 4.13.Blocul „Sendall‖

Blocul verifică dacă clientul este conectat, în acest caz, pentru fiecare LED din lista de tip
index realizată verifcă dacă este activă imaginea corespunzătoare pentru LED aprins, caz în care
trimite textul „1‖ şi variabila de tip byte alocată poziţiei LED-ului în listă. Dacă poza nu este activă
se trimite textul „0‖, împreună cu poziţia LED-ului. Această secvenţă se execută consecutiv pentru
toate LED-urile.

6. Funcţia de schimbare a imaginii la atingerea ecranului:

Figura 4.14. Funcţia „Change Image‖

Are loc la nivelul Touchscreen-ului şi schimbă starea imaginii din aprins în stins şi invers
pentru un LED individual, când e aplelată.
72
7. Funcţia grafică de stingere a imaginilor:

Figura 4.15. Funcţia „Clear‖

Are de asemenea loc la nivelul ecranului, iar când e apelată, toate LED-urile din listă se
comută pe imaginea LED-ului stins, indiferent de starea anterioară.

8. Blocul de resetare:

Figura 4.16. Blocul „RESETARE‖

Când se efectuează apăsare lungă pe butonul de resetare se apelează funcţia grafică de


„curăţare‖ a imaginii, iar dacă există conexiune Bluetooth se transmite caracterul „c‖ şi variabla de
tip byte 1 , in loc de valoarea variabilei corespunzătoare poziţiei LED-ului din index.

9. Blocul ce acţionează la atingerea ecranului în locul alocat grafic matricei de LED-uri:

Pentru fiecare LED, s-a alocat un loc de imagine, de coordonate precise, unde este apelată
imaginea de ON sau OFF a LED-urilor. Locurile de imagine denumite în program „ImageSprite‖
au fost aşezate exact în forma matriceală dorită pentru aplicaţia noastră.
Atunci când se realizează atingerea ecranului se obţin coordonatele de pe axa X şi Y
corespunzătoare poziţiei LED-ului selectat din matrice, poziţie ce se indexează. În acelaşi timp se
apelează funcţia grafică de comutare a imaginii pentru LED-ul respectiv, pentru a confirma şi
semnaliza vizual utilizatorului comanda inserată.
Atunci când conexiunea cu clientul Bluetooth este realizată se verifcă dacă este activă
imaginea corespunzătoare pentru LED aprins, caz în care trimite textul „1‖ şi variabila de tip byte

73
alocată poziţiei LED-ului în listă. Dacă poza de ON nu este activă se trimite textul „0‖, împreună
cu poziţia LED-ului.
Acest bloc se poate urmări în figura 4.17.

Figura 4.17. Blocul „Canvas.Touched‖

74
Aplicaţia realizată are următoarea interfaţă:

Figura 4.18. Interfaţa aplicaţiei

Blocurile aplicaţiei sunt independente, în sensul că sunt rulate la activarea butoanelor


corespunzătoare de către utilizator, prin atingerea Touchscreen-ului, iar acesta poate alege diferite
metode de inserare a comenzii, prin urmare paşii de program nu sunt urmaţi liniar.
Spre exemplu, acesta poate alege să introducă secvenţa de comandă, pentru siguraţă, înainte
de stabilirea conexiunii cu dispozitivului, astfel că atunci când va termina de introdus şi selectat
procesele dorite şi apoi va stabili, respectiv restabili mediul de comunicaţie, secvenţa va fi transmisă
simultan sistemului ce o va reda integral.
De asemenea utilizatorul poate alege paşii convenţionali , adică parcurgerea celor pentru
stabilirea conexiunii şi apoi a celor de introducere a comenzii. Dar poate alege să întrerupă
transmisia comenzilor, în orice moment prin intermediul butonului dedicat, de asemenea resetarea
operaţiunilor în proces este o opţiune valabilă.
Aplicaţia este de dimensiune redusă (1.62 MB) şi are o icoană specifică pentru a fi uşor de
identificat şi diferenţiat în meniul dispozitivului Android:

Figura 4.19. Icoana specifică a aplicaţiei în meniul telefonului


75
4.6.2. Etape de proiectare–execuție şi componente utilizate
1. Placa de dezvoltare Seeeduino:

2. Modulul Bluetooth HC-06 cu cele 4 fire mamă-mamă de conectate :

76
3. Matricea cu LED-uri în diferite etape de pregătire pentru montaj:

77
4. Schema electrică individuală de montaj a modulului Bluetooth la pinii plăcii de dezvoltare
Seeduino realizarea practică şi verificarea funcţionării acestuia semnalizată de LED-ul roşu
încorporat al modulului:

78
5. Schema electrică individuală de montaj a matricei de LED-uri la pinii plăcii de dezvoltare
Seeduino, realizarea acesteia şi verificarea funcţionării tuturor LED-urilor:

79
6. Schema electrică completă a întreg ansamblului împreună cu forma constructivă finală a
proiectului:

80
Concluzii
Principalele obiective urmărite în decursul acestei lucrări au fost dezvoltarea şi
implementarea unui sistem automat de monitorizare şi comandă, în timp real, a unui dispozitiv de
afişaj cu ajutorul unui terminal Smartphone şi integrării procesului de comandă într-un sistem de
calcul aflat oricând la îndemâna utilizatorului, în scopul diminuării efortului depus de acesta.
Proiectul fizic este constituit din interconectarea componentelor asigurând buna funcţionare
a sistemului, monitorizarea şi comanda întregului ansamblu desfăşurându-se cu succes, unificând
dispozitivele într-un singur sistem funcţional şi fiabil, fiind uşor de realizat şi practic pentru situaţii
generale de comandă.
Programele cod realizate aflate în strânsă legătura, ale microcontrolerului şi dispozitivul
Android sunt uşor de înţeles şi pot fi modificate pentru a personaliza sistemul în cazul aplicaţiilor
specifice, astfel se pot modifica butoanele de comandă, se pot adăuga comenzi noi, atât la nivelul
interfeţei realizată cu ajutorul platformei Android cât şi la nivelul microcontrolerului programabil
al plăcii de dezvoltare Seeduino.
Etapa de construcție a reprezentat realizarea conexiunilor modulelor la placa de dezvoltare
centrală prin cabluri electrice, cât și montarea tuturor componentelor în incinta din material plastic
ce oferă suport și protectie. În prima fază modulele au fost testate individual conectând pe rând la
placa centrală câte una din componentele periferice.
Proiectul fizic este constituit din interconectarea componentelor asigurând buna funcționare
a sistemului, monitorizând modulul de execuţie ce constă în matricea de LED-uri, unificând
dispozitivele într-un singur sistem funcțional si fiabil, fiind ușor de realizat și practic pentru situații
generale de monitorizare şi control.
Funcționarea este centralizată și gestionată de dispozitivul Android, prin aplicaţia creată în
MIT AppInventor, precum şi de placa de dezvoltare cu microcontroler Atmega328 ce rulează
mediul de programare Arduino.
Operatorul uman poate plasa comanda personalizată la o distanţă de până la 10 m de
ansamblu, cu ajutorul unui Smartphone sau a unei Tablete, pe care am instalat aplicaţia dedicată cu
rol de interfaţă ce încorporează butoanele necesare definirii diferitelor opţiuni, într-o manieră
familiară şi pe înţelesul acestuia. Comenzile introduse vor apărea, în timp real pe afişajul digital ce
constă in matricea de 64 de LED-uri.
Înainte de aplicarea oricărei comenzi utilizatorul trebuie să sincronizeze şi să se conecteze
cu dispozitivul de interes prin intermediul interfeţei de comunicaţie Bluetooth. Atunci când mediul
de comunicaţie s-a stabilit, cele 3 comenzi, pe care acesta le poate introduce sunt de aprindere şi
stingere individuală a fiecărui LED, respectiv anularea întregilor operaţiuni introduse precedent,
prin comanda de resetare. În orice moment utilizatorul poate să întrerupă comunicarea cu
ansamblul, astfel încât comenzile să nu mai fie procesate, modificările rămânând la nivelul
dispozitivului Andoid, iar când comunicaţia este reluată, sistemul de acţionare va reda ansamblului
întreaga secvenţă de lucru plasată în timpul absenţei comunicării.

Direcţii viitoare

- se pot implementa funcţii noi ca aprinderea simultană a tuturor LED-urilor


dispozitivului de afişaj (complementară resetării-stingerii tuturor LED-urilor) sau
memorarea unei secvenţe de comandă;
- se poate introduce în montaj un multiplexor, pentru a utiliza doar 4 pini ai plăcii,
lucru ce poate facilita montarea şi controlul a până la 3 matrici de LED-uri similare
celei folosite în cadrul proiectului, prin extinderea aplicaţiei pentru mai multe
dispozitive , respectiv comenzi;
- montajul se poate realiza şi pentru LED-uri individuale, montate după principiul
folosit de sistemul preasamblat utilizat în acest proiect.
81
82
Bibliografie

 1.https://www.google.ro/search?q=periferice&source=lnms&tbm=isch&sa=X&ei=v3ewU7i
FBYShsASjy4CYCQ&ved=0CAYQ_AUoAQ&biw=1366&bih=705
 2. http://destepti.ro/telecomanda-stiati-ca
 3. http://ittrends.ro/2013/09/casa-inteligenta-automatizare-control-securitate-si-economie-
de-bani-i/
 4.https://www.google.ro/search?q=smartphone+folosit+ca+telecomanda&tbm=isch&source
=lnms&sa=X&ei=1niwU9bcHJTMsAS57IDQBg&ved=0CAYQ_AUoAQ&biw=1366&bih
=705
 5. http://www.utgjiu.ro/revista/ing/pdf/2009-01/14_CIOFU_FLORIN.pdf
 6. http://psihologie.tripod.com/somm.htm
 7. www.olias.arc.nasa.gov
 8.https://www.google.ro/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8
&ved=0CB0QFjAA&url=http%3A%2F%2Fwww.eed.usv.ro%2F~cturcu%2Fdisc%2Fts%2
FTS1.ppt&ei=FnuwU_T9EZXMsATp7oCICQ&usg=AFQjCNHfvjenqs9H6tZy5MbjWTa4
4Ubg4A&sig2=46oHVc7Yw5tByO6ax0RrmA&bvm=bv.69837884,d.cWc
 9. www.ergonomics.org.nz
 10.https://www.google.ro/search?q=Sisteme+de+tastaturi+QWERTY%C5%9Fi+Dvorak&o
q=Sisteme+de+tastaturi+QWERTY%C5%9Fi+Dvorak&aqs=chrome..69i57.1261j0j4&sour
ceid=chrome&es_sm=93&ie=UTF-8
 11.https://www.google.ro/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=
8&ved=0CB8QFjAA&url=http%3A%2F%2Fcndiptfsetic.tvet.ro%2Fmateriale%2FMaterial
e_de_predare%2FDC%2FModul%252012%2520ok.doc&ei=0n-
wU9avCcWosATay4DQBg&usg=AFQjCNElcvpG2ULXKxw3ZmzFcSY-
VPWAlQ&sig2=45vb1moszdAxdL8mSB1Odw&bvm=bv.69837884,d.cWc
 12. http://www.scrigroup.com/tehnologie/electronica-electricitate/COMUNICATII-DE-
DATE11266.php
 13.http://www.eetasia.com/ARTICLES/2001APR/2001APR02_RFD_TAC.PDF?SOURCE
S=DOWNLOAD%C3%A2ftp://ftp.ulim.md/Ingenerie/2007/2008/Eremeev%20V/Sisteme%
20Telecomunicatii/Practici/Bluetooth.pdf
 14. http://srohit.tripod.com/bluetooth_sec.pdf
 15. http://www.scribd.com/doc/218594487/Comunicatii-Prin-Bluetooth
 16. http://www.scritub.com/stiinta/informatica/Nivelul-fizic-Standardul-
IEEE13111171312.php
 17. http://ro.scribd.com/doc/212817515/Retele-Wireless-de-Mici-Dimensiuni
 18. http://www.ieee.or.com/Archive/bluetoothworkshop/Inouye.pdf
 19. http://www.scribd.com/doc/199029529/Bluetooth-Technology
 20.https://www.google.ro/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=
8&ved=0CB0QFjAA&url=http%3A%2F%2Fwww.aut.upt.ro%2F~loredanau%2Fteaching
%2FPVM%2FProgramare%2520Vizuala%2520si%2520Modelare.pdf&ei=zn6wU_qAI6rLs
QSC4oGYBQ&usg=AFQjCNGI2-JxuVUzai4x1rBH4aI2IQddFg&sig2=6Gkv-
NqcK0mzseQ6gf39zg&bvm=bv.69837884,d.cWc
 21. http://en.wikipedia.org/wiki/Gaussian_frequency-shift_keying
 22. http://cursuri-
online.wikispaces.com/file/view/MICROCONTROLERE%20PARTEA%201.pdf/40440672
8/MICROCONTROLERE%20PARTEA%201.pdf
 23. http://vega.unitbv.ro/~ogrutan/Microcontrollere2011/7-aplicatii%20mobile.pdf

83
 24.https://www.google.ro/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&uact=
8&ved=0CDcQFjAD&url=http%3A%2F%2Fece.ubm.ro%2Fea%2Fcursuri%2FMM%2FM
M_II__ASC_Curs_2008.ppt&ei=BoOwU6HJGIrnsATizIGQDw&usg=AFQjCNEiPgbpPV
RDA3hlxoZ9lTJfEJ4MTw&sig2=_58Qh1eX8rzkREixJKQ5vg&bvm=bv.69837884,d.cWc

 25. http://www.robotics.ucv.ro/flexform/aplicatii/m1/Marinescu%20Mihaela%20-
%20LED%20-uri%20in%20aplicatii%20cu%20microcontrolere/
 26. http://ro.scribd.com/doc/79961872/Microcontrolere-Curs-Romana-16f84
 27. http://ro.scribd.com/doc/199549573/sc
 28. http://telecom.etc.tuiasi.ro/telecom/staff/ccomsa/Lucru/_Introducere_in_Bluetooth.pdf
 29. http://ro.scribd.com/doc/47444548/Tehnologia-Bluetooth
 30. http://vsh.ro/tutorial/297/tehnologia-bluetooth/
 31.http://www.robotics.ucv.ro/flexform/craiova_cursuri/C4/Comunicatii%20la%20distanta.
%20Telegestiune/1.%20Metode%20de%20comunicare%20fara%20fir.pdf
 32. Semnale şi medii de comunicaţii Popa Virgil-Vasile – prof.ing., grad didactic I, Colegiul
Tehnic de Comunicaţii „N. Vasilescu - Karpen‖ Bacău
 33. Datasheet Atmega328P
 34. http://en.wikipedia.org/wiki/Pulse-width_modulation
 35. http://arduino.cc/en/Tutorial/PWM
 36. .Microcontrolere pentru toti (2011) – Vasile Surducan si Wouter van Ooijen
 37.https://www.google.ro/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=
8&ved=0CDUQFjAC&url=http%3A%2F%2Fcs.curs.pub.ro%2Fwiki%2Fpm%2Flab%2Fla
b3%3Fdo%3Dexport_pdf&ei=x4mwU7ekGfLJsQS_l4CgBQ&usg=AFQjCNEWYXqFaIl8
DOR-x94EYky5Bq9_JA&sig2=Xpote0fAuUzAeerKpR8shA&bvm=bv.69837884,d.cWc
 38. http://makezineblog.files.wordpress.com/2014/03/hc_hc-05-user-instructions-
bluetooth.pdf
 39. www.wavesen.com : HC-06 datasheet .pdf
 40. http://www.seeedstudio.com/wiki/Seeeduino_v2.21
 41. http://www.eternal.sk/forum/viewthread.php?thread_id=1
 42. http://www.gsmarena.com/htc_desire_300-5666.php
 43. http://www.adafruit.com/datasheets/BL-M12A881.PDF
 44. http://www.arduino.cc/
 45. http://andrei.clubcisco.ro/cursuri/f/f-sym/3so/cursuri/12_SO_Curs_13.pdf
 46. http://www.itcsolutions.eu/2011/09/08/android-tutorial-concepte-activitati-si-resurse-
ale-unei-aplicatii-android/

84
ANEXE
1. Codul sursă al mictrocontrolerului :

#include <MsTimer2.h> //intoducere biblioteca pentru timpul necesar parcurgerii pasilor procesului

int inComm = 0; // initializare valoare pentru verificarea tipului de comanda de la serial :


aprindere, stingere sau resetare
int inValue = 0; // initializare valoare pentru verificarea LED-ului corespunzator comenzii date
serialului (pozitia LED-ului in matrice)
byte row = 0;
byte leds[8][8]; // variabile folosite pentru umplerea matricei bidimensionale cu valori de 0 şi 1

int cols[8] = {2,3,4,5,6,7,8,9}; // declararea pinilor placii corespunzatori coloanelor


(minusurilor) printr-un vector de dimensiune 8
int rows[8] = {10,11,12,13,14,15,16,17}; // declararea pinilor placii corespunzatori rândurilor
(plusurilor) printr-un vector de dimensiune 8
void setup() {
Serial.begin(115200); // initializare serial
// setare stare initiala a coloanelor si randurilor matricei si declararea pinilor ca iesiri digitale
for (int i = 0; i < 8; i++)
{pinMode(rows[i], OUTPUT);
digitalWrite(rows[i], LOW);}

for (int i = 0; i < 8; i++)


{pinMode(cols[i], OUTPUT);
digitalWrite(cols[i], LOW); }

clearLeds(); // apelare functie de stingere a matricei


MsTimer2::set(1, display);// initializare timer sa apeleze functia display, o data la o milisecunda
MsTimer2::start();// pornire timer
}

// Terminare rutină
void clearLeds() {
cli(); // intrerupere
// Stingerea intreg display-ului matricei
for (int i = 0; i < 8; i++)
{ for (int j = 0; j < 8; j++) { leds[i][j] = 0; } }
sei();// nonintrerupere
}
// Terminare rutină
void display() {
digitalWrite(rows[row], LOW); // Pinul corespunzator rândului aprins precedent primeste
tensiune 0, iar LED-urile se sting
row++; // Se incrementează rândul până ajunge la valoarea 8, când devine iar 0
if (row == 8) { row = 0; }
for (int col = 0; col < 8; col++) {
if (leds[col][row] == 1) { digitalWrite(cols[col], LOW); // Aprinderea acestui LED }
else { digitalWrite(cols[col], HIGH); // Stingerea acestui LED }
}

85
digitalWrite(rows[row], HIGH); }// Se scanează (aprinde) întreg rândul odata (pentru timpi de
iluminare egali)
// delayMicroseconds(800); // Se poate introduce o intarziere pentru ca timpii de iluminare sa fie
mai mari decat timpii in care LED-ul este stins, pentru a obtine o luminozitate mai buna, mai clară
void loop() {
if (Serial.available() > 1) {
inComm = Serial.read();
Serial.println((char)inComm);
inValue = Serial.read();
Serial.println(inValue);

if (inComm==49) // se verifica cu byte-ul reprezentand valoarea ASCII a caracterului "1"


{ leds[inValue % 8][inValue / 8] = 1; } // se trece valoarea 1 pe pozitia indicata de variabila
inValue in matricea bidimensionala

else if (inComm==48) // se verifica cu byte-ul reprezentand valoarea ASCII a caracterului "0"


{ leds[inValue % 8][inValue / 8] = 0; } // se trece valoarea 0 pe pozitia indicata de variabila
inValue in matricea bidimensionala

else if (inComm==99) // se verifica cu byte-ul reprezentand valoarea ASCII a caracterului "c"


{ clearLeds();} // se apeleaza functia de stingere a tuturor LED-urilor matricei
}
}

2. Fereastra App Inventor Blocks Editor:

86
3. Pinii microcontrolerului ATmega328P:

87
4. Erorile de conexiune 503 şi 507 ale aplicaţiei:

5. Lista generată a dispozitivelor asociate telefonului:

88
6. Realizarea diverselor modele de afişaj:

89

You might also like