Robot de Securitate

Cuprins

INTRODUCERE 13

OBIECTIVELE PROIECTULUI 15

ANALIZA SI FUNDAMENTARE TEORETICA 17

Tehnologii folosite 17

3.1.1. Limbajul de programare Java 17

3.1.2. Platforma Arduino 18

Componentele robotului 20

3.2.1. Arduino Mega R2560 20

3.2.2. Punte H L298N 21

3.2.3. Senzori Arduino 21

3.2.4. Module Arduino 22

3.2.5. Servomotoare Arduino 22

Arhitectura aplicatiei de control 23

3.3.1. Interfata principala 23

3.3.2. Interfata meniu 23

3.3.3. Interfata optiuni 24

3.3.4. Interfata conectare bluetooth 25

PROIECTARE SI IMPLEMENTARE 27

Schema bloc robot 27

Platforma Arduino 28

4.2.1. Arduino Mega R2560 28

4.2.2. Punte H L298N 30

4.2.3. Senzor Ultrasonic 32

4.2.4. Senzor de miscare 35

4.2.5. Senzori detectare sunet 37

4.2.6. Modul bluetooth HC-05 38

4.2.7. Modul Buzzer 39

4.2.8. Sursa de alimentare 40

4.2.9. Servomotoare 41

Structura aplicatie de control 42

4.3.1. Conectare Robot-Aplicatie 42

4.3.2. Control tranzitie robot si arma 43

4.3.3. Transmitere date catre robot 44

TESTARE SISTEM 45

Testare senzori 45

Testare conexiune bluetooth 46

Testare aplicatie pe diverse dispozitive Android 46

INSTALARE SI UTILIZARE 47

6.1. Instalare aplicatie pe dispozitive Android 47

6.2. Utilizare robot de securitate 47

CONCLUZII 49

7.1. Dezvoltari ulterioare 49

7.1.1. Dezvoltare robot 49

7.1.2. Dezvoltare aplicatie Java 49

Bibliografie 51

1. INTRODUCERE

Lucrarea de licență intitulată “ Robot de Securitate ” își propune studiul unui nou tip de robot mobil, având la bază unele concepte și idei inovatoare. Lucrarea prezintă modul de proiectare și realizare a unui robot echipat cu platformă de dezvoltare software Arduino, diferiți senzori aducând o contribuție la dezvoltarea bazei teoretice, practice și a posibilităților nelimitate de dezvoltare de aplicații în domeniul roboticii și realizarea controlului cu ajutorul unei aplicații compatibilă platformei Android în limbajul de programare Java .

Java este un limbaj de programare orientat-obiect, puternic tipizat, conceput de către James Gosling la Sun Microsystems (acum filială Oracle) la începutul anilor ʼ90, fiind lansat în 1995. Cele mai multe aplicații distribuite sunt scrise în Java, iar noile evoluții tehnologice permit utilizarea sa și pe dispozitive mobile gen telefon, agendă electronică etc.

În felul acesta se creează o platformă unică, la nivelul programatorului, deasupra unui mediu eterogen extrem de diversificat. Acesta este utilizat în prezent cu succes și pentru programarea aplicațiilor destinate intranet-urilor

Robotul este un sistem complex din mai multe elemente: mecanică (mecanism de direcționare),actuatori și senzori.Mecanica stabilește înfățișarea robotului și mișcările posibile în timpul funcționării și are grijă ca robotul să-și îndeplinească obiectivul cu succes.Sistemul de comandă și control evaluează informațiile primite de la senzori, reglează motoarele și planifică mișcările care trebuiesc efectuate.

Efortul imens realizat de comunitatea open-source a dus la o dezvoltare reexploziva a platformei software mai sus menționată. Un rezultat clar al cooperării diferitelor grupuri de cercetare din întreaga lume este reprezentat de integrarea eficientă a unora dintre cele mai folosite programe, reușind astfel să ofere utilizatorilor finali posibilitatea de a reutiliza codul deja scris și de a dezvolta software pentru sisteme formate din roboți.

Pe parcursul lucrării se vor studia atât concepte esențiale care stau la baza construcției unui robot mobil, cât și modul în care acestea s-au materializat prin construcția robotului mobil. De asemenea, se va face o prezentare și evaluare a platformei Arduino Mega și a senzorilor folosiți, urmată de o descriere amănunțită a programului. Codul sursă utilizat la dezvoltarea proiectului este inclus în anexa lucrării.

1. OBIECTIVELE PROIECTULUI

Realizarea unui robot pentru asigurarea pazei si protectiei unor spatii sau obiecte. Robotul este mobil, cu o autonomie de aproximativ 24h, timp in care poate asigura o supraveghere a unui perimetru precum si protectia acestuia, avand in componenta un dispozitiv cu aer comprimat care permite robotului sa reactioneze (sa apere) la prezenta unor date de la senzori care indica faptul ca perimetru asigurat a fost compromis.

Robotul poate si comandat de la distanta, astfel incat sa fie eliminat riscul de a produce accidente asupra oamenilor, sau poate functiona intr-un mod autonom si sa "patruleze" periodic anumite trasee, sa verifice daca este prezent vreun intrus in acea zona (cu ajutorul senzorului de prezenta) si, daca este cazul, sa ia masurile care se impun pentru alungarea sau prinderea intrusului.

De asemenea robotul poate fi utilizat si pentru alte scopuri, cum ar fi supravegherea unor animale in natura, datorita senzorilor cu care este prevazut poate detecta apropierea acestora de robot si sa inceapa supravegherea video si chiar se pot face tratamente medicale sau tranchilizarea unor animale prin inlocuirea dispozitivului cu aer comprimat cu un altul dedicat acestui scop.

Astfel se poate ajunge in locuri unde este dificil (sau periculos) de ajuns, in zone in care un animal salbatic este refugiat si care poate reactiona violent la apropierea unui om.
Originalitatea acestui proiect consta si in prezenta unui dispozitiv care permite robotului sa reactioneze, nu doar sa avertizeze, in caz de alarma, precum si posibilitatea de adaugare a altor senzori care sa extinda aria de utilizare. Programele sunt implementate in medii de dezvoltare care asigura o compatibilitate destul de mare cu multe dispozitive, astfel incat se poate considera ca este asigurata compatibilitatea pe un termen mediu cu diverse dispozitive care vor apare intre timp pe piata.

Pentru realizarea acestui proiect am parcurs anumite etape de proiectare si implementare,cum ar fi:

Realizarea unei platforme de baza pentru robot

Montarea motorului pentru tranzitia fata-spate

Montarea servomotorului pentru directie

Montarea puntii de comanda motor

Montarea senzorului ultrasonic si cel de miscare

Montarea placii Arduino Mega R2560

Montarea modulelor Bluetooth si Buzzer

Montarea unui brat care sa sustina arma

Montarea servomotoarelor pentru miscarea armei si actionarea tragaciului

Montarea unor led-uri necesare robotului pe timpul de noapte

Montarea senzorilor de sunet

Montarea a doua breadboard-uri pentru a putea realiza conexiunile dintre componente

Conectarea tuturor componentelor la sursa de tensiune in functie de necesitatea fiecaruia

Realizarea codului sursa pentru a putea fi implementat pe placa Arduino Mega R2560

Realizarea unei aplicatii Android capabila de conectare prin intermediul modulului Bluetooth in limbajul de programare Java

3.ANALIZA SI FUNDAMENTARE TEORETICA

3.1. Tehnologii folosite

3.1.1. Limbajul de programare Java

Java este un limbaj de programare orientat pe obiecte evoluat pe diferite dispozitive si in acelasi timp se creează o platformă unică, la nivelul programatorului, deasupra unui mediu eterogen extrem de diversificat.

Limbajul împrumută o mare parte din sintaxă de la C și C++, dar are un model al obiectelor mai simplu și prezintă mai puține facilități de nivel jos. Un program Java compilat, corect scris, poate fi rulat fără modificări pe orice platformă care e instalată o mașină virtuală Java.

Acest nivel de portabilitate (inexistent pentru limbaje mai vechi cum ar fi C) este posibil deoarece sursele Java sunt compilate într-un format standard numit cod de octeți (engleză byte-code) care este intermediar între codul mașină (dependent de tipul calculatorului) și codul sursă. Mașina virtuală Java este mediul în care se execută programele Java, o serie de furnizori de masini virtuale Java sunt Oracle, IBM, Bea, FSF si Sun.

Cea mai folosita masina virtuala Java este cea dezvoltata de compania Oracle, aceasta avand patru platforme Java:

Java Card – pentru smartcard-uri (carduri cu cip)

Java Platform, Micro Edition (Java ME) — pentru hardware cu resurse limitate, gen PDA sau telefoane mobile

Java Platform, Standard Edition (Java SE) — pentru sisteme gen workstation, este ceea ce se găsește pe PC-uri

Java Platform, Enterprise Edition (Java EE) — pentru sisteme de calcul mari, eventual distribuite.

Pentru a putea utiliza cat mai usor limbajul de programare Java exista mai multe medii de dezvoltare integrate, cele mai uzuale sunt:

JCreator – Gratuit JCreator LE

Eclipse – Gratuit

NetBeans – Gratuit

BEA Workshop

BlueJ – Gratuit

CodeGuide – Comercial

IntelliJ IDEA – Gratuit Idea Community Edition

JBuilder – Comercial

JDeveloper – Comercial, platforma multipla

KDevelop – Gratuit (platforma GNU/Linux, Cygwin)

Aplicatia de control a robotului este realizata cu ajutorul limbajului de programare Java in mediu de dezvoltare Eclipse, dezvoltat de fundatia cu acelasi nume, putand fi folosit prin intermediul unor plug-in-uri,si în alte limbaje, cum ar fi C, C++, COBOL, Python, Perl și PHP.

3.1.1. Platforma Arduino

Introdus în 2005, a fost conceput pentru a oferi studenților un mod ieftin și ușor de programare interactiv. Acesta este dotat cu un simplu mediu de dezvoltare integrat (IDE), care rulează pe calculatoarele personale și permit să scrie programe pentru Arduino folosind C sau C + + pe toate sistemele de operare uzuale (Windows, Linux, Mac OS).

Arduino este un micro-controller, un minicalculator cu ajutorul căruia poți citi date de la senzori sau folosi diverse elemente de execuție (leduri,motoare, etc.). Hardware-ul constă într-o placă open-source concepută în jurul valorii de 8-biți a microcontrolerului Atmel AVR, sau cu 32 de biți Atmel ARM.

Modelele actuale sunt dotate cu o interfață USB, 6 pini analogici de intrare, precum și 14 pini digitali de I / O care permit utilizatorului să atașeze diverse plăci de extensie.

Prețurile actuale de plăci Arduino costă aproximativ 30 dolari iar "clonele" de la 9 dolari. Plăcile Arduino pot fi achiziționate pre-asamblate sau ca kituri „do-it-yourself”. Informații de proiectare hardware sunt disponibile pentru cei care ar dori să asambleze singuri un Arduino. A fost estimat la mijlocul anului 2011, că peste 300.000 de plăci oficiale au fost produse, ca în 2013, 700.000 de plăci oficiale să fie în mâinile utilizatorilor.

Utilizarea platformei Arduino este foarte vasta si este limitata doar de capacitatile utilizatorului astfel incat nu avem cum sa alcatuim o lista cu toate proiectele realizabile cu aceste componente, putem doar sa amintim cateva mai interesante:

Statii meteo

Statii de detectare anumite gaze

Manusa robotica

Imprimanta 3D

Sisteme de alarma

Diferiti roboti de uz casnic(aspirator)

Roboti de securitate

Datorita faptului că Arduino este o platformă deschisă, există mai multe versiuni de Arduino. Unele versiuni sunt produse în Italia de către firma mamă (din punct de vedere legal, acestea sunt singurele care poartă numele Arduino), iar altele sunt variante îmbunătățite (precum Olimexino-328) sau clone (precum TOSduino) fabricate de alți producători.

Versiunile originale produse de SmartProjects sunt următoarele:

Arduino Due este primul microcontroler pe 32 biți bazat pe Atmel SAM3X8E ARM Cortex-M3.

Arduino Esplora, se aseamănă mult cu un controler de jocuri, posedă un joystick încorporat și senzori integrați pentru sunet, lumină, temperatură și accelerație.

Arduino Leonardo, mulțumită procesorului ATmega32U4 are încorporată comunicația USB și face inutilă prezența celui de al doilea cip de comunicație. Când este conectat la calculator, Leonardo poate emula un mouse sau o tastatură.

Arduino Mega2560, are mult mai mult Ram/Flash/Pini și înlocuiește Arduino Mega 1280 folosind un procesor ATmega2560 și un convertor USB-Serial ATmega16U2

Arduino Uno, are aceleași specificații ca și Duemilanove, dar folosește ATmega8U2 pentru conexiunea USB.

Arduino Mega, conține mai mulți pini de I/O, mai mult flash și mai mult RAM mulțumită procesorului ATmega1280

Arduino Duemilanove (2009), folosește ATmega168 sau ATmega328 pentru versiunile mai noi, este alimentat fie prin USB fie prin DC.

Arduino Diecimila, programat USB și dotat cu un ATmega168

Arduino Bluetooth, posedă o interfață Bluetooth pentru programare și are montat procesorul ATmega168

Arduino NG plus, are o interfața USB și folosește procesorul ATmega168

Arduino NG, are o interfață USB și folosește procesorul ATmega8

LilyPad Arduino, are un design minimalist și este folosit în special pentru aplicațiile de modă pentru haine

Arduino Nano este și mai mic decât Mini

Arduino Mini,o versiune miniaturizată de Arduino ce folosește tehnologia SMD și un procesor ATmega168

Arduino Extreme, folosește o conexiune USB pentru programare Serial Arduino, are un CPU ATmega8 și este programat folosind o conexiune seriala.

Exista doua versiuni de placi Arduino, SMD si Socket, fara diferente functionale si avand aceleasi capacitati hardware dar exista anumite avantaje si dezavantaje:

SMD:

Avantaje:

Creșterea în popularitate a tehnologiei SMD va duce în viitorul apropiat la mutarea majorității liniilor de producție pe această tehnologie, făcând din ce în ce mai dificilă găsirea cipului socket echivalent.

Cipul SMD ocupă mai puțin spațiu pe placă

Pentru proiectele industriale fabricate în cantități mari este mai economică folosirea tehnologiei SMD, deoarece permite automatizarea facilă a procesului de fabricație.

Dezavantaje:

Este greu de înlocuit pentru scoaterea lui fiind necesară folosirea unei mașini cu aer cald.

Cipul programat nu poate fi mutat cu ușurință pe o placă din producție

Socket:

Avantaje:

Poate fi înlocuit cu ușurință de pe o placă defectă sau mutat într-un montaj de producție

Dezavantaje:

Posibil mai greu de găsit, deoarece mulți producători și-au trecut liniile de producție pe tehnologia SMD

Plăcile Arduino sunt disponibile în două formate: formatul de dezvoltare și formatul de producție. Plăcile de producție sunt din punct de vedere funcțional perfect compatibile cu plăcile de dezvoltare.

Spre deosebire de plăcile de dezvoltare, plăcile de producție au dimensiuni fizice mult mai mici, sunt în general mai ieftine și de multe ori nu conțin modulul de comunicație USB.

O practică obișnuită în dezvoltarea de aplicații cu Arduino este aceea de a lucra mai întâi pe o placă de dezvoltare și odată ce proiectul este funcțional și complet, să se facă trecerea pe o placă de producție. O placă de dezvoltare precum Arduino Uno are un format fizic mare, ce permite montarea multor fire cu conector mamă.

Acești pini permit o conectare facilă a senzorilor, ledurilor, motoarelor sau a altor module, fără a fi necesare lipituri. În plus, o placă de dezvoltare oferă mai multe opțiuni de alimentare și programare decât o placă de producție.

După ce proiectul a fost finalizat, el poate fi transferat în forma finală pe o plăcuță de producție, cum ar fi Arduino Mini sau Adruino Nano.

3.2. Componentele robotului

3.2.1. Arduino Mega R2560

Fig.3.1. Arduino Mega 2560 R3 fata/spate

Arduino Mega 2560 R3 este un microcontroler bazat pe ATmega2560. Are 54 de pini de intrare / ieșire digitali (dintre care 14 pot fi utilizați ca ieșiri PWM), 16 intrări analogice, 4 UART (porturi seriale hardware), un oscilator cu cristal de 16 MHz, o conexiune USB, un jack de putere, un antet ICSP și un buton de resetare.

Acesta conține tot ce este necesar pentru a sprijini microcontrolerul, pur și simplu îl conectați la un calculator printr-un cablu de alimentare USB sau cu un adaptor AC-DC de baterie pentru a putea utiliza placa. Arduino Mega este compatibil cu cele mai multe scuturi concepute pentru Arduino Duemilanove sau Diecimila.

3.2.2. Puntea de comanda H L298N

Fig.3.2. Puntea de comanda H L298N fata/spate

Puntea de comanda H L298N este o punte dubla de tensiune si curent mare proiectata pentru a accepta un nivel standard de logica TTL si pentru a comanda relee, solenoizi, motoare in curent alternativ si motoare pas cu pas.

Aceasta are posibilitatea de a comanda doua motoare in acelasi timp, ambele avand cate 3 pini, motorul A are pinii EA, I1, I2 respectiv motorul B are EB, I3, I4. Pinii EA si EB sunt conectati la panoul PWM al placii Arduino si sunt folositi la controlul vitezei de rotatie a motoarelor, iar pinii I1, I2, I3, I4 sunt utilizati la controlul sensului de rotatie a motoarelor.

3.2.3. Senzori Arduino

Fig.3.3. Senzori Arduino

Termenul de senzor este folosit în literatura de specialitate pentru a definii componenta electronica care recepționează un stimul și răspunde cu un semnal electric.Senzorul a devenit o componentă tot mai complexă, evoluția lor a ținut pasul cu evoluția tehnologiei.

Noile generații de senzori conțin, încapsulat în același chip, pe lângă elementul sensibil și alte elemente ale unui lanț de măsură ca exemplu: circuitul de condiționare de semnal, circuitul de conversie, procesor, element de transmisie a datelor.

Sistemul care conține unul sau mai mulți senzori dar și sistemul electronic de prelucrare și interpretare a informației de la senzori este denumit sistem senzorial. Sistemele senzoriale îndeplinesc diferite funcții într-un proces complex. Un exemplu de sistem senzorial este robotul. Robotul execută un număr mare de acțiuni într-un mediu de lucru.

Realizarea acțiunilor se poate face pe baza informațiilor primare obținute de la senzorii care caracterizează mediul de lucru. Ansamblul dispozitivelor și echipamentelor care oferă robotului posibilitatea executării unei funcții tehnologice se numește sistem senzorial.

3.2.4. Module Arduino

Fig.3.4. Module Arduino

Pentru a putea realiza o multitudine de roboti si ansamble, platforma Arduino contine o serie de module care se pot conecta cu usurinta, cu ajutorul carora se citesc anumite date din mediul inconjurator sau se pot efectua o serie de operatiuni, de exemplu cu un modul Bluetooth se poate controla un robot transmitand anumite date pe portul Serial.

3.2.5. Servomotoare Arduino

Fig.3.5. Servomotoare Arduino

Servomotorul este elementul component care actioneaza direct sau indirect asupra elementelor componente cu pozitii relative reglabile, poate avea pozitie fixa, blocat pe sistem, in imediata lui apropiere sau poate fi continut in subsistemul unui element cu pozitie reglabila.

Puterea motorului servomotorului determina viteza de modificare si frecventa de modificare a pozitiei relative si este invers proportionala cu nivelul de precizie al servomotorului. Solutia tehnica care defineste servomotorul, implica solutii constructive simple, care functional, impun un consum redus de energie, o cinematica definita de miscari lineare, circulare sau combinari ale acestora.

Are o arie larga e aplicabilitate, fiind conceputa pentru o multitudine de sisteme, prin aceasta inducand solutiile tehnice si constructive pentru sistemele in care este agreat functional.

3.3.Arhitectura aplicatiei de control

3.3.1.Interfata principala

Fig.3.6. Interfata principala aplicatie de control

In interfata principala exista mai multe obiecte de tip widget cu ajutorul carora se executa anumite operatiuni pentru a putea fi controlat robotul, in partea de sus avem doua joystick-uri, cel din stanga este utilizat la controlul tranzitiei respectiv cel din dreapta la controlul bratului care sustine arma.

In partea de jos a interfetei exista trei label-uri in care este afisata directia de mers si pozitia in care este indreptata arma, in centru avem un button care actioneaza asupra servomotorului montat pe tragaciul armei si mai avem in obiect checkbox care comuta intre modul automat sau manual.

3.3.2.Interfata meniu

Fig.3.7. Interfata butoane meniu aplicatie de control

In Fig.3.7. sunt prezentate butoanele din interfata de meniu cu, care se acceseaza interfata de conectare bluetooth,interfata de optiuni dar si cea cu detaliile aplicatiiei.

3.3.3.Interfata optiuni

Fig.3.8. Interfata setari aplicatie de control

In Fig.3.8. este prezentat meniul pentru setarile obiectelor de tip joystick, "Data Format" reprezinta formatul in care sunt transmise datele spre robot, "Updates interval" reprezinta intervalul de timp in care sunt transmise datele si "Max timeout count" reprezinta timpul dupa care aplicatia intra in repaus.

Fig.3.9. Interfata setari joystick aplicatie de control

In Fig.3.9. avem posibilitatea de a modifica setul de date care sunt trimise la robot in momentul actionarii unuia dintre joystick-uri, astfel putem transmite orice caracter sau sir de caractere.

3.3.4.Interfata de conectare bluetooth

Fig.3.10. Interfata conectare bluetooth

In Fig.3.10. este prezentata interfata de conectare prin intermediul bluetooth-ului cu un dispozitiv memorat sau se poate executa o scanare pentru a descoperii toate dispozitivele bluetooth din zona respectiva.

4. PROIECTARE SI IMPLEMENTARE

4.1.Schema bloc

Fig.4.1. Schema bloc

In Fig.4.1. este prezentata schema bloc a proiectului, in care se pot observa directiile de comunicare dintre placa Arduino Mega 2560 R3 si componentele care au ajutat la realizarea sistemului.

Fig.4.2.Implementarea practica a sistemului

4.2. Platforma Arduino

4.2.1. Arduino Mega R2560

Fig.4.3.Componente Arduino Mega 2560

În Fig.4.3. este prezentata placa de dezvoltare Arduino Mega 2560 unde avem explicate componentele plăcii, intefața USB, diferitele Led-uri, pinii de alimentare, pinii analogici, pinii digitali, microprocesorul AT mega 2560, sursa de alimentare externă și butonul de reset.

Tabel 4.1. Specificatii tehnice Arduino Mega 2560

Arduino Mega R2560 poate fi alimentat prin conexiunea USB sau cu o sursă de alimentare externă. Sursa de energie este aleasă automat. Alimentarea externă poate veni fie de la un adaptor AC-DC sau o baterie. Adaptorul poate fi conectat prin introducerea unei mufe de 2.1 mm introdusă în mufa de alimentare a plăcii. Puterea de la o baterie poate fi introdusă în pinii GND și Vin cu ajutorul conectorului de alimentare.

Placa Arduino Mega 2560 are in componenta patru pini de alimentare:

VIN- Tensiunea de intrare la placa Arduino atunci când utilizează o sursă de alimentare externă (spre deosebire de 5 volți prin conexiunea USB sau alte surse de energie reglementate). Vă poate furniza tensiune prin acest pin sau, în cazul în care tensiunea de alimentare prin mufa de alimentare o accesează prin acest pin.

5V- Sursa de alimentare utilizată în mod normal pentru a alimenta microcontrolerul și alte componente de pe placă. Acest lucru poate veni fie de la numărul de identificare printr-un regulator de la bord, sau să fie furnizate de către USB sau de o altă alimentare de 5V reglementată.

3.3V -O sursă de 3.3 volți este generată de regulatorul de tensiune al plăcii . Curentul maxim consumat este de 50 mA.

GND – pinii de masă.

ATmega2560 are 256 KB de memorie flash pentru stocarea de cod (din care 8 KB este folosit pentru bootloader), 8 KB de SRAM și 4 KB de EEPROM (care poate fi citit și scris cu biblioteca EEPROM).

Arduino Mega2560 are o serie de facilități pentru a comunica cu un computer, sau cu un alt Arduino, sau alte microcontrolere. ATmega2560 oferă patru hardware UART pentru o comunicație serială TTL (5V). Software-ul Arduino include un monitor serial care permite transmiterea de date simple la și de la placă. LED-urile RX și TX de pe bord vor clipi atunci când datele sunt transmise prin intermediul microcontrolerului ATmega8U2 și conexiunea USB la calculator (dar nu pentru comunicarea serială pe pinii 0 și 1).

ATmega2560 suportă de asemenea I2C (DST), și comunicare SPI. Pentru a utiliza comunicarea SPI, vă rugăm să consultați fișa tehnică ATmega2560.

Arduino Mega2560 poate fi programat cu software-ul Arduino. Atmega2560 de pe Arduino Mega vine din fabrică cu un bootloader care vă permite să încărcați un cod nou, fără utilizarea unui programator de hardware. Acesta comunică folosind protocolul inițial STK500.

Arduino Mega are o siguranță resetabilă care protejează porturile USB ale computerului la suprasarcină. Deși cele mai multe calculatoare asigură protecția internă a acestora, siguranța oferă un strat suplimentar de protecție. Dacă mai mult de 500 mA este aplicat la un port USB, siguranța va întrerupe în mod automat conexiunea până când suprasarcina este eliminată.

Fiecare dintre cei 54 de pini digitali de pe Mega pot fi utilizați ca intrări sau ieșiri, folosind funcțiile pinMode (), digitalWrite (), și digitalRead (). Funcționează la 5 volți. Fiecare pin poate transmite sau poate primi un maxim de 40 mA și are o rezistență internă pull-up (deconectată implicit) de 20-50 kOhm. În plus, unii pini au funcții specializate:

Serial: 0 (RX) și 1 (TX)

Serial 1: 19 (RX) și 18 (TX)

Serial 2: 17 (RX) și 16 (TX)

Serial 3: 15 (RX) și 14 (TX)

PWM: 0 la 13. Furnizează 8-biți de ieșire PWM cu funcția analogWrite

LED: 13. Există un LED încorporat ,conectat la pinul digital 13. În momentul în care pe pin avem 1 logic atunci LED-ul este pornit, iar când avem 0 logic ledul este oprit

I2C: 20 (SDA) și 21 (SCL). Rețineți că acești pini nu sunt în aceeași locație ca și pinii I2C pe Duemilanove.

4.2.2. Punte H L298N

Fig.4.4.Conectare Punte H L298N la Arduino Mega

Puntea de comanda H L298N poate sa ofere o tensiune de 6 pana la 46 de volti pentru a comanda diferite marimi de motoare,curentul maxim este de 4 amperi,putere de 25W si in cadrul acestui proiect conexiunile cu placa Arduino sunt realizate in felul urmator: pinii "I1, I2, I3, I4" sunt conectati la pinii digitali 22, 23, 25 respectiv 27 iar pinii "ENA" si "ENB" sunt conectati la pinii digitali 26 respectiv 24, motorul este conectat la "Out1" si "Out2".

Fig.4.5.Functie Punte H L298N

In Fig.4.5. am realizat sensul de rotatie si puterea cu, care se roteste motorul cu ajutorul instructiunii "digitalWrite();", are doi parametri primul fiind portul la care trimite si al doilea o valoarea de "LOW" sau "HIGH" .

Din moment ce motorul este conectat la "Out1" si "Out2" placa Arduino Mega trebuie sa trimita date pe pinii de "IN3" si "IN4" , pentru rotatie in sensul acelor de ceasornic "IN3" primeste valoarea "HIGH" si "IN4" primeste valoarea "LOW" , iar pentru rotatia inversa sensului acelor de ceasornic valorile trimise sunt inversate.

Fig.4.6.Definire pini si accesare functie Punte H L298N

4.2.3. Senzor Ultrasonic

Fig.4.7.Conectare senzor ultrasonic la placa Arduino Mega

Senzorului ultrasonic ii mai spune si senzorul Ping, acesta este un senzor pentru detectarea distantei din raza robotului, este produs de compania Parallax, distanta minima de detectie este de 2-3 cm iar cea maxima este de patru metri.

Acesta functioneaza exact ca si liliacul adica trimite o serie de ultrasunete si asteapta ecoul care il capteaza si calculeaza distanta de la robot la obiect in functie de timpul in care ecoul s-a intors.

Pinii "ECHO" si "TRIGGER" sunt conectati la pinii digitali 29 respectiv 30 ai placii Arduino Mega iar pinii "GND" si "VCC" sunt conectati la alimentarea placii.

Pentru acest sistem am folosit un dispozitiv care are in componenta un servomotor cu posibilitatea de rotire pe trei pozitii pentru scana in fata robotului,in stanga respectiv dreapta rotind senzorul pe cele trei pozitii si calculand automat distanta cea mai mica si cea mai mare, acesta este reprezentat in Fig.4.8.

Fig.4.8.Dispozitiv de rotire senzor pe trei pozitii

Pentru a realiza un robot autonom am creeat mai multe functii cu ajutorul carora controlez modul automat de rulare al sistemului, o functie ar fi scanarea distantei:

Fig.4.9.Functia de calculare a distantei

Aceasta functie trimite la portul "TRIGGER" al senzorului o valoare "LOW" sau "HIGH" iar cu ajutorul instructiunii "pulseIn();" salvam distanta intr-o variabila reprezentata in centimetri care este dedusa cu ajutorul pinului "ECHO" trimitand o valoare "HIGH" si o returnam rotunjita cu ajutorul instructiunii "round();" pentru a o putea folosi in cadrul celorlalte functi.

Fig.4.10.Functia de scanare pe cele trei pozitii

Cu ajutorul functiei "watchsurrrounding()" salvez distanta de pe cele trei pozitii in trei variabile, "centerscanval", "leftscanval" si "rightscanval" apeland functia prezentata anterior si pozitionand suportul senzorilor la fiecare pozitie. Pentru a putea decide in ce directie sa ruleze robotul folosesc functia "decide();" care compara cele trei variabile care contin distantele calculate si returneaza directia de mers, aceasta este prezentata in Fig.4.11.

Fig.4.11.Functia pentru deciderea directie de mers

4.2.4. Senzor de miscare

Senzorii de miscare sunt mult mai complicati decat restul senzorilor deoarece exista foarte multi factori de intrare sau iesire care afecteaza datele citite de senzor, pentru a intelege mai usor cum functioneaza acesti tip de senzor atasez o diagrama care demonstreaza cum se realizeaza detectarea miscarii.

Fig.4.11.Diagrama senzor de miscare

Senzorul de miscare are in el doua sectiuni care sunt realizate dintr-un material sensibil la infrarosu, lentilele nu schimba cu mult raza sau distanta de actiune a senzorului, in momentul de repaus amandoua sectiunile detecteaza aceiasi valoarea de infrarosu, cand un corp uman sau animal intercepteaza raza de actiune a uneia dintre sectiuni se rezulta o diferenta pozitiva intre cele doua sectiuni iar cand corpul uman sau animal paraseste raza de actiune al senzorului se realizeaza o diferenta negativa rezultand detectia miscarii.

Fig.4.12.Conectare senzor de miscare la placa Arduino Mega

Conectarea senzorului de miscare se realizeaza cu ajutorul a trei pini, unul fiind conectat la pinul digital 28 al placii Arduino Mega iar ceilalti doi sunt conectati la alimentare, senzorul este atasat robotului in acelasi fel ca si senzorul ultrasonic prezentat in Fig.4.8.

Fig.4.13.Codul sursa pentru functionarea senzorului de miscare

Inainte de a incepe scanarea senzorului de miscare acesta are nevoie de cel putin 10 secunde pentru a se calibra iar apoi daca detecteaza miscare transmite un semnal buzzer-ului pentru a emite un semnal de atentionare, daca miscarea dureaza mai multe de 5 secunde este indreptata arma spre zona in are s-a detectat miscare si se elimina tinta.

4.2.5. Senzori detectare sunet

Fig.4.14.Pozitionarea senzorilor de sunet pe robot

Senzorul de sunet are in componenta patru pinii cu ajutorul carora poate sa functioneze si sa citeasca datele atat pe analog cat si pe digital, acestia sunt conectati asa cum este prezentat in Fig.4.14. si la acest sistem am folosit doar partea de citire date analog. Pinii "A0" de la fiecare senzor sunt conectati la pinul analog "A6" respectiv "A7" iar pinii "GND" si "VCC" sunt conectati la pinii de alimentare ai placii Arduino Mega.

Fig.4.15.Conectarea senzorilor de sunet la placa Arduino Mega

Fig.4.16.Cod detectare sunet

In Fig.4.15. este prezentat codul sursa in care cu ajutorul instructiunii "analogRead();" salvez intensitatea sunetului intr-o variabila declarata anterior. La baza acestui sistem avem doi senzori de sunet cu, care am posibilitatea de a misca bratul de sustinere al armei in directia din care s-a produs sunetul.

4.2.6. Modul bluetooth HC-05

Fig.4.17.Conectarea modulului Bluetooth HC-05 la placa Arduino Mega

La realizarea acestui sistem am adaugat un modul Bluetooth HC-05 pentru a putea fi comandat cu ajutorul unei aplicatii Android realizate in limbajul de programare Java, acesta are in componenta sase pini din care folosesc doar patru, doi dintre ei sunt "TX" si "RX" care sunt conectati la pinii "RX" respectiv "TX" ai placii Arduino Mega iar ceilalti doi pini sunt conectati la alimentarea placii.

Modulul Bluetooth folosit are o raza de maxim sapte metri fara o antena externa, foloseste Bluetooth SPP (Protocolul Portului Serial), si transmite pe o frecventa de 2.4GHz si are posibilitatea de a primii date pe portul serial sau de a trimite date.

Fig.4.18.Cod sursa modul Bluetooth HC-05

In Fig.4.17. este prezentat codul cu, care citim de pe portul serial daca este transmis sau nu un caracter sau un set de caractere cu ajutorul instructiunilor "Serial.available()" si "Serial.read()". Instructiunea "Serial.available();" verifica daca exista ceva pe serial iar instructiunea "Serial.read();" citeste ce este pe serial.

4.2.7. Modul Buzzer

Fig.4.19.Conectarea modulului Buzzer la placa Arduino Mega

Modulul de buzzer este conectat cu ajutorul a trei pini unul fiind conectat la pinul digital 53 al placii Arduino Mega, iar ceilalti doi sunt conectati la alimentarea placii.Acest buzzer opereaza pe o frecventa de 2 kHz este un buzzer activ, adica produce sunetul singur nu are nevoie de un generator de frecventa. Se poate alimenta de la 3.3 pana la 5 V.

Fig.4.20. Codul de functionare al modulului Buzzer

Functia "buzz();" are trei parametri, primul fiind pinul definit,frecventa respectiv lungimea sunetului, prima data se calculeaza valoarea delay-ului apoi se calculeaza ciclurile in functie de lungimea setata a tonului si cu ajutorul instructiunii "for()" se reda tonul. In acest sistem modulul Buzzer este folosit in momentul in care senzorul de miscare detecteaza miscare, acesta alerteaza iar daca miscarea nu inceteaza in timp de 5 secunde arma este indreptata spre locul unde a fost detectata miscarea.

4.2.8. Sursa de alimentare

Fig.4.21. Sursa de alimentare a sistemului

Din cauza multitudinii de componente ale robotului am fost nevoiti sa instalam o sursa de alimentare de o tensiune de 12V si o putere de 4A, dar a trebuit sa inseriem doua rezistente de putere 50W pentru a prevenii supraincalzirea.Componentele sunt alimentate la 5V, 9V si 12V.

4.2.9. Servomotoare

Fig.4.22. Conectarea servomotoarelor la placa Arduino Mega

Pentru a putea controla servomotoarele cu placa Arduino avem nevoie de o librarie externa,"Servo.h" care suporta pana la 12 motoare pentru placile Arduino si 48 pentru Arduino Mega, servomotoarele au integrata o transmisie si pot fi pozitionate de la 0 la 180 de grade, dar sunt si servomotoare care au rotatie continua.

Servomotoarele au trei fire: alimentarea("GND, VCC") si semnalul, acestea sunt de culoare rosu, negru respectiv galben.In cadrul acestui proiect am folosit trei tipuri de servomotoare,acestea fiind:

MG996R

MG90D

SG92R

Tabelul 4.2.Specificati tehnice MG996R

Tabelul 4.3.Specificati tehnice MG90D

Tabelul 4.4.Specificati tehnice SG92R

4.3. Structura aplicatie de control

4.3.1. Conectare Robot-Aplicatie

Conectarea intre robot si aplicatia de control este realizata prin intermediul Bluetooth-ului, aplicatia are posiblitatea de scanare pentru a detecta dispozitivele bluetooth din raza in care se afla, pentru scanare, conectare si deconectare aplicatia foloseste fire de executie.

Fig.4.23. Codul sursa pentru conectarea aplicatiei la robot

In cazul in care conexiunea actuala se pierde sau conectarea cu un dispozitiv nou se acceseaza functiile din Fig.4.24. si Fig.4.25.

Fig.4.24. Codul sursa pentru conexiune pierduta

Fig.4.25. Codul sursa pentru conexiune esuata

In momentul in care aplicatia este connectata cu un dispozitiv din apropriere se acceseaza o functie care afiseaza mesajul "Connected to:" pe interfata, la care mai adauga numele dispozitivului conectat in momentul respectiv.Aceasta este prezentata in Fig.4.26.

Fig.4.26. Codul sursa pentru functia accesata in momentul in care este conectat un dispozitiv

4.3.2. Control tranzitie robot si arma

In cadrul aplicatiei avem doua joystick-uri cu ajutorul carora putem controla miscarea robotului atat si miscarea bratului pe care este arma, aceste joystick-uri au o raza de zece milimetri si o circumferinta cuprinsa intre 0- 180 si 0- (-180) de grade care este impartita in opt sectiuni, la fiecare sectiune in momentul accesarii trimite un mesaj pe serial care este receptionat de robot.Sectiunile sunt prezentate in Fig.4.27.

Fig.4.27. Sectiuni joystick-uri

Pentru a sti in ce sectiune se afla joystick-ul in momentul controlarii robotului folosim codul sursa din Fig.4.28.

Fig.4.28. Functia care returneaza mesajul din sectiunea selectata

4.3.3. Transmitere date catre robot

Fig.4.29. Functia care trimite mesajul propriu-zis

In Fig.4.29 este prezentata functia care in momentul accesarii uneia dintre sectiuni transmite pe serial mesajul propriu-zis catre robot.

5.TESTARE SISTEM

5.1.Testare senzori

In Fig.5.1. sunt prezentate masuratorile efectuate pentru inregistrarea distantei dintre robot si obiectul aflat in fata lui. Pentru masurarea distantei am folosit senzorul ultrasonic.Prima problema care am intalnit-o in timpul testarii senzorului ultrasonic a fost timpul de detectie al obiectelor, ajungand la concluzia ca servomotorul care roteste senzorul de miscare pe cele trei pozitii avea o viteza prea mare si acesta nu apuca sa receptioneze undele transmise pe aceiasi directie.

Fig.5.1. Afisarea distantei pe portul serial

In Fig.5.2. sunt prezentate, pe portul serial, masuratorile efectuate pentru senzorul de miscare, unde se observa cand este detectata miscarea si cand aceasta inceteaza, cea mai grava problema intalnita a fost ca in momentul in care senzorul de miscare scaneaza perimetrul robotul trebuie sa fie stationar.

Aceasta problema nu am reusit sa o rezolvam pe partea de hardware deoarece nu exista senzor de miscare care sa aiba posibilitatea de scanare in moment ce el nu este stationar dar am programat robotul in asa fel incat in momentu in care in raza lui exista o zona mai mare de trei metri acesta sa stationeze si sa inceapa scanarea zonei.

Fig.5.2. Detectare miscare

5.2. Testare conexiune bluetooth

Distanta de transmitere pentru modulul Bluetooth HC-05 fara antena a fost 6-7 metri, dupa ce am adaugat o antena distanta de transmitere a fost de 11 metri.Antena folosita este prezentata in Fig.5.3.

Fig.5.3. Antena Bluetooth

5.3.Testare aplicatie pe diverse dispozitive Android

Aplicatia a fost testata pe mai multe dispozitive Android, doar ca in momentul de fata aceasta ruleaza doar pe versiunea 5.0.

6.INSTALARE SI UTILIZARE

6.1. Instalare aplicatie pe dispozitive Android

Aplicatia este foarte usor de instalat pe dispozitivele Android, aceasta fiind posibila in doua moduri, primul mod este conectarea directa la programul Eclipse si rularea direct pe dispozitiv, a doua varianta este copierea fisierului cu extensia ".apk" direct in memoria dispozitivului si instalarea lui, spatiul de stocare necesar aplicatiei este de 300 KB.

6.2. Utilizare robot de securitate

Robotul este foarte usor de folosit deoarece are un singur buton de pornire, dupa pornirea lui se deschide aplicatia de pe dispozitivul Android si se conecteaza la modulul Bluetooth incorporat sistemului, apoi depinde de necesitatile utilizatorului daca doreste ca robotul sa functioneze in modul automat sau sa fie controlat cu ajutorul aplicatiei de control.

7.CONCLUZII

Dezvoltarea tehnologiei a oferit posibilitatea de a crea un sistem capabil sa asigurare paza si protectia unor spatii sau obiecte, pe baza documentației am reușit implementarea tuturor obiectivelor propuse astfel incat robotul si aplicatia de control sunt complet functionale. Programele sunt implementate in medii de dezvoltare care asigura o compatibilitate destul de mare cu multe dispozitive, astfel incat se poate considera ca este asigurata compatibilitatea pe un termen mediu cu diverse dispozitive care vor apare intre timp pe piata.

Obiectivele realizate sunt:

Realizarea unei platforme de baza pentru robot

Montarea motorului pentru tranzitia fata-spate

Montarea servomotorului pentru directie

Montarea puntii de comanda motor

Montarea senzorului ultrasonic si cel de miscare

Montarea placii Arduino Mega R2560

Montarea modulelor Bluetooth si Buzzer

Montarea unui brat care sa sustina arma

Montarea servomotoarelor pentru miscarea armei si actionarea tragaciului

Montarea unor led-uri necesare robotului pe timpul de noapte

Montarea senzorilor de sunet

Montarea a doua breadboard-uri pentru a putea realiza conexiunile dintre componente

Conectarea tuturor componentelor la sursa de tensiune in functie de necesitatea fiecaruia

Realizarea codului sursa pentru a putea fi implementat pe placa Arduino Mega R2560

Realizarea unei aplicatii Android capabila de conectare prin intermediul modulului Bluetooth in limbajul de programare Java

7.1. Dezvoltari ulterioare

7.1.1. Dezvoltare robot

Robotul poate să fie dezvoltat ulterior pentru a îmbunătăți aspecte ale interacționării acesteia cu utilizatorul, precum și adaugarea mai multor dispozitive cum ar fi camera video, senzori detectare anumite gaze, o alta arma sau diferite brate cu jutorul carora utilizatorul ar putea interactiona cu anumite obiecte periculoase sau evenimente din mediul exterior, si un aspect estetic mai placut al platformei.

7.1.2. Dezvoltare aplicatie Java

Aplicația poate să fie dezvoltată ulterior pentru a îmbunătăți aspecte ale design-ului acesteia, deoarece testarea aplicației s-a realizat pe parcursul implementării, erorile au fost remediate la timp, iar soluționarea acestora a dus la stadiul complet de funcționare. Pe lângă funcționalitățile prezente, se mai puteau implementa anumite widget-uri, care să ajute mai mult utilizatorul în îndeplinirea sarcinilor pe care trebuie să le execute. În momentul de față proiectul este finalizat din punct de vedere al funcționalității de bază. Însă aplicația poate să fie dezvoltată în continuare pentru a aduce noi îmbunătățiri sau modificări celorlalte funcționalități.

BIBLIOGRAFIE

[1]International Commission on Non-ionizing Radiation Protection, Guidelines for limiting exposure to time-varying electric, magnetic and electromagnetic fields (Up to 300 GHz), Health Physics, nr. 74, pag. 494-522, 1998.

[2]Marincu, A., Greconici,M., The electromagnetic field around a high voltage 110 KV electrical overhead lines and the influence on the biological sistems,Proceedings of the 5th International Power Systems Conference – Timișoara, pag. 357-362, 2003.

[3]Hortopan,Gh., Compatibilitate electromagnetică, Ed. Tehnică, București, 2005.

Similar Posts

  • Proiectarea Unui Sistem de Distributie a Produselor Comandaye On Line. Studiu de Caz Pentru S.c. Vivre Deco, Pentru Distributia Pieselor de Mobilier Si Decoratiuni Interioare In Bucuresti

    CUPRINS 1.Caracteristici generale ale comerțului electronic…………………………………………….7 1.1Introducere în comerțul electronic……………………………………………………………7 1.2Definirea comerțului electronic………………………………………………………………9 1.3Tipuri de comerț electronic…………………………………………………………………11 1.4Avantajele și dezavantajele comerțului electronic………………………………………….14 1.5Modele de comerț electronic………………………………………………………………..20 2.Studiul caracteristicilor produselor distribuite…………………………………………..…22 2.1Date introductive…………………………………………………………………………….22 2.2Conceptul magazinului on-line Vivre………………………………………………………24 2.3Informații generale despre produsele manipulate și distribuite…………………………….26 3.Estimarea cererii de produse…………………………………………………………………29 3.1Măsurarea cererii curente pe piață………………………………………………………….29 3.2Fluxul de mărfuri……………………………………………………………………………31…

  • Proiect Organe de Masini Tractor U450

    TEMA DE PROIECT. Sa se proiecteze transmisia mecanica a tractorului U450 formata din ambreiajul principal si reductorul de turatie RCDI 1.PROIECTAREA PARTIALA A AMBREIAJULUI 1.1MEMORIU TEHNIC DE CALCUL AL AMBREIAJULUI 1.1.1 ANALIZA TIPURILOR SI SOLUTIILOR CONSTRUCTIVE DE AMBREIAJE UTILIZATE IN COSTRUCTIA DE MASINI 1.1.2. Alegerea cuplului de frecare necesar procesului de ambreiere. 1.1.3 DETERMINAREA ELEMENTELOR…

  • Studii Si Cercetari Privind Emisiile Poluante In Cadrul Sectiei Lbr de la Sc Arcelor Mittal Sa Galati

    Cuprins Introducere Cap.1. Descrierea generala a fluxului de laminare în LBR Cap.2. Procese generatoare de emisii si deseuri din cadrul LBR. 2.1 Generarea de emisii poluante si caracterizarea emisiilor poluante 2.2 Generarea si caracterizarea deseurilor in cadrul LBR. Cap.3. Măsuri pentru reducerea emisiilor poluante si a deseurilor în cadrul LBR Cap.4. Legislatie si efectele emisiilor…

  • II. Prevederile actelor normative

    Cuprins Prefață I. Introducere II. Prevederile actelor normative III. Datum Geodezic III.1 Datumul geodezic Global III.2 Datumul geodezic Regional III.3 Datumul geodezic Național IV. Sisteme de referință geodezice IV.1 Sistemul Inerțial Convențional (CIS) IV.2 Sistemul internațional de referință terestră (ITRS) IV.3 Sistemul geodezic de referință global WGS84 IV.4 Sistemul geodezic de referință European ETRS89 V….

  • Sisteme de Prelevare a Semnelor Vitale

    Sisteme de prelevare a semnelor vitale Cuprins SCOPUL LUCRĂRII CAPITOLUL I – DESCRIEREA PARAMETRILOR VITALI 1. Introducere 1.1.Clasificare a. După natura semnalului b. După evoluția în timp 2. Parametri vitali 2.1.Semnalul electrocardiograf 2.1. Saturația oxigenului din sânge 2.3.Frecvența respiratorie 2.4.Temperatura CAPITOLUL II –SENZORI UTLILIZAȚI ÎN MĂSURAREA PARAMETRILOR VITALI 1. Senzori 1.1.Introducere 1.2.Clasificare 2. Senzori folosiți…

  • Studiul Actionarii Elctrice a Schimbatoarelor de Cale In Sistemul Feroviar

    CUPRINS CAP.1.Istoria transportului feroviar……………………………………………………………………………..3 1.1.Căile “ferate” din lemn……………………………………………………………………………….4 1.2Căile ferate metalice……………………………………………………………………………………4 CAP.2. Sistemele de acționare…………………………………………………………………………………….6 2.1.Introducere……………………………………………………………………………………………….6 2.2. Elemente componente ale acționărilor electrice ……………………………………………7 CAP.3. Infrastructura feroviară………………………………………………………………………………….11 3.1.Suprastructura căii…………………………………………………………………………………….11 3.2.Infrastructura căii……………………………………………………………………………………..11 3.3.Instalații de electrificare…………………………………………………………………………….11 3.4.Calea de rulare………………………………………………………………………………………….12 CAP.4.Schimbatorul de cale ferată…………………………………………………………………….14 4.1.Aparate de cale………………………………………………………………………………..14 4.2.Schimbătorul de cale simplu………………………………………………………………16 4.3.Elemente componente……………………………………………………………………….17 CAP.5.Motorul de current continuu…………………………………………………………………………….18 5.1.Generalitați………………………………………………………………………………………18 5.2.Tipuri…