Il mondo di Arduino è pieno di maker che ogni giorno creano progetti davvero utili e interessanti alla società. Barney Nicholl ha deciso di creare un dispositivo indossabile alimentato a batteria che mostrasse facilmente a un’altra persona se stava superando la distanza sociale limite consigliata di 1-2 metri.
Il progetto in questione è basato su Arduino ed utilizza un sensore di distanza ad ultrasuoni HC-SR04 e nel momento in cui la distanza che frappone colui che indossa il dispositivo a colui che si trova di fronte a lui è superiore al limite di distanza imposto si accende un LED verde, in caso contrario (ossia la distanza che separa i due è minore al limite di distanza imposto) si accenderà un LED rosso.
Il sensore in questione è molto preciso, ma come visto in un articolo che approfondisce il funzionamento del sensore (clicca qui per maggiori informazioni), vi sono alcuni oggetti, come i superfici morbide (peluche), che assorbono le onde sonore impedendo la corretta misurazione.
I materiali utilizzati per la creazione di questo progetto sono i seguenti:
- Sensore di distanza HC-SR04
- Arduino Pro Mini ATMEGA328P
- DC-DC Voltage Booster Converter
- 1X LED verde 5mm
- 1x LED rosso 5mm
- 2x Resistori da 220 ohm
- FTDI USB TTL Serial Adapter
- Lipo Battery 3.7v
Gli strumenti da utilizzare sono i seguenti:
- Saldatore
- Multimetro
- Breadboard (opzionale)
- Stampante 3d (è possibile richiedere un service esterno)
Barney Nicholl ha progettato la custodia su Tinkercad ed è gratuita e semplice da utilizzare. Ecco qui i link per poter scaricare i progetti in 3D.
Il diagramma di collegamento è il seguente:
Ecco qui un’immagine finale del progetto.
Il codice da utilizzare per il coretto funzionamento è il seguente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
int LED_GREEN = 3; int LED_RED = 2; int TRIG_PIN = 6; int ECHO_PIN = 5; // the setup function runs once when you press reset or power the board void setup() { Serial.begin(9600); // initialize led pins as output. pinMode(LED_GREEN, OUTPUT); pinMode(LED_RED, OUTPUT); // initialize sensor pins pinMode(ECHO_PIN, INPUT); pinMode(TRIG_PIN, OUTPUT); } // the loop function runs over and over again forever void loop() { delay(300); // Clears the TRIG_PIN condition digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); // Sets the TRIG_PIN HIGH (ACTIVE) for 10 microseconds digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // Reads the ECHO_PIN, returns the sound wave travel time in microseconds long duration = pulseIn(ECHO_PIN, HIGH); // Calculating the distance // Speed of sound wave divided by 2 (there and back) int distance = duration * 0.034 / 2; // Displays the distance on the Serial Monitor Serial.print(distance); Serial.println("cm"); // Set the led state based on the distance digitalWrite(LED_GREEN, distance >= 200 ? HIGH : LOW); digitalWrite(LED_RED, distance < 200 ? HIGH : LOW); } |
Il progetto realizzato da Barney Nicholl è molto carino e divertente e può tornare utile in tante occasioni in questo periodo.
Link utili
- Arduino UNO R3
- Elegoo UNO R3
- Arduino Starter Kit per principianti
- Elegoo Advanced Starter Kit
- Arduino Nano