Sunteți pe pagina 1din 28

Universitatea din Oradea

Facultatea de Inginerie Managerială și Tehnologică


Domeniul : Mecatronică
Specializarea : Robotică

Proiect
Inteligență Artificială

Student :
Anton Daniel Melentie
Grupa 841 , anul IV

˷2017˷
Argument

Conceptul de Inteligenta Artificiala a aparut in anul 1956, acest vis devenind in


ultimii ani realitate, primind contur tot mai mult in orice domeniu .
Inteligenta artificiala prin definitie se afirma ca rezolva situatii sau probleme noi pe baza
experientei, experienta acumulata pe baza invatarii continue.
Inteligenta artificiala a inceput sa ia contur in domeniul informaticii care dezvolta sisteme
tehnice pentru rezolvarea problemelor tehnice legate de inteligenta umana.
Aceasta inteligenta artificiala se bazeaza pe cunostintele dobandite, ea neavand o idee
predominanta care sa o limiteze in activitatea de gandire si dezvoltare a unor noi idei pe baza
celor anterioare.
Capitolul 1 Declarare termenului de inteligenta artificiala

Termenul de inteligenta artificiala se intalneste in numeroase domenii cum ar fi :


tehnice, medicale, militare, stintifice, dar in ziua de azi ea a inceput sa isi ia contur de la
recunoastere si analiza a vocii, pana la cea a imaginilor si totusi si in diferite jocuri precum
sah, bridge.
Principiul de baza si principalul scop al inteligentei artificiale este de a imita intrutotul
creierul uman de la modul in care acesta gandeste, la cel de a raspunde si interactionand pe
baza acestor doi factori.
Datorita puterii de calcul a masinariilor cu inteligenta artificiala, ele se pot dezvolta
foarte rapid neavand limite in ale gandirii.
In electronica putem discuta de o retea neuronala artificiala de tip fizic, fiind vorba de
o retea, aceasta se prezinta sub forma unor noduri de neuroni, legati intr-un mod oarecare,
intre ei. Fiecare neuron avand o multime determinata de intrari si iesiri. Intrarile neuronilor
fiind definite mai exact de catre mesaje primite de la o serie de senzori, aceste mesaje fiind
prelucrate de catre retelele asociate si mai apoi transmise mai departe.
Aceste structuri artificiale incearca sa modeleze creierul uman, retelele de neuroni
sunt adaptive, care acumuleaza cunostinte prin intermediul invatarii bazate pe exemple.
Retelele neuronale artificiale sunt inspirate din sistemul nervos biologic al omului,
deoarece creierul uman poate fi asemanat cu un sistem natural de prelucrare paralela a
informatiei distribuite. Unitatea de organizare a creierului uman fiind neuronul, toate intrarile
in acesta sunt denumite dendrite, dar avand si iesiri denumite axoni. Axonii se ramifica la
nivelul in care neuronii sunt interconectati intre ei formand mai multe grupuri la un loc.
Orice impulsuri prezente la intrarile neuronilor, ii determina sa genereze impulsuri si catre
ceilalti neuroni din grup cu care sunt conectati. Performantele creierului uman sunt foarte
ridicate datorita faptului ca un numar extrem de mare de neuroni functioneaza simultan si
prelucreaza o informatie distribuita.
In raport cu sistemul biologic, retelele neuronale se bazeaza pe simplul fapt ca
neuronii artificiali sunt interconectati sub forma de retele. Aceste interconectari sunt facute
prin conexiuni care au asociate o intensitate si un sens de circulatie a informatiei ce le face
foarte rapide in distribuirea informatiei.

Capitolul 2 Neuronii

Neuronii artificiali sunt unitatea functionala a retelei din care fac parte, orice neuron
avand un anumit numar de intrari si o singura iesire, aceasta iesire putandu-se lega la intrarile
mai multor neuroni.
Fiecare intrare ii este asociata un anumit raport care ii precizeaza importanta pe care o
poate avea impulsul prezentat de intrarea respectiva a neuronului. Neuronii acestor tipuri de
retele neuronale artificiale dispun de intrari si iesiri booleene, conexiunile atat de intrare cat si
de iesire ale acestora sunt de doua tipuri:
-inhibatoare, daca o intrare primeste semnalul de tip 1 logic, el trece automat in starea
inactiva
-excitatoare, doar daca la semnalele de intrare se aplica numai conexiunile
excitatoare, iar numarul acestora depaseste pragul setat, atunci neuronul devine activ, iar
iesirea sa pe 1 logic. Acesti neuroni pot implementa functiile logice simple.
Sistemul de retele neuronale artificiale au cel mai important caracter, cel adaptiv,
retelele stabilindu-si singure parametrii de functionare prin simplu fapt ca ele pot evolua in
urma procesului de antrenament, evolueaza si se autospecializeaza si proiecteaza pe
problemele noii specializari pe care va lucra.
Acestea sunt capabile in orice domeniu sa produca iesiri corecte ale neuronilor pentru
intrari diferite de cele cu care se antrenase anterior, prin simplul fapt ca acestea trebuie sa nu
fie foarte diferite.
Neuronul artificial este copia simplificata a neuronului biologic, acesta compunandu-
se din corp, o multime de intrari si o singura iesire.
Fiecare intrarea este importanta, deoarece valoarea sa este multiplicata cu o valoare
corespunzatoare denumita pondere. Toate intrarile ponderate sunt insumate, iar aceasta
insumare reprezinta iesirea neuronului respectiv care poate sa fie activata .
Totul fiind un model construit pe baza semnalelor de intrare in reteaua neuronala,
antrenamentul retelei constand doar in primirea de informatii pentru a face multitudinea de
rationamente cat mai apropiate de realitate.
Aceste computere sunt totusi un hibrid intre reteaua neuronala si tehnologie, deoarece
avantajul tehnologiei este de a fi logic si rapid in probleme matematice, totul depinzand de
aceasta.
De asemenea, calculatorul fiind capabil sa invete din propriile greseli si sa
interactioneze cu un utilizator, acesta se foloseste de performantele puse la dispozitia sa la
maxim, fiind creat pentru rezolvarea ecuatiilor complexe, procesand baze de date, ca sa-l
ajute in proiectarea si producerea a unor noi algoritmi de baza care il vor ajuta in dezvoltarea
sa proprie.
Inteligenta si informatia neputand fi separate, aceste sisteme informatice, se cladesc in
jurul bazelor de date, care le inglobeaza ca fiind pe urma, o competenta adunata , refolosita
in diferite situatii.
Capitolul 3 Utilizarea inteligentei artificiale ca si sisteme expert

Aceste sisteme sunt formate din grupuri de programe si informatii specifice, ajutandu-
se de toate acestea pentru a putea purta un dialog computer-om, in vederea rezolvarii unor
probleme de diferite tipuri. Fiecare data primita de la om, computerul incearca sa o adauge
unui anumit tip de problema, iar mai apoi venind cu expunerea unei rezolvari. Aceste sisteme
expert multiplica inteligenta formalizata a specialistilor, utilizand informatiile extrase din
experienta umana, furnizand decizii corespunzatoare nivelului de competenta,informatii si
detalii extrase primite din metodele de rationare implementate.
Incorporand multe tehnologii diferite, acestea primesc denumirea de sisteme expert,
aceste tehnologii fiind cunostintele de baza, mecanisme de interfata si facilitati de explicare.
Realizarea acestor masini inteligente sunt determinate si de avantajele si dezavantajele
care se afla la baza diferentei dintre om si masina, acestea fiind diferentele semnificative cum
ar fi cunoasterea umana perisabila, iar a masinii-permanenta, expertiza umana fiind restransa,
iar cea a masinii vasta.
Avantajele masinii inteligente fiind rationamentul- consecvent, rezistenta nelimitata,
expertiza foarte vasta, gandirea fara moarte.
Limitarile masinii inteligente se refera la abilitatile sale de perceptie, rationament la
care inteligenta artificiala doar prin deductie genereaza concluzii pe baza cunostintelor
furnizate din mediul exterior, ea neputand genera singura noi cunostinte.
Conceperea si dezvoltarea sistemelor inteligente necesita cunostinte si experienta
complexa in toate domeniile atat de la proiectare pana la programare, cat si electronica,
mecatronica.
Pentru ca inteligenta artificiala sa poata sa ajunga sa aibe capacitatea de distinctie
clara a notiunilor de sarcina, de cunoastere a problemelor dintr-un anumit domeniu, de a
putea rezolva problemele, precum si integrarea unui model concceptual structurat foarte bine,
e nevoie de o baza necesara pentru dezvoltarea unui sistem inteligent.
O structura a unui astfel de sistem expert care inglobeaza o colectie de cunostinte
relevante despre un anumit domeniu este formata din :
-baza generala de cunostinte ; aici intervin regulile referitoare la operatii care vor fi
efectuate pe baza conostintelor continute in baza de date specifica cazului.
-datele unui caz specific ; aici intervin reguli care vor pune accent doar pe informatiile
din domeniul strict studiat. Partea dinamica a acestei baze de cunostinte reprezinta faptele, si
au rolul de a reprezenta starea obiectelor la un anumit timp.
Care la randul lor sunt formate din:
Masina de inferenta- acest program general, implementeaza mecanismul prin care se
construiesc deductiile, aceasta prelucrand cunostintele si datele doar prin faptul ca poate
ajunge singur la o concluzie.
Interfata utilizator- acest program are niste standarde pe care le respecta precum ar fi
dimensiunile, culorile si realizeaza o legatura faciala intre sistem si utilizator, prin
intermediul unui dialog eficient. Interfata este folosita pentru a se introduce noi informatii in
sistem, dar si pentru utilizator sa puna intrebari sistemului expert, sau sa obtina o diagrama
asupra unui proces de rezolvare.
Editorul de baza de cunostinte- care permite completarea sau modificarea bazei de
cunostinte a sistemului expert, actiunea propriu-zisa de achizitionare se realizeaza prin
chestionarea exertilor umani.
Sistemul explicativ- avand rolul de a furniza explicatii operatorului in legatura cu
rationamentul folosit pentru a ajunge la concluzia prezentata.
Modulul grafic- reprezinta interfata grafica care faciliteaza expertului posibilitatea de
a-si formaliza cunostintele intr-o maniera cat mai reprezentativa, cu o asistenta cat mai
limitata a inginerului de cunostinte.
Aceste sisteme inteligente sunt concepute pentru rezolvarea problemelor din
domeniile in care se poate utiliza aplicatiile de inteligenta artificiala. Aceste sisteme fiind
utilizate ca si aplicatii precum:
-vederea artificiala pentru recunoasterea formelor
-prelucrarea vocii pentru constituirea si sinteza vocii umane
-prelucrarea limbajului domeniu in care intra si integrarea, prelucrarea si redarea
limbajului natural
-recunoastera formelor - perceperea si clasificarea diferitelor forme
-rezolvarea problemelor-formalizarea si rezolvarea unor clase generale de probleme
-procesarea informatiei- se ocupa de programe capabile sa inteleaga informatia scrisa
sau citita, sa realizeze rezumate si sa raspunda la diferite intrebari;

Exemple de sisteme expert :

Cele mai utilizate in cadrul medicinei sunt cele de diagnostic.


Aceste sisteme dupa cum le spune si numele sunt sisteme care trateaza bolile in
functie de afectiunile pacientului, iar dupa caz le recunoaste, oferind un diagnostic.
Adesea aceste problemele vin odata cu o multime de observatii, multime ce poate fi
de multe ori incompleta.
Intotdeauna rezultatul diagnosticului fiind o selectie a uneia sau a mai multor solutii
ale problemei.
Daca se obtine o submultime de observatii pentru a garanta un diagnostic, aceasta va
fi solutia suplimentara si totodata garantarea unui pronostic complet.
In domeniul de constructie aceste sisteme incearca sa vina cu o solutie construita ca o
secventa de pasi sau o configuratie de elemente interconditionate. Intotdeauna definirea unei
probleme inseamna precizarea acelei conditii initiale a problemei, dar si precizarea cerintelor
asupra solutiei si spatiului solutiilor, care teoretic poate avea combinatiile posibile de obiecte
elementare care respecta sau nu cerintele.
Sistemele expert de simulare, se bazeaza pe precizarea efectelor unor anumite
presupozitii asupra unui sistem, acestea fiind cunoscute ca parti componente a comportarii
parametrilor de iesire din valorile date ale unor parametri de intrare. Aceste sisteme de
simulare se aplica pentru o verificare suplimentara, iar daca solutia oferita de acest sistem
proiectat functioneaza in diagnostic si este intr-adevar cea dorita in constructie, atunci
sistemul functioneaza.
Capitolul 4 Algoritmul lui Dijkstra

Acesta este un algoritm care calculeaza, in functie de datele de intrare, drumul


minim de la un nod al unui graf la toate celelalte noduri ale grafului din sistemul in care se
afla.
Aceste grafuri pe care algoritmul lucreaza, sunt ponderate si orientate- arcele ce sunt
orientate de la un nod la un altul, au si un anumit cost in aflarea drumului minim, acesta de
fiecare data neputand fi schimbat, deoarece algoritmul nu poate impuse alte cerinte de situatie
decat cele de a afla punctul minim de la un punct la altul si de a functiona pe arcele care nu il
blocheaza, acestea fiind orientate in sensul corespunzator indeplinirii sarcinii. De asemenea si
daca oferim arcelor acelasi cost, tot drumul cel mai scurt va fi ales necontand ca arcele au
aceeasi valoare.
Orice traseu caruia nu i sa atribuit o valoare de arc, atunci acesta va fi notat de
lungime infinita, rezultatul indicand lipsa oricarui drum intre cele doua noduri.
Pe toata durata aflarii drumurilor minime de la un nod de start, pana la celelalte noduri
din graf, algoritmul prezinta sub forma unui grafic in care el reprezinta distanta minima de la
nodul de start la toate celelalte noduri din graf.
Ca si rezultat, arborele generalizat, fiind calcularea tuturor distantelor de la nodul de
start pana la toate nodurile din graf, calculandu-se distanta optima si minima.
Algoritmul presupunand ca drumul minim este alcatuit doar dintr-un singur arc,
drumul minim nu poate avea mai mult de N-1 arce.
Abia la finalul programului se definesc drumurile minime, deoarece doar atunci
algoritmul poate spune ca sunt cele definitive dupa ce a cunoscut toate arcele, la inceput
acestea pentru el fiind necunoscute.
Sa spunem ca D{y} contine lungimea drumului minim de la nodul de start la nodul y
care trece numai prin noduri marcate.
D{z} contine lungimea celui mai scurt drum de la nodul de start la nodul z alcatuit din
maxim k-1 arce, acest drum trece doar prin noduri marcate, fara sa tina cont ca intre timp si y
a fost marcat.
Putand exista si un drum mai scurt decat D{z} de la nodul de start alcatuit din maxim
k arce care trece prin noduri marcate, incusiv nodul y- care fiind unicul drum cu aceasta
proprietate care poate fi mai scurt decat D{z} este cel care include drumul minim pana la y si
arcul direct intre y si z, deci lungimea sa este D{y}+Arc{y,z}.

Aplicarea algoritmului Dijkstra aplicat pe un robot autonom de labirint


Aceasta aplicatie consta in punerea in practica a acestui algoritm, utilizand un robot
proiectat la dimensiuni optime pentru explorarea si rezolvarea unui labirint. Robotul, dupa
implementarea algoritmului, robotul este capabil sa exploreze mediul si sa creeze o harta a
acestuia, putand determina cel mai scurt traseu din oricare doua puncte ale labirintului.
Robotul trebuie exclusiv sa preia date primite de la senzori, fiind preluate de unitatea
de baza, aceste date prelevate din mediu, trebuie supuse unor reguli, care sunt definite ca
fiind regulile de baza dupa care acest robot functioneaza.
Prima regula de baza este de a pastra distanta minima intre robot si perete, astfel incat
intalnind un blocaj sa se poata intoarce, iar mai apoi sa isi poate continua explorarea
mediului.
A doua regula fundamentala ar fi de a urmari un perete, acesta determinandu-se la
inceputul explorarii, aceasta regula aplicandu-se peretelui din stanga si a celui din dreapta, in
acest moment robotul va face doua trasee, unul pe partea stanga si unul pe dreapta,
definitivatul supus unor noi reguli primul dupa explorarea intregului traseu, fiecare cotitura
din traseu fiind cunoscuta deja si avand atribuita cate o distanta, iar algoritmul putand alege
care dintre cele doua trasee, este mai scurt in functie de timp.
Capitolul 5 Arhitectura robotului Maze

Arhitectura robotului
Masina a fost realizata avand la baza o placa denumita PixelBoard, cu un
microcontroler din seria PIC18F4550. Mediul de dezvoltare folosit pentru scrierea
programului pe placa a fost Pickit, limbaj C.
Acest microcontroler este dezvoltat de Microchip, avand 32k bytes memorie flash, 13
bit analogi-digitali.

Fig.1 Arhitectura Microncontrolerului PIC18F4550


Fig.2 Placuta cu microcontrolerul PIC18F4550

Aceasta familie de dispozitive ofera avantajele tuturor microcontrolelor PIC18 si


anume computere de performanta inalta la pret economic cu adaugare de inalta rezistenta si
memorie flash. In plus fata de aceste caracteristici familia PIC18F2455,2550,4455,4550
introduce designul imbunatatirii care fac aceste microcontrolere un logical pentru multi
utilizatori de inalta performanta, sensibili la puterea aplicatiilor.
Aceste noi dispozitive incorporeaza o serie de caracteristici care pot reduce in mod
semnificativ consumul de energie in timpul functionarii. Elementele cheie sunt ca acestea au
moduri alternative de rulare:
-prin ceasul regulatorului de la sursa timer1 sau la oscilatorul intern bloc consumul de energie
in timpul executarii codului poate fi redus cu pana la 90%
-moduri multiple in regim de asteptare: poate functiona controlerul cu nucleu CPU
dezactivat, dar perifericele inca fiind active.
Modificarea comutarii modului de functionare:
-regimurile de gestionare a energiei sunt invocate de codul utilizatorului in timpul
functionarii, permitant utizatorului sa includa puterea de economisire a ideilor in aplicatiile
lor de proiectare de software.
-consum redus in modulele cheie: puterea atat pentru timer1 cat si pentru whatchdog
timerul este redus la minim.
Aceste noi dispozitive incorporeaza magistrala de serie universala, modul de
comunicatii care este compatibil cu usb.
Comunicatii de viteza redusa si cu viteza mare pentru toate tipurile de transferuri de
date transferate. De asemenea, incorporeaza propriile sale on-chip transmitator si 3.3V
regulator si sprijina utilizarea transmitatoarelor externe si a regulatoarelor de tensiune.
Aceasta noua familie ofera 12 optiuni diferite de oscilator, permitand utilizarea la o
gama larga de optiuni in dezvoltarea aplicatiilor hardware care includ:
-4 moduri crystal, folosint cristale sau rezonatoare ceramice
-4 moduri de ceas extern, oferind optiunea cu doi pini adica intrare oscilator si o diviziune de
4 iesiri pentru ceas, sau un pin, adica de intrare oscilator cu al doilea prin realocarea ca 1/0
general
-un bloc oscilator intern care ofera un ceas 8MHz si INTRC cu 32kHz stabil peste
temperatura si voltaj, precum si o serie de 6 frecvente de ceasuri selectabile de utilizator.
Modul CCP imbunatatit :
In modul PWM, acest lucru ofera 1,2 sau 4 iesiri modulate
Fig.3 Schema electrica a traseului placutei PIXELBOARD
Fig.4 Microcontrolerul PIC18F4550

Pentru a scadea dimensiunile si greutatea robotului s-a utilizat un driver L293D, care
comanda motoarele robotului de 1000 rpm la iesirea din reductor.
Acest driver alimenteaza doua motoare, deoarece placuta PixelBoard nu este capabila
sa furnizeze foarte mult curent continuu, asa ca atasam un driver pentru motoare care se
alimenteaza direct la sursa de curent continuu.
Aceasta punte cu frecventa inalta, este proiectata pentru a furniza curenti
bidirectionali de actionare de pana la 600mA la tensiuni de la 4,5V la 36V.
Dispozitivele sunt proiectate pentru a actiona sarcini inductive cum ar fi relee,
solenoizi, motoare de curent continuu si bipolar, precum si alte sarcini de inalta tenzine sau
de inalta tensiune in aplicatii cu consum pozitiv.
Toate intrarile sunt compatibile cu TTL. Fiecare iesire este un circuit de actionare
complet, cu un tranzistor Darlington si o sursa pseudo-Darlington. Driverele sunt activate in
perechi, cu driverele 1 si 2 activate si driverele 3 si 4 activate. Atunci cand o intrare de
activare este ridicata, driverele asociate sunt activate, iar iesirile lor sunt active si in faza cu
intrarile lor.
Cand intrarea de activare este scazuta, acele drivere sunt dezactivate si iesirile lor sunt
oprite si in starea de inalta impedanta. Cu intrarile de date corespunzatoare, fiecare pereche
de drivere formeaza o transmisie reversibila pe puntea H potrivita pentru aplicatii solenoidale
sau pentru motoare.
Motoarele de curent continuu ale robotului sunt cu reductor, raportul de transmisie
fiind de 30:1, viteza de rulare libera este 1000 rotatii pe minut la 12V. Momentul de torsiune
maxim este echivalent cu 63.6 mNm. Curentul maxim de lucru ajungand pana la 800mA, cel
normal fiind de 100mA, acesta fiind diferit in functie de greutatea robotului si forte de frecare
care apar intre roti si suprafata pe care ruleaza.
Rezistenta electrica a motorului poate fi exprimata prin impartirea tensiunii nominale
la curentul de stingere. Constanta fortei electromotoare poate fi aproximata prin impartirea
tensiunii nominale la viteza de rulare libera . Pentru a aproxima constanta cuplului motorului
se poate imparti cuplu de strangere cu curentul de stingere.

Fig.5 Motor micro metal 1000 rpm cu reductor 30:1


Pentru aproape orice motor de curent continuu, curbele de curent, viteza, putere si
eficienta in functie de cuplu vor arata ca in graficul urmator, presupunand ca tensiunea si
temperatura motorului sunt constante:

Fig.6 Curba de curent, viteza si putere in functie de cuplu

Curbele de curent si de viteza sunt aproximativ lineare, acestea fiind aproximative cu


0 cuplu si fara curent in sarcina, iar cuplul de blocare cu curent de stationare linia rosie si 0
cuplu cu viteza fara sarcina, si cuplul de torsiune 0 cu viteza pentru linia albastra.
Curba de putere cea portocalie este rezultatul vitezei si al cuplului, ceea ce are ca
rezultat o parabola inversata cu varful la 50% din momentul cuplarii.
Curba de eficienta, cea verde, este puterea de iesire impartita la puterea de intrare,
unde puterea de intrare este tensiunea curenta. Tensiunea este constanta, astfel incat se poate
imparti curba puterii de iesire cu linia curenta pentru a obtine forma generala a curbei de
eficienta, care la randul sau va permite sa se identifice cuplul, viteza si curentul care
corespund eficientei maxime.
Encoderele magnetice includ senzorii Hall cu discuri magnetice, cu 6 poli, care pot fi
utilizati pentru a adauga codificarea cuadratura la micrometalele cu reductor. Placa de codare
detecteaza rotirea discului magnet si ofera rezolvutia de 12 citiri pe rotatie a arborelui motor
, doar la rotatia ambelor muchii a celor doua canale.
Pentru calcularea numarului total de rotatii a arborelui de iesire la dupa reductor, se
multiplica raportul de transmisie cu 12.
Este cea mai simpla solutie de codare, si cea mai compacta incadrandu-se in 12mm pe
10 mm.
Aceasta placa de codare este proiectata sa fie lipita direct pe parte din spate a
motorului, axul motorului fiind iesit prin encoder la fel si pinii motorului de alimentare.

Fig.7 Encoder cu senzori hall

Senzorii sunt alimentati prin pinii de VCC si GND, alimentarea lor putandu-se face de
la 2,7V pana la 18V, iar iesirile de tip A si B sunt semnalele digitale care sunt fie de
actionare joasa adica 0V trase de catre senzor i , fie de VCC prin rezistentele de tractiune de
10 kΩ, in functie de campul magnetic aplicat. Comparatoarele senzorilor au o histereza
incorporata, care previne semnalele false in cazurile in care motorul se opreste in apropierea
unui punct de tranzitie.
Fig.8 Semnalele digitale ale iesirilor A si B ale codificatorului magnetic pe un micrometal cu
reuctor de mare putere functionand la 6V

Fig.9 Senzorii Hall U1 si U2


Fig.10 Robotul maze dotat cu encodere magnetice

Senzorii de distanta analogici utilizati sunt de model sharp, cu suprafata de vedere de


la 10cm pana la 80cm senzori de nivel mediu de perceptie a distantei.
Acesti senzori reflexivi fiind capabili sa ne spuna foarte clar distanta in cadrul
robotului nostru pana la un perete, de obicei acesti pereti fiind albi, deoarece rata de reflexie
este de 90%, dar in unele cazuri gri, pe aceste suprafete scazand enorm pana la 20%
deoarece absoarbe toata lumina emisa de dioda, iar detectorul nu mai receptioneaza decat o
parte din aceasta.
La pragul maxim de citire exista un histerezis de cativa milimetri, la cel minim
neexintand deloc. Senzori detecteaza doar in tervalul de-a lungul liniilor de vedere.
Cu o distanta de pana la 80 cm si o rata tipica de esantionare de aproape 400Hz, acesti
senzori ofera alternativa atractiva, datorata perechilor de fototranzistori led cu reflexie.
Fig.11 Schema electrica a senzorilor de distanta
Capitolul 6 Aplicarea algoritmului Dijkstra

Programarea unui areal de test pentru a aplica acest algoritm care se bazeaza pe
distantele cunoscute dupa parcurgerea traseului in totalitate si gasirea drumului cel mai scurt
in functie de distanta si timp.
Determinant matricea peretilor(mp) aceasta matrice va contine in totalitate toti peretii
care robotul ii va ocoli, punctul de start si cel de finish.
Declararea matricii se va face pe j randuri si i coloane, toate mai apoi fiind un mediu
pentru robot.

Fig.12 Definirea randurilor si colonelor


Desenarea interfetei se face pe baza unei matrici, in care peretii care trebuiesc ocoliti
se noteaza cu 1, iar cu 0 se noteaza traseul pe unde robotul poate merge in voie pentru a
indeplini misiunea impusa la inceput, aceea de a alege traseul optim.

Dupa aceea se stabileste punctul de start si punctul de finish, conturul in care se va


preciza labirintul, si labirintul propriu zis al robotului in care isi va desfasura activitatea de
exploatare a tuturor distantelor, pentru aflarea drumului mai scurt.
Fig.13 Labirintul robotului in care se va aplica algoritmul Dijkstra

Exploatarea labirintului, la fiecare blocaj de artera secundara, el revine in momentul


in care artera sa despartit fata de cea principala, si continua drumul pana la momentul in care
robotul ajunge in punctul final.
Fig.14 Gasirea unui nod secundar

In acest moment robotul gaseste un alt nod secundar fata de primul secundar, si isi
continua traseul pana ce acesta se reintoarce la drumul principal.
Fig.15 Intoarcere la traseul principal

Isi continua drumul pana la atingerea scopului final, de a ajunge la finish.


Fig.16 Traseul optim

Traseul optim obtinut este datorata celor doua reguli de baza care il face sa aleaga
intotdeauna cel mai scurt si rapid traseu.
Bibliografie

1. http://bryukh.com/labyrinth-algorithms
2.https://www.cs.bu.edu/teaching/alg/maze/
3.http://toysengineering.blogspot.ro/2013/02/maze-solving-algorithm-recursive-c.html
4.https://ro.wikipedia.org/wiki/Algoritmul_lui_Dijkstra
5.https://www.pololu.com/product/3038/faqs
6.https://www.tme.eu/ro/details/pololu-3081/module-de-senzori/pololu/magnetic-
encoder-pair-kit/
7.https://www.robofun.ro/docs/GP2Y0A21YK.pdf
8.http://www.academia.edu/8550705/Curs_Gratuit_Arduino-Lectia7-Senzori_Distanta
9.Florin Bîrleanu-Aplicarea algoritmirilor in sisteme de programare labirint
10.https://www.engineersgarage.com/electronic-components/l293d-motor-driver-ic