Table of Contents

Levitator acustic - Chiper Ioana-Cristina

Ioana-Cristina CHIPER (117188)

Introducere

PREZENTARE IDEE

Ideea a venit de la un interes personal petru levitația bazată pe ultrasunete. Astfel am decis că proiectul la PM este ocazia perfectă pentru satisfacerea acestei curiozități.

Din cauza puterii mici, levitatorul va fi limitat la biluțe de polistiren sau poate o mica picătură de apă (dar această parte rămâne sub semnul întrebării deoarece densitatea obiectului influențează foarte mult intensitatea undei necesară pentru a putea levita).

SCOP ȘI UTILIZARE

La o primă vedere proiectul nu are o utilitate practică și de aceea am decis să construiesc un obiect cu scop decorativ ce să înblobeze drept componentă principală levitatorul.

Deoarece perturbațiile din aer pot influența echilibrul levitatorului, acesta trebuie ținut într-un loc mai rar accesat, ceea ce m-a condus la ideea implementării unui ceas ornamental. Astfel levitatorul va reprezenta elemental de design modern și doresc utilizarea unui strip de led-uri adresabil pentru un joc de lumini asupra obiectului levitat.

Ceasul va fi implementat prin cod, iar ora va putea fi setată, și va fi afișat pe un ecran lcd 16×2.

Descriere generală

SCHEMA BLOC
Mai jos este prezentată schema bloc a sistemului în care sunt prezentate modul în care diferitele componente vor interacționa.

Hardware Design

LISTĂ PIESE

  • Placă de dezvoltare Compatibilă cu Arduino UNO R3 (ATmega328p + ATmega16u2)
  • Senzor ultrasonic HC-SR04 x2 (se desasambleză și se folosește doar T)
  • Modul cu driver de motoare dual L298N
  • Baterie 9V
  • Buton x4
  • Bandă LED adresabilă RGB, WS2812
  • LCD 1602 cu interfață I2C

SCHEMA ELECTRICĂ

TESTE HARDWARE
Intrucat emițătoarele de ultrasunete desprinse din senzorii de distanță erau mai greu de testat am realizat un montaj de test pentru levitator pentru a fi sigură de funcționalitatea acestora. Din acest test am realizat și următoarele observații:

Software Design

Notiuni utilizate:

OBSEVATII:
1) Ceasul a fost implementat doar prin logica interna, fara a folosi modul RTC separat (din motive de timp, buget si disponibilitate), ceea ce inseamna ca ceasul trebuie setat la fiecare repornire.
2) Contorizarea secundelor se realizeaza prin atribuirea functiei loop() un timp de executie de aproximativ o secunda. Acest lucru s-a realizat prin functia millis()
3) Pentru a avea un timp de raspuns relativ nesesizabil de la butoane, am decis spargerea buclei loop() in 5 iteratii a cate 200ms. Din testarea manuala timpul de raspuns pare destul de rapid incat sa nu fie deranjant. (tinand cont si de scopul butoanelor - setarea orei si schimbarea culorilor)

for (int i = 0; i < 5; i++) {
    while ((now - last_time) < 200) // Delay 200ms
       now = millis();
    last_time=now; // Prepare for next loop 
    // logic here...
  }

Codul sursa poate fi gasit aici. (link Github)

Rezultate Obţinute

In primul rand, proiectul este functional, dar mai am de lucru la partea de aspect pentru prezentare.

Realizand mai multe teste pentru levitator am observat urmatoarele:

Tinand cont ca aspectul principal al proiectului (si punctul meu central de interes) era levitatorul, nu pot spune ca am acordat la fel de multa atentie celorlalte doua componente, dar mentionez ca utilizarea led-urilor adresabile este amuzanta si iti permite realizarea unor jocuri de lumini interesante. Desi nu am implementat in proiect in mod special jocuri de lumini, perioada de testare/invatare a utilizarii acestor tipuri de led-uri a fost destul de captivanta.

Tot legat de acest aspect doresc sa mentionez o posibila problema mai greu de depistat pentru care am pierdut foarte mult timp. Alimentarea pentru led-uri a fost o baterie externa de 9V, intrucat specificatiile mentionau ca un led consuma ~50mA. Observatia realizata pe baza unei experiente neplacute este ca atunci cand bateria incepe sa se descarce sub un anume nivel ledurile se comporta ciudat. Intuitia mi-ar fi spus ca la descarcarea bateriei ar lumina mai putin intens. In realitate ledurile se aprindeau random doar cateva din cele care ar fi tb sa se aprinda. In contextul in care aveam un buton de control al culorilor comenzile erau luate din cand in cand, iar transmiterea lor era tot ciudata, se putea intampla ca unele leduri sa vada modificarea si altele nu.

Design

In ce a constat:

PROBLEME INTAMPINATE:

Gallery: (click photo for enlarging)

Concluzii

In primul rand mentionez ca au fost aduse cateva modificari design-ului hardware din diferite motive:

1. Am renuntat la butonul pentru controlul levitatorului (nu influenteaza complexitatea fiind similar cu celelalte butoane)

2. Butonul pentru led-uri nu le stinge, ci este utilizat pentru schimbarea culorilor (Mi s-a parut o utilizare mai buna si interesanta)

3. In conceptul initial pentru forma finala elementele levitatorului trebuiau sa fie in aceiasi cutie cu led-urile. In urma testelor si observatiilor facute relativ la functionalitatea acestora am decis sa las modulul levitatorului pe stativul de proba si exterior celorlalte componente pentru o experienta mai buna de utilizare la demo.

Overall:

A fost un proiect destul de interesant, insa perioada de desfasurare a fost foarte aglomerata si timpul de implementare relativ restrans, pierzand cateva nopti de somn.

Ma bucur ca a mers din prima dupa introducerea in cutie. Desi testasem elementele inainte de asamblarea finala aveam emotii vizavi de functionare, mai ales ca anumite componente ar fi fost greu de mutat/schimbat dupa asamblare.

Final look:
L-am denumit AiHao, inseamna hobby, motivele au fost ca imi place sonoritatea, cum arata caracterele si lipsa de o inspiratie mai buna la momentul finalizarii (ora 1 am inainte de PM fair).

Download

Arhiva ce contine codul sursa:
chiper_ic_335cb_pm.zip

Mai jos este o arhiva cu cateva filmulete cu levitatorul si functionarea finala a componentelor. DISCLAIMER: Se aude un sunet relativ neplacut pe fundal, este din cauza ca microfonul de la telefon prinde din ultrasunetele de la levitator.

filmulete.zip

Jurnal

05/05/2023: Achiziționare componente hardware
07/05/2023: Finalizare etapa 1 - documentație
15/05/2023: Testare emițătoare - realizare montaj de probă pentru levitator - it worked (^▽^)
21/05/2023: Finalizare etapa 2 - hardware (schema + teste)
26/05/2023: Implementat controlul led-urile
27/05/2023: Implementat functionalitatea de ceas + work with lcd
28/05/2023: Completat pagina de wiki cu etapa de soft + rezultate/concluzii
29/05/2023: Finalizat implementarea fizica
30/05/2023: Final update for the wiki

Bibliografie/Resurse

Export to PDF
https://www.youtube.com/watch?v=WZpdGN6YTdY
https://www.heise.de/ratgeber/Einfacher-Ultraschall-Levitationsapparat-4022505.html
https://www.youtube.com/watch?v=FUviBs3flvo&t=393s
https://www.youtube.com/watch?v=-E7zlQEk5MA
https://randomnerdtutorials.com/guide-for-ws2812b-addressable-rgb-led-strip-with-arduino/
https://www.alldatasheet.com/datasheet-pdf/pdf/22440/STMICROELECTRONICS/L298N.html