Roboții joacă un rol important în automatizare în toate sectoarele, cum ar fi construcțiile, militare, medicale, de fabricație, etc. După ce am realizat niște roboți de bază, cum ar fi robotul de linie, robotul controlat de computer etc., am dezvoltat acest robot controlat prin gesturi bazat pe accelerometru, utilizând arduino uno. În acest proiect am folosit mișcarea mâinii pentru a conduce robotul. În acest scop am folosit accelerometru care funcționează pe accelerație.
Componente necesare
- Arduino UNO
- DC Motors
- Accelerometru
- HT12D
- HT12E
- Pereche RF
- Driver motor L293D
- Baterie de 9 volți
- Conector baterie
- cablu USB
- Robot Chasis
RF pereche:
Un robot controlat prin gesturi este controlat folosind mâna în locul oricărei alte metode, cum ar fi butoanele sau joystick-ul. Aici trebuie doar să miști mâna pentru a controla robotul. În mână este folosit un dispozitiv de transmisie care conține emițător RF și accelerometru. Aceasta va transmite comanda către robot, astfel încât să poată îndeplini sarcina necesară, cum ar fi să avansezi, să te întorci, să te întorci la stânga, să te întorci la dreapta și să te oprești. Toate aceste sarcini vor fi efectuate folosind gestul mâinii.
Aici cea mai importantă componentă este accelerometrul. Accelerometrul este un dispozitiv de măsurare a accelerației pe 3 axe cu o rază de + -3g. Acest dispozitiv este realizat prin utilizarea senzorului de suprafață din polisilicon și a circuitului de condiționare a semnalului pentru a măsura accelerația. Ieșirea acestui dispozitiv este de natură analogică și proporțională cu accelerația. Acest dispozitiv măsoară accelerația statică a gravitației atunci când o înclinăm. Și dă un rezultat sub formă de mișcare sau vibrație.
Conform fișei tehnice a structurii micromachinate de suprafață din polisilicon adxl335 plasată deasupra plăcii de siliciu. Arcurile din polisilicon suspendă structura pe suprafața napolitanei și oferă o rezistență împotriva forțelor de accelerație. Devierea structurii este măsurată folosind un condensator diferențial care încorporează plăci fixe independente și plăci atașate la masa în mișcare. Plăcile fixe sunt acționate de unde pătrate în afara fazei de 180 °. Accelerarea deviază masa în mișcare și dezechilibrează condensatorul diferențial, rezultând o ieșire a senzorului a cărei amplitudine este proporțională cu accelerația. Se folosesc apoi tehnici de demodulare sensibile la fază pentru a determina amploarea și direcția accelerației.
Pin Descrierea accelerometrului
- Alimentarea Vcc de 5 volți ar trebui să se conecteze la acest pin.
- X-OUT Acest pin oferă o ieșire analogică în direcția x
- Y-OUT Acest pin oferă o ieșire analogică în direcția y
- Z-OUT Acest pin oferă o ieșire analogică în direcția z
- GND Ground
- ST Acest pin utilizat pentru setarea sensibilității senzorului
Diagrama și explicația circuitului
Robotul controlat prin gesturi este împărțit în două secțiuni:
- Partea transmițătorului
- Piesa receptor
În partea transmițătorului se utilizează un accelerometru și o unitate transmițătoare RF. După cum am discutat deja, accelerometrul oferă o ieșire analogică, așa că aici trebuie să convertim aceste date analogice în digitale. În acest scop, am folosit un circuit comparator pe 4 canale în locul oricărui ADC. Prin setarea tensiunii de referință obținem un semnal digital și apoi aplicăm acest semnal codificatorului HT12E pentru a codifica date sau le convertim în formă serială și apoi trimitem aceste date utilizând transmițătorul RF în mediu.
La sfârșitul receptorului, am folosit receptorul RF pentru a primi date și apoi am aplicat decodorului HT12D. Acest decodor convertește datele seriale primite în paralel și apoi citite folosind arduino. Conform datelor primite, conducem robotul folosind două motoare de curent continuu în direcția înainte, înapoi, stânga, dreapta și oprire.
Lucru
Robotul controlat prin gesturi se mișcă în funcție de mișcarea mâinii pe măsură ce plasăm emițătorul în mână. Când înclinăm mâna în față, robotul începe să meargă înainte și continuă să meargă înainte până când se dă următoarea comandă.
Când înclinăm mâna în spate, robotul își schimbă starea și începe să se deplaseze în direcție inversă până când se dă altă comandă.
Când îl înclinăm în partea stângă a robotului, răsuciți la stânga până la următoarea comandă.
Când înclinăm mâna în partea dreaptă, robotul sa întors spre dreapta.
Și pentru oprirea robotului, ținem mâna stabilă.
Diagrama circuitului pentru secțiunea emițător
Diagrama circuitului pentru secțiunea receptorului
Circuitul acestui robot controlat prin gestul mâinii este destul de simplu. Așa cum se arată în diagramele schematice de mai sus, o pereche RF este utilizată pentru comunicare și conectată cu arduino. Driverul motorului este conectat la arduino pentru a rula robotul. Pinul de intrare 2, 7, 10 și 15 al driverului motorului este conectat la pinul digital arduino numărul 6, 5, 4 și respectiv 3. Aici am folosit două motoare de curent continuu pentru a acționa robotul în care un motor este conectat la pinul de ieșire al driverului motorului 3 și 6 și un alt motor este conectat la 11 și 14. O baterie de 9 volți este, de asemenea, utilizată pentru alimentarea driverului motorului pentru acționarea motoarelor.
Explicația programului
În primul rând, în program am definit pini de ieșire pentru motoare.
Și apoi, în configurare, am dat instrucțiunile de fixare.
După aceasta, citim intrarea folosind „instrucțiunea if” și efectuăm operații relative.
Există în total cinci condiții pentru acest robot controlat prin gesturi, care sunt prezentate mai jos:
Mișcarea mâinii |
Intrare pentru Arduino din gest |
||||
Latură |
D3 |
D2 |
D1 |
D0 |
Direcţie |
Grajd |
0 |
0 |
0 |
0 |
Stop |
Înclinați spre dreapta |
0 |
0 |
0 |
1 |
Obligatoriu Dreapta |
Înclinați spre stânga |
0 |
0 |
1 |
0 |
Vireaza la stanga |
Înclinați-vă înapoi |
1 |
0 |
0 |
0 |
Înapoi |
Înclinați fața |
0 |
1 |
0 |
0 |
Redirecţiona |
Am scris programul complet conform condițiilor din tabelul de mai sus. Mai jos este codul complet.