Robot controlat prin gesturi

Introducere

  • Varzaru Vlad-Ionut
  • 331CD
  • Indrumator: Razvan Virtan

Proiectul consta in implementarea unui robot care poate fi controlat prin miscarile mainii cu ajutorul unui accelerometru. In plus, robotul va avea si un senzor de distanta pentru a se putea opri singur cand detecteaza un obiect in fata. Acest proiect combina tehnologia senzorilor, comunicarea wireless și controlul motoarelor pentru a crea o experienta captivanta si interactiva.

Scopul acestui proiect este de a explora potentialul tehnologiei de recunoastere a gesturilor si de a-l integra intr-un sistem de control al unui robot.

Descriere generală

Acest proiect implica doua circuite: un circuit transmitator și un circuit receptor. Accelerometrul MPU6050 translateaza gesturile mainii în semnale electrice. Arduino Nano procesează aceste semnale și le transmite prin intermediul modulului wireless. La capatul receptor, al doilea modul wireless capteaza aceste semnale si le trimite catre Arduino Uno pentru decodificare. Odata ce primește semnalele, Arduino Uno declanseaza motoarele prin intermediul driverului de motoare, directionand robotul sa se miște “INAINTE”, “INAPOI”, “STANGA” sau “DREAPTA”.

Hardware Design

Componente Hardware

  • Kit sasiu masina 2WD
  • ARDUINO NANO ATmega328
  • ARDUINO UNO
  • Modul giroscopic si accelerometru 3 axe GY-521
  • 2 x Modul wireless transreceiver NRF24L01 2.4GHz
  • Punte H Dubla L298N (Motor driver)
  • HC-SR04 Ultrasonic Sensor
  • Breadboard
  • Fire
  • Baterii

Circuitul Receptor

Modulul wireless NRF24L01 foloseste protocolul de comunicatie SPI, asa ca am conectat pinii SCK, MISO si MOSI la pinii 13, 12, respectiv 11 ai placii Arudino UNO, iar pinii CE si CS puteau fi conectati la orice pin digital, eu am ales pinii 8 si 9.

Circuitul Transmitator

Aici, pinii pentru modulul wireless sunt contectati la fel ca la circuitul receptor cu pinii de pe Ardunio Nano. Modulul giroscopic MPU6050 foloseste comunicatie I2C, asa ca am conectat pinii SCL si SDA ai acestuia la pinii A5, respectiv A4.

Software Design

Project link: Github

Mediu de dezvoltare:

  • Arduino IDE

Librării și surse 3rd-party:

  • Wire.h: Utilizată pentru comunicarea I2C.
  • I2Cdev.h: Utilizată pentru comunicația cu MPU6050.
  • MPU6050.h: Biblioteca principală pentru MPU6050.
  • SoftwareSerial.h: Utilizată pentru comunicarea serială prin Bluetooth.

Citirea și maparea Datelor:

  • Datele de la MPU6050 sunt citite în variabilele ax, ay, az, gx, gy, gz.
  • Valorile axiale (ax și ay) sunt mapate la intervalele dorite pentru a fi transmise eficient.

Transmiterea si receptia datelor prin Bluetooth:

  • Datele mapate sunt convertite într-un format de tip string și trimise prin Bluetooth folosind SoftwareSerial.
  • La recepție, stringul este citit și împărțit în valorile componente folosind funcții de manipulare a stringurilor.

Controlul motorului pe baza datelor receptionate:

  • Valorile pentru axele X și Y sunt utilizate pentru a decide direcția de miscare a robotului controlat de cele doua motoare.
  • Controlul vitezei și directiei motoarelor este realizat prin modificarea semnalelor PWM și a pinilor de control.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2024/rvirtan/robot_controlat_prin_gesturi.txt · Last modified: 2024/05/26 17:25 by vlad_ionut.varzaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0