Sommario:
- Passaggio 1: parti
- Passaggio 2: procedura
- Passaggio 3: programmazione
- Passaggio 4: risoluzione dei problemi e modifica
- Passaggio 5: hardware
Video: Rilevatore dell'umore del cane (Raspberry Pi): 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Questo Instructable è progettato per prendere i suoni emessi da un cane e determinare se devono essere avvicinati o meno con gli indicatori LED. La maggior parte dei proprietari di cani conosce i propri animali domestici e può leggere i segnali che emettono, quindi questo Instructable è principalmente diretto verso estranei che potrebbero entrare in contatto con il tuo cane.
Passaggio 1: parti
Avrai bisogno:
- Lampone Pi
- LED rosso/verde (X2)
- Tenere sotto controllo
- Tastiera/mouse con USB
- Chiavetta WiFi
- Microfono USB esterno
- Resistenza da 330 ohm (X2)
Parti opzionali
- Alimentatore esterno Raspberry Pi
- Collare per cani
Passaggio 2: procedura
Il primo passo per iniziare questo progetto è osservare i comportamenti e gli schemi associati al tuo cane. Puoi fare clic QUI per una semplice guida su ciò che dovresti cercare. Nel mio caso, il mio cane ulula ogni volta che è eccitata o felice di vedere qualcuno e abbaia a intermittenza quando è nervoso o irritato. Nei prossimi passaggi ti spiegherò come modificare il mio programma per adattarlo ai comportamenti del tuo cane.
Passaggio 3: programmazione
Di seguito è riportato il programma Python che ho usato per il mio cane. Nel passaggio successivo ti spiegherò come modificare il programma per il comportamento del tuo cane. Non eseguire ancora il programma poiché non funzionerà fino a quando non eseguirai il passaggio successivo.
#!/usr/bin/pythonimport pyaudio import sys import thread from time import sleep from array import array import RPi. GPIO as GPIO
corteccia=0
howl=False hold=0 barkLength=5 delay=0 wait = 2 flag = 0 red = 7 green=5 exitFlag = False
def toggleLightRed(c):
GPIO.setmode(GPIO. BOARD) GPIO.setup(red, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) print("Rosso attivato")
def toggleLightGreen(c):
GPIO.setmode(GPIO. BOARD) GPIO.setup(green, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) print("Green attivato")
def principale():
global bark global ululato global hold global barkLunghezza ritardo globale bandiera globale rosso globale verde globale
pezzo = 8192
FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 soglia = 3000 max_value = 0 p = pyaudio. PyAudio() stream = p.open(format=FORMAT, channel=CHANNELS, rate=RATE, input=True, output=True, frames_per_buffer=chunk) GPIO.setmode(GPIO. BOARD) GPIO.setup(red, GPIO. OUT) GPIO.setup(green, GPIO. OUT) try: print "Rilevamento inizializzato" mentre True: try: data = stream.read(chunk) eccetto IOError come ex: if ex[1] != pyaudio.paInputOverflowed: raise data = '\x00' * chunk as_ints = array('h', data) max_value = max(as_ints) while max_value>threshold: delay= 0 hold=hold+1 try: data = stream.read(chunk) tranne IOError come ex: if ex[1] != pyaudio.paInputOverflowed: raise data = '\x00' * chunk as_ints = array('h', data) max_value = max(as_ints) if hold>=barkLength: howl=True print "HOWL DETECTED" toggleLightGreen(green) GPIO.cleanup() elif hold>0 e hold
if _name_ == '_main_':
principale()
Passaggio 4: risoluzione dei problemi e modifica
Impostare
Prima di eseguire il programma dovrai digitare quanto segue nel Terminale per installare PyAudio:
sudo apt-get intall python-pyaudio
Dopodiché puoi provare a eseguire il programma per assicurarti che funzioni correttamente.
Risoluzione dei problemi
Potresti riscontrare il seguente errore:
IOError: [Errno Input overflow] -9981
Per risolvere questo problema, aumenta semplicemente il numero assegnato al blocco variabile fino a quando l'errore non viene più visualizzato.
Modifica
La variabile barkLength determina il numero di volte in cui il programma esegue il ciclo prima che un rumore non venga più visto come un latrato, ma come un ululato. Se i tuoi cani ululano ma lo fanno solo per una breve raffica, dovresti diminuire questo numero.
Le variabili rosso e verde si riferiscono alle porte di uscita che verranno utilizzate per gli indicatori LED. Questi possono essere modificati in base alle proprie esigenze.
Sebbene non utilizzi attivamente il ritardo variabile nel mio programma, può essere osservato per indicare la frequenza di abbaiare o ululare.
La variabile hold si riferisce a quante volte il programma esegue un loop in cui il livello di rumore è al di sopra della soglia e viene utilizzato per determinare se si sta verificando un ululato. Questa variabile non deve essere modificata in alcun modo poiché vengono rilevati ululati attraverso la manipolazione della variabile barkLength.
La variabile di soglia può essere abbassata se l'abbaio non è molto forte o alzata se c'è rumore di fondo che potrebbe essere interpretato erroneamente come rumore emanato dal cane.
Passaggio 5: hardware
È a questo punto che dovresti avere un programma completamente funzionante che mostri sullo schermo cosa farà l'hardware. Questo punto del progetto è dove dovresti decidere se questo sarà un microfono fisso posizionato in un posto (es. un luogo della casa dove il cane normalmente frequenta o entra in contatto con i visitatori) o se il progetto sarà ridotto al minimo e attaccato al collare del cane per fornire un feedback immediato alla persona che interagisce con il cane.
Stazionario
La cosa più semplice da fare è lasciare tutto su una breadboard poiché non ci sarà alcun movimento che possa staccare i fili. Collega i catodi dei LED rossi al pin Ground sul Raspberry Pi e agli Anodi tramite un resistore da 330 ohm o direttamente nel pin 7 del Raspberry Pi. Fai lo stesso con i LED verdi ma collega gli Anodi al pin 5. Esegui il programma e dovresti avere un progetto completato una volta modificato il codice secondo le tue esigenze.
Non stazionario
Consiglierei di completare prima la versione stazionaria solo per assicurarti che tutto funzioni e poi di passare da lì saldando tutto insieme in modo che nessun filo si scolleghi dal movimento del cane.
Attacca i LED al collare in modo che siano entrambi in una posizione comoda e possano essere visti da qualcuno mentre si avvicina.
Quindi collega il tuo alimentatore esterno come quello visto QUI al lampone pi e fissalo al collare in un modo che sia comodo per il cane.
Una volta che tutto è fissato, vai avanti ed esegui il programma, attacca il collare al cane e il gioco è fatto!
Consigliato:
Profili dell'umore di Netflix: 3 passaggi
Profili dell'umore di Netflix: questa istruzione guida un utente di Netflix attraverso i passaggi per personalizzare l'algoritmo di Netflix per fornire consigli basati sul tuo umore
IoT - Reporter dell'umore portatile: 4 passaggi
IoT - Portable Mood Reporter: cose di cui avremo bisogno:Raspberry Pi con RaspbianTouch Sensor di adafruitFonte di alimentazione (batteria/CC)Ethernet o WiFi per Raspberry PiUn altro computer
Barometro dell'umore Nixie Clock: 7 passaggi (con immagini)
Nixie Clock Mood Barometer: una vittima insignificante di Progress è il barometro domestico aneroide. In questi giorni, potresti ancora trovare esempi nelle case di persone con più di novant'anni, ma altri milioni sono nella discarica o su ebay. In verità, il barometro della vecchia scuola non mi ha aiutato
Rilevatore di fumo IOT: aggiorna il rilevatore di fumo esistente con IOT: 6 passaggi (con immagini)
Rilevatore di fumo IOT: aggiorna il rilevatore di fumo esistente con IOT: elenco dei contributori, Inventore: Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Supervisore: Dr Chia Kim Seng Dipartimento di ingegneria meccatronica e robotica, Facoltà di ingegneria elettrica ed elettronica, Universiti Tun Hussein Onn Malaysia.Distribuzione
Barattolo dell'umore LED!: 3 passaggi
LED Mood Jar!: Ciao, in questo semplice tutorial ti insegnerò come creare un LED Mood Jar che abbia un bell'aspetto e richiede solo pochi minuti per essere realizzato