Sommario:
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-13 06:57
È ora di andare a letto. Ti alzi per spegnere le luci per la notte e, dopo aver premuto l'interruttore, ti rendi conto di avere davanti a te il viaggio nero come la pece verso la sicurezza del tuo letto. Fortunatamente per te, sono state inventate le luci notturne e sei nel posto giusto per trovarne una! Ma … come puoi addormentarti quando quella fastidiosa luce notturna è accesa per tutta la notte illuminando la tua stanza? Inoltre, non sei stanco di questa oscurità vuota che fa sì che le luci notturne rimangano accese e sprechi energia? Bene, sei ANCORA nel posto giusto, perché abbiamo esattamente ciò di cui hai bisogno!
Vogliamo illuminare la tua vita aiutandoti a realizzare una luce notturna sostenibile.
In questo tutorial, ti guideremo attraverso il processo di costruzione di una luce notturna che si spegnerà con un timer. Il sistema sarà in grado di riconoscere quando la luce principale è spenta, tramite un sensore di luce, e accendere la luce per un tempo impostato dall'utente e spegnersi dopo che è trascorso quel tempo. Questa luce notturna è diversa dalle altre luci notturne perché spreca energia rimanendo accesa quando dormi e non ne hai bisogno. Questo progetto utilizza due tipi di schede, Basys 3 e Arduino, e un sensore di luce.
Creatori: Luke McDaniel, Erik Ramazzini, Monica Negrete, Hayley Young
Passaggio 1: materiali e software
Materiali
Basys 3 Artix-7 FPGA Trainer Board
store.digilentinc.com/basys-3-artix-7-fpga…
Arduino Uno Rev3
store.arduino.cc/usa/arduino-uno-rev3
tagliere
www.amazon.com/Elegoo-EL-CK-002-Electronic…
Resistenza 10k
Stesso link della breadboard
Cavi per ponticelli
Stesso link della breadboard
Sensore di luce (mini fotocellula)
www.sparkfun.com/products/9088
Software
Vivado HL WebPACK Edition (il PDF allegato include le istruzioni)
www.xilinx.com/products/design-tools/vivad…
Arduino IDE
www.arduino.cc/en/Main/Software
Passaggio 2: architettura di sistema
Il passo successivo è comprendere l'architettura del sistema. Abbiamo creato un diagramma a scatola nera e una macchina a stati finiti (visualizzata sopra) per organizzare la struttura del nostro progetto prima di entrare nella logistica
Design generale
Ingressi
Sensore di luce: determina la quantità di luce nella stanza
Uscite
- Anodi: determina quali display a 7 segmenti verranno utilizzati
- Segmenti: visualizza il timer
- LED: visualizza le condizioni di luce notturna di ON o OFF
Arduino
Ingresso
Segnale del sensore di luce: valore analogico della quantità di luce nella stanza
Produzione
Ingresso Luce (1 bit): segnale che determina la condizione di luce della stanza
Basi 3
Ingresso
- Ingresso Luce (1 bit): segnale che determina la condizione di luce della stanza
- Interruttori
- CLK
Produzione
- Anodi: determina quali display a 7 segmenti verranno utilizzati
- Segmenti: visualizza il timer
- LED: visualizza le condizioni di luce notturna di ON o OFF
Passaggio 3: codice hardware e Arduino
Hardware
Per comprendere il codice Arduino, dobbiamo comprendere l'hardware con cui il codice sta interagendo. Il circuito sulla nostra breadboard include una fotocellula, un diodo emettitore di luce e più fili e resistori per completarlo. Il circuito inizia inviando energia alla fotocellula, che poi legge la quantità di luce che la circonda. Queste informazioni vengono trasferite al pin analogico, A0, che le rende leggibili per la scheda Basys. La scheda Basys prende quindi queste informazioni, inizia a contare e invia un segnale per l'accensione del LED.
Codice Arduino
Il codice Arduino stesso comunica con la scheda Basys inviandole un segnale quando la luce che circonda il dispositivo è più scura di una soglia specificata. Questo segnale innescato da una stanza buia con piombo al LED si accenderà. Abbiamo scoperto attraverso l'esperimento che la soglia media per la nostra fotocellula specifica nelle stanze buie è 30 - 60. Ogni fotocellula ha una diversa quantità di sensibilità, quindi altre fotocellule possono avere soglie diverse. Nel nostro codice pubblicato, abbiamo stabilito la soglia 100 a scopo dimostrativo.