Tavola-disegno-6@8x-100-scaled
Tavola-disegno-5-copia-3@8x-100-scaled
Tavola-disegno-5-copia-5@8x-100-scaled
Tavola-disegno-5-copia-6@8x-100-scaled
Tavola-disegno-5-copia@8x-100-scaled
Tavola-disegno-5-copia-8@8x-100-scaled
Tavola-disegno-3@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
previous arrow
next arrow

Tavola-disegno-6@8x-100-scaled
Tavola-disegno-5-copia-3@8x-100-scaled
Tavola-disegno-5-copia-5@8x-100-scaled
Tavola-disegno-5-copia-6@8x-100-scaled
Tavola-disegno-5-copia@8x-100-scaled
Tavola-disegno-5-copia-8@8x-100-scaled
Tavola-disegno-3@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
previous arrow
next arrow

Tavola-disegno-6@8x-100-scaled
Tavola-disegno-5-copia-3@8x-100-scaled
Tavola-disegno-5-copia-5@8x-100-scaled
Tavola-disegno-5-copia-6@8x-100-scaled
Tavola-disegno-5-copia@8x-100-scaled
Tavola-disegno-5-copia-8@8x-100-scaled
Tavola-disegno-3@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
Tavola-disegno-5-copia-7@8x-100-scaled
previous arrow
next arrow

Un prova riflessi elettronico

da | 29 Dic, 19 | Design |

Al giorno d’oggi l’elettronica mette a disposizione degli sperimentatori tantissimi mezzi, di qualunque genere, per realizzare progetti elettronici. Un prova riflessi si può costruire in mille modi diversi: meccanico, con elettronica discreta e con microcontrollore. Quello descritto nel presente articolo utilizza un microcontrollore PIC e una manciata di componenti per un utile accessorio da usare quando ci si sta mettendo alla guida di un veicolo.

Introduzione

Un prova riflessi è un dispositivo che serve a misurare la capacità di reazione di un individuo. Tale tempo intercorre dal momento della percezione di un segnale a quello di attuazione di un comportamento fisico. In altre parole è l’intervallo di tempo tra uno stimolo e la risposta a esso. Nel caso del presente progetto, l’utente deve aspettare il segnale di Start dal sistema quindi, il più velocemente possibile, egli deve premere un pulsante di Stop. Il segnale d’allarme sarà rappresentato dall’accensione di un diodo Led rosso. Il tempo intercorrente tra l’accensione dell’indicatore è la pressione del pulsante rappresenta il tempo di reazione che è tanto migliore quanto esso risulta più basso. Il tempo di attesa per L’accensione del diodo Led non è sempre il medesimo ma risulta casuale, proprio per dare quell’incertezza in più all’operatore e fare risultare l’esercizio più difficile e imprevedibile. Specialmente nella guida, avere dei riflessi veloci è estremamente importante e si possono salvare vite umane, in caso d’imprevisto. Oltre al tempo di reazione, infatti, occorre considerare anche il tempo di frenata che rende maggiore lo spazio percorso dal veicolo. La figura 1 mostra un grafico dei tempi di risposta di una popolazione media caratterizzata da una velocità di reazione, assieme a una tabella di valutazione dei riflessi. Come si evince da essa, la velocità di reazione della maggior parte delle persone si attesta tra i 200 ms e i 250 ms. I riflessi con più ritardo possono già cominciarsi a considerare lenti.

Figura 1: grafico dei tempi di reazione di una popolazione media, assieme a una tabella di valutazione dei riflessi

Schema elettrico

La figura 2 mostra lo schema elettrico del prova riflessi. Si tratta di un sistema imparziale, aperto alle modifiche sia a livello hardware che software. Il microcontrollore, il cuore del circuito, sovrintende a tutte le fasi della procedura. La sua oscillazione è assicurata dal quarzo da 20 Mhz e dai due condensatori ceramici da 22 pF. Il terminale di reset è collegato a VCC. Il display LCD, capace di visualizzare messaggi su 2 righe e 16 colonne, è collegato alla MCU con un bus di 4 linee dati. E’ fondamentale l’utilizzo di un potenziometro per poter dosare il contrasto dei caratteri. Senza esso il componente potrebbe non illuminarsi correttamente. Il diodo LED di segnalazione è collegato alla porta C7 del micro, previa la relativa resistenza di limitazione di corrente. Le porte C0 e C1 della MCU sono configurate come ingressi digitali e, normalmente si trovano a potenziale di massa (livello logico falso). La pressione di uno dei due assicura, al contrario la presenza della tensione di VCC, permettendo una lettura, all’ingresso, di un livello logico alto.

Figura 2: lo schema elettrico del prova riflessi

Elenco componenti

  • 2 Resistenze da 10 k Ohm
  • 1 Resistenza da 220 Ohm
  • Potenziometro 10 k Ohm
  • 2 Condensatori da 22 pF
  • 2 Diodi LED
  • 2 Pulsanti normalmente aperti
  • 1 Microcontrollore PIC16f876A
  • 1 Display LCD HD44780

Il firmware

Il programma è scritto per il compilatore Great Cow Basic ma, con poche modifiche, può essere adattato a qualsiasi altro sistema di sviluppo. La parte iniziale del listato è dedicata alla configurazione delle porte riservate al display LCD e alla funzionalità di quelle di I/O. Quindi, in un loop infinito, avvengono i seguenti eventi, come attestato anche in figura 3:

  • si spegne il LED, compare il messaggio di attesa sul display LCD e viene generata una pausa di durata casuale;
  • dopo tale attesa si avvia il conteggio, nel quale l’utente deve premere il pulsante etichettato con la parola “Riflessi” nel più breve tempo possibile;
  • a pressione avvenuta, il conteggio è stoppato, e sul display compaiono i millesimi trascorsi e un giudizio sintetico sui riflessi, tra le valutazioni “velocissimo, “veloce”, “medio”, “lento” e “lentissimo”;
  • premendo, infine, il tasto etichettato con la parola “Reset” l’intera procedura inizia da capo.

#chip 16F876A,20 #define LCD_SPEED SLOW #define LCD_IO 4 #define LCD_RS PORTB.7 #define LCD_RW PORTB.6 #define LCD_Enable PORTB.5 #define LCD_DB4 PORTB.4 #define LCD_DB5 PORTB.3 #define LCD_DB6 PORTB.2 #define LCD_DB7 PORTB.1 #define LCD_NO_RW dir portc.7 out dir portc.0 in dir portc.1 in dim attesa as word dim millesimi as word dim k as word do portc.7 = 0 cls Locate 0,0 print “Attendi segnale” attesa = Random / 25 + 1 for k=1 to attesa wait 1 s next k portc.7 = 1 millesimi = 0 cls do while portc.0 = 0 locate 0,0 print str(millesimi) + ” millesimi” millesimi = millesimi + 10 wait 10 ms loop portc.7 = 0 locate 1,0 if millesimi < 50 then print “Impossibile” end if if millesimi >=50 and millesimi <130 then print “Velocissimo” end if if millesimi >=130 and millesimi <200 then print “Veloce” end if if millesimi >=200 and millesimi <275 then print “Medio” end if if millesimi >=275 and millesimi <375 then print “Lento” end if if millesimi >=375 then print “Lentissimo” end if do while portc.1 = 0 loop loop end


Figura 3: le varie fasi del test

Conclusioni

Ricordiamo, dunque, che alla guida bisognerebbe risultare estremamente lucidi e svegli, senza aver assunto alcol, medicinali o altre sostanze dannose per il sistema nervoso. A volte, e forse più spesso, un incidente automobilistico può essere determinato non tanto dalla lentezza dei riflessi, quanto dalla distrazione da parte del conducente.

Condividi questo articolo

Categorie

Archivi

Apri la chat
1
Ciao come possiamo aiutarti?
Ciao come possiamo aiutarti?