Documente Academic
Documente Profesional
Documente Cultură
Algoritmi de comanda
a robotilor
Profesor coordonator:
Dr.Ing. Dănuț Irimia
Realizatori:
Văduva Vasile
Sticea Ciprian
Popescu Alexandru
Țapu Ionuț Adrian
1
Algoritmi de comanda a roboților
Cuprins
Capitolul I............................................................................................................................................ 3
Prezentarea generală a robotului A4WD1 ..................................................................................... 3
Modulul BOT BOARD II ................................................................................................................... 5
Modulul de alimentare ................................................................................................................... 6
Motoarele utilizate ......................................................................................................................... 6
Senzorul de proximitate ................................................................................................................. 8
Sabertooth V1.03 ........................................................................................................................... 9
Capitolul II......................................................................................................................................... 17
2
Algoritmi de comanda a roboților
Capitolul I
Prezentarea generală a robotului A4WD1
Robotul Lynxmotion Aluminum 4WD1 este un robot robust, modificabil și
extensibil pentru o experimentare autonomă. Robotul poate folosi anvelopele și roțile
pentru vehiculele Radio Control (RC), astfel încât robotul are o tracțiune excelentă. Are o
punte suplimentară care poate fi adăugată pe partea de sus pentru extindere viitoare.
Robotul este capabil să efectueze o sarcină de 2,5kg. Acesta utilizeaza 4 motoare de curent
continuu câte unul pe fiecare roată. Acestea sunt comandate câte două și anume prin
intermediul portului P1 de la ieșirea circuitului specializat Bot Board II se comandă
motoarele de pe partea dreaptă, iar prin intermediul portului P2 se comandă motoarele de
pe partea stângă, realizându-se în acest fel controlul direcției. Pentru a fi capabil să se
ferească singur de obstocole se utilizează un senzor de proximitate cu infraroșu.
Programarea acestuia se face utilizând modulul BasicATOM. Modulele
BasicATOM și BasicATOM Pro sunt microcomputere autonome. Există sisteme de reglare
a puterii, sistem de ceas și hardware de comunicații. Seria Nano este nucleul BasicATOM.
Robotul A4WD1 este prezentat in Figura.1.1.
3
Algoritmi de comanda a roboților
4
Algoritmi de comanda a roboților
1 – cele 3 leduri și butoanele aferente utilizează 3 porturi I/O pentru a crea interfața de
utilizator dorită. Ledul se poate aprinde prin setarea portului ca ieșire în zero logic.
Dacă portul este setat ca intrare acesta va detecta apasarea butonului.
2 – acest port este utilizat pentru conectarea unui controler Playstation Sony prin care se
poate controla robotul.
3 – stabilizatorul de 5V. Tensiunea maximă de intrare este de 9V și curentul de ieșire de
500mA
4 – led care se aprinde în momentul în care placa este alimentată
5 – intrarea logică VL. Aceasta se conecteaza la bateria de 9V și va asigura alimentarea
liniei de 5V. Această intrare poate fi utilizată pentru izolare între VL și VS.
6 – intrarea VS (tensiunea de alimentare a servomotoarelor). Aceasta poate fi cuprinsă
între 4.8V si 7.2V.
7 – jumperul pentru conectarea de la aceeași baterie pentru VL și VS.
8 – Acest jumper permite ca intrările VL și / sau VS să fie conectate la două intrări
analogice ale Atom 28 printr-un divizor de tensiune 4: 1. De exemplu, dacă tensiunea
bateriei este de 9V, intrarea analogică va vedea 2.25V.
5
Algoritmi de comanda a roboților
Modulul de alimentare
Alimentarea modulului BOT BOARD II se realizează cu ajutorul circuitului din
Figura 1.4.
Motoarele utilizate
La acest robot sunt utilizate 4 motoare de curent continuu de tipul KG37F260-030.
Tensiunea de alimentare a motoarelor este de 12V. Fiecare motor este conectat la câte o
roată iar controlul lor este realizat pe grupuri de 2 motoare. Pentru a pune în mișcare
robotul, motoarele de pe partea stângă (față si spate) sunt comandate împreună și cele de
pe partea dreaptă de asemenea.
6
Algoritmi de comanda a roboților
7
Algoritmi de comanda a roboților
Senzorul de proximitate
Pentru detectarea obiectelor aflate în apropiere este utilizat un senzor de
proximitate de tipul GP2D120XJ00F. Acesta detectează obiectele prin emisia unui puls de
energie luminoasă în domeniul infraroşu cu ajutorul unei diode electroluminiscente (LED).
Dacă acest puls luminos întâlneşte un obiect de care se reflectă înapoi spre senzor, reflexia
este captată de elementul fotoreceptor al senzorului şi semnalizată. Senzorul detectează,
fără contact, obiectele capabile sa reflecte radiaţia electromagnetică în spectrul infraroşu.
8
Algoritmi de comanda a roboților
Sabertooth V1.03
Sabertooth 2x32 este un driver automat cu două canale capabil să furnizeze 32 de amperi la
patru motoare, cu curenți de vârf de până la 64 amperi per motor. Acesta poate fi operat de
la radio, analog, TTL serial sau intrări USB. Utilizează unitatea de regenerare și frânarea
pentru o funcționare eficientă. În figura 1.8. este reprezentat diver-ul Sabertooth de control
al motoarelor.
9
Algoritmi de comanda a roboților
Motor 1&2 and Motor 3&4: Conectare motoarele 1 si 2 la terminalele M1A și M1B.
Conectare motoare 3 si 4 la terminalele M2A și M2B.
DIP Switch: Acestea sunt utilizate pentru a seta modul de operare și opțiunile. Poate fi
schimbat în timpul funcționării.
10
Algoritmi de comanda a roboților
USB: Un port USB standard. Conectare la un PC sau la altă gazdă USB pentru a controla,
monitoriza sau modifica.
5V Output: 5V este o ieșire reglată de 5 volți. Aveți posibilitatea să-l utilizați pentru a
alimenta circuitul suplimentar de până la 1 amper.
Main signal input: Aici se conecteaza semnalele principale analogice , R/C sau seriale.
Aux Signal Input: Acestea pot fi folosite pentru control suplimentar. Opțional în
majoritatea modurilor.
Status and error LEDs: Aceste lumini strălucesc și blițeaza pentru a indica starea
dispozitivului Sabertooth 2x32.
Caracteristici
Intrare USB
Fiecare de motor din a treia generație Sabertooth este livrat cu standard USB.
Acest lucru face ca operarea de la un PC sau un microcontroler avansat la fel de ușor ca
conectarea cablului. Driverele Windows sunt incluse în software-ul PC-ul DEScribe și nu
este necesar un driver pentru Linux. USB este folosit și pentru a seta opțiuni, a crea moduri
de operare personalizate, pentru a monitoriza sistemul și a actualiza firmware-ul cu noi
caracteristici.
11
Algoritmi de comanda a roboților
12
Algoritmi de comanda a roboților
Intrări
Intrari auxiliare
Intrarile auxiliare sunt marcate cu A1 si A2.
Acestea pot fi setate prin intrari analogice,
R/C sau comunicatie serial. Cand utilizam
comunicatia serial, A1 este portul Rx si A2
este portul Tx.
Intrari USB
Sabertooth se conectează printr-un conector
micro USB standard. Un driver de Windows
se instalează cu software-ul PC-ului
DEScribe. Linux și Mac vor ieși din cutie
fără driver. Portul USB este, de asemenea,
folosit pentru a comunica cu DEScribe
pentru configurarea lui Sabertooth 2x32.
Sabertooth 2x32 are patru intrări logice S1, S2, A1 și A2. Domeniul de intrare
analogic este de la 0 la 5 volți. Semnalele digitale pot fi logice 3, 3.3 sau 5V. Toți
conducatorii din generația a treia, cum ar fi Sabertooth 2x32, includ un port USB. Portul
USB poate fi utilizat pentru controlul de la un PC sau procesor încorporat, cum ar fi
Raspberry Pi. De asemenea, poate fi folosit pentru a monitoriza intrările și ieșirile, pentru a
configura modurile de utilizator și setările personalizate și pentru a actualiza firmware-ul.
13
Algoritmi de comanda a roboților
Ieșiri
M1 M2
M3 M4
Motor Outputs
Releele M1, M2, M3și M4 ale motoarelor Sabertooth 2x32 sunt mecanisme de
regenerare sincrone pe 12 biți. Au o frecvență de comutare de 30 kHz pentru funcționarea
silențioasă. Fiecare canal are o limită de curent programabilă. De asemenea, este posibilă
dezactivarea regenerării pentru a acționa încărcături precum lămpile sau rezervoarele
anodice sau dezactivarea completă a ieșirilor și a frânării pentru a permite motoarelor să
circule liber.
Indicatori de iesire
14
Algoritmi de comanda a roboților
Puterea la iesire
Aceste ieșiri deschise ale colectorului se pot scufunda până la 8 amperi de curent
fiecare. Ieșirile de putere pot fi configurate ca cleme de tensiune, frâne sau ieșiri
controlabile.
Frânele
Putere controlată
În cele din urmă, ieșirile de putere pot fi utilizate ca ieșiri suplimentare de putere
variabilă. Acestea ar putea fi folosite pentru a acționa ventilatoarele, solenoizii, supapele,
încălzitoarele sau dispozitivele similare de putere similare. Acest lucru este utilizat în
principal cu intrări seriale sau USB sau cu programe personalizate de utilizator. Puterea
controlată trebuie selectată în DEScribe.
15
Algoritmi de comanda a roboților
un polimer litiu sau o baterie de plumb acid, trebuie să setați comutatorul DIP 3 în poziția
de protecție a acumulatorului, care este oprită. Când se află în această poziție, LED-ul
Status va clipi din numărul de celule detectate, urmat de o pauză, într-un model repetat.
Acest lucru este util pentru a verifica dacă Sabertooth a detectat numărul corect de celule.
Când bateria este epuizată, dispozitivul Sabertooth va opri motoarele, iar LED-urile Status
și Error vor clipi sincron. Atunci când utilizați o baterie, trebuie sa va asigurați că se poate
ocupa de tragerea curentă pe care vor furniza motoarele. Deoarece Sabertooth este un
motor de regenerare a motorului și va returna energia la baterie atunci când se comandă
frânarea, se recomandă numai baterii reîncărcabile.
16
Algoritmi de comanda a roboților
Capitolul II
17
Algoritmi de comanda a roboților
low P8
low P9
turela con P8
elevatie con P9
'------------definirea variabilelor-------------------
tmp=0
orientare_centru=0
orientare_dreapta=0
orientare_stanga=0 ' initializare orientare turela
pozitie_turela=3050
if obstacol=1 then
gosub orientare
else
pulsout turela,pozitie_turela
18
Algoritmi de comanda a roboților
gosub mers_inainte
endif
pause 16
goto main
;-------------------------------- sfarsitul buclei principale
orientare
;---------------------------------stanga
if orientare_stanga=1 then
pozitie_turela=pozitie_turela-50
pulsout turela, pozitie_turela
if pozitie_turela=2050 then
adin prox,val_stg
orientare_stanga=0
orientare_dreapta=1
endif
endif
;-------------------------------- dreapta
if orientare_dreapta=1 then
pozitie_turela=pozitie_turela+50
pulsout turela, pozitie_turela
if pozitie_turela=4100 then
adin prox,val_stg
orientare_stanga=1
orientare_dreapta=0
orientare_centru=1
endif
endif
if orientare_centru = 1 then
pozitie_turela=pozitie_turela-50
pulsout turela, pozitie_turela
if pozitie_turela=3050 then
adin prox,val_stg
orientare_stanga=0
orientare_dreapta=0
orientare_centru=0
endif
endif
19
Algoritmi de comanda a roboților
if tmp<timp_cotire then
gosub cotire_spatestanga
tmp = tmp+1
else
tmp =0
val_stg=0
val_dr=0
obstacol=0
endif
else
if tmp<timp_cotire then
gosub cotire_spatedreapta
tmp = tmp+1
else
tmp =0
val_stg=0
val_dr=0
obstacol=0
orientare_stanga=1
endif
endif
endif
return
mers_inainte
pulsout MotDreapta,2500
pulsout MotStanga,2500
return
mers_inapoi
pulsout MotDreapta,3100
pulsout MotStanga,3100
return
cotire_spatestanga
pulsout MotDreapta, 2850
pulsout MotStanga, 3150
return
cotire_spatedreapta
pulsout MotDreapta, 3150
pulsout MotStanga, 2850
return
20
Algoritmi de comanda a roboților
stop_motor
pulsout MotDreapta,3050
pulsout MotStanga,3050
return
21
Algoritmi de comanda a roboților
Bibliografie
[1] http://www.lynxmotion.com/driver.aspx?Topic=assem05;
[2] http://www.cs.cmu.edu/~garthz/research/Balancer/datasheets/Sabertooth2x10.pdf;
[3] https://www.robofun.ro/senzori/infrarosu/senzor_sharp_%20GP2D120XJ00F;
[4] http://www.cs.cmu.edu/~garthz/research/Balancer/datasheets/Sabertooth2x10.pdf;
[5] http://superrobotica.com/download/s330090/ghm14.pdf;
[6] https://www.google.ro/search?q=Bot+board+II&rlz=1C1CHBF_enRO719RO719&
espv= 2&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjK85j5_L_TAhXIuRQK
HbTTD60Q_AUICCgB&biw=1600&bih=770#imgrc=uAJLGvfY3d_YHM;
22