PirDuino

Firmware

Arduino sketch

Questa interfaccia deve leggere lo stato dei sensori, e comunicare ad Isadora quale PIR è stato attivato.

Anche, e sopratutto, nel software l'utilizzo di una scheda Arduino semplifica moltissimo il lavoro. L'utilizzo di librerie pronte permette di scrivere il proprio codice in totale tranquillità e molto rapidamente. Non ci sarà quindi molto da dire.

Arduino sketch: PirInterface

Anche se i sensori PIR hanno un interruttore a stato solido, per leggere il loro stato è bene usare delle procedure di debounce (antirimbalzo) allo scopo eliminare eventuali segnali spuri che si potrebbero propagare attraverso il cavo di collegamento. Una piccola ricerca sulla pagina di riferimento di Arduino riguardante le librerie, ci mostra che esiste una apposita libreria che fa proprio questo, basta usare le sue classi per avere una lettura affidabile dei sensori, considerando il contatto sicuramente chiuso o aperto solo se il suo stato è stabile per un tempo prefissato.

Bounce

Un'altra esigenza è quella di avere delle temporizzazioni per eseguire alcune azioni con una cadenza prefissata, ad esempio per far accendere in sequenza i LED di segnalazione. Anche in questo caso esiste una libreria che permette di avere delle temporizzazioni molto precise.

Metro

Il programma parte inizializzando le diverse librerie e accendendo in rapida sequenza tutti i LED per verificarne il buon funzionamento. Poi si mette in un loop infinito nel quale controlla lo stato dei sensori. Se nessun PIR è attivo fa lampeggiare in sequenza, lentamente, i LED per comunicare che il programma è in normale stato di idle. Quando un sensore viene attivato per un tempo superiore a quello prefissato, si accende in modo fisso il LED corrispondente. Se più PIR vengono attivati contemporaneamente viene preso in considerazione solo quello con la posizione più alta in modo che, ad esempio, se il visitatore si sposta al sensore successivo ed un nuovo visitatore entra nella sala, non venga interrotta la proiezione in corso.

La libreria Serial fa parte di Arduino a default, basta inizializzarla con la velocità voluta per iniziare ad usarla. Quando si avvia la procedura di "sensore attivo" dopo l'accensione del LED viene anche inviata sulla seriale la stringa ASCII "PIRx" dove x indica il numero del sensore attivo secondo la logica indicata.

Serial
aggiornato il 23-04-2010