Sound Levitation


Le but de ce projet était de faire léviter de petits objets (ici des billes de polystyrène) à l’aide d’ultrasons. Pour plus d’explications sur le principe scientifique de la lévitation sonore, une chaîne américaine vulgarise assez bien le phénomène : à voir ici.

Le projet est inspiré de projets déjà existants, dont notamment celui-ci.

Voici la présentation qui a été montrée au début du projet, fixant nos objectifs pour le futur.

Matériel nécessaire


Voici une liste plus ou moins exhaustive du matériel dont nous avons eu besoin pour le projet.

Arduino Unox1
Breadbordx1
Couple de haut-parleurs (jusqu’à 40kHz)x2
H-Bridge motor driverx1
Fils
Alimentation 12V
Bois
Plexiglass
Colle à bois

Circuit électronique


Ci-dessous, nous avons réalisé un schéma du circuit électronique servant à générer les ondes sonores en continu.

Code

Code open source permettant d’émettre deux ondes sonores identiques

//original code from: https://makezine.com/projects/micro-ultrasonic-levitator/

byte TP = 0b10101010; // Every other port receives the inverted signal

void setup() {
  DDRC = 0b11111111; // Set all analog ports to be outputs
  
  // Initialize Timer1
  noInterrupts(); // Disable interrupts
  
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1 = 0;
  OCR1A = 200; // Set compare register (16MHz / 200 = 80kHz square wave -> 40kHz full wave)
  
  TCCR1B |= (1 << WGM12); // CTC mode
  TCCR1B |= (1 << CS10); // Set prescaler to 1 ==> no prescaling
  TIMSK1 |= (1 << OCIE1A); // Enable compare timer interrupt
  
  interrupts(); // Enable interrupts
}

ISR(TIMER1_COMPA_vect) {
  PORTC = TP; // Send the value of TP to the outputs
  TP = ~TP; // Invert TP for the next run
}

void loop() {
  // Nothing left to do here
}

Avancement à mi-parcours


Voici la présentation qui a été montrée à la moitié du projet :

A mi-parcours, le projet sur un couple de haut-parleurs est fonctionnel. Les haut-parleurs sont cependant instables et les billes sensibles au moindre mouvement / la moindre perturbation. Voici 2 illustrations de ce que l’on pouvait faire à ce moment :

La lévitation était encore donc assez limitée, il fallait un écart encore trop petit (moins de 2mm). Les objectifs suivant étaient de passer à 2 couples de haut-parleurs cohabitant et faisant léviter simultanément 2 billes. Il restait également la construction d’une structure décorative ainsi que l’installation d’une alimentation pratique pour l’utilisateur.

Problèmes rencontrés


Nous avons ensuite essayé d’ajouter le deuxième couple de haut-parleurs. Cependant, après avoir insérer le couple au circuit, plusieurs problèmes sont survenus. Le second couple rendait l’onde transmise instable et beaucoup plus faible puisque répartie sur 4 haut-parleurs désormais. Nous avons donc essayé de modifier le code. Puis nous avons remarqué que, parfois, le second couple ne transmettait pas d’onde sonore. Les haut-parleurs étant en effet à l’origine des Distance Sensors Arduino, ils ne sont pas de haute qualité et transmettent un léger son audible lorsqu’ils sont activés.

Comme on peut le voir sur la photo ci-dessus, le son était bien transmis jusqu’aux haut-parleurs mais l’un des deux ne transmettait rien. Nous avons donc par la suite commandé 2 autres couples de buzzer cette fois-ci. Ces derniers étant arrivés durant la dernière semaine, nous n’avons pas eu assez de temps mais les tests que nous avons fait n’étaient toujours pas concluant. A noter que ces nouveaux speakers n’étaient, à notre avis, pas adaptés puisqu’ils transmettaient une onde sonore particulièrement audible et forte.

Réalisation d’une boîte d’exposition


Ensuite, nous avons donc réalisé une structure décorative afin de pouvoir exposer le projet dans le FabLab et faciliter les interactions avec les utilisateurs. Il était aussi important d’isoler au mieux les speakers afin d’éviter toute perturbation sonore ou physique.
Pour cela, nous avons utilisé un site pour générer des fichiers SVG permettant la découpe laser d’une planche de bois. Nous avons ensuite pu éditer ces fichiers sous Inkscape afin de modifier la structure comme nous le voulions. Le bois utilisé est du CTP Peuplier 5mm et la vitre en Plexiglass est d’une épaisseur de 3mm.

Les fichiers SVG de la boîte principale et de la boîte contenant le circuit électronique sont téléchargeables ici.

Le résultat de la boîte une fois assemblée avec la vitre amovible en plexiglass :

Conclusion et résultat final


Voici la présentation qui a été montrée en fin de projet.

En conclusion, nous avons une structure décorative, pouvant faire léviter jusqu’à 5 petits objets, ici des billes de polystyrène, que nous avons colorées de différentes couleurs pour mieux les percevoir dans la boîte. La vitre amovible permet de mettre / remettre les billes tombées à l’aide d’une pince laissant passer l’onde sonore. L’interrupteur sur le côté permet d’allumer ou d’éteindre le circuit facilement. Les 2 compartiments sont collés à la colle à bois, sauf le toit qui reste amovible malgré un scotch plaquant les fils à la paroi, pour tout besoin d’accéder au circuit.

Voici les photos du résultat final :

Nous avions différentes pistes pour une suite du projet : rajouter une molette à l’extérieur permettant de régler la fréquence des ondes transmises pour faire déplacer les nœuds et donc les billes en temps réél. Nous voulions également aligné plusieurs couples de hauts parleurs horizontalement afin de réaliser un mouvement des billes ressemblant à la vibration d’une onde (par exemple en les faisant varier leur fréquence respective de manière asynchrone et ainsi créer un décalage).

Sources et outils utilisés

Membres du projet

  • Quentin Lamour
  • Léo Marty

Permanent link to this article: https://www.eirlab.net/2021/09/19/sound-levitation/