This is an old revision of the document!


FRIENDLY Baby Yoda

Introducere

Cu totii ne-am plictisit de jucariile clasice care sunt mereu vesele si care inspira un aer pozitiv. Eu o sa fac o jucarie pasiva-agresiva care va impartasi ura si glume, o jucarie mai amuzanta care nu este detinata copiilor, va fi fioroasa cu ochii rosii si o voce agresiva, dar sub o cochilie safe de baby yoda.

Prezentarea pe scurt a proiectului vostru:

  • Jucarie care se conecteaza la orice boxa portabila (Broadcast)
  • Apesi pe butoane ca sa auzi melodii / audio-uri amuzante
  • Led-uri care se aprind in functie de intensitate
  • Joc interactiv de memorie
  • Joc interactiv de aruncat in sus

Descriere generală

Jucăria este compusă dintr-un modul principal cu microcontroler, senzori de mișcare, boxa portabila, LED-uri rosii.

Jucaria va avea un corp de baby yoda in care voi pune piese hardware ca sa devina “inteligenta”. Aceasta are 2 butoane pe brate ca sa poti interactiona cu ea, dar nu doar atat, si un accelerometru (WOW), astfel sa-si dea seama daca o zgudui prea tare sau daca o arunci in sus. Foloseste o tehnologie wireless foarte avansata numita Bluetooth ca sa se conecteze la (TOATE) boxele portabile pornite in jur si sa-si faca glasul auzit (E si o unealta de terorism din acest motiv). Are mai multe interactiuni gata de folosit de catre useri, este rezistenta, lipita si rezista la cazaturi (si la copii de 3 ani, am testat).

Hardware Design

Toate modulele comunică cu microcontrolerul (ESP32 sau similar). Codul rulează local, cu opțională conectare la internet pentru generarea de replici.

Aici puneţi tot ce ţine de hardware design:

  • Microcontroler ESP32
  • 2 Led-uri Rosii
  • Modul Card Sd cu operatii de read si write (Nu mp3)
  • Modul Accelerometru
  • 2 rezistente de 220 Ohm
  • Baterie 5v reincarcabila
  • Cablu Micro Usb → Micro usb
  • Placa de dezvoltare pentru lipit
  • Card Micro Sd minim 2GB

Poza prototip 1:

Poza prototip 2:

Poza dupa lipit complet:

Software Design

Descrierea codului aplicației (firmware):

Platformă: Arduino IDE

Librării folosite:

  • SPI.h, SD.h – acces card SD (Lab 4, Lab 5)
  • BluetoothA2DPSource.h – streaming audio prin Bluetooth
  • Wire.h, Adafruit_Sensor.h, Adafruit_ADXL345_U.h – accelerometru ADXL345 (Lab 2)
  • math.h, Arduino.h

* Surse 3rd-party:

  • Adafruit_ADXL345_U – comunicare I2C cu senzorul de mișcare
  • BluetoothA2DPSource – streaming audio A2DP

* Funcționalități:

  • Inițializare SD card
  • Redare fișiere WAV prin Bluetooth
  • LED-uri controlate PWM în funcție de intensitatea sunetului
  • Butoane cu debounce
  • Joc de memorie cu LED-uri și butoane
  • Detectare mișcare (shake) cu accelerometru
  • LED breathing în stare de idle
  • Double-tap pentru lansarea jocului
  • Feedback audio + LED la fiecare nivel

* Algoritmi și structuri:

  • Debounce software cu timere
  • Generare secvențe aleatoare cu random()
  • Comparare input utilizator cu secvență memorată
  • Calcul accelerație totală (sqrt x²+y²+z²)
  • Control PWM cu ledcWrite și ledcAttach
  • Callback-uri audio pentru Bluetooth

* Funcții implementate (etapa 3):

  • get_audio_data() – trimite date audio prin Bluetooth
  • playFile() – redă fișier audio de pe SD
  • startMemoryGame(), showSequence(), handleMemoryGame(), gameOver(), gameWin()
  • setup(), loop()

* Laboratoare utilizate:

  • Lab 0: Arduino IDE
  • Lab 1: PWM, LED-uri, debounce butoane
  • Lab 2: accelerometru ADXL345 (I2C)
  • Lab 3: organizare modulară cod
  • Lab 4: SD card
  • Lab 5: redare fișiere WAV
  • Lab 6: joc cu LED-uri și butoane (Simon Says)

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/prj2025/rnedelcu/george.bruma.1748427427.txt.gz · Last modified: 2025/05/28 13:17 by george.bruma
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