Ultrasonic Theremin
L'interferenza dei fili sul sensore ad ultrasuoni ha prodotto questa melodia impazzita di suoni, dovuta alla presenza dei fili e al mio corpo che si avvicinava e allontanava dal sensore;
I sensori ad ultrasuoni non forniscono direttamente la misura della distanza dell’oggetto più vicino, ma misurano il tempo impiegato da un segnale sonoro a raggiungere l’oggetto e ritornare al sensore. L’impulso ad ultrasuoni inviato dal HC-SR04 è di circa 40KHz il tempo viene misurato in microsecondi, la tensione di funzionamento è di 5V
Il sensore HC-SR04 dispone di 4 pin: Vcc (+5V), Trigger, Echo, GND. Si invia un impulso alto sul pin Trigger per almeno 10 microsecondi, a questo punto il sensore invierà il ping sonoro e aspetterà il ritorno delle onde riflesse, il sensore risponderà sul pin Echo con un impulso alto della durata corrispondente a quella di viaggio delle onde sonore, dopo 38 millisecondi si considera che non sia stato incontrato alcun ostacolo. Per sicurezza si aspettano in genere 50-60 millisec per far si che non vi siano interferenze con la misura successiva.
Progetto originale : link
Hardware
330Ω Resistor
470Ω Resistor
Solderless Breadboard
Ultrasonic Distance Sensor
3 x Male to Male Jumper Leads
4 x Male to Female Jumper Leads
Software
sudo apt update && sudo apt upgrade -y
sudo pip3 install python-osc
Python :
from gpiozero import DistanceSensor
from time import sleep
from pythonosc import osc_message_builder
from pythonosc import udp_client
sensor = DistanceSensor(echo=17, trigger=4)
sender = udp_client.SimpleUDPClient('127.0.0.1', 4559)
while True:
pitch = round(sensor.distance * 100 + 30)
sender.send_message('/play_this', pitch)
sleep(0.1)
------
Sonic Pi :
live_loop :listen do
message = sync "/play_this"
note = message[:args][0]
play note
end