Calea Mărășești, Nr. 157, Bacău, 600115, Tel.Fax 40 234 580170 [302198]

[anonimizat]. 157, Bacău, 600115, Tel./Fax +40 234 580170

http://inginerie.ub.ro, [anonimizat]

PROGRAM DE STUDII MECATRONICA SI ROBOTICA

PROIECT DE DIPLOMĂ

Coordonator Științific Absolvent: [anonimizat]. Rotar Dan Vărvărici Alexandru Ionuț

2017

Tema proiectului:

ROBOT PENTRU INTERVENȚII.

CUPRINS

Capitolul I. CERINȚELE PROIECTULUI ……………………………………………………………..3

1.1 Tema de proiectare ………………………………………………………………………………………3

Capitolul II. INTRODUCERE ……………………………………………………………………………..4

2.1 Roboti mobili ……………………………………………………………………………………………….6

2.2 Pârtile componente a roboților mobili …………………………………………………………….12

2.3 Roboți dezvoltați pentru intervenții în cadrul scurgerilor de gaz …………………………13

Capitolul III. REALIZAREA PROIECTULUI ………………………………………………………..18

3.1 Componentele robotului mobil …………………………………………………………………..18

3.1.1 Placa Arduino ………………………………………………………………………………………….18

3.1.2 Puntea L298N ………………………………………………………………………………………….22

3.1.3 Modulul Bluetooth HC-05 …………………………………………………………………………..26

3.1.4 Display LCD KeyPad cu shield pentru Arduino …………………………………………….28

3.2 Senzorii …………………………………………………………………………………………………….29

3.2.1 Generalități ……………………………………………………………………………………………..29

3.2.2 Senzorul de gaz MQ-2 ………………………………………………………………………………30

3.2.3 Senzorul de temperatură și umiditate ………………………………………………………….32

3.2.4 Senzorul de prezență PIR (Pyroelectric ("Passive") InfraRed)…………………………33

3.3 Controlul robotului mobil ………………………………………………………………………….35

3.3.1 Aplicația folosită ………………………………………………………………………………………35

3.3.2 Schema de comandă a robotului mobil ……………………………………………………….36

3.3.3 Elementele cinematice ale angrenajului ………………………………………………………37

3.3.4 Diagrama circuitului electric pentru alimentarea si comanda robotului ……………..38

3.3.5 Programul pentru placa Arduino …………………………………………………………………39

3.3.5 Diagrama circuitului electric pentru partea senzorială a robotului ……………………42

3.3.7 Programul pentru placa Arduino …………………………………………………………………43

Capitolul IV. CONCLUZII …………………………………………………………………………………42

Bibliografie …………………………………………………………………………………………………….49

CAP. I CERINȚELE PROIECTULUI

Tema de proiectare

CAP. II INTRODUCERE

Detectarea scurgerilor de gaz este esențială pentru asiguarea siguranței vieții umane și a investițiilor referitoare la echipamentele din domenii industriale mari si locuri publice. Scurgerile de gaz pot fi descoperite de senzori de gaz staționari; cu toate acestea, controlul manual este mult mai eficient. Membrii personalului instruit pot inspecta si scana echipamente si conducte de gaz cu ajutorul detectoarelor de scurgeri de gaze.

Mini-roboții au devenit o necesitate in domeniul cercetării si dezvoltării tehnologice în domeniu. Motivul care a dus la utilizarea roboților mobili este exprimat în necesitatea de a extinde gama de aplicații in robotică, începând de la posibilitatea folosirii lor pe timp nelimitat, spre deosebire de roboții manipulatori ficși care sunt limitați în a efectua sarcini într-un spațiu de lucru determinat de dimensiunile sale fizice.

Prin urmare, pentru a crește mobilitatea roboților și, prin urmare, capacitatea lor de a lucra este necesară dezvoltarea unui robot ieftin și eficient. În plus, acești roboți trebuie sa fie capabili să se adapteze la o mare varietate de terenuri și să acționeze fie în mod independent, fie prin comandarea lor in medii diferite. Acest lucru face referire la abilitatea robotului de a răspunde schimbării, situații imprevizibile sau ambigue fără supraveghere umană, acesta realizându-se folosind senzori, dându-i astfel mini-robotului capacitatea de a se adapta la diferite situații. Deși s-au dezvoltat deja câțiva roboți de acest gen, nici unul dintre ei nu a fost folosit adăugând si un dispozitiv mobil, de obicei s-a folosit o combinație dintre o interfață om-mașina folosind si un dispozitiv mobil. Microcontrolerul dezvoltat pentru robotul mobil cu senzor de gaz este propus de astfel si pentru a reduce volumul de muncă în inspecția si mentenanța conductelor de gaz.

Detectarea gazelor din interiorul conductelor este dificilă deoarece gazul pe lângă faptul ca este foarte imflamabil, conducta se poate întinde pe distanțe de mii de kilometri. Propritățile combustibile ale gazului LPG (Liquified Petroleum Gas) duce la distrugerea în masă a proprietăților si apariția multor victime umane.

Robotul mobil detector de gaz a demonstrat capacitatea de a detecta gaze LPG la o scurgere folosind un senzor de gaz LPG. Dezvoltarea proceselor inovative de monitorizare, profită de tehnologia de măsurare și automatizarea tehnologiei, precum și promisiunile dezvoltării roboților în fiabilitate, eficiență și eficacitatea costurilor inspecțiilor.

Obiectivul principal al prezentei lucrări este acela de a oferi un nou mijloc de detectare în siguranță a oricărei disfuncționalități a unui sistem de gaz sub presiune și pentru a preveni acumularea de gaze combustibile, astfel încât să impiedice explozia si descoperirea la timp a tuturor victimelor in cazul unui accident cauzat de o asemenea explozie. Un alt obiectiv al acestei lucrări este de a prezenta un robot care este destul de economic dar care poate furniza mai multe date într-un mediu ostil referitor la pagubele care s-au produs în urma unei catastrofe și care este ușor de utilizat și de montat pe diferite alte remorci convenționale sau ambarcațiuni.

Roboți mobili

Roboți mobili constituie sisteme complexe ce au că și scop utilizarea în diferite activități aplicate în situații speciale ale lumii reale. Aceste sisteme constituie un asamblu complet de echipamente cu senzori și servomotoare ( ce pot fi controlați cu ajutorul unui sistem ierahizat de calcul) având utilizarea într-un spațiu real,având caracteristică o serie de proprietăți fizice acestea stand la baza locomoției, acesta oferindu-le roboților o sarcina ce depinde de starea inițială în care se află sistemul și tot odată în funcție de informațiile furnizate de mediul de lucru.

Desigur că de cele mai multe ori pentru roboți mobili apar și unele probleme,acestea putând fi: existența pericolului de a apărea o coliziune cu obiecte ce pot staționa sau se pot deplsa în paralel cu acesta, probleme de natură spațială (coordonatele de orientare), cât și stabilirea traseului optim pe care acesta îl va parcurge.

Pentru prevenirea unor coliziuni cu obstacole ce staționează sau cu alte dispozitive mobile(în unele cazuri roboți ce se află și ei în spațiul de lucru) vom folosi metode următoare:

-utilizarea senzorilor ultrasonici ce au că și capacitate măsurarea distanțe pe direcția de deplasarea, pentru evitarea coliziunilor;

-construcția unui scut protector;

-utilizarea senzorilor de proximitate;

-utilizarea unui cumul de informații de la o gama extinsă de senzori.

Obiectele se pot localiza printr-un contact fizic însă acesta are la baza restricții asupra vitezei de deplasare pentru structura minipulată. Impacutul ce poate avea loc între robotul mobil și obiectele aflate în spațiul de lucru va genera forțe de reacțiune ce vor modifică starea mecanismului robot. Vitezele mari vor provocare robotul daune semnificative acest lucru constituit în pericol ridicat în cazul unui contact.

Printre cele mai utilizate metode de navigare putem enumera:

măsurarea numărului de rotații ce sunt efectuate de roțile motoare;

utilizarea giroscoapelor și aceleratoarelor;

instalarea în teren a unor geamanduri electromagnetice;

utilizarea unor dispozitive optice sau magnetice.

Clasificarea roboților mobili:

După dimensiunea acestora pot fi: macro, micro și nano-roboți.

După mediul de utilizare a acestora:

roboți tereștri – utilizarea acestora se face pe sol,

Fig. 2.1. Robot terestru

roboți zburători – utilizarea acestora se face în aer,

Fig. 2.2. Robot zburător

roboți subacvatici – utilizarea acestora se face în apă [1]

Fig. 2.3. Robot subacvatic

4. roboți extratereștri – utilizarea acestora se face pe solul altor planete sau în spațiul cosmic;

Fig. 2.4. Robot extraterestu

După sistemul care stă la baza deplasării în mediul de acționare în cazul nostru solul pot fi:

Roboți cu roți sau șenile

Fig. 2.5. Robot cu șenile

Fig. 2.6. Robot cu roți

Roboți pășitori

roboți bipezi – cu două picioare

Fig. 2.7. Robot biped

Un robot umanoid este un robot cu forma corpului construit astfel încât să semene cu corpul uman. Proiectarea poate fi în scopuri funcționale, cum ar fi interacțiunea cu instrumente și medii umane, în scopuri experimentale, cum ar fi studiul locomoției sau în alte scopuri. În general, roboții umanoizi au un trunchi, un cap, două brațe și două picioare, deși unele forme de roboți umanoizi pot modela doar o parte a corpului, de exemplu, de la talie în sus. Unii robot umanoizi au, de asemenea, capete concepute pentru a reproduce caracteristicile feței umane, cum ar fi ochii și gurile. Androizii sunt roboți umanoizi construiți pentru a semăna estetic cu oamenii.

patrupezi – patru picioare

Fig. 2.8. Robot patruped

hexapozi – șase picioare

Fig. 2.9 Robot hexapod

miriapozi – cu mai multe picioare

3. roboți ce se târăsc: care imită mișcarea unui șarpe, ce imită mișcarea unei

râme etc.;

4. roboți care vor sări: acestia vor imita deplasarea broaștelor, cangurilor etc.;

5. roboți sferici: (modul de deplasare se face prin rostogolire)

2.2 Părțile componente a roboților mobili

Structura acestor roboților mobili (RM) va avea corespondent arhitectura generale a roboților, clasificându-se in două părți:

Mecanică, respectiv manipulatorul, acesta stă la baza determinării performanțelor de natură tehnică;

Electronică, respectiv de comandă-control, ce furnizează informații cu privire la calitatea performanțelor.

Fără a lua în calcul generația robotului, complexitatea problemelor vor apărea atunci când se realizarea structurii mecanice de volum, costul fiind redus și greutatea, necesare pentru transmiterea mișcării, urmat de adaptarea la structura mecanică pentru motorele hidraulice cât și electrice, la proiectarea brațelor manipulatoare ce pot apucă obiecte de diferite forme. Cât despre structura electronică, avem posibilitatea de a folosi câte unu microprocesor pentru a putea comandă câte un singur grad de libertate, totodată și al altor microprocesoare specializate necesare tratării semnalelor captate de senzori. Roboți mobili vor crea o conexiune cu mediu extern prin utilizarea structurii sale mecanice, astfel conferă siguranță deplasării,poziționări și totodată orientarea componenței de execuție.

Roboți mobili au structura mecanică formată din:

• Locomoție (pe senile sau roți), acesta având că scop deplasarea robotului pe suprafață în care acesta lucrează(cu autonomie sporită);

• Structura de manipulare, acesta are că scop poziționarea și orientarea componenței de lucru.

În procesul de deplasare a robotului mobil pe o axa vom avea următoarele 3 functi:

1. Locomoția;

2. Decizie-percepție;

3. Localizarea

Locomoția va cuprinde sistemul de acționare electric sau de propulsie și sistemul de sprijinire sau suspensie. Tipurile de propulsie sunt de o gama extinsă,iar cele mai folositite ar putea fi:

pe baza de roți,

cu eliberarea unui jet de apă,

pe baza de aer etc;

2.3 Roboți dezvoltați pentru intervenții în cazul scurgerilor de gaz

RoboGasInspector

Detectarea scurgerilor de gaze în instalațiile industriale nu numai că poate fi periculoasă și consumatoare de timp dar nu poate fi întotdeauna sigură din posibilitatea apariției unei erori umane. Pentru a oferi o soluție de detectare mai sigură, mai eficientă și mai fiabilă, RoboGasInspector a fost conceput. Acest sistem robot inovator pentru detectarea la distanță și localizarea scurgerilor de gaz a fost dezvoltat de o serie de companii și institute din Germania și utilizează o cameră video cu afișaj optic FLIR GF320.

Ca o parte a programului tehnologic german AUTONOMIK [2], un consorțiu format din nouă companii si institute de cercetare a dezvoltat un prototip al unui robot autonom pentru detectarea și localozarea scurgerilor de gaze în instalații industriale mari. Consorțiul a venit cu un sistem capabil sa efectueze sarcini de inspecție în unitățile industriale fără a fi nevoie sa acceseze direct zonele periculoase-fără a fi nevoie de prezența umană. Robotul poate fi folosit pentru inspecții de rutină ale instalațiilor sau pentru inspecții specifice ale componentelor sistemului. Mobilitatea independentă a sistemului a fost implementată cu diferiți senzori de navigație si opțiunea de intervenție manuală prin intermediul telecomenzii în orice moment. Sistemul este, de asemenea, echipat cu telemetrie video și optică pentru gaz, ceea ce îi permite să inspecteze componentele sistemului care anterior au fost dificil de inspectat datorită accesului limitat.

Dezvoltarea proceselor inovatoare de monitorizare care utilizează tehnologia de ultimă generație de măsurare și automatizare, precum și robotica, promite o îmbunătățire a fiabilității, eficienței și rentabilității inspecțiilor.

"Obiectivul acestui proiect a fost dezvoltarea și testarea unui sistem inovativ uman-mașină cu roboți de inspecție echipați cu tehnologie de măsurare a gazelor la distanță și informații locale", a explicat Dr. Andreas Kroll de la Departamentul de Tehnică de măsurare și control al Universității din Kassel . "Detectarea și localizarea scurgerilor de gaze ar trebui efectuate în mare parte independent de roboții mobili. În timpul acestui proces, roboții mobili ar trebui, de asemenea, să analizeze datele măsurate și să documenteze inspecțiile. "

Siguranță și eficiență

Operatorii instalațiilor industriale (de exemplu, fabrici de produse chimice, rafinării, stații de comprimare a gazelor) acordă o prioritate maximă siguranței personalului și a instalațiilor lor de producție. Exercitarea celei mai mari îngrijiri oriunde sunt folosite gaze toxice sau explozive este absolut esențială. De aceea, specificațiile riguroase de inspecție se aplică industriei chimice, instalațiilor de biogaz și furnizorilor de gaze. De obicei, programele de inspecție preventivă solicită personalului să efectueze zilnic proceduri de inspecție de rutină care necesită timp.

În timpul acestor inspecții regulate, membrii personalului verifică sistemul pentru o funcționalitate adecvată și, prin urmare, el sau ea se bazează, de obicei, pe percepții și experiență fără a folosi tehnologia de măsurare.

Pentru profesorii Andreas Kroll și Ludger Schmitt, o cerință superioară pentru noul sistem a fost aceea că ar trebui să permită inspecția și monitorizarea automată, fără pericol și că ar trebui să poată răspunde în mod independent problemelor. În timpul procedurilor de rutină, cum ar fi inspecțiile repetate, există întotdeauna un risc de a nu trece fără atenție posibile surse de pericol din cauza lipsei de atenție.

Prin urmare, dezvoltarea tehnologiilor de inspecție inovatoare și concentrarea flexibilității și a performanței operatorilor umani asupra gestionării sistemelor tehnologice are sens nu numai din motive economice, ci și în ceea ce privește eliberarea oamenilor de sarcini de rutină repetitive și îmbunătățirea gradului de acoperire a gamei largi de inspecții.

RoboGasInspector astăzi și mâine

Între timp, prototipul a impresionat prin demonstrațiile la care a fost supus si capacitatea acestuia de a lucra in serii extinse de teste. Unitatea de antrenare, sistemul de navigație și sistemele de senzori complementare s-au desfășurat frumos în timpul testelor. RoboGasInspectorul facilitează detectarea independentă a gazelor și localizarea scurgerilor în locații care sunt altfel dificil de accesat. În plus, ajută la evitarea utilizării inspectorilor umani în medii potențial periculoase. Cu toate acestea, înainte de a fi instalate în setările industriale, este necesară o dezvoltare ulterioară (de exemplu, în ceea ce privește protecția împotriva exploziilor, dezvoltarea de software etc.) și, bineînțeles, problemele juridice trebuie clarificate înainte de instalare în mediul comercial. Cu toate acestea, este sigur că un robot autonom de detectare a gazelor și de localizare a scurgerilor este posibil în prezent și poate spori semnificativ siguranța.

S6 Gas Leak Detection and Isolation Robot [3]

Robotul S6 a fost proiectat pentru inspecția mobilă automată a uleiului si gazului din infrastructuri, detectarea de la distanță si izolarea scurgerilor. În modul automat, robotul se deplasează de-a lungul unui traseu predeterminat și analizează de la distanță concentrația gazului în imediata apropiere a punctelor potențiale de scurgere. Măsurarea concentrației de gaz este efectuată cu un fascicul laser folosind metoda spectroscopiei de absorbție. Deoarece se utilizează măsurarea punctului, dispozitivul este instalat pe o platformă în mișcare cu trei grade de libertate.

Scanarea rapidă și precisă este rezultatul platformei giroscoapelor robotului S6. Platforma în mișcare are, de asemenea, două camere (pentru lumină vizibilă și spectru infraroșu) care creează o imagine bidimensională a scurgerii și ajută la localizarea precisă a acesteia pe echipament. Imaginea de pe aceste camere, împreună cu datele de măsurare obținute de scanerul de scurgeri de gaz la distanță, sunt transmise operatorului prin WiFi.

Dacă concentrația de gaz este ridicată, operatorul este avertizat. Robotul S6 de detectare și de izolare a scurgerilor de gaze este proiectat pentru inspecția regulată a infrastructurii de gaze la un cost minim și fără o implicare directă a omului. Pentru a asigura cele mai bune rezultate și pentru a face față vântului, robotul mobil este echipat cu un anemometru.

Acest robot extrem de fiabil este proiectat pentru a fi utilizat în locuri cu personal redus sau în stații de benzină fără pilot. Acesta ajută la detectarea rapidă a riscurilor ascunse, prevenind astfel distrugerile în masă.

CAP. III REALIZAREA PROIECTULUI

3.1 Componentele robotului mobil

3.1.1 Placa Arduino

Microcontrolerele sunt dispozitive ce conțin o unitate de procesare si alte periferice ce au rolul de a controla circuite electronice.

Arduino este cea mai simplă soluție pentru a dezvolta aplicații electronice, fiind o platformă ușor de utilizat: o plăcuță ușor de programat și de integrat în aplicații, open-source, foarte bine documentată și cu o comunitate bogată.

Hardware

Din punct de vedere hardware, plăcuța Arduino conține un microcontroler foarte popular din familia AVR, o interfață USB prin care poate fi programată, pini prin care poate comunica cu diverse componente hardware, precum și circuite pentru alimentare. Tot ce trebuie sa faci este sa o conectezi prin cablul USB la PC.

Arduino/Genuino Uno este un o placă cu un microcontroler bazat pe Atmega328P. Acesta are 14 pini de intrare/ieșire digitală (din care 6 pot fi utilizați ca ieșiri PWM), 6 intrări analogice, un cristal de cuarț de 16 MHz, o conexiune USB, un jack pentru alimentare, și un buton de resetare. Acesta conține tot ce este necesar pentru a comanda microcontrolerul, pur și simplu îl conectați la un computer cu un cablu USB, la o sursă de alimentare AC-DC sau chiar la o baterie cu ajutorul adaptorului pentru jack-ul de alimentare.

Specificații tehnice:

Software

Arduino IDE este programul software din PC în care se va scrie codul ce va fi încărcat pe placa Arduino. Cel mai mare avantaj al acestei platforme este reprezentat de comunitatea care s-a dezvoltat în jurul ei. Aceasta oferă multe exemple de proiecte, aplicații și tutoriale, un forum bogat și un număr mare de utilizatori dispuși să-și impărtășească cunoștiințele.

Arduino oferă o putere de calcul suficent de mare pentru aplicații foarte diverse care au permis chiar și lansarea în spațiu a sateliților conduși de astfel de platforme.

Există o gamă foarte largă de module precum senzori sau dispozitive de comunicare la distanță precum module radio, Wifi, Bluetooth, servomotoare sau motoare pas-cu-pas ideale pentru controlul brațelor robotice, display-uri LCD, senzori de culoare sau de gaz, module pentru conexiune Ethernet, care ajută la realizarea unui număr nelimitat de proiecte.

Programarea

Placa Arduino/Genuino Uno poate fi programată cu ajutorul Software-ului Arduino (IDE). Selectați “Arduino / Genuino Uno din Tools > Board menu ( în funcție de nicrocontrolerul de pe placa dumneavoastră. Atmega328 de pe placa Arduino/Genuino Uno vine preprogramat cu un bootloader care iti dă voie sa încarci un cod nou fără să folosești un programator hardware extern. Acesta comunică folosind protocolul original STK500. STK500 este un kit pentru începători și un sistem de dezvoltare pentru microcentrolerele Atmel AVR Flash, acesta permițând designerilor sa înceapă rapid dezvoltarea codurilor AVR, prototipuri pentru ingineri si testarea noilor designuri. Această kit lucrează cu AVR Studio pentru scrierea codului si depanarea lui. De asemenea poți oricând ocoli bootloader-ul în programarea microcontrolerului folosind ICSP (In-Circuit Serial Programming). Placa Arduino/Genuino Uno conține o siguranță resetabilă care protejează porturile USB ale calculatorului împotriva scurtcircuitului sau a supratensiunii. Deși majoritatea calculatoarelor au in componența lor această siguranță internă, această siguranță oferită de placa Arduino oferă o siguranță extra a calculatorului. De exemplu daca un curent mai mare de 500 mA este aplicat portului USB, siguranța va închide automat conexiunea până când scurtciurcuitul sau supratensiunea este eliminată.

Alimentarea – Placa Arduino poate fi alimentată printr-o conexiune USB sau printr-o sursă externă. Sursa de alimentare este selectată automat. Sursa externă de alimentare poate fi orice de la un adaptor care transformă curentul alternativ in curent continuu sau baterii. Adaptorul poate fi folosit prin conectarea unui conector de 2.1 mm cu centru pozitiv în mufa de alimentare a plăcii. De asemenea la conectarea unei baterii, conductoarele de la baterie pot fi introduse în pinii GND si Vin ale mufei de alimentare. Placa poate opera pe o sursă externă de la 6 la 20 de volți. Dacă este furnizat cu mai puțin de 7V, există posibilitatea ca pinul de 5V poate furniza mai puțin de 5 volți, iar placa poate deveni instabilă. Pe de altă parte dacă se utilizează mai mult de 12V, regulatorul de tensiune se poate supraîncalzi și poate deteriora placa. Intervalul recomandat este de la 7 la 12 volți. Pinii de alimentare sunt următorii:

Vin – se folosește atunci când se utilizează o sursă externă de alimentare (sursă diferită de cea de 5 volți de la conexiunea USB sau de la altă sursă de alimentare reglabilă;

5V – Acest pin transmite o tensiune regulată de 5V de la o sursă de alimentare cu regulator de tensiune. Placa poate fi alimentată fie prin mufa de alimentare DC (7-12V) conectorul USB (5V) sau pinul Vin al plăcii (7-12V). Tensiunea de alimentare prin pinii 5V ocolește regulatorul de tensiune al plăcii si o poate deteriora.

3V – O tensiune de 3.3V generată de regulatorul plăcii. Curentul maxim admis este de 50mA.

Intrări și ieșiri

Legătura dintre pinii Arduino si cei de pe microcontrolerul ATmega328P:

Fiecare din cei 14 pini digitali de pe placa Arduino pot fi folosiți ca intrare sau ieșire, utilizând funcțiile “pinMode (), digitalWrite () și digitalRead (). Aceștia funcționează la 5 volți. Fiecare pin poate furniza sau primi 20mA aceasta fiind o condiție de funcționare recomandată și au un rezistor intern (implicit deconectat) de 20-50k Ohm. O valoare maximă care nu trebuie sa fie depășită pe nici o intrare sau ieșire este de 40 mA, iar dacă se depășește această valoare se va deteriora permanent microcontrolerul.

Câteva proiecte care pot fi realizate cu ajutorul plăcuței Arduino:

Robot – autonom ce ocolește obstacole

– care se poate ghida după o linie

Brat robotic controlat de un joystick

Sistem de monitorizare a plantelor folosind module de măsurare a umidității si temperaturii

Alarmă inteligentă ce va poate transmite notificări pe email sau prin SMS pe telefonul mobil realizată cu un modul GSM SIM800 și senzori Sharp

Un sistem de stabilizare a unui aparat foto cu ajutorul servomotoarelor și a modulului MPU9250

3.1.2 Puntea L298N

Datorită tensiunii si curentului de valori foarte mici furnizate la ieșire de către placa Arduino este nevoie de un circuit de amplificare pentru acționarea motoarelor de current continuu. O schemă care poate fi folosită pentru comanda motoarelor este reprezentată în figura următoare si poartă numele de punte H:

Fig. 3.1.2.1. Fig. Schema bloc a unei punți H

S1 – întrerupător care conține un tranzistor Q1 și o diodă D1;

S2 – întrerupator care conține un tranzistor Q2 și o diodă D2;

S3 – întrerupător care conține un tranzistor Q3 și o diodă D3;

S4 – întrerupător care conține un tranzistor Q4 și o diodă D4.

Componente electrice ale punții H:

Tranzistoare cu efect de câmp ( TEC-MOS canal P, TEC-MOS canal N)

Tranzistoare bipolare ( NPN, PNP )

Pentru ca tensiunea pozitivă sa fie aplicată motorului și acesta să se rotească în sens direct acelor de ceasornic, întrerupătoarele S1 și S4 trebuie să fie inchise iar întrerupătoarele S2 și S3 trebuie să fie deschise.

Prin deschiderea întrerupătoarelor S1 și S4 și închiderea întrerupătoarelor S2 și S3, această tensiune este inversată, făcând astfel posibilă rotirea motorului în sens opus.

Fig. 3.1.2.2. Schema de funcționare a punții H

Puntea H este în general folosită pentru a inversa polaritatea tensiunii de alimentare a motorului. Însă se mai poate folosi și pentru frânarea motorului (în acest caz motorul se oprește brusc datorită faptului ca terminalele acestuia sunt scurtcircuitate), sau pentru a lăsa motorul să se rotească liber până la oprire.

L298N Dual H-Bridge

L298N este un circuit integrat de current si voltaj mare, cu dublă punte H, fiind proiectat să accepte nivele logice standard TTL pentru control.

Acest circuit poate avea mai multe întrebuințări precum:

controlul releelor;

controlul solenoidelor;

controlul motoarelor de curent continuu sau pas cu pas.

Fiecare din cele două punți poate fi activată sau dezactivată independent prin pinii ENA și ENB. Acest modul mai conține si un circuit stabilizator de tensine (5V) care îi permite funcționarea la tensiuni mari.

Fig. 3.1.2.3. L298N Dual H-Bridge

Fig. 3.1.2.4. Schema electrică a punții L298N Dual H-Bridge [4]

Specificații:

tensiune de operare: până la 40V;

curent de lucru: maxim 3A;

curent mic de saturație;

protecție la supraîncingere;

poate opera cu 2 motoare simulan;

imunitate mare la zgomot: Nivel logic “0” input până la 1,5V;

are încorporat un regulator de tensiune 78M05 ( pentru evitarea defectării acestui circuit integrat, trebuie folosită o sursă logică externă de 5V, atunci când tensiunea de alimentare depășește 12V.

Cum controlează puntea H un motor:

Pentru controlarea vitezei motorului, pinul ENA se leagă la un pin PWM de la Arduino.

3.1.3. Modulul Bluetooth HC-05

Modulul HC-05 este un modul Bluetooth SPP (Serial Port Protocol) ușor de utilizat, destinat pentru realizarea conexiunilor seriale la distanțe de până la 10 metri. Acest modul are șase pini: Vcc, GND, TX, RX, Key și LED. Vine preprogramat în mod Slave, deci nu este nevoie să conectăm pinul Key, dar atunci când vrem să schimbăm acest lucru vom avea nevoie să conectăm si acest pin. Principala diferență dintre modul Slave si Master este aceea că, in modul Slave modulul Bluetooth nu poate iniția o conexiune, el poate doar accepta conexiunile care vin din exterior. După ce conexiunea este stabilită modulul Bluetooth poate transmite si primi date indiferent de modul în care rulează. Dacă se folosește un telefon pentru a se conecta la modul, pur si simplu se poate folosi in mod Slave. Atunci când se face conexiunea dintre telefon si modul se va introduce pin-ul „1234” cu care acesta vine din fabrică. Rata de transmisie a datelor este de 9600kbps.

Caracteristici tehnice:

Tensiune de alimentare: 3.6 – 6V;

Curent maxim consumat: 30mA;

Pinii de intrare/ieșire sunt compatibili pentru 3.3V si poate accepta până la 5V;

Comunică pe serial UART;

Baudrate: 9600 – 460800 bps;

Putere de transmisie: +4dBm;

Senzitivitate recepție: -80dBm.

Dimensiuni: 35.7 x 15.2 mm

Se poate comunica cu modulul prin intermediul monitorului serial. Iată câteva comenzi:

AT – verifică conexiunea – returnează OK;

AT + ROLE =1 – dispozitivul este master;

=0 – dispozitivul este slave;

AT+RESET – se resetează dispozitivul (va intra in mod date);

AT+PSWD = xxxx – se schimbă parola de acces ( care este din fabrică 1234);

AT+ADDR – returnează adresa dispozitivului.

Configurația pinilor

STATE: nu este conectat;

RX: conectat la pinul TX al plăcii Arduino;

TX: conectat la pinul RX al plăcii Arduino;

GND: conectat la Ground;

VCC: conectat la +5V;

EN: nu este conectat.

Fig. 3.1.3.1 Modulul Bluetooth

3.1.4 Display LCD KeyPad cu shield pentru Arduino

Acesta este un shield care conține un ecran LCD cu butoane foarte popular pentru plăcile Arduino sau. Acesta include un afișaj LCD 2×16 și 6 butoane. Pinii 4, 5, 6, 7, 8, 9 și 10 sunt utilizați pentru interfața cu ecranul LCD. Pinul analogic 0 este folosit pentru a citi butoanele. Ecranul LCD acceptă reglarea contrastului și funcțiile de pornire / oprire în fundal. Extinde de asemenea pinii analogici pentru citirea și afișarea simplă a semnalelor analogice primite de la diferiți senzori. [5]

Pinii de legătură [6]

Specificații:

Tensiune de operare 5V;

Conține pini pentru extensia intrărilor sau a ieșirilor;

Buton de reset pentru resetarea programului arduino;

Buton de reglare a contrastului integrat;

5 butoane pentru a putea controla afișajul de pe display.

Senzorii

3.2.1. Generalități

Ce este senzorul? Trebuie spus că nu există o definiție unitară și necontestată a „senzorului”, motiv care lasă mult spațiu pentru interpretări, ambiguități și confuzii. Mulți autori preferă să folosească sintagma „senzori și traductoare”, în cadrul căreia, fie pun pe picior de egalitate senzorul și traductorul, utilizând, alternativ sau preferențial, unul dintre termeni, fie consideră că unul reprezintă o categorie ierarhică superioară, incluzându-l pe celălalt.

Denumirea senzorului provine din cuvântul latin „sensus”, care însemnă simț și înainte

de a fi adoptat pentru sisteme tehnice, a fost și este utilizat pentru a desemna capacitățile organelor de simț ale oamenilor și ale organismelor vii, de a culege și prelucra informații din mediul înconjurător și a le transmite creierului. În acest proces mărimile fizice, neelectrice, sunt convertite în semnale electrice, pe care creierul le poate prelua și interpreta și pe baza cărora coordonează acțiunile mușchilor. Modelul din biologie îl întâlnim, în mare măsură, la sistemele mecatronice, astfel că nu este inutilă o scurtă trecere în revistă a sistemelor senzoriale ale omului, cu unele comentarii privind contribuția acestora în supervizarea proceselor de producție de către om. [7]

Fig. 3.2.1.1 Structura unui sistem senzorial

3.2.2. Senzorul de gaz MQ-2

Senzorul de gaz MQ-2 este util pentru detectarea scurgerilor de gaz (în cadrul locuințelor proprii cât și in industrie. Este potrivit pentru detectarea gazelor precum: hidrogen, LPG, alcool, fum, propan, butan, dioxid de carbon. Datorită sensibilității sale ridicate și a timpului de răspuns rapid, măsurarea poate fi efectuată cât de curând posibil. Sensibilitatea senzorului poate fi ajustată cu ajutorul potențiometrului. Are un preț de cost redus si este foarte folositor pentru diferite aplicații.

Aplicații:

Detectoare de scurgeri de gaze interne;

Detectoare industriale de gaze;

Detectoare de gaze portabile.

Intervale de concentrație in cadrul detecției: ppm-parts per million

200 ppm-5000ppm – propan si LPG;

300 ppm-5000ppm – butan;

5000ppm-20000ppm – metan;

300ppm-5000ppm – hidrogen;

100ppm-2000ppm alcool.

Circuitul electric al senzorului:

Caracteristicile senzitivității: [8]

În această figură sunt reprezentate câteva caracteristici ale senzorului MQ-2 la diferite gaze cu următoarele caracteristici:

Temperatură 20℃;

Umiditate 65%;

Concentrația de oxygen 21%;

Rs – este rezistența în diferite gaze;

Ro – rezistența senzorului în 1000ppm de Hidrogen.

Influența temperaturii/a umidității:

Fig. 3.2.2.1. Caracteristica senzitivității senzorului MQ-2

3.2.3. Senzorul de umiditate și temperatură

DHT22 este un senzor digital de temperatură si umiditate cu cost redus. Utilizează un senzor capacitiv de umiditate și un termistor pentru măsurarea aerului înconjurător, și transmite un semnal digital pe pinul de date (nu sunt necesari pini de intrare analogici). Este destul de simplu de utilizat, dar necesită o sincronizare atentă pentru a obține datele. Singurul dezavantaj real al acestui senzor este că se pot obține măsurători noi o dată la două secunde.

Specificații:

Tensiune de alimentare – 3.3-6V;

Curent – 1-1.5mA;

Curent standby – 40-50 uA;

Umiditate – 0 -100% RH;

Temperatură – (-40) – 80 C;

Acuratețe umiditate – (+-2)% RH;

Acuratețe temperatură – (+-0.5) C.

Fig. 3.2.3.1. Dimensiunile senzorului

Fig. 3.2.3.2. Diagrama de conexiune electrică:

Secvența pinilor: 1 2 3 4 (de la stânga la dreapta)

3.2.4. Senzorul de prezență PIR (Pyroelectric ("Passive") InfraRed)

'' Ce este un senzor PIR? ''

Senzorii PIR vă permit să simțiți mișcarea, este utilizat aproape întotdeauna pentru a detecta dacă un om a intrat sau a ieșit din afara razei de acționare a senzorului. Aceștia sunt mici, ieftini, cu o alimentare redusă, ușor de utilizat și nu se uzează. Din acest motiv, ei se găsesc în mod obișnuit în aparate și gadgeturi folosite în case sau firme. Aceștia sunt adesea denumiți PIR, senzori "pasivi în infraroșu", "pyroelectric" sau " de mișcare IR".

PIR-urile sunt practic realizate dintr-un senzor piroelectric care poate detecta nivelurile de radiație infraroșie. Totul emite radiații de nivel scăzut, iar cu cât este mai fierbinte, cu atât radiația este mai mare. Senzorul într-un detector de mișcare este de fapt împărțit în două jumătăți. Motivul pentru aceasta, este că încercăm să detectăm mișcarea și nu detectarea nivelurilor medii de IR. Cele două jumătăți sunt conectate astfel încât să se anuleze reciproc. Dacă jumătate vede mai mult sau mai puțin radiații IR decât cealaltă, ieșirea va transmite semnale joase sau înalte. Împreună cu senzorul piroelectric există și o grămadă de circuite de susținere, rezistențe și condensatoare.

Pentru multe proiecte de bază care trebuie să detecteze când o persoană a plecat sau a intrat în zonă sau s-a apropiat, senzorii PIR sunt minunați. Trebuie reținut că PIR-urile nu vă vor spune cât de mulți oameni sunt în jur sau cât de aproape sunt la senzor, obiectivul este adesea fixat la o anumită măsură și distanța și uneori sunt declanșați de animalele de companie.

De asemenea vom mai utiliza câteva led-uri si un buzzer.

3.3 Controlul robotului mobil

Pentru controlul robotului mobil se va folosi un telefon mobil cu Software Android care se va conecta la robot prin Bluetooth. Robotul va conține de asemenea un modul Bluetooth care va transmite comanda la placa Arduino ce va pune în mișcare robotul cu ajutorul punții H L298N.

3.3.1. Aplicația folosită:

Această aplicație poate fi descărcată de pe link-ul [9] și poate fi instalată pe orice telefon care are software Android. Această aplicație va da comenzile de a merge înainte, înapoi, de a vira la stânga sau la dreapta. De asemenea mai poate mări sau micșora turația motoarelor prin mutarea unui cursor si apăsarea butonului “Motor Speed Set”. Tot în această aplicație se poate vedea dacă telefonul este conectat la robot sau nu.

Fig. 3.3.1.1 Aplicația din telefon

3.3.2 Schema de comandă a robotului mobil:

Fig. 3.3.1.2. Schema de comandă

Robotul din cadrul acestei lucrări va este o mașinuță cu șenile. Mișcarea distribuiă la roțile motoare ale șenilelor este asigurată de două motoare de curent continuu de 5V. Transmisia dintre motoare și roțile motoare folosește angrenajul melc-roată melcată.

Câteva detalii despre acest tip de angrenare:

Acest tip de angrenare se face în așa fel încât la o rotație completă a melcului, roata melcată avansează cu un anumit număr de pași, egal cu numărul de începuturi. Dacă z1 – reprezintă numarul de începuturi ale melcului

z2 – numărul de dinți al roții melcate va rezulta raportul de transmitere:

i1,2 =

3.3.3. Elementele cinematice ale angrenajului

Vitezele periferice ale cilindrilor de rostogolire v1 și v2 nu coincid, astfel prin rotire spira melcului alunecă pe dinele roții cu viteza de alunecare – va.

Dacă v1 – Viteza periferică a melcului pe cilindrul de referință d1

v2 – viteza periferică a roții melcate pe cilindrul de divizare d2

v1 =

v2 =

Fig. 3.3.3.1. Angrenajul melc-roată melcată

Viteza de alunecare va va fi:

Din relația de mai sus va rezulta că pentru valorile uzuale ale unghiului ,
Raportul de transmitere

Înlocuind se va obține

Va rezulta raportul de transmitere:

3.3.4 Diagrama circuitului electric pentru alimentarea si comanda robotului:

3.3.4. Programul pentru placa Aduino:

int motorLpin1=2;

int motorLpin2=3;

int motorRpin1=4;

int motorRpin2=5;

int motorLpwm=10;

int motorRpwm=11;

int motorSpeed=125; // valoarea turației transmisă motoarelor

int turn=50;

void setup() {

Serial.begin(9600); // rata de transmitere serială a datelor

Serial.flush(); // așteaptă ca transmisia datelor sa fie completă

pinMode(motorLpin1,OUTPUT);

pinMode(motorLpin2,OUTPUT);

pinMode(motorRpin1,OUTPUT);

pinMode(motorRpin2,OUTPUT);

pinMode(motorLpwm,OUTPUT);

pinMode(motorRpwm,OUTPUT);

}

void loop() {

String input="";

while(Serial.available()){

input+=(char)Serial.read();

delay(5);

}

if(input=="n"){ // dacă comanda primită de la telefon este “n” mașina se va opri

stp();

}

else if(input=="F"){ // dacă comanda primită de la telefon este “F” mașina va merge înainte

fwd();

}

else if(input=="R"){ // dacă comanda primită de la telefon este “R” mașina va da cu spatele

rev();

}

else if(input.indexOf("TL")>-1){ // dacă comanda primită de la telefon este “TL” mașina va vira la stânga

lft();

}

else if(input.indexOf("TR")>-1){ // dacă comanda primită de la telefon este “TR” mașina va vira la dreapta

rght();

}

else if(input!=""){

motorSpeed=input.toInt();

}

}

void fwd(){ // secvența pentru care mașina merge înainte

analogWrite(motorLpwm,motorSpeed);

analogWrite(motorRpwm,motorSpeed);

digitalWrite(motorLpin1,1);

digitalWrite(motorLpin2,0);

digitalWrite(motorRpin1,1);

digitalWrite(motorRpin2,0);

}

void rev(){ // secvența pentru care mașina merge cu spatele

analogWrite(motorLpwm,motorSpeed);

analogWrite(motorRpwm,motorSpeed);

digitalWrite(motorLpin1,0);

digitalWrite(motorLpin2,1);

digitalWrite(motorRpin1,0);

digitalWrite(motorRpin2,1);

}

void lft(){ // secvența pentru care mașina virează la stânga

analogWrite(motorLpwm,motorSpeed-turn);

analogWrite(motorRpwm,motorSpeed+turn);

digitalWrite(motorLpin1,0);

digitalWrite(motorLpin2,1);

digitalWrite(motorRpin1,1);

digitalWrite(motorRpin2,0);

}

void rght(){ // secvența pentru care mașina virează la dreapta

analogWrite(motorLpwm,motorSpeed+turn);

analogWrite(motorRpwm,motorSpeed-turn);

digitalWrite(motorLpin1,1);

digitalWrite(motorLpin2,0);

digitalWrite(motorRpin1,0);

digitalWrite(motorRpin2,1);

}

void stp(){ // secvența pentru care mașina se oprește

analogWrite(motorLpwm,0);

analogWrite(motorRpwm,0);

digitalWrite(motorLpin1,1);

digitalWrite(motorLpin2,1);

digitalWrite(motorRpin1,1);

digitalWrite(motorRpin2,1);

}

3.3.6. Diagrama circuitului electric pentru partea senzorială a robotului:

Pentru partea de primire si afișare a datelor voi folosi o a doua placă Arduino deoarece va fi nevoie de cațiva pini care sunt folosiți si pentru partea mobilă a robotului si nu putem suprapune două rânduri de pini pentru comenzi diferite.

Programul pentru placa Arduino:

//Acest program va detecta daca este o prezență de gaz in jurul robotului

//in cazul in care este prezență de gaz, va produce un sunet si se va aprinde ledul roșu de prezență gaz

//iar pe ecranul LCD va aparea inscripția GAZ

//in cazul in care gazul nu este prezent sa va aprinde ledul verde – lipsă prezenta gaz

//

//dupa ce detectează prezenta sau lipsa gazului, va testa daca este prezent cineva in fața senzorului de prezență

//in cazul in care este cineva prezent va aprinde alarma si pe ecranul LCD va afisa mesaj ALARMĂ

//si ledul albastru de alarmă se va aprinde

//

//In ultima etapa a programului va detecta temperatura si umeditatea

//iar valorile vor fi afișate pe ecranul LCD

#include "Wire.h" //includem libraria pentru display

#include "LiquidCrystal.h"

LiquidCrystal lcd(4, 5, 6, 7, 8, 9);

#include "DHT.h" //includem libraria pentru senzorul de temperatura

#define DHTPIN 3 //setam senzorul de temperatură pe pinul digital 3

#define DHTTYPE DHT11 //setam tipul senzorului DHT11

DHT dht(DHTPIN, DHTTYPE); //creem o funcție dht

int LED_Rosu_GAZ = 11; //Ledul rosu de pe pinul 11 se aprinde cind este prezent gaz

int LED_Verde_GAZ = 12; //Ledul verde de pe pinul 12 se aprinde cind nu este prezent gaz

int buzzer = 10; //pinul la care conectam Buzzer-ul

int Pin_Senzor_GAZ = A5; //pinul la care conectam senzorul de gaz

int ValoareSenzorGAZ; //creem un int in care stocăm valoarea senzor gaz

int ValoareLimitaGAZ = 400; //valoarea la care se activează alarma de gaz

int SenzorPrezentaPIN = A0; //pinul la care conectam senzorul de prezenta

int LED_Alarma_Prezenta=2; //Ledul rosu de pe pinul 2 se aprinde când

//senzorul prezenta detecteaza pe cineva

int ValoareSenzorPrezenta = 0;//valoarea la care se activeaza Senzorul de Prezenta

float umed; //un float pentru stacarea umedității

float temp; //un flaot pentru stocarea temperaturii

void setup() {

lcd.begin(16, 2); //incepem comunicarea cu LCD-ul

dht.begin(); //incepem comunicarea cu DHT-ul

pinMode(LED_Rosu_GAZ, OUTPUT);

pinMode(LED_Verde_GAZ, OUTPUT);

pinMode(LED_Alarma_Prezenta, OUTPUT);

pinMode(buzzer, OUTPUT);

pinMode(Pin_Senzor_GAZ, INPUT);

pinMode(SenzorPrezentaPIN, INPUT);

}

void loop() {

//aceasta functie va citi valoarea de la senzorul de gaz

ValoareSenzorGAZ = analogRead(Pin_Senzor_GAZ);

//in cazul in care valoarea citita este mai mare decit valoarea limita atunci va activa alarma sonora,

//si va aprinde ledul roșu, iar pe ecranul LCD va aparea notatia GAZ

if (ValoareSenzorGAZ > ValoareLimitaGAZ)

{ digitalWrite(LED_Rosu_GAZ, HIGH);

digitalWrite(LED_Verde_GAZ, LOW);

tone(buzzer, 1000, 200);

lcd.setCursor(12, 0);

lcd.print("GAZ"); }

//in caz ca valoarea senzorului este sub limita atunci va arde ledul verde de lipsă prezenta gaz

else

{ digitalWrite(LED_Rosu_GAZ, LOW);

digitalWrite(LED_Verde_GAZ, HIGH);

noTone(buzzer);

lcd.setCursor(12, 0);

lcd.print(" "); }

//aceasta functie va citi valoarea de pe senzorul prezență

ValoareSenzorPrezenta = analogRead(SenzorPrezentaPIN);

//in caz ca persoana sa apropiat prea tarea va activa alarma

if (ValoareSenzorPrezenta < 100){

AlarmaPrezenta();

}

//citim temperatura si umeditatea

umed = dht.readHumidity();

temp = dht.readTemperature();

//in cazul in care avem o eroare de senzor afisam pe ecran: "Eroare sensor!

if (isnan(umed) || isnan(temp)) {

lcd.setCursor(0, 0);

lcd.print("Eroare sensor!");

return;

}

//urmatorul bloc va afisa pe ecran temperatura sa umeditatea

lcd.setCursor(0, 0);

lcd.print("umedit:");

lcd.setCursor(7, 0);

lcd.print(umed);

lcd.setCursor(0, 1);

lcd.print("temp:");

lcd.setCursor(5, 0);

lcd.print(temp);

lcd.setCursor(10, 0);

lcd.print("°C");

delay(100);

}

//aceasta funcie va aprinde ledul albastru in cazu in care cineva se apropie de senzorul de prezentă,

//va activa alarma sonora si va afisa pe ecran ALARMĂ

void AlarmaPrezenta() {

for(int i=0; i<3; i++) {

digitalWrite(LED_Alarma_Prezenta, HIGH);

tone(buzzer, 500, 200);

lcd.setCursor(10, 1);

lcd.print("ALARMA");

delay(200);

digitalWrite(LED_Alarma_Prezenta, LOW);

delay(200);

lcd.setCursor(10, 1);

lcd.print(" ");}}

CAP. IV CONCLUZII

În urma realizării acestui proiect initulat “Robot pentru intervenții” am tras următoarele concluzii:

În perioada în care trăim utilizarea roboților a devenit din ce în ce mai frecventă mai ales în domenii în care omul ar putea suferi răni cauzate de catastrofele care nu se pot prezice niciodată. Datorită dezvoltării mari a tehnologiei din ziua de astăzi, roboții au ajuns chiar să înlocuiască oamenii care lucrează in medii periculoase ceea ce a dus la micșorarea numărului de victime de la locurile de muncă din aceste medii ostile.

Ducând la capăt această lucrare am învățat cum se poate programa un robot mobil prin intermediul platformei Arduino, a unui microcontroler, cum se fac legăturile dintre diferite module, și cum se poate conecta la un telefon mobil.

Acest robot creat de mine este un robot ce poate ajuta prin dezvoltarea lui, la explorarea unor spații greu de atins de oameni, sau care ar putea crea victime.

În încheiere pot spune ca acest proiect este menit pentru a îmbunătați eficacitatea tehnică si ușura munca omului în viața de zi cu zi, ajutându-l sa acceseze spații greu de atins de oameni, si poate sa colecteze o cantitate mare de informații.

BIBLIOGRAFIE

[1]. https://www.zoom-biz.ro/robot-subacvatic-constanta-pf

[2]. http://www.flir.com/ogi/display/?id=62559

[3]. http://smprobotics.com/products_autonomous_ugv/gas-leak-inspection-robot/

[4]https://www.google.ro/search?q=l298n+datasheet&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjH3P7TgejUAhXFPhQKHX3NAaQQ_AUICigB&biw=1366&bih=638#imgrc=9zAT4Sd3ZWunzM:

[5] https://www.optimusdigital.ro/shield-uri-pentru-arduino/274-shiel-pentru-arduino-cu-lcd-si-tastatura-.html?search_query=lcd&results=93

[6] https://www.dfrobot.com/wiki/index.php/LCD_KeyPad_Shield_For_Arduino_SKU:_DFR0009

[7] http://webbut.unitbv.ro/Carti%20on-line/BSM/BSM/capitol4.pdf

[8] https://www.parallax.com/sites/default/files/downloads/605-00008-MQ-2-Datasheet.pdf

[9] https://apkpure.com/circuits-ninja-robot-remote/appinventor.ai_test.smartcar

Similar Posts