DANCEY - the dancer

Introducere

Proiectul constă într-un robot umanoid dansator, echipat cu o cameră care monitorizează mișcările unui utilizator în oglindă. Utilizând tehnici de prelucrare a imaginilor și recunoaștere a mișcării prin intermediul bibliotecii OpenCV, robotul poate detecta gesturile și mișcările utilizatorului și să își ajusteze poziția în consecință.

Interacțiunea între utilizator și robot este intuitivă și directă, permițând controlul precis al mișcărilor robotului prin simpla reflecție a gesturilor umane în oglindă.

Descriere generală

  • Camera: Aceasta este camera montată pe robot care capturează imaginile utilizatorului în oglindă.
  • Prelucrare Imagini: Acest bloc implică prelucrarea imaginilor capturate de camera utilizând biblioteca OpenCV ( implementat folosind Python) pentru a extrage informații despre mișcările utilizatorului.
  • Detectare și Recunoaștere a Mișcării: Aici, algoritmii de recunoaștere a mișcării ( Motion Capture ) analizează imaginile prelucrate pentru a detecta și recunoaște gesturile și mișcările utilizatorului.
  • Control servo: În acest bloc, informațiile despre mișcările detectate ale utilizatorului sunt folosite pentru a controla mișcările robotului umanoid dansator. Acest lucru include ajustarea poziției membrelor sau a corpului robotului pentru a imita mișcările utilizatorului.

DANCEY THE DANCER Printru-un Python script sunt extrase datele si transmise placutei prin seriala.

Hardware Design

  • Arduino Mega
  • 6 servo uri ( 4 maini + 2 cap)
  • sistem Pan&Tilt
  • step down
  • modul LCD 1'44
  • modul camera OV7670

circuit OV7670 circuit LCD

===== ROBOT =====

Servourile au fost conectate printr-un stepdown de la 9V la 6V la pinii 8-13.

  • 8-9 sistem Pan&Tilt
  • 10-11 brat drept
  • 12-13 brat stang

Software Design

LCD

Cu ajutorul bibliotecilor LCDWIKI_GUI și LCD_WIKI_SPI, confer robotului o expresie facială. Dincolo de simpla afișare, această implementare adaugă o dimensiune suplimentară de interactivitate prin clipirea ochilor la intervale regulate de timp, reglată printr-un temporizator cu o perioadă de 1500 de milisecunde.

Miscare servo

Servourile sunt alimentate folosind un step-down la 6V, fiind o tensiune la care se comporta normal. Pentru a aduce în mișcare servo-motoarele, am integrat biblioteca OpenCV și am creat scripturi în Python. Unul dintre acestea se ocupă de mișcarea în pan și tilt, în timp ce celălalt se concentrează pe mișcarea brațelor. În plus, am dezvoltat un cod Arduino care declară servo-motoarele și le configurează pentru a primi date de la portul serial. Astfel, prin intermediul acestei abordări complexe și interconectate, robotul poate reacționa și executa acțiuni precise în funcție de datele primite.

Rezultate Obţinute

  • Performanța în recunoașterea mișcărilor: Evaluarea eficienței algoritmilor de recunoaștere a mișcării în detectarea și interpretarea corectă a gesturilor utilizatorului.
  • Precizia și fluiditatea mișcărilor robotului: Evaluarea modului în care robotul reacționează la gesturile utilizatorului și cât de precis și fluent se pot realiza mișcările.
  • Interacțiunea utilizatorului cu robotul: Experiența utilizatorului în interacțiunea cu robotul, precum și gradul de intuitivitate și control pe care îl oferă.
  • Nu am mai reusit sa integrez modului camera OV7670, am avut foarte multe probleme cu ea.

Concluzii

  • Trial&error pe partea de componente hardware.
  • Modulul OV7670 nu a functionat
  • Am ales initial un LCD de 2.8' touchscreen, dar nu am reusit sa l conectez, motiv pentru care am ajuns la cel de 1.44'
  • Am ars foarte multe servouri in timp ce testam
  • Python se integreaza foarte usor pe Arduino.

Download

Demos

Jurnal

  • Edit 1. Adaugare poze Robot la hardware
  • Edit 2. Software update

Bibliografie/Resurse

Resurse hardware

  • documentatia OPTIMUSDIGITAL a pieselor
  • Tutorial pan&tilt

Resurse software

pm/prj2024/tdicu/ana_andreea.lipianu.txt · Last modified: 2024/05/26 21:16 by ana_andreea.lipianu
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