Documente Academic
Documente Profesional
Documente Cultură
Lucrare de diplomă
Coordonator științific
Ș.l.dr.ing.Mihai Timiș
Absolvent
Blaga Maria
Iași, 2017
UNIVERSITATEA TEHNICĂ „Gheorghe Asachi” din IAȘI
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
DOMENIUL: Calculatoare și Tehnologia Informației
SPECIALIZAREA: Calculatoare
iTank
(ingeniousTank)
LUCRARE DE LICENȚĂ
Coordonator științific
Ș.l.dr.ing.Mihai Timiș
Absolvent
Blaga Maria
Iași, 2017
DECLARAȚIE DE ASUMARE A AUTENTICITĂȚII
LUCRĂRII DE LICENȚĂ
Subsemnatul(a) ,
legitimat(ă) cu seria nr. , CNP
autorul lucrării
Data Semnătura
Cuprins
Capitolul 1. Introducere...................................................................................................................1
Capitolul 2. Fundamentarea teoretică și documentarea bibliografică..............................................3
2.1. Istoric...................................................................................................................................3
2.2. Soluții alternative pentru tema aleasă..................................................................................4
2.2.1. Primul robot controlat de pe Stația Spațială Internațională.........................................4
2.2.2. Brookstone Rover-tancul controlat prin intermediul unui smartphone......................5
2.2.3. Viper SmartStart.........................................................................................................5
2.2.4. Firecop-robotul pompier..............................................................................................6
2.3 Concluzii privind soluțiile alternative analizate.....................................................................7
Capitolul 3. Proiectarea aplicației.................................................................................................10
3.1. Analiza platformei hardware.............................................................................................10
3.2. Componente hardware......................................................................................................10
3.2.1. Modulul principal – gateway.....................................................................................10
3.2.2. Modulul cu senzori și actuatori.................................................................................12
3.2.3. Unitatea de control a miscării vehiculului.................................................................17
3.3. Componente software........................................................................................................18
3.3.1. Componente software pentru realizarea interfeței cu utilizatorul.............................19
3.3.2 Componente software necesare programării motoarelor și senzorilor.......................20
Capitolul 4. Implementarea aplicației...........................................................................................22
......................................................................................................................................................24
Capitolul 5.Testarea aplicației și rezultate experimentale.............................................................28
Bibliografie...................................................................................................................................34
Anexe............................................................................................................................................35
iTank
(ingeniousTank)
Blaga Maria
Rezumat
Proiectul își propune dezvoltarea și implementarea unui sistem mobil controlat de la distanța,
capabil sa detecteze o ținta, sa obțină informații în timp real dintr-o încăpere sau dintr-un mediu în
care acesta se deplasează, informații referitoare la temperatură, umiditate, prezența obstacolelor.
Toate acestea vor fi posibile cu ajutorul unui server web, care va permite ultilizatorului controlul
facil asupra intregului sistem.
Ansamblul mobil va conține 2 module care comunică intre ele și au ca obiectiv atât
detectarea unei ținte, cât și controlul unor senzori și actuatori în vederea observării și monitorizarii
unor parametri din mediului exterior. Unitatea de baza-modulul gateway(eng.) este compusă din
minicalculatorul Raspberry Pi 3 Model B la care este conectat driver-ul de motoare Dual MC33926
și camera V2. Minicalculatorul, echipat cu un procesor ARM, are scopul de a face legătura intre
sistemul mobil și Internet. Mulțumită sistemului de operare special optimizat, Raspbian, instalat pe
placa de dezvoltate, RaspberryPi va juca rolul unui server web Apache, care va conține pagina web
de pe care va fi controlat vehiculul, va fi detectată ținta și vor fi afișate datele de la senzori. A doua
unitate este reprezentată de microcontroller-ul Arduino Mega 2560 la care sunt conectați senzorii și
micro servomotoarele. Micro servomotoarele au rolul de a roti tunul tancului atunci când acesta se
apropie de o eventuală țintă, fapt care este observabil vizual cu ajutorul senzorului ultrasonic și
auditiv cu ajutorul buzzer-ului. Condițiile de mediu, și anume temperatura și umiditate,vor fi
masurate cu ajutorul senzorului DHT11.
Placa de dezvoltare Arduino Mega 2560 este conectată la modulul de baza prin intermediul
magistralei USB tip Serial. De asemenea, Raspberry Pi are rolul de a comunica cu un serviciu web
prin intermediul Internetului.
Principalele obiective urmărite de utilizator atunci când accesează pagina WEB sunt:
- verificarea temperaturii și umidității mediului
- indentificarea țintei
Informațiile din aplicația web vor fi afișate în timp real, vehiculul putând fi accesat de pe
orice dispozitiv care are acces la internet și dispune de un browser web.
Modulele folosite în acest sistem pot fi foarte ușor atașate oricărui proiect, deoarece au un
cost scăzut și un consum minim de energie, ceea ce reprezintă un lucru extrem de important atunci
când se urmărește proiectarea și implementarea unui sistem care să fie în conformitate cu cerințele
actuale ale sistemelor inteligente.
Capitolul 1.Introducere
Capitolul 1. Introducere
În primul capitolul 1, „Introducere”, sunt infățișate cele mai importante aspecte ale
proiectului, argumentarea alegerii temei, structura și menirea sitemului realizat. În capitolul 2,
”Fundamentarea teoretică și documentarea bibliografică”, vor fi prezentate diverse infomații
legate de folosirea principiului de automatizare, prin controlul și manipularea de la distanța a
unor obiecte sau activitați, folosind internetul, care asigură atât eficacitate, cât și exactitate.Tot în
cadrul acestui capitol sunt expuse și câteva soluții alternative, facându-se o comparație privind
abordarea realizărilor actuale. Capitolul 3, „Proiectarea aplicației” conține prezentarea analizei
platformelor hardware pe care va fi integrat proiectul și componentele software necesare
acestuia. În acest capitol se va încerca stabilirea modulelor principale și interacțiunea dintre
acestea. În capitolul 4, „Implementarea aplicației” se va decrie atât modul original de
implementare a ideilor în conformitate cu proiectul, precum și procedeul de calibrare hardware și
software.
1
În ultimul capitol, „Testarea aplicației si rezultate experimentale” se va prezenta o sinteză
a principalelor contribuţii teoretice privind punerea in funcțiune a sitemului şi a rezultatelor
experimentale obținute.
Specificul acestui proiect constă în realizarea unor serii de proceduri bine documentate la
care s-au adăugat implementări și soluții alternative.
S-au folosit pentru implementare urmatoarele platforme:
Cu ajutorul acestor platforme, datorită facilităților pe care le ofera, se pot realiza o serie
de proiecte complexe. Lucrarea de față realizeaza controlul Raspberry Pi direct dintr-un browser
web, de pe orice dispozitiv care deține conexiune la internet(smartphone, tableta sau pc).
Aplicația senzoriala cât și controlul servo motoarelor este realizată pe platforma Arduino
Mega 2560. Senzorii implicați sunt atât cei pentru detectarea temperaturii și umiditatii precum și
cei pentru detecția obstacolelor.
2
Capitolul 2.Fundamentarea teoretică și documentarea bibliografică
3
avantaje care permit dezvoltarea de aplicații dintre cele mai diverese, fiind ușor de utilizat având
o documentație foarte bine structurată și detaliată.
Aplicația de față presupune detectarea unei ținte și monitorizarea unui perimetru din
punct de vedere al factorilor de mediu:temperatura, umiditate. Va consta așadar din 2 module de
bază ce vor avea rolul de a prelua și de a prelucra informațiile din mediul monitorizat, aceste
lucruri fiind descrise în capitolele care vor urma.
Cu scopul de a avea o implementare cât mai optimă a unui sistem care sa corespundă
cerințelor actuale hardware și software, se pot expune câteva soluții alternative, cum ar fi:
Brookstone Rover, Viper SmartStart etc. . Cu alte cuvinte, pentru a fi utilizate aceste sisteme
trebuie înțeles atât modul în care au fost proiectate și implementate, cât și avantajele pe care le
oferă.
Robotul nu a fost aprobat de NASA, deoarece este necesar ca înaintea folosirii acestuia
pe suprafața unei planete externe, sa fie conceput un modul extern care sa trimită robotul la sol.
4
Capitolul 2.Fundamentarea teoretică și documentarea bibliografică
Figura 2.1. Soluții alternative – Brookstone Rover și aplicația care îl controlează prin
intermediul unui smartphone
5
•localizarea maşinii
•deschiderea portbagajului
Un alt aspect important îl reprezintă controlul asupra mai multor mașini, ideal pentru familii, dar
dreptul mai multor utilizatori de controla aceeași mașină. Aplicația SmartStart a ajuns deja la
versiunea 4.0, are peste 3.000.000 de descărcări si poate fi folosită si prin intermediul ceasului
inteligent de la Apple.
6
Capitolul 2.Fundamentarea teoretică și documentarea bibliografică
7
-siguranță în cazul detectării țintei
-detectarea obstacolelor întâlnite
-monitorizarea traseului tancului
-informarea cu privire la condițiile mediului
-costul redus al componentelor folosite la implementare
Componentele principale de care dispune acest sistem pentru locuințe inteligente sunt
urmatoarele:
-un dispozitiv cum ar fi calculatorul sau telefonul mobil, care dispune de o conexiune la
internet și de un browser web care îi permite utilizatorului să acceseze interfața grafică
-un server care va găzdui o pagină web și care va putea fi accesată prin intermediul unui
dispozitiv dintre cele amintite mai sus
-mai multe module interconectate pentru preluarea informațiilor din locuință
8
Capitolul 2.Fundamentarea teoretică și documentarea bibliografică
9
Capitolul 3. Proiectarea aplicației
3.1. Analiza platformei hardware
1.Raspberry Pi 3 Model B
Raspberry Pi este o placă de dezvoltare de tip SBC (Single Board Computer) – un sistem
de calcul nemodular implementat pe un singur cablaj electronic. Chiar dacă are dimensiuni
reduse (85mm x 56mm), permite funcționalități precum rularea unui sistem de operare (Linux
sau Windows) și rularea de aplicații utilizator (jocuri, editoare de text, medii de programare,
redarea de muzică și filme, aplicații de teleconferință, aplicații Internet).
Raspberry Pi este un calculator complet, iar diferențele între o placă Raspberry Pi și un
calculator personal (PC) constau atât în dimensiunea redusă a plăcii cât și în puterea mai mică de
calcul a acesteia. Intr-adevar, nu are aceleași performanțe de calcul precum un PC desktop, dar
placa poate fi comparata cu o tabletă sau cu un sistem de tip NetBook dar fără a dispune de ecran
și tastatură.
Posibilitatea de a personaliza aplicatiile i posibilitatea de interconectare cu alte
componente electronice fac din placa Raspberry Pi un sistem de calcul ce poate sta la baza unor
proiecte personale extrem de interesante și de puternice – un calculator ce poate fi integrat în
sisteme electronice și mecanice proiectate și realizate de utilizator.
10
Capitolul 3. Proiectarea aplicației
2. Modulul WiPi Dongle este un modul WLAN de înaltă performanță care folosește
ultima tehnologie wireless 802.11n. Acesta conectează Raspberry Pi la o rețea wirelss locală.
11
Fig.3.2.Proiectarea aplicației- Modulul WiPi Dongle USB pentru Raspberry PI
Caracteristici:
→ capacitate: 10050 mAh
→tensiune ieșire 2.400 mAh
Detalii tehnice:
→dimensiuni: 90.5 x 59 x 22 mm
→greutate: 215 gr.
12
Capitolul 3. Proiectarea aplicației
eventuala ținta și de a controla mișcarea tunului. Aceste informații vor fi transmise către modulul
principal care deține server-ul, urmând să fie prelucrate si în funcție de parametri se vor lua
anumite decizii. De exemplu, atunci când tancul se apropie de o eventuala țintă-obiect, vor porni
servomotoarele care au rolul de a da mobilitate tunului și se va activa alarma.
Specificatii:
-tensiunea de intrare (recomandata): 7V-12V sau 5V prin USB;
-pini digitali: 54(14 PWM OUT);
-pini analigici: 16;
-4 UART;
-8KB memorie SRAM
-256KB memorie flash;
2.Măsurarea temperaturii-DHT11
13
DH11 este un senzor digital low-cost de temperatura si umiditate si este compus dintr-un
senzor de umiditate capacitiv si un termistor pentru a masura aerul din jur si dă un semnal digital
pe pinul de date.
Senzorul de temperatură și umiditate DHT11 este foarte convenabil, oferind precizie
bună, simplitate în utilizare și dimensiuni reduse la un preț mic.
Senzorul poate măsura umiditatea în intervalul 20% - 90%, cu o precizie de 5% și
temperatura în intervalul 0 – 50 ˚C, cu o precizie de 2 ˚C.
Singurul dezavantaj real al acestui senzor este faptul ca obții date noi la fiecare 2
secunde.
Caracteristici tehnice:
→ Tensiune de alimentare: 3.3V - 5V;
→ Curent: 2.5mA (maxim);
→ Gama de măsurare a umidității: 20% - 95% RH;
→ Acuratețea măsurării umidității: ±5% RH;
→ Gama de măsurare a temperaturii: 0oC- 60°C;
→ Acuratetea măsurării temperaturii: ±2oC;
→ Nu funcționează sub 0°C.
Pentru a masura distanța mobilului pana la obiect, care poate reprezenta chiar ținta vom
utiliza senzorul ultrasonic HCS04.
14
Capitolul 3. Proiectarea aplicației
Senzorul ultrasonic HC-SR04 este unul dintre cei mai populari și ușor de utilizat senzori
de distanță. Este compatibil cu Arduino și prezintă urmatoarele avantaje față de senzorii de
distanță analogici:
→necesită doar pini I/O digitali
→prezintă imunitate mai mare la zgomot.
3. Micro servomotoare
15
Fig.3.5.Proiectarea aplicației- Micro servomotoare SG90 180°
4.Buzzer
În ceea ce privește un eventual pericol, acesta va fi semnalat prin intermediul unui buzzer
activ, ce produce un sunet când se află sub influența unei tensiuni variabile. Acesta se va activa
atunci când vehiculul se va afla în imediata apropiere a unui obiect sau a unei persoane , care
poate reprezenta chiar ținta. Sursa de energie a buzzer-ului în cazul de față este pinul de 5V al
plăcii.
5. Căutarea țintei
În vederea apariției unor eventuale obstacole pe perioada parcurgerii unui traseu de către
tanc, se va ultiliza o camera web conectată la modului principal, care va încerca detectarea țintei.
Camera folosită este camera V2. Acest modul cu camera de 8 MP este un senzor de
imagine Sony IMX219 capabil sa filmeze in format 1080p30, 720p60 și 640x480p60/90. Se
conectează direct la Raspberry Pi prin portul CSI (Camera Serial Interface) al Raspberry Pi
16
Capitolul 3. Proiectarea aplicației
Se conectează într-un mod simplu direct la Raspberry Pi folosindu-se doar portul CSI de
pe placă. Faptul că dimensiunile și greutatea acestei camere sunt mici o fac ideală pentru proiecte
mobile în care aceste caracteristici sunt importante.
Pentru a asigura un bun control al parametrilor din mediu, este necesară o bună
funcționare a vehiculului în vederea deplasării acestuia în interiorul parametrului monitorizat.
Deplasarea se va realiza prin trimiterea comenzilor direct de către utilizator, prin intermediul
aplicației web.
17
Fig.3.8.Proiectarea aplicației- Driverul de motoare MC33926
Caracteristicile tehnice:
Tinând cont de faptul că sistemul construit este un mobil, a fost necesară existența unei
platforme care se poate deplasa și care are capacitatea de a susține toate componentele aplicației.
Am ales un robot cu șenile deoarece este flexibil și ușor de manevrat, cu motoarele atașate și
șenilele atașate,
În cazul lucrării de față au fost necesare utilizarea unor componente software cu scopul
18
Capitolul 3. Proiectarea aplicației
de a realiza interfata cu utilizatorul și pentru a realiza controlul celor doua module ale aplicației.
Pentru realizarea acestui proiect este necesară și crearea unei pagini web pentru ca utilizatorii să
poată monitoriza atât evenimentele apărute, cât și informațiile citite de senzori. Interfața va avea
o structură simplă, ușor de utilizat și va putea fi accesată de către utilizatori de pe orice dispozitiv
conectat la internet.
Termenul de server web se referă la un sistem compus din parte hardware si software ce
rulează World Wide Web. Atunci când dorim sa accesăm o pagină web, browser-ul localizează
serverul si trimite o cerere. In funcție de anumiți factori, serverul va trimite datele cerute de către
browser(client).
Apache este un server web cu o contribuție remarcabilă la dezvoltatea Internetului (world
wide web). Apache a reprezentat prima alternativă viabilă la Netscape Communications
Corporation, și a evoluat rapid în funcționalitate și performanță ca un rival competitiv pentru alte
servere web bazate pe Unix. Apache suportă o mare varietate de module care îi extind
funcționalitatea și până la scheme de autentificare. Câteva limbaje suportate sunt: mod_perl,
mod_python, Tcl si PHP. Ca alte module putem enumera: SSL si TLS support (mod_ssl), un
modul proxyun, modul de rescriere URL (cunoscut ca un motor de rescriere mod_rewrite).
19
O altă calitate a serverului Apache este virtual hosting (găzduirea virtuală), care constă în
posibilitatea de a găzdui mai multe situri simultan pe același server. În multe privinţe,
dezvoltarea serverului web Apache este similară cu dezvoltarea sistemului de operare Linux.
Pentru a putea controla totul de la distanță avem nevoie de un web-server. Pentru
realizarea paginii web s-a folosit HTML/CSS pentru partea de design, iar pentru funcții s-a
folosit Python și PHP.
Limbajul PHP[4]
În ceea ce privește dezvoltarea web, limbajul PHP este cel mai folosit limbaj de
programare. Este ușor de invătat, open-source, poate fi rulat pe mai multe platforme si se poate
conecta la mai multe tipuri de baze de date. Cel mai important aspect al limbajului este insă
posibilitatea de a fi imbricat cu cod HTML. Putem astfel crea pagini HTML statice si din loc in
loc, acolo unde este nevoie, sa introducem dinamism cu ajutorul PHP. Pot fi date ca exemple de
site-uri construite cu php urmatoarele:
Limbajul HTML[5]
Cu ajutorul limbajului HTML(Hyper Text Markup Language) se pot construi pagini web,
nu foarte pretențioase, insă reprezintă un inceput pentru realizarea site-urilor profesionale. Pentru
a crea o pagina web este suficient cunoasterea tag-urilor de baza ale acestui limbaj. Navigatorul
web interpretează aceste tag-uri și afișează rezultatul pe ecran.
Cascading Style Sheets, denumit și CSS se foloseste pentru a personaliza tagurile HTML.
Cu ajutorul CSS-ului putem crea pagini web simple dar si complexe folosind efecte diverse. Cu
acest limbaj putem stabili culoarea, marimea si fontul textului, de asemenea putem crea un
suport personalizat pentru elementele HTML adăugând margine, culoare sau imagine de fond si
multe altele.
20
Capitolul 3. Proiectarea aplicației
21
Capitolul 4. Implementarea aplicației
În acest capitol se vor prezenta cele doua părți ale proiectului și anume:
→ în prima parte se va arata modalitatea în care a fost implementata partea hardware a aplicației
→ în a doua parte modul de implementare al aplicației web.
→ modulul gateway
→ modulul de controlul motoarelor si al senzorilor
Aceste module sunt amplasate pe sistemul mobil și comunică cu serviciul web prin
intermediul modulului gateway.
1. Implementarea hardware
Pentru realizarea implementării hardware a acestui modul s-au folosit urmatoarele
componente:
→ o placă de dezvoltare Raspberry Pi Model B+;
→ un stick wirelless WI-Pi;
→ o baterie externa tip USB;
→ cabluri de legatura
Pentru comunicarea cu modulele care se ocupă de controlul vehiculului respectiv de controlul
sistemului de senzori, placa Raspberry Pi dispune de două cabluri seriale de tip USB care au
rolul de prelua datele de la senzorii care se ocupă cu monitorizarea parametrilor mediului și
obstacolelor și de a transmite comenzi către motoarele vehiculului. Pentru a face posibilă
comunicarea modulului gateway cu serviciul web a fost necesară utilizarea unui stick wireless
care conectează modulul la o rețea locală și astfel permite accesul la Internet.
In Figura 4.2. este prezentat rezultatul implementării hardware a modulului, în urma
conectării tuturor componentelor prezentate.
22
Capitolul 4. Implementarea aplicației
23
2. Implementarea software
24
Capitolul 5.Testarea aplicației și rezultate experimentale
25
Alimentarea modulelor hardware va avea drept rezultat conectarea modulului gateway cu
rețeaua locala wirelless și posibilitatea de a comunica din interfata web direct cu modulele
aplicației și invers. Initial motoarele vehiculului vor fi oprite, însă datele de la sistemul de
senzori, precum și informațiile privind obstacolele aflate în preajma vehiculului vor fi trimise
către aplicația web.. Controlul manual asupra motoarelor se poate face cu ajutorul butoanelor
stânga, dreapta, înainte, înapoi.
După cum se poate observa în figura următoare, atunci când s-a acționat asupra
senzorului, în cazul de față printr-o simplă atingere valorea temperaturii a crescut.
26
Capitolul 5.Testarea aplicației și rezultate experimentale
27
Acest senzor are o importanță deosebită în acest proiect deoarece pornirea tunului
depinde de distanța tancului pana la obiect, masurarea acesteia se realizează cu ajutorul acestui
senzor. În cazul în care obiectul se află în imediata apropiere a vehiculului, vor porni
servomotoarele și implicit mișcarea tunului, și se va activa alarma care indică apariția unei
eventuale ținte.
Pentru controlul facil al motoarelor folosim driverul de motoare MC33926, care prin
intermediul bibliotecii python permite o funcționare corectă, fară probleme în programarea
motoarelor.
28
Capitolul 5.Testarea aplicației și rezultate experimentale
Testarea acestuia s-a realizat prin apelarea unor funcții, care au făcut posibila mișcarea
vehiculului.
29
Capitolul 4. Capitolul 6. Concluzii și directii viitoare de dezvoltare
Prin intermediul paginii web se poate controla vehiculul, se pot observa schimbările de
temperatură sau umiditate, iar în cazul apropierii de un anumit obiect sau persoană, care poate
reprezenta chiar ținta, va acționa camera web atașata tancului care va încerca detectarea .
30
Bibliografie
Bibliografie
31
Anexe
32