- Materiali richiesti:
- Schema del circuito del bastone cieco:
- Programma Arduino per Smart Blind Stick:
- Arduino Blind Stick in azione:
Mai sentito parlare di Hugh Herr? È un famoso scalatore americano che ha infranto i limiti della sua disabilità; è fermamente convinto che la tecnologia possa aiutare le persone disabili a vivere una vita normale. In uno dei suoi discorsi TED Herr ha detto: “ Gli esseri umani non sono disabili. Una persona non può mai essere spezzata. Il nostro ambiente costruito, le nostre tecnologie, è rotto e disabilitato. Noi persone non dobbiamo accettare i nostri limiti, ma possiamo trasferire la disabilità attraverso l'innovazione tecnologica ”. Queste non erano solo parole, ma ha vissuto la sua vita per loro, oggi usa le gambe protesiche e afferma di vivere una vita normale. Quindi sì, la tecnologia può davvero neutralizzare la disabilità umana; con questo in mente usiamo alcune semplici schede di sviluppo e sensori per costruire un bastone da passeggio cieco ad ultrasuoni usando Arduino che potrebbe funzionare più di un semplice bastone per le persone ipovedenti.
Questo Smart stick avrà un sensore a ultrasuoni per rilevare la distanza da qualsiasi ostacolo, LDR per rilevare le condizioni di illuminazione e un telecomando RF che consente al cieco di localizzare a distanza il suo bastone. Tutti i feedback verranno forniti al cieco tramite un Buzzer. Ovviamente puoi usare un motore vibratore al posto di Buzzer e avanzare molto di più usando la tua creatività.
Materiali richiesti:
- Arduino Nano (qualsiasi versione funzionerà)
- Sensore a ultrasuoni HC-SR04
- LDR
- Buzzer e LED
- 7805
- Trasmettitore e ricevitore RF 433 MHz
- Resistenze
- Condensatori
- Premi il bottone
- Scheda Perf
- Kit di saldatura
- Batterie da 9V
Puoi acquistare tutti i componenti necessari per questo progetto smart blind stick da qui.
Schema del circuito del bastone cieco:
Questo progetto Arduino Smart Blind Stick richiede due circuiti separati. Uno è il circuito principale che verrà montato sul bastone del cieco. L'altro è un piccolo circuito trasmettitore RF remoto che verrà utilizzato per individuare il circuito principale. Di seguito è mostrato lo schema del circuito della scheda principale per costruire un bastone cieco utilizzando il sensore a ultrasuoni:
Come possiamo vedere un Arduino Nano viene utilizzato per controllare tutti i sensori, ma puoi anche costruire questo Smart blind stick usando arduino uno ma seguendo lo stesso pinout e programma. La scheda completa è alimentata da una batteria da 9V regolata a + 5V tramite un regolatore di tensione 7805. Il sensore a ultrasuoni è alimentato da 5 V e il grilletto e il pin Echo sono collegati ai pin 3 e 2 di Arduino nano come mostrato sopra. L' LDR è collegato con un resistore di valore 10K per formare un divisore di potenziale e la differenza di tensione viene letta dal pin A1 dell'ADC di Arduino. Il pin A0 dell'ADC viene utilizzato per leggere il segnale dal ricevitore RF. L'uscita della scheda è data dal Buzzer che è collegato al pin 12.
Il circuito remoto RF è mostrato di seguito. Anche il suo funzionamento è ulteriormente spiegato.
Ho usato un piccolo trucco per far funzionare questo circuito di telecomando RF. Normalmente mentre si utilizza questo modulo RF a 433 MHz richiede un codificatore e un decodificatore o due MCU per funzionare, come nel nostro precedente circuito di trasmettitore e ricevitore RF abbiamo usato rispettivamente HT12D e HT12E, decodificatore e codificatore IC. Ma, nella nostra applicazione, abbiamo solo bisogno del ricevitore per rilevare se il trasmettitore sta inviando alcuni segnali. Quindi il pin Data del trasmettitore è collegato a Ground o Vcc dell'alimentazione.
Il pin dati del ricevitore viene passato attraverso un filtro RC e quindi dato ad Arduino come mostrato di seguito. Ora, ogni volta che si preme il pulsante, il ricevitore emette ripetutamente un valore ADC costante. Questa ripetizione non può essere osservata quando il pulsante non è premuto. Quindi scriviamo il programma Arduino per verificare la presenza di valori ripetuti per rilevare se il pulsante viene premuto. Quindi è così che un cieco può seguire il suo bastone. Puoi controllare qui: come funzionano il trasmettitore e il ricevitore RF.
Ho usato una scheda perf per saldare tutte le connessioni in modo che rimangano intatte con lo stick. Ma puoi anche farli su una breadboard. Queste sono le schede che ho realizzato per questo progetto blind stick usando arduino.
Programma Arduino per Smart Blind Stick:
Una volta che siamo pronti con il nostro hardware, possiamo collegare Arduino al nostro computer e iniziare la programmazione. Il codice completo utilizzato per questa pagina si trova in fondo a questa pagina, puoi caricarlo direttamente sulla tua scheda Arduino. Tuttavia, se sei curioso di sapere come funziona il codice, continua a leggere.
Come tutti i programmi, iniziamo con void setup () per inizializzare i pin di Input Output. Nel nostro programma il pin Buzzer e Trigger è un dispositivo di output e il pin Echo è un dispositivo di input. Inizializziamo anche il monitor seriale per il debug.
void setup () {Serial.begin (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (trigger, OUTPUT); pinMode (echo, INPUT); }
All'interno del ciclo principale stiamo leggendo tutti i dati dei sensori. Iniziamo con la lettura dei dati del sensore del sensore a ultrasuoni per la distanza, LDR per l'intensità della luce e il segnale RF per verificare se il pulsante è premuto. Tutti questi dati vengono salvati in una variabile come mostrato di seguito per un utilizzo futuro.
calcolare_distanza (trigger, echo); Segnale = analogRead (Remote); Intens = analogRead (Light);
Iniziamo con il controllo del segnale remoto. Usiamo una variabile chiamata similar_count per controllare quante volte gli stessi valori vengono ripetuti dal ricevitore RF. Questa ripetizione avverrà solo quando si preme il pulsante. Quindi attiviamo l'allarme Premuto remoto se il conteggio supera un valore di 100.
// Controlla se Remote è premuto int temp = analogRead (Remote); similar_count = 0; while (Signal == temp) {Signal = analogRead (Remote); similar_count ++; } // Se premuto a distanza if (similar_count <100) {Serial.print (similar_count); Serial.println ("Remote Pressed"); digitalWrite (Buzz, HIGH); delay (3000); digitalWrite (Buzz, LOW); }
Puoi anche controllarlo su Serial Monitor sul tuo computer:
Successivamente controlliamo l'intensità della luce intorno al cieco. Se l'LDR dà un valore inferiore a 200 si presume che sia molto scuro e gli diamo l'avviso tramite buzzer con uno specifico tono di ritardo con 200ms. Se l'intensità è molto brillante che è superiore a 800 allora anche noi diamo un avvertimento con un altro tono. Il tono e l'intensità dell'allarme possono essere facilmente variati modificando il rispettivo valore nel codice sottostante.
// Se molto scuro if (Intens <200) {Serial.print (Intens); Serial.println ("Bright Light"); digitalWrite (Buzz, HIGH); delay (200); digitalWrite (Buzz, LOW); delay (200); digitalWrite (Buzz, HIGH); delay (200); digitalWrite (Buzz, LOW); delay (200); ritardo (500); } // Se molto luminoso if (Intens> 800) {Serial.print (Intens); Serial.println ("Low Light"); digitalWrite (Buzz, HIGH); delay (500); digitalWrite (Buzz, LOW); delay (500); digitalWrite (Buzz, HIGH); delay (500); digitalWrite (Buzz, LOW); delay (500); }
Infine, iniziamo a misurare la distanza da qualsiasi ostacolo. Non ci sarà alcun allarme se la distanza misurata è superiore a 50 cm. Ma, se è inferiore a 50 cm, l'allarme inizierà emettendo un segnale acustico. Man mano che l'oggetto si avvicina al cicalino, anche l'intervallo del segnale acustico diminuisce. Più l'oggetto è vicino, più veloce sarà il segnale acustico del cicalino. Questo può essere fatto creando un ritardo proporzionale alla distanza misurata. Poiché il delay () in Arduino non può accettare variabili, dobbiamo utilizzare un ciclo for che si basa sulla distanza misurata come mostrato di seguito.
if (dist <50) {Serial.print (dist); Serial.println ("Object Alert"); digitalWrite (Buzz, HIGH); for (int i = dist; i> 0; i--) delay (10); digitalWrite (Buzz, LOW); for (int i = dist; i> 0; i--) delay (10); }
Ulteriori informazioni sulla misurazione della distanza utilizzando il sensore a ultrasuoni e Arduino.
Il programma può essere facilmente adattato alla tua applicazione modificando il valore che utilizziamo per il confronto. Si utilizza il monitor seriale per eseguire il debug se viene attivato un falso allarme. Se hai qualche problema puoi usare la sezione commenti qui sotto per inviare le tue domande
Arduino Blind Stick in azione:
Finalmente è il momento di testare il nostro progetto blind stick arduino. Assicurarsi che i collegamenti siano effettuati secondo lo schema elettrico e che il programma sia stato caricato correttamente. Ora, alimenta entrambi i circuiti usando una batteria da 9V e dovresti iniziare a vedere i risultati. Avvicina il sensore Ultra Sonic all'oggetto e noterai il segnale acustico del cicalino e la frequenza del segnale acustico aumenta man mano che la levetta si avvicina all'oggetto. Se l'LDR è oscurato o se c'è troppa luce, il cicalino emette un segnale acustico. Se tutto è normale, il cicalino non emetterà alcun segnale acustico.
Quando si preme il pulsante sul telecomando, il cicalino emetterà un lungo segnale acustico. Il funzionamento completo di questo Smart Stick per non vedenti utilizzando Arduino è mostrato nel video riportato alla fine di questa pagina. Uso anche un piccolo bastone per montare il gruppo completo, puoi usarne uno più grande o un vero bastone cieco e metterlo in azione.
Se il tuo cicalino suona sempre significa che l'allarme è stato attivato in modo falso. È possibile aprire il monitor seriale per verificare i parametri e controllare quale sta cadendo in critico e regolarlo. Come sempre puoi pubblicare il tuo problema nella sezione commenti per ottenere aiuto. Spero che tu abbia capito il progetto e ti sia piaciuto costruire qualcosa.