In questo semplice progetto verrà utilizzato il sensore HC-SR04 per calcolare la distanza di un oggetto posto davanti al sensore.
Il sensore HC-SR04
Un bellissimo tutorial relativo a questo sensore ad ultrasuoni lo trovate presso questo sito:
http://www.settorezero.com/wordpress/il-sensore-ad-ultrasuoni-hc-sr04/
Calcolo dei valori delle resistenze necessarie
Nel tutorial presente in questo sito (in inglese):
http://www.modmypi.com/blog/hc-sr04-ultrasonic-range-sensor-on-the-raspberry-pi
si possono seguire le indicazioni per la realizzazione del semplice circuito necessario per non sovraccaricare i pin della raspberry, che potrebbero danneggiarsi.
In questo articolo, tuttavia, come ammette lo stesso autore, vengono indicate due resistenze da utilizzare prese fra quelle che lui aveva a disposizione.
Dalle formule riportate nello stesso articolo, non è difficile generalizzare il procedimento e calcolare una qualsiasi coppia di resistenze, diverse da quelle indicate:
- il rapporto Vout/Vin rimane fisso e vale 0.66
- gli unici valori incogniti che rimangono sono R1 e R2
- per risolvere completamente l’equazione occorre fissare il valore di una resistenza (ad esempio R1) e in corrispondenza determinare il valore dell’altra (R2)
Dopo aver trasformato l’equazione, il valore di R2 sarà:
R2 = (0,66 R1) / 0,34 |
Grazie a questa espressione sarà possibile calcolare più coppie di resistenze.
Ad esempio, se si fissa
R1 = 220 Ω , sostituendo 220 nella formula, si otterrà
R2 = 427 Ω, cioè 470Ω
che rappresentano i due valori di resistenze utilizzate per il nostro progetto.
Schema dei collegamenti
Lo schema dei collegamenti si riduce al posizionamento delle due resistenze fra il collegamento di GND e ECHO.
Per la nostra realizzazione sono stati utilizzati:
- una mini breadboard
- quattro fili jumper maschio-femmina
- due resistenze: 220 Ω e 470 Ω
OSS: I due pin relativi ai dati possono essere cambiati con altri disponibili (nel caso i pin 7 e 11 fossero già occupati). Tuttavia sono i pin utilizzati anche nel programma python che calcola la distanza, quindi in caso si utilizzassero altri pin, occorrerà modificare anche il listato
Listato Python
Il listato è stato realizzato al solo scopo di rendere operativo il sensore. Non sono presenti ottimizzazioni di sorta, che verranno aggiunte in seguito (tempo permettendo).
- versione 1: calcolo della distanza
- versione 2: registrazione su file dei valori acquisiti