DOMENIUL MECATRONICĂ ȘI ROBOTICĂ PROGRAMUL DE STUDIU LICENȚĂ FORMA DE ÎNVĂȚĂMÂNT CU FRCVENȚĂ PROIECT DE DIPLOMĂ CONDUCĂTOR ȘTIINȚIFIC SI.dr.ing…. [304461]

UNIVERSITATEA DIN ORADEA

FACULTATEA DE INGINERIE MANAGERIALĂ ȘI TEHNOLOGICĂ

DOMENIUL MECATRONICĂ ȘI ROBOTICĂ

PROGRAMUL DE STUDIU LICENȚĂ

FORMA DE ÎNVĂȚĂMÂNT CU FRCVENȚĂ

PROIECT DE DIPLOMĂ

CONDUCĂTOR ȘTIINȚIFIC

SI.dr.ing. MOLDOVAN OVIDIU

ABSOLVENT: [anonimizat]

2020

UNIVERSITATEA DIN ORADEA

FACULTATEA DE INGINERIE MANAGERIALĂ ȘI TEHNOLOGICĂ

DOMENIUL MECATRONICĂ ȘI ROBOTICĂ

PROGRAMUL DE STUDIU LICENȚĂ

FORMA DE ÎNVĂȚĂMÂNT CU FRECVENȚĂ

DEZVOLTAREA UNUI SISTEM DE COMANDĂ PRIN BLUETOOTH PENTRU UN ROBOT AUTONOM

CONDUCĂTOR ȘTIINȚIFIC

SI.dr.ing. MOLDOVAN OVIDIU

ABSOLVENT: [anonimizat]

2020

CAPITOLUL 1.INTRODUCERE

Încă din antichitate omul și-a [anonimizat]-a simplificat sau chiar înlocuit munca fizică. [anonimizat] o poziție superioară în clasament mai ales datorită complexității lor.

Termenul de robot datează de peste 4000 de ani. Omul mereu și-a imaginat tot felul de dispozitive mecanice inteligente care să ii ușureze munca cotidiană și de asemenea efortul fizic depus. Astfel, omul, a [anonimizat]-a imaginat o [anonimizat] a marcat saltul de la societatea industrializată la societatea avansat informatizată.

Noțiunea de robot a fost folosit pentru întâia oară în anul 1920 [anonimizat]-o piesă numită „Robotul universal al lui Kossum”. Ideea principală a acestei piese a [anonimizat], iar acesta își omora creatorul. În continuare majoritatea filmelor și cărților pe această temă prezentau roboții ca fiind mașinării dăunătoare și distrugătoare .

Roboții, [anonimizat]. [anonimizat], transporturi, agricultura, în exploatarea mărilor și a oceanelor, în cercetare științifică și în exploatarea spațiului cosmic.

CAPITOLUL 2.GENERALITĂȚI PRIVIND ROBOTICA ȘI MECATRONICA

2.1 [anonimizat]. [anonimizat], iar persoana care lucrează în acest domeniu a ajuns să fie cunoscută ca robotician sau inginer în robotică.

Roboții sunt realizați în special prin combinația disciplinelor: mecanică, electronică și informatică. Între timp s-a creat din combinația acestora mecatronica. Pentru realizarea de sisteme autonome care să fie capabile de a găsi soluțiile singure este necesară legătura a cât mai multor discipline de robotică.

Aici se pune accent pe legătura conceptelor de inteligență artificială sau neuroinformatică (parte a informaticii) precum și idealul lor bilogic numit biocibernetică. Datorită combinației dintre biologie și tehnică s-a dezvoltat bionica.

[anonimizat] o dirijare cât mai precisă. Un robot poate să acționeze autonom sau poate să fie teleghidat.

Fig.2.1 Diverși roboți industriali ai producătorului KUKA

Pe lângă proprietățile particulare oricărui sistem mobil cum ar fi: dimensiuni, [anonimizat], repetabilitate, [anonimizat], viteza de deplasare există și alte caracteristici particulare fiecărui robot.

De exemplu: numărul de grade de libertate, fiabilitatea, dimensiunile spațiului de lucru, programabilitatea, adaptabilitatea la mediu.

Pe baza acestor exemple se definesc trei tipuri de generații de roboți:

Generația I – acționarea roboților pe baza unui program flexibil prestabilit prin învățarea directă;

Generația II – acționarea roboților determinat de un program flexibil, modificabil pe baza informațiilor primite de la sistemul senzorial;

Generația III – acționarea roboților care asimilează elemente de inteligență artificială.

Fig.2.2 Schema bloc al unui robot industrial

2.2 Mecatronica

Acest termen de „mecatronică” datează din anul 1975 și a fost utilizat pentru prima oară de către concernul japonez Yaskawa Electric Corporation, fiind o prescurtare a cuvintelor Mecanică-Electronică-Informatică. La început, mecatronica a fost percepută ca și o completare a componentelor mecanicii de precizie, aparatul de fotografiat cu bliț fiind un exemplu clasic de aplicație mecatronică.

Pe parcursul anilor, termenul de mecatronică și-a schimbat sensul, și-a extins aria de definiție: mecatronica a devenit știința inginerească bazată pe disciplinele clasice ale construcției de mașini, electrotehnicii, electronicii și a informaticii. Scopul important al acestei științe este îmbunătățirea funcționalității utilajelor și a sistemelor tehnice prin unirea disciplinelor automatizate pentru nevoile educației și bine înțeles și a ingineriei.

Mecatronica a luat ființă ca și tehnologie și a devenit filozofie care s-a răspândit în întreaga lume. În ultimii ani, mecatronica este definită simplu: știința mașinilor inteligente.

Despre mecatronică se poate spune că este o sferă interdisciplinară a științei ăi tehnicii care se ocupă în general de problemele legate de mecanică, electronică și informatică. Totuși în ea sunt incluse mai multe domenii, care formează baza mecatronicii și care acoperă multe discipline cunoscute, cum ar fii: electrotehnica, energetica, tehnica de cifrare, tehnica microprocesării informați, tehnica reglării, ș.a.m.d.

Fig.2.3 Obținerea termenului de MECATRONICĂ

2.3 Clasificare roboților

1.Din punct de vedere al gradului de mobilitate se cunosc:

Roboți ficși

Roboți mobili

2.Din punct de vedere al informației de intrare și a metodei de instruire și a metodei de instruire există:

Roboți acționați de om

Roboți cu sistem de comandă cu relee (secvențial)

Roboți cu sistem secvențial cu program modificabil

Roboți repetitori (cu program prin instruire)

Roboți inteligenți

3.Din punct de vedere al sistemului de coordonate roboții sunt în sistem de coordinate:

Sferice 40%

Cilindrice 33%

Carteziene 18%

4.Din punct de vedere al sistemului de comandă:

Comandă punct cu punct

Comandă pe contur (implică coordonarea mișcării axelor)

Comandă pe întreaga traiectorie (implică toți parametrii de mișcare)

5.Din punt de vedere al sarcinii manipulate

6.Din punct de vedere al sistemului de acționare

Hidraulică 40%

Electrică 30%

Pneumatică 20%

Mixtă

7.Din punct de vedere al preciziei de poziționare:

Sub 0,1 mm

0,1-0,5 mm

0,5-1 mm

1-3 mm

Peste 3 mm

8.Din punct de vedere al timpului de programare:

Cu programare rigidă, fără posibilitatea de corecție

Cu programare flexibilă, există posibilitatea modificării programului

Cu programare adaptivă, există posibilitatea adaptării automate a programului în timpul funcționării

2.4 Sistemul sensorial

Funcțiile sistemului sensorial sunt de a prelua informațiile din mediu și de a le transmite sistemului decizional în vederea creării de comenzi.

Aceștia sunt de mai multe tipuri:

1.Senzori interini – aceștia se gasesc pe bublele interne de reglare și ajută la descrierea traiectoriei segmentelor mecanice componente

2.Senzori externi – aceștia se folosesc pe buclele externe pentru coordonarea traiectoriei generale a ansamblului

3.Senzor de Securitate – aceștia se folosesc pe buclele interne sau externe de reacție pentru sesizarea pericolelor cum ar fi : ciocniri, creșterea temperaturii, ș.a.m.d.

Senzorii interni sunt de regulă de tip poziție și deplasare. Cei mai des folosiți în acest caz sunt senzorii de tip rezistiv și cei de tip optic. Sistemele senzoriale de tip optic conțin un generator de flux luminous, de obicei un LED și un element receptor (fototranzistor sau fotocelulă).

Cei mai utilizați senzori pentru distanță sunt, datorită raportului preț/precizie sunt senzorii optici în infraroșu și senzorii cu ultrasunete, formați dintru-un emițător de undă și un receptor comandat în fază cu emițătorul.

Senzorii externi, sunt senzori de efort, în general au la bază mărci tensometrice plasate pe concentratoare de efort), senzori de alunecare sau senzori tactili.

Sistemul senzorial de securitate are rolul de a evita coliziunile când apar regimuri de funcționare sau obstacole neprevăzute.

2.5 Sistemul decizional

Pentru a fi considerat un robot inteligent sau autonom, el are nevoie de cel puțin un microcontroler pentru a putea procesa informațiile preluate de senzorii din mediu. După procesarea datelor trebuie luată o decizie și ulterior o comandă este transmisă către elementele de execuție.

2.6 Microcontroler

Un microcontroler este alcătuit dintr-o configurație minimală de sistem de calcul, în stare să execute la o viteză foarte mare instrucțiunile unui program stocat în memorie, acel program este o secvență logică de operații ce poate implementa algoritmii necesari pentru controlul proceselor.

Pe același chip al microcontrolerului sunt integrați și :oscilatorul, memoria (RAM, ROM, EEPROM), numărătoare, blocuri analogice, interfețe de comunicație și porturi de intrare – ieșire.

Fig.2.4 Schema bloc al unui microcontroler

În principiu un controler este constituit dintr-o structură electronica destinată controlului unui proces, unei interacțiuni caracteristice cu mediul exterior, fără să fie necesară intervenția operatorului uman.

Primele controlere au fost construite în tehnologii analogice, utilizând componente electronice discrete și/sau componente electromecanice. Cele ce fac apel la tehnica numerică modernă au fost realizate initial pe baza logicii cablate (circuite integrate numerice standard SSI și MSI) și a unei electronici analogice uneori complexe, datorită faptului că ocupau dimensiuni mari, aveau un consum energetic pe măsură și o fiabilitare foarte scăzută.

Apariția și utilizarea microprocesoarelor de uz general a dus la o reducere consistentă a costurilor, dimensiunilor, consumului și bineînțeles o îmbunătățire a fiabilității. Există și la ora actuală o serie de astfel de controlere de calitate, realizate în jurul unor microprocesoare de uz general cum ar fi Z80 – Zilog, 8086/8088 – Intel, 6809 – Motorola,etc.

2.7 Tipuri de arhitectură a unității centrale

Arhitectura unității centrale de calcul cunoscută și sub abrevierea de CPU, este unul dintre cele mai importante în analiza oricărui sistem de calcul. În cele ce urmează am să prezint principalele concepte :

2.7.1 Arhitectura de tip von Neumann

Microcontrolerele cu acest tip de arhitectură au o unitate centrală caracterizată de existența unui singur spațiu de memorie utilizat pentru memorarea atât a codului instrucțiunilor cât și a datelor ce fac obiectul prelucrării. Doar o singură magistrală internă care este folosită pentru preluarea instrucțiunilor și a datelor .

Încetinirea operațiilor se datorează efectuării celor doua operații separate, în mod secvențial

Fig.2.5 Arhitectura de tip „von Neumann”

2.7.2 Arhitectura de tip CISC

CISC înseamnă Complex Instruction Set Computer, aproape toate microcontrolerele au la baza realizării conceptul CISC.

Microprocesoarele care utilizează această arhitectură au multe instrucțiuni încorporate în ele, astfel se salvează timp de procesare. Timpul este salvat deoarece instrucțiunile necesare sunt disponibile direct de microprocesor și nu este nevoie ca acesta să le preia din programul stocat pe memoria externă, cum ar fi RAM-ul.

Această arhitectură are rolul de a ajuta microprocesorul să grăbeacă execuția programelor care au nevoie de instrucțiuni. Din cauza instrucțiunilor încorporate în microprocesor, performanțele acestuia sunt scăzute. Pentru a trece peste această problemă trebuie încorporate mai multe tranzistoare în microprocesor.

2.7.3 Arhitectura de tip RISC

RISC înseamnă Reduced Instruction Set Computer și este un concept de realizare a CPU care a început să fie utilizat cu succes de ceva timp și la realizarea microcontrolerelor.

Aceste microprocesoare au instrucțiunile încorporate, acestea ocupă spațiu în microprocesor, lăsând mai putin spațiu pentru procesul de programare. De asemenea acestea au instrucțiuni limitate încorporate. Din această cauză este nevoie de mai puține tranzistoare pentru realizarea microprocesorului.

Microprocesoarele cu acest tip de arhitectură au un cost de fabricație mult mai redus față de cele cu arhitectura CISC, ele fiind utilizate în diferite scopuri științifice unde numărul limitat de instrucțiuni este necesar.

2.7.4 Arhitectura de tip Harvard

Numele acestei arhitecturi provine de la sistemul de calcul Harvard Mark I, care stoca inforamțiile pe 24 de biți pe o bandă perforată, iar datele în contoare electromagnetice ce permiteau un maxim de 23 de cifre. Arhitectura Harvard este o arhitectură a calculatoarelor caracterizată prin stocarea separată a tuturor instrucțiunilor și a datelor.

Datorită cuvintelor lungi, a tehnologiei de implementare și a structurii memoriei de adresare diferite, în cadrul acestei arhitecturi nu este nevoie ca cele două tipuri de memorie să dispună de aceleași caracteristici. Microcontrolerele PIC au un cuvânt de date de 2 biți și o lungime a instrucțiunii de 12, 14, 16 sau 32 biți.

Fig.2.6 Arhitectura de tip Harvard

În perioada contemporană această arhitectură este utilizată în două tipuri de dispozitive:

Procesoarele de semnale specializate din cadrul dispozitivelor pentru prelucrarea semnalelor audio si video.

Microcontrolerele din cadrul aplicațiilor electornice cum ar fii AVR de la Atmel au o formă și dimensiune redusă folosind avantajul arhitecturii RISC, executând instrucțiunile într-un ciclu mașină.

2.8 Utilizarea microcontrolerelor

Toate aplicațiile în care sunt folosite microcontrolerele fac pare din categoria de sisteme încapsulate-integrate, la care existența unui sistem de calcul incorporat, este transparentă pentru utilizator.

În numeroase domenii de utilizare este practice un standard industrial și se pot menționa următoarele:

În industria de automobile: controlul aprinderii/motorului , climatizare, diagnoză, sisteme de alarmă, etc.

În electronice de consum cum sunt : sistemele audio, televizoare, camere video și videocasetofoane, telefonie mobilă, GPS-uri.

În aparatură electrocasnică: mașini de spălat, frigidere, cuptoare cu microunde, aspiratoare.

2.9 Tipuri de microcontrolere

2.9.1 Microcontrolerul PIC

Microcontrolerele PIC au fost dezvoltate de firma americană Microchip, la începutul anilor `90. Faptul remarcabil pentru care a putut cuceri un important segment din piața de microcontrolere a fost modalitatea simplă de înscriere a programului (serială, necesită doar trei fire), memoria program conținută în aceeași capsulă, noua tehnologie CMOS de realizare (deci consum redus) și prețul relativ scăzut.

Aproape toate microcontrolerele PIC există în două versiuni, și anume:

1."Windowed", marcate cu sufixul "JW" pe capsulă (Ex. 12C509-04/JW). Aceste chip-uri sunt utilizate la dezvoltarea de aplicații deoarece permit ștergerea programului și reînscrierea lui, de mai multe ori. Ștergerea programului se face prin expunerea chip-ului la raze ultraviolete. Capsula are dotată pe partea de sus o fereastra din sticla de cuarț prin care pot patrunde razele ultraviolete.

2."OTP" (One Time Programable), cele programabile o singura dată. Funcțional și tehnologic sunt identice cu cele "windowed", doar că nu au prevazută fereastra de cuarț, deci programul odata înscris nu mai poate fi șters. Deci o aplicație gata dezvoltată și încercată cu o versiune "windowed" poate fi multiplicată pentru producție de serie în capsule "OTP" care sunt de câteva ori mai ieftine.

Aceste două versiuni, Windowed si OTP sunt realizate în tehnologie CMOS EPROM.

Fig.2.7 Denumirea pinilor unui microcontroler PIC 12F675

2.9.2 Microcontrolerul ATMega16

ATmega 16 este un microcontroler CMOS de 8 biți de mică putere bazat pe arhitectura RISC AVR îmbunatațită.

Dispune de un set de 131 instrucțiuni și 32 de regiștri de uz general. Cele 32 de registre sunt direct adresabile de Unitatea Logica Aritmetica (ALU), permițând accesarea a două registre independente într-o singură instrucțiune. Se obține astfel o eficiență sporită în execuție (de până la zece ori mai rapide decât microcontrorelerele convenționale CISC).

ATmega16 este un microcontroler RISC pe 8 biți realizat de firma Atmel. Caracteristicile principale ale acestuia sunt:

-16KB de memorie Flash reinscripțibilă pentru stocarea programelor

-1KB de memorie RAM

-512B de memorie EEPROM

-două numărătoare/temporizatoare de 8 biți

-un numărător/temporizator de 16 biți

-conține un convertor analog – digital de 10 biți, cu intrări multiple

-conține un comparator analogic

-conține un modul USART pentru comunicație serială (port serial)

-dispune de un cronometru cu oscilator intern

-oferă 32 de linii I/O organizate în patru porturi (PA, PB, PC, PD).

Fig.2.8 Descrierea pinilor microcontrolerului ATMega16

2.10 Tipuri de microcontrolere utilizate de Arduino

2.10.1 Arduino UNO

Această placă de dezvoltare este una dintre cele mai utilizate, avănd un microcontroler ATmega8U2, conectarea la computer se realizează cu ajutorul cablului USB standard A-B. Acestei placi se poate adăuga diferite module sau diferite plăci cu, caracteristici speciale și specific unor tipuri de aplicații.

Fig.2.9 Arduino UNO

2.10.2 Arduino Mega 2569

Arduino Mega dispune de un spațiu dublu față de Arduino UNO, folosind un microcontroler de tip ATmega2560.

Fig.2.10 Arduino Mega

2.10.3 Arduino Mini

Această placă de dezvoltare este cea mai mică, ea funcționează bine pentru aplicații în care spațiul este limitat, având un microcontroler de tip Atmega328P.

Se poate conecta la calculator prin intermediul unui cablu mini USB adapter.

Fig.2.11 Arduino Mini

2.10.4 Arduino Nano

De asemenea Arduino Nano utilizează microcontrolerul de tip Atmega328P, conectarea se realizează prin intermediul unui cablu de tip USB Mini B.

Fig.2.12 Arduino Nano

2.10.5 Arduino LilyPad

Acest tip de Arduino este des întâlnit în aplicații implementate pe materiale textile, având un microcontroller de tip ATmega 168 sau ATmega 328V.

Fig.2.13 Arduino LilyPad

2.10.6 Arduino Fio

Arduino Fio dispune de un microcontroler de tip ATmega328P și este special proiectat pentru aplicații fără fir având inclus un conector pentru un modul radio Wi-Fi XBee.

Fig.2.14 Arduino Fio

2.10.7 Arduino Serial Signal Sided

Această placă este creată pentru a putea fii asamblată și manual de către utilizatorul direct. Este de doua tipuri, având doua microcontrolere diferite: ATmega 168 sau ATmega 328P.

Fig.2.15 Arduino Serial Signal Sided

CAPITOLUL 3. BLUETOOTH

3.1 Descriere generală

Bluetooth reprezintă un set de specificații pentru o rețea personală, fără fir (wireless), fiind bazată pe unde radio. Prin aceasă tehnologie se elimină firele și cablurile între diferiele dispozitive staționare sau mobile.

Tehnologia Bluetooth promovează atât comunicația de date cât și pe cele vocale și de asemenea oferă posibilitatea de sincronizare între diverse dispozitive.

Logo-ul Bluetooth își are originea în istoria nordică, ea este o combinație a inițialelor regelui Harald, Hagal și Bjarkan, simboluri provenite dintr-un alfabet runic, care datează încă din secolul al IX-lea.

Fig.3.1 Prima inițială a regelul Harald

Fig.3.2 Cea de a doua inițială a regelui Harald

Fig.3.3 Combinația celor doua inițiale ale regelui Harald, logo-ul Bluetooth

3.2 Modul de funcționare al tehnologiei Bluetooth

Această tehnologie operează pe plaja de frecvență 2400-2483.5 MHz pentru comunicațiile globale nelicențiate, iar pe frecvența de 2.4 GHz unde radio de frecvență scurtă pentru domenii Stiințifice și Medicale. Datele transmise sunt împărțite în diferite pachete, fiecare din acestea fiind transmise pe unul din cele 79 de canale Bluetooth.

Fiecare canal de transmitere având o lungime de bandă de 1 MHz, primul începând de la 2402 MHz continuând până la 2480 MHz.

Prin tehnologia Bluetooth se poate ajunge la o cale securizată de schimb de fișiere între dispozitive cum sunt telefoanele mobile, laptop-urile, calculatoarele etc.

Fig.3.4 Diferite domenii de aplicare a tehnologiei Bluetooth

3.3 Versiuni Bluetooth

Bluetooth 1.0 și 1.0B

Aceste versiuni a aparut în anul 1999, fiind primele, dezvoltatorii au întâmpinat numeroase probelme tehnice.

Bluetooth 1.1

Erorile identificate în versiunea 1.0B au fost reparate iar pe lângă acest fapt dezvoltatorii au adăugat un indicator al puterii semnalului de transmisie.

Bluetooth 1.2

Această versiune vine cu o îmbunătățire a versiunii 1.1, viteza transmisiei de date fiind mărită la 721 kbps.

Bluetooth 2.0

Această versiune este iar îmbunătățită, având o viteză de transmisie mai mare, numită Enhanced Data Rate, aavând o viteză de 3.2Mbit/s. Îmbunătățirea a creeat efecte pozitide din privința vitezei de transmisie, a consumului de energie care a scăzut precum și rata erorilor de transmisie mai scăzută.

Bluetooth 3.0 V

În data de 21 Arpilie 2009 Bluetooth SIG (Grup de Interes Special) a adoptat această versiune, având o viteză de transfer de până la 24 Mbit/s, atingerea acestei viteze a fost posibilă datorită introducerii unui legături 802.11.

Bluetooth 4.0

În anul 2010 iunie 30 versiunea această a fot adoptată de către Bluetooth SIG, incluzând protocoale Bluetooth classic, de viteză ridicată, cun un consum de energie foarte scăzut.

3.4 Comunicația Bluetooth

Tehnologia Bluetooth diferă de rețelele cablate, neexistând nici un cablu între dispozitivele care comunică între ele și s-ar putea ca ele să nu cunoască, cu ce alte dispositive comunică și care sunt capabilitățile acelora. Pentru a rezolva această problemă Bluetooth utilizează mecanismele Inquiry, Paging și Service Discovery Protocol (SDP).

Pentru a descoperi dispozitivele Bluetooth se inițiază procedura de Inquiry pentru a sonda vecinătatea cu alte dispositive. Un dispozitiv transmite o serie de pachete numite Freqency Hop Synchronisation (FHS) care la rândul lui conține informațiile necesare de care este nevoie pentru a realiza o legătură cu celălalt dispozitiv. De asemenea acesta conține informații referitoare la clasa dispozitivului, informații structurate pe două nivele: părți majore ( a fost descoperit un telefon) și părți minore (telefonul descoperit este un telefon celular).

CAPITOLUL 4. ROBOȚI MOBILI

4.1 Introducerea în roboții mobili

Robotul mobil este un sistem complex care poate realiza numeroase activități într-o varietate de situații specifice lumii reale. El este o combinație de dispozitive echipate cu servomotoare și senzori (aflate sub controlul unui sistem ierarhic de calcul) ce operează într-un spațiu real, marcat de o serie de proprietăți fizice (de exemplu gravitația care influențează mișcarea tuturor roboților care funcționează pe pământ) și care trebuie să planifice mișcările astfel încât robotul să poată realiza o sarcină în funcție de starea inițială a sistemului și în funcție de informația existentă, legată de mediul de lucru.

Succesul în îndeplinirea acestor sarcini depinde atât de cunoștințele pe care robotul le are asupra configurației inițiale a spațiului de lucru, cât și de cele obținute pe parcursul evoluției sale.

Problemele specifice ce apar la roboții mobili ar fi următoarele: evitarea impactului cu obiectele staționare sau în mișcare, determinarea poziției și orientării robotului pe teren, planificarea unei traiectorii optime de mișcare.

În cazul unui sistem robotic automat distribuit pozițiile spațiale sunt de o extremă importanță și de ele depinde îndeplinirea scopurilor dorite și funcționarea întregului sistem. În altă ordine de idei, robotul trebuie să fie capabil să-și planifice mișcările, să decidă automat ce mișcări să execute pentru a îndeplini o sarcină, în funcție de aranjamentul momentan al obiectelor din spațiul de lucru.

Planificarea mișcărilor nu constă dintr-o problemă unică și bine determinată, ci dintr-un ansamblu de probleme dintre care unele sunt mai mult sau mai puțin variante ale celorlalte.

Evitare coliziunii cu obstacole fixe sau mobile (de exemplu alți roboți mobili) aflate în spațiul de lucru al robotului se poate face prin mai multe metode: realizarea unei apărători mecanice care prin deformare oprește robotul, folosirea senzorilor care măsoară distanța până la obstacolele de pe direcția de deplasare, folosirea senzorilor de proximitate, folosirea informațiilor corelate de la mai multe tipuri de senzori.

Localizarea obiectelor se poate realiza și prin contact fizic, dar acesta impune restricții asupra vitezei de mișcare a structurii manipulate. Contactul fizic dintre robot și obiectele din mediu generează forțe de reacțiune care modifică starea robotului. Vitezele mari de lucru fac ca efectele dinamice ale unui contact fizic cu obstacole sau obiecte manipulate să fie riscante (pot duce la deteriorarea obiectelor sau a robotului).

Navigarea robotului este posibilă și fără o determinare a poziției și orientării față de un sistem de coordonate fix, dar această informație este utilă pentru sisteme de comandă a mișcării. Dintre metodele de navigație mai des utilizate se pot menționa: măsurarea numărului de rotații făcute de roțile motoare, folosirea de acceleratoare și giroscoape, geamanduri electromagnetice instalate în teren, semnalizatoare pasive sau semipasive de tip optic sau magnetic.

Fig.4.1 Schema de control general a roboților mobili

4.2 Scurt istoric al roboților mobili

În anii 1948-1949 W.Grey Walter a început să construiască primii roboți autonomi, care aveau trei roti. Aceste vehicule aveau un senzor de lumină, senzor de atingere, un motor de propulsie, unul de direcție și două tuburi vacumatice în loc de processor. Chiar și cu acest design simplu, Grey a demonstrat că roboții săi au prezentat comportamente complexe .

El și-a numit creațiile lui „Machina Speculatrix” după tendința lor speculativă de a-și explora mediul lor. Primii doi roboți ai săi au fost numiți Elmer și Elsie (Electro Mechanical Robots, Light Sensitive)

Fig.4.2 Robotul mobil Elsie

Primul robot de uz general numit Shakey, includea inteligența artificială. În timp ce alți roboți trebuiau să fie instruiți la fiecare pas pentru a fi capabili de a finaliza o sarcină. Shakey putea analiza comenzile și le putea diviza în comenzi de bază folosind propriile facilități.

Proiectul a fost unul complex datorita naturii sale, acest proiect combinând cercetări în robotică, computer vision și procesarea limbajului natural. Shakey a fost dezvoltat la Centrul de Inteligență Artificială de la Standford Research Institute (acum numit SRI International).

Cele mai notabile rezultate ale acestui proiect au fost utilizarea algoritmului A* de căutare, transformările Hough precum și metoda grafurilor de vizibilitate.

Fig.4.3 Robotul mobil Shakey

Între anii 1964-1971 la Stanford Artificial Intelligence Lab (SAIL) a fost dezvoltat primul robot mobil autonom care utiliza ghidarea vizuală. Robotul era echipat cu un transmițător de televiziune de putere redusă și o posibilitate de comunicare radio.

Fig.4.4 Primul robot mobil autonom cu ghidare vizuală

Roboții din familia Hilare (Hilare, Hilare 2 și Hilare 2 bis) au fost construiți de Laboratoire d’Analyse et d’Architecture des Systemes între anii 1977-1992.

Robotul era un triciclu cu două roți conducătoare și una liberă alimentat la +24V cu patru procesoare Intel 80286, cu un modem radio serial, care avea în dotare senzori de odometrie, 16 senzori ultrasonici și un scaner laser cu o greutate de 400k

Fig.4.5 Hilare 2 bis

Genghis a fost conceput la MIT la mijlocul anilor 1980 menit să demonstreze eficacitatea folosirii a unui număr ridicat de roboți mobili mici și ușori pentru inspectarea și recunoașterea suprafeței planetei Marte. Genghis a fost prototipul roboților autonomi de tip „paianjen” Attila și Hannibal.

Genghis cântărea aproape 1 kilogram , avea în dotare 6 senzori piroelectrici pentru a detecte viața animală și era acționat de către 12 motoare care puneau în mișcare cele șase picioare care operau independent una de cealaltă.

Fig.4.6 Robotul Genghis

Sojourner, primul Rover Marțian a aselenizaat pe Marte în 4 decembrie 1996 în misiunea Pathfinder a fost proiectat să demonstreze o soluție de costuri redus pentru sisteme de cercetare pe solul marțian, fiind primul vehicul autonom cu roți utilizat pe o altă planetă. Misiunea a servit ca și punct de plecare pentru toate celelalte rovere marțiene.

Fig.4.7 Sojourner, primul robot mobil Marțian

ASIMO, cel mai complex robot humanoid care a fost dezvoltat de compania Honda, acest robot humanoid cântărea nu mai mult de 52 kg, având o înălțime de 1,2 m, o viteză de deplasare de 1,6 km/h, 26 grade de mobilitate, autonomie de lucru de 30 de minute.

ASIMO poate chiar să alerge și să urce pe scări, este suficient de flexibil și ponderat în manifestarea forței de care e capabil încât să poată deschide o sticlă și poate turna într-un pahar. În ultima perioadă ASIMO a învățat să vorbească foarte bine în limbajul semnelor și tinde să devină din ce în ce mai autonom.

În următorii ani se presupune că acest robot humanoid va fi capabil să ajute un bătrân singur în casă la toate activitățile zilnice.

Fig.4.8 Robotul humanoid ASIMO

4.3 Clasificarea roboților mobili

Roboții mobili se clasifică în felul următor:

4.3.1 În funcție de mărime, aceștia pot fi:

Macro

Micro

Nano-Roboți

4.3.2 În funcție de mediul în care acționează, aceștia pot fi:

Roboți tereștrii: se deplasează pe sol;

Roboți subacvatici: se deplasează sub apă;

Roboți zburători: se deplasează în aer;

Roboți extratereștrii: se deplasează pe solul altor planete aflate în spațiul cosmic;

4.3.3 În funcție de sistemul de acționare, sistem care le permite deplasarea, pentru deplasarea pe sol :

Roboți pe roți sau șenile

Roboți pășitori: bipezi, patrupezi, hexapezi, miriapozi;

Roboți târâtori: care imită mișcarea unui șarpe, care imită mișcarea unei râme. ș.a.m.d.

Roboți săritori, aceștia copiază deplasarea broaștelor, cangurilor ș.a.m.d.

Roboți de formă sferică, aceștia se deplasează prin rostogolire.

4.4 Utilizarea roboțlor mobili

Utilizările pentru care au fost, sunt și vor fi concepuți roboții mobili sunt dintre cele mai diverse. Mulți roboți din zona micro își găsesc utilizarea în medicină, fiind capabili să se deplaseze de-a lungul vaselor și tuburilor corpului omenesc, în scopul investigațiilor, intervențiilor chirurgicale, dozării și distribuirii de medicamente etc. La fel de spectaculoase sunt și multe utilizări ale macro-roboților:

4.4.1 În domeniul industrial, agricol și forestier:

Din domeniul industrial roboții mobili sunt reprezentați de AGV-uri (Automated-Guided Vehicles), vehicule pe roți, cu ghidare automată, care transportă și manipulează piese, constituind o alternativă flexibilă la benzile de montaj; în agricultură există tractoare și mașini agricole fără pilot, capabile să execute singure lucrările pe suprafețele pentru care au fost programate; în domeniul forestier roboții mobili pot escalada copacii înalți;

4.4.2 În domeniul militar:

Este luată în considerare de către armata americană perspectivele înlocuirii soldaților combatanți cu roboți, pentru a reduce riscul pierderilor umane în luptă; roboți mobili de cele mai ingenioase și robuste configurații sunt aruncați în clădi și incinte din zone de conflict, în scopuri de investigare și chiar anihilare a inamicului;

Fig.4.9 Sistem Integrat Telecomandat pentru Deminare

4.4.3 În domeniul unităților publice:

Una dintre cele mai utile și economice utilizări ale roboților mobili o reprezintă inspectarea conductelor de combustibili gazoși și lichizi și a canalelor de canalizare. De exemplu rețeaua de canalizare a Germaniei însumează 400.000 km, iar inspectarea și curățirea acesteia presupune costuri de 3,6 Euro pe metru. Numai 20% din conducte sunt accesibile, iar utilizarea roboților poate reduce costurile cu un sfert.

4.4.4 În domeniul distractiv și recreativ:

Sunt diferiți roboți mobili sub forma de jucării și roboți mobili pentru competiții.

4.4.5 În domeniul prestărilor de servicii:

Există posibilități deosebit de largi de implementare cum ar fi: roboți pentru deservirea bolnavilor în spitale, ajutorarea persoanelor bătrâne sau cu diferite handicapuri, ghidarea și informarea publicului în muzee, aspirarea și curățirea încăperilor, spălarea geamurilor și a pereților clădirilor.

4.4.6 În domeniul de pază și securitate:

Multe operații de inspectare și dezamorsare a unor obiecte și bagaje suspecte sunt executate de roboți.

4.4.7 În domeniul operațiilor de salvare:

Roboții salvatori sunt utilizați în operațiile de salvare a victimelor unor calamități: cutremure, incendii, inundații, avalanșe.

4.5 Structura roboților mobili

Structura roboților mobili corespunde arhitecturii generale a roboților, având două părți importante, acestea fiind următoarele:

4.5.1 Structura mecanică și manipulatorul care determină performanțele tehnice

Structura mecanică a roboților mobili este formată din :

Sistemul de locomoție (roți sau șenile), prin care se asigură deplasarea robotului pe o suprafață de lucru.

Sistemul de manipulare, este cel care asigură poziționarea și orientarea organului de lucru.

Robotul mobil în procesul de deplasare pe o anumită traiectorie este caracterizat prin trei funcții principale:

Funcția de locomoție;

Funcția de percepție și decizie;

Funcția de localizare.

4.5.2 Structura electronică și de comandă-control

Roboții mobili pot fi echipați cu cameră video sau alți senzori de percepere al mediului în care activează. Memoria robotului conținută în microcontroler înmagazinează cunoștințele necesare localizării tuturor segmentelor de traseu posibile.

Indiferent de generația robotului sau de probleme complexe care apar la realizarea structurii mecanice de volum, greutate și costuri reduse, la transmiterea mișcării și adaptarea la structura mecanică a motoarelor electrice și hidraulice, la proiectarea manipulatoarelor mecanice pentru a apuca obiecte de diferite forme.

Referitor la structura electronică, posibilitățile actuale permit folosirea a câte unui microprocesor pentru comanda fiecărui grad de mobilitate, precum și a altor microprocesoare specializate pentru tratarea semnalului senzorial. Robotul mobil interacționează cu mediul înconjurător prin structura sa mecanică, asigurând astfel deplasarea, poziționarea și orientarea organului de execuție.

4.6 Tipuri constructive de roboți mobili

4.6.1 Robotul AIRAT 2

Acest robot a apărut pe coperta publicației franceze „MICROS&ROBOTS”. AIRAT 2 este un robot de tip„micromouse” care are capacitatea de a rezolva un labirint și de asemenea are capacitatea de a învăța traseul parcurs.

Caracteristicile robotului AIRAT 2:

Capabil de reglare proprie

Folosește 6 senzori

Ușor de asamblat și dezasamblat

Port de reîncărcare

Acumulator NiMh-450

Fig.4.10 Robotul AIRAT 2

4.6.2 Robotul Pololu 3 Pi

Robotul Pololulu 3 Pi este o platformă mobilă care conține două motoare cu cutie de viteze, 5 senzori de reflexie, un LCD 8×2, un buzzer și trei butoane, toate conectate la un microcontroler programabil Atmega328. Acest robot este capabil de viteze pana la 1 m/s și este proiectat pentru a excela în competiții precum urmărirea liniei sau rezolvarea labirintelor.

Fig.4.11 Robot Pololu 3 Pi

4.6.3 Robotul Inex POP-Bot Standard

Robotul Inex POP-Bot Standard este alcătuită dintr-o platformă mobilă cu dimensiunea de 80×60 cm, pe care se găsesc două motoare de acționare comandate de un driver, un microcontroler POP-168, modul de butoane cu cablu JST, senzor de distanță infraroșu GP2D120, placă cu senzori de reflexie.

Fig.4.12 Robot Inex POP-Bot Standard

CAPITOLUL 5. DEZVOLTAREA UNUI SISTEM DE COMANDĂ PRIN BLUETOOTH PENTRU UN ROBOT AUTONOM

5.1 Tema și obiectivele proiectului

Prezenta lucrare descrie modul în care se poate realiza un robot mobil autonom precum și dezvoltarea unui sistem de comandă cu ajutorul unui modul bluetooth.

Robotul mobil trebuie să respecte următoarele cerințe:

1.Să fie autonom;

2.Să poată fi comandat cu ajutorul unui sistem de comandă;

3.Să poată comunica, cu dispozitivul de comandă folosind o conexiune fără fir;

4.Să aibă costuri de implementare scăzute.

În această lucrare am conceput și construit un robot capabil de a se deplasa autonom, de a ocoli obstacole și care poate comunica prin intermediul tehnologiei bluetooth cu un dispozitiv pe care rulează un sistem de operare de tip Android.

Pentru realizarea acestei lucrări am ales ca și platformă de dezvoltare o placă de tip Arduino UNO, fiind la un preț scăzut dar oferind o putere de procesare și un număr de porturi I/O atât digitale cât și analogice suficiente pentru realizarea robotului propus.

Pentru colectarea datelor din mediu am utilizat un senzor ultrasonic de tip HC-SR04 și un servomotor de tip TowerPro SG90 pentru a oferi mobilitate acestuia.

Șasiul este realizat personal, având două roți acționate de motoare de curent continuu de +6V cu reducție.Șasiul creat oferă o mobilitate bună robotului, având un nivel de complexitate mediu.

5.2 Componentele hardware

Componentele utilizate pentru a realiza acest proiect sunt următoarele:

Placa de dezvoltare – Arduino UNO R3

Senzor ultrasoni de distanță – HC-SR04

Servomotor – TowerPro SG90

Driver de motoare cu circuitul integral – L298N

Modul Bluetooth – HC-06

Motoare și ansamblu de reductoare 1:48

Roți special realizate pentru acest tip de motor

Roată de sprijin metalică (Ball Caster)

Șasiu

Breadboard și fire de conexiune

Sursă de alimentare – acumulatori

5.2.1 Placa de dezvoltare Arduino UNO R3

Este o placă de dezvoltare ce are la bază microcontrolerul Atmega328p, acesta dispune de 14 pini digitali de tipul IN/OUT (intrare/ieșire), dintre care 6 pot fi folosiți ca și pini de PWM (Pulse-Width Modulation) OUT, 6 pini de tipul intrări analogice, un osciloscop de 16 MHz, conector USB, port de alimentare și un buton pentru resetare.

De asemenea această placă de dezvoltare conține toate elementele necesare fincționării microcontrolerului.

O diferență majoră față de predecesorii acestui tip de Arduino UNO este faptul că nu mai folosește circuitul auxiliar de programare FDTI USB serial. Pe de altă parte se folosește de ATmega16U2, programat ca și convertor USB serial.

Cuvântului „UNO” se traduce din limba italiană în „unu” și semnifică lansarea versiunii 1.0 a mediului de dezvoltare Arduino.

Fig.5.1 Placa de dezvoltare Arduino UNO R3

Tabelul 5.1 Detalii tehnice Arduino UNO R3

Toți cei 14 pini ai acestei plăci de dezvoltare poat fi utilizați ca și intrare sau ca și ieșire utilizând funcțiile pinMode(), digitalWrite(), digitalRead(), aceștia funcționează la tensiunea de 5V și la curentul de 40mA, de asemenea au o rezistență cuprinsă între 20-50 kOhmi.

Pinii cu funcții speciale ale acestei plăci Arduino sunt:

a.) LED: De pinul digital 13 este conectat un LED.

b.) PWM: 3, 5, 6, 9, 10 și 11 oferă un semnal de ieșire pe 8 biți folosind funcția analogWrite().

c.) Întreruperi externe: 2 și 3, acești pini pot fi utilizați pentru a activa întreruperi în momentul în care s-au detectat valori mici precum ar fii o muchie crescătoare / descrescătoare, sau schimbarea stării acesteia.

Arduino UNO R3 dispune și de 6 pinii care sunt intrări de tip analogic ( A0 – A5). Acești pini având o rezoluție de 10 biți.

Arduino UNO R3 oferă o multitudine de facilități de comunicare între el și computer sau cu o altă placă.

Fig.5.2 Numerotar pini Atmega328P

5.2.2 Senzorul ultrasonic de distanță HC-SR04

Senzorul ultrasonic de distanță HC-SR04 are capacitatea de a măsura de la o distanță de 2 cm până la distanța de 400 cm, având o precizie de până la 3 mm. Acesta conține atât transmițătorul cât și receptorul ultrasonic

Fig.5.3 Senzorul ultrasonic de distanță HC-SR04

Măsurarea distanței se realizează cu ajutorul emițătorului care emite opt pulsuri acustice scurte de 40KHz și așteaptă ca acestea să se întoarcă. În momentul în care pulsurile emise au fost receptate se poate calcula timpul de la momentul în care a fost emis semnalul până în momentul în care acestea au fost receptate.

Distanța se poate calcula ca fiind jumătate din durata timpului (de la emiterea semnalului până la recepționarea acestuia) înmulțit cu viteza sunetului care este 340 m/s.

Tabel 5.2 Detalii tehnice senzor ultrasonic de distanță HC-SR04

Fig.5.4 Principiul de funcționare al senzorului HC-SR04

5.2.3 Modul Bluetooth HC-06

Acest modul face parte din standardul Bluetooth V2.0+EDR (Enhanced Data Rate) și atinge o viteză de transfer de până la 3 Mbps, transmițătorul radio funcționează la o frecvență de 2.4 GHz. Acest modul utilizează chipul CSR Bluecore 04 extern cu tehnologie CMOS și AFH (Adaptive Frequency Hopping Feature) de asemenea are dimensiuni foarte reduse (12,7 mm x 27 mm), dimensiune ideală pentru proiecte de dimensiuni mici.

Fig.5.5 Modul Bluetooth HC-06

Tabel 5.3 Detalii tehnice modul Bluetooth HC-06

5.2.4 Modul L298N pentru motoare

Acest modul are la bază un circuit cunoscut sub denumirea de dual full-bridge L298N în limba română cunoscut sub denumirea de punte H .Integratul monolitic L298N este de tensiune înaltă și curenți mari (2A), creat pentru a admite standardul TTL logic și de a furniza la ieșire sercini inductive precum relee, motoare alimentate cu VDC sau motoare pas cu pas.

Puntea H este în principiu un circuit cu patru comutatoare, ce acționează câte două odată pe diagonală, pentru a schimba sensul de rotație al motorului. Acese comutatoare sunt realizate de obicei cu tranzistoare MOSFET sau cu tranzistoare Darlington.

Fig.5.6 Modul L298N

Tabel 5.4 Detalii tehnice modul L298N pentru motoare

Fig.5.7 Integratul L298N

Schema unei punți H folosind dispozitive discrete este prezentat în figura 5.8, tranzistoarele utilizate sunt de tip PNP și la fiecare sens de rotație sunt în conducție două din ele.

Diodele în acest circuit au rolul de protecție sau chiar de blocare a celorlalte două tranzistoare. Circuitul întreg este alimentat la o tensiune de 12 V și comanda pe baza tranzistoarelor de tip NPN este de 5 V, comandat fiind de către microcontroler.

Fig.5.8 Schema de principiu a punții H

5.2.5 Motoare și ansamblu de reductoare 1:48

Motorul și ansamblul de reductoare este ideal pentru un robot mobil, datorită dimensiunilor mici și puterii mari. Pentru aceste motoare este necesar o tensiune de 6V, curentul de rulare în gol este de 120mA, iar curentul în sarcină poate ajunge la 800 mA, ansamblul de reducție oferă un cuplu de 0,8Kg*cm.

Fig.5.9 Motoare și ansamblu de reductoare 1:48

Tabel 5.5 Detalii tehnice motoare și ansamblu de reductoare 1:48

5.2.6 Servomotor TowerPro SG90

Un servomotor este un actuator ce permite controlul exact al poziției unghiulare, al vitezei precum și a accelerației . Acest servomotor este format dintr-un ansamblu de roți dințate cu ajutorul cărora se reduce viteza de rotație și se crește cuplul, precum și un senzor pentru a returna poziția exactă a rotorului.

Fig.5.10 Servomotor TowerPro SG90

Tabel 5.6 Detalii tehnice servomotor TowerPro SG90

5.3 Realizarea conexiunilor hardware

Pentru a realiza conexiunile hardware voi utiliza un program open-source numit Fritzing. Cu ajutorul acestui software am să prezint pas cu pas fiecare conexiune la placa de dezvoltare Arduino UNO R3 a fiecărei componente în parte, precum și realizarea conexiunilor fizice.

5.3.1 Conectarea senzorul ultrasonic de distanță HC-SR04

Senzorul HC-SR04 conține patru pini din care doi sunt pentru alimentare iar ultimi doi se numesc TRIG și ECHO. În figura următoare se realizează conexiunea.

Fig.5.11 Conectare HC-SR04 la Arduino

Senzorul ultrasonic de distanță HC-SR04 are nevoie de o tensiune de 5V, așa că acesta va fi alimentat de la Arduino. Astfel vom conecta pinul TRIG (violet) la pinul A1 iar pinul ECHO (verde) la pinul A2 al plăcii Arduino, astfel acesta va fi setat ca și ieșire analogică.

Realizarea conexiunilor fizice:

Fig.5.12 Conectare fizică HC-SR04 la Arduino

5.3.2 Conectarea servomotorului

Servomotoarele pot fi de diverse dimensiuni și puteri, permițând controlul exact al poziției unghiulare, al vitezei și accelerației. Pentru realizarea acestui proiect am utilizat un servomotor ce poate fi alimentat la o tensiune de 5V dezvoltând un cuplu maxim 90g. Pentru funcționarea sevomotorului este necesar un singur pin digital pe care l-am conectat la pinul digital 11 (galben) pe placa de dezvoltare Arduino .

În figura următoare se prezintă realizarea conexiunilor.

Fig.5.13 Conectare servomotor la Arduino

Realizarea conexiunilor fizice:

Fig.5.14 Conectare fizică servomotor la Arduino

5.3.3 Conectarea modulului Bluetooth HC-06

Modulul Bluetooth HC-06 are nevoie de o tensiune de alimentare de 3.3V, astfel alimentarea se va realiza de la placa de dezvoltare Arduino. Acest modul prezinta doi pini pentru alimentare (VCC și GND) precum și doi pini pentru transferul de date numiți TX și RX, acești pini se conectează la placa Arduino în felul următor:

Modul – Arduino :

1. RX (galben) – TX

2.TX (verde) – RX

În figura următoare se prezintă realizarea conexiunilor.

Fig.5.15 Conectare modul Bluetooth HC-06

Realizarea conexiunilor fizice:

Fig.5.16 Conectare fizică modul Bluetooth la Arduino

5.3.4 Conectarea motoarelor la puntea H și Arduino

Motoarele care vor acționa roțile necesită o sursă separată de alimentare, deoarece acestea au nevoie de o tensiune și un curent mai mare, în cazul nostru 6V și 1A / motor.

În figura următoare se prezintă realizarea conexiunilor.

Fig.5.17 Conectarea motoarelor la puntea H și Arduino

Precum se poate observa în figura de mai sus modulul L298N conține patru ieșiri (OUT 1, OUT 2, OUT 3, OUT 4), motorul din stânga fiind conectat la OUT 1 și OUT 2 iar motorul din dreapta este conectat la OUT 3 și OUT 4. De asemenea controlul microcontrolerului asupra celor două motoare se realizează prin semnale PWM cu ajutorul conexiunilor realizate între pinii digitali 5 (gri), 6 (albastru), 9 (violet), 10 (maro) și IN1, IN2, IN3, IN4, intrări ale modulului L298N.

Vom alimenta separat atât puntea H precum și placa Arduino cu o tensiune de 9V.

Realizarea conexiunilor fizice:

Fig.5.18 Conectare fizică a motoarelor la puntea H și la Arduino

5.3.5 Conectarea finală a robotului autonom

Acum după ce am reușit să prezint conectarea fiecarei componente în parte la placa Arduino aș dori să le suprapun pentru a finaliza partea hardware a robotului autonom.

În figura următoare se prezintă realizarea conexiunilor finale.

Fig.5.19 Asamblarea finală a robotului autonom

Realizarea conexiunilor fizice:

Fig.5.20 Conectarea fizică finală a robotului autonom

Fig.5.21 Conectarea finală, vedere din față

Fig.5.22 Conectarea finală, vedere din stânga

Fig.5.23 Conectarea finală, vedere din dreapta

Fig.5.24 Conectarea finală, vedere din spate

5.4 Componentele software

Partea de software al acestei lucrări este alcătuită din doua aplicații, una fiind pentru Arduino iar cea de a doua fiind pentru dispozitivele mobile ce rulează sistemul de operare Android, aceste aplicații pot comunica între ele fară nici o conexiune fizică prin intermediul tehnologiei Bluetooth.

5.4.1 Aplicația de pe dispozitivul mobil

Această aplicație are rolul de a crea o interfață directă cu utilizatorul în scopul de a oferi un control asupra robotului. Astfel voi utiliza o aplicație compatibilă cu sistemul de operare Android, utilizând un telefon mobil de tip Samsung Note 8.

Aplicația utilizată poate găsi dispozitivele Bluetooth împerecheate cu dispozitivul mobil și ne oferă posibilitatea de a ne conecta la dispozitivul dorit.

În figura următoare se prezintă afișarea dispozitivelor pregătite pentru împerechere, HC-06 fiind modulul bluetooth utilizat în această aplicație.

Fig.5.25 Afișarea dispozitivelor pregătite pentru interconectare

În momentul în care conexiunea a fost realizată, pe interfața grafică a aplicației se poate observa în partea stângă sus o bulină roșie, bulină care își modifică, culoarea din roșu în verde în momentul interconectării.

Fig.5.26 Validarea interconectării dispozitivelor

După stabilirea conexiunii între dispozitivul mobil și robot, se poate comanda robotul cu cele patru butoane de comandă ale aplicației.

Fig.5.27 Butoanele de comandă a robotului mobil

Programul după care rulează robotul este atașat în anexă.

Concluzii

Proiectul de față descrie modul de implementare al unui robot autonom mobil, cu ajutorul unei plăcuțe de dezvoltare Arduino UNO R3 și interfața de comandă fără fir pe un dispozitiv cu un sistem de operare Android folosind comunicarea prin Bluetooth.

Robotul de față reușește să îndeplinească toare sarcinile pentru care a fost conceput, el poate să ruleze atât într-un mod autonom cât și în unul manual. Acest ansamblu format din Android și robot mobil, poate fii integrat într-un robot de uz casnic de tipul aspiratorului robot, robot care menține pișcina curată, robot care tunde iarba din curte.

Comunicarea cu un dispozitiv fără fir îi poate aduce numeroase aplicații chiar și în zonele afectate de catastrofele naturale, un exemplu poate fi în cazul unui cutremur.

Puținele dezavantaje pe care le prezintă acest tip de robot fiind mica distanță de la care poate fi comandata nu depășește 10 m, durata deviață a bateriilor precum și precizia senzorilor.

Anexa 1. Programul rulat pe Arduino UNO R3 comandat prin intermediul bluetooth

int m1F = 5;

int m1R = 6;

int m2F = 9;

int m2R = 10;

int vel = 255;

int estado = 103;

void fata();

void stopp();

void stanga();

void dreapta();

void spate();

void setup() {

Serial.begin(9600);

pinMode(m1F, OUTPUT);

pinMode(m1R, OUTPUT);

pinMode(m2F, OUTPUT);

pinMode(m2R, OUTPUT);

}

void loop(){

if(Serial.available()>0){

estado = Serial.read();

}

if(estado==70){ //fata

fata();}

if(estado==82){ // dreapta

dreapta();

}

if(estado==83){ // Stop

stopp();

}

if(estado==76){ // stanga

stanga();

}

if(estado==66){ // spate

spate();

}

}

void stanga() {

Serial.println("Stanga");

analogWrite(m1R, 0);

analogWrite(m1F, vel);

analogWrite(m2F, 0);

analogWrite(m2R, vel);

}

void dreapta() {

Serial.println("Dreapta");

analogWrite(m1R, vel);

analogWrite(m1F, 0);

analogWrite(m2R, 0);

analogWrite(m2F, vel);

}

void spate() {

Serial.println("Spate");

analogWrite(m1R,vel);

analogWrite(m1F, 0);

analogWrite(m2F, 0);

analogWrite(m2R,vel);

}

void fata() {

Serial.println("Fata");

analogWrite(m1R, 0);

analogWrite(m2R, 0);

analogWrite(m1F, vel);

analogWrite(m2F, vel);

}

void stopp() {

Serial.println("Stopp");

analogWrite(m1F, 0);

analogWrite(m1R, 0);

analogWrite(m2F, 0);

analogWrite(m2R, 0);

}

Anexa 2. Programul rulat pe Arduino UNO R3 al robotului autonom

#include <Servo.h> //Servo motor library. This is standard library

#include <NewPing.h> //Ultrasonic sensor function library. You must install this library

//our L298N control pins

const int LeftMotorForward = 6;

const int LeftMotorBackward = 7;

const int RightMotorForward = 4;

const int RightMotorBackward = 5;

//sensor pins

#define trig_pin A1 //analog input 1

#define echo_pin A2 //analog input 2

#define maximum_distance 200

boolean goesForward = false;

int distance = 100;

NewPing sonar(trig_pin, echo_pin, maximum_distance); //sensor function

Servo servo_motor; //our servo name

void setup(){

pinMode(RightMotorForward, OUTPUT);

pinMode(LeftMotorForward, OUTPUT);

pinMode(LeftMotorBackward, OUTPUT);

pinMode(RightMotorBackward, OUTPUT);

servo_motor.attach(10); //our servo pin

servo_motor.write(115);

delay(2000);

distance = readPing();

delay(100);

distance = readPing();

delay(100);

distance = readPing();

delay(100);

distance = readPing();

delay(100);

}

void loop(){

int distanceRight = 0;

int distanceLeft = 0;

delay(50);

if (distance <= 20){

moveStop();

delay(300);

moveBackward();

delay(400);

moveStop();

delay(300);

distanceRight = lookRight();

delay(300);

distanceLeft = lookLeft();

delay(300);

if (distance >= distanceLeft){

turnRight();

moveStop();

}

else{

turnLeft();

moveStop();

}

}

else{

moveForward();

}

distance = readPing();

}

int lookRight(){

servo_motor.write(50);

delay(500);

int distance = readPing();

delay(100);

servo_motor.write(115);

return distance;

}

int lookLeft(){

servo_motor.write(170);

delay(500);

int distance = readPing();

delay(100);

servo_motor.write(115);

return distance;

delay(100);

}

int readPing(){

delay(70);

int cm = sonar.ping_cm();

if (cm==0){

cm=250;

}

return cm;

}

void moveStop(){

digitalWrite(RightMotorForward, LOW);

digitalWrite(LeftMotorForward, LOW);

digitalWrite(RightMotorBackward, LOW);

digitalWrite(LeftMotorBackward, LOW);

}

void moveForward(){

if(!goesForward){

goesForward=true;

digitalWrite(LeftMotorForward, HIGH);

digitalWrite(RightMotorForward, HIGH);

digitalWrite(LeftMotorBackward, LOW);

digitalWrite(RightMotorBackward, LOW);

}

}

void moveBackward(){

goesForward=false;

digitalWrite(LeftMotorBackward, HIGH);

digitalWrite(RightMotorBackward, HIGH);

digitalWrite(LeftMotorForward, LOW);

digitalWrite(RightMotorForward, LOW);

}

void turnRight(){

digitalWrite(LeftMotorForward, HIGH);

digitalWrite(RightMotorBackward, HIGH);

digitalWrite(LeftMotorBackward, LOW);

digitalWrite(RightMotorForward, LOW);

delay(500);

digitalWrite(LeftMotorForward, HIGH);

digitalWrite(RightMotorForward, HIGH);

digitalWrite(LeftMotorBackward, LOW);

digitalWrite(RightMotorBackward, LOW);

}

void turnLeft(){

digitalWrite(LeftMotorBackward, HIGH);

digitalWrite(RightMotorForward, HIGH);

digitalWrite(LeftMotorForward, LOW);

digitalWrite(RightMotorBackward, LOW);

delay(500);

digitalWrite(LeftMotorForward, HIGH);

digitalWrite(RightMotorForward, HIGH);

digitalWrite(LeftMotorBackward, LOW);

digitalWrite(RightMotorBackward, LOW);

}

Bibliografie

1.Isaac Asimov 1942. Runaround

2. https://ro.wikipedia.org/wiki/Microcontroler

3.Prof.dr.ing.habil. Radu Tarcă. Roboți mobili

4. https://ro.wikipedia.org/wiki/Bluetooth

5. https://ro.wikipedia.org/wiki/Robot

Similar Posts