Taula de continguts:
- Pas 1: parts
- Pas 2: procediment
- Pas 3: Programació
- Pas 4: resolució de problemes i modificació
- Pas 5: maquinari
Vídeo: Detector d’humor caní (Raspberry Pi): 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Aquest instructable està dissenyat per prendre els sons que fa un gos i determinar si s’han d’acostar o no amb LED indicadors. La majoria dels propietaris de gossos coneixen les seves mascotes i poden llegir els senyals que desprenen, de manera que aquest instructiu s’adreça principalment a persones desconegudes que puguin entrar en contacte amb el vostre gos.
Pas 1: parts
Necessitarà:
- Raspberry Pi
- LEDs vermells / verds (X2)
- Monitor
- Teclat / ratolí amb USB
- Dongle WiFi
- Micròfon USB extern
- Resistència de 330 ohms (X2)
Parts opcionals
- Font d'alimentació externa Raspberry Pi
- Collar de gos
Pas 2: procediment
El primer pas per iniciar aquest projecte és observar els comportaments i les pautes associades al vostre gos. Podeu fer clic AQUÍ per obtenir una guia senzilla sobre el que heu de buscar. En el meu cas, el meu gos udola sempre que està emocionat o feliç de veure algú i borda de manera intermitent quan està nerviós o agreujat. En els propers passos explicaré com modificar el meu programa per adaptar-se als comportaments del vostre gos.
Pas 3: Programació
A continuació es mostra el programa Python que he utilitzat per al meu gos. Al següent pas explicaré com modificar el programa per al comportament del vostre gos. No executeu el programa encara, ja que no funcionarà fins que no feu el següent pas.
#! / usr / bin / pythonimport pyaudio import sys import thread from time import sleep from array import array array import RPi. GPIO com GPIO
escorça = 0
udol = Mantenir fals = 0 escorça Longitud = 5 retard = 0 esperar = 2 senyal = 0 vermell = 7 verd = 5 sortida Bandera = fals
def toggleLightRed (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (vermell, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) imprimir ("Red toggled")
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (verd, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Green toggled")
def main ():
escorça global aull global aguantar escorça globalDuració retard global bandera global vermell global verd
tros = 8192
FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 llindar = 3000 max_value = 0 p = pyaudio. PyAudio () flux = p.open (format = FORMAT, canals = CHANNELS, taxa = RATE, input = True, output = True, frames_per_buffer = tros) GPIO.setmode (GPIO. BOARD) GPIO.setup (vermell, GPIO. OUT) GPIO.setup (verd, GPIO. OUT) intenta: imprimeix "Detecció inicialitzada" mentre és cert: prova: dades = flux.read (tros) excepte IOError com ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * tros as_ints = array ('h', data) max_value = max (as_ints) mentre max_value> llindar: delay = 0 hold = hold + 1 try: data = stream.read (chunk) except IOError as 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 and hold
si _nom_ == '_principal_':
main ()
Pas 4: resolució de problemes i modificació
Configuració
Abans d'executar el programa, haureu d'escriure el següent al terminal per instal·lar PyAudio:
sudo apt-get intall python-pyaudio
Després d'això, podeu provar-executar el programa per assegurar-vos que funciona correctament.
Resolució de problemes
És possible que experimenteu el següent error:
IOError: [entrada d’error desbordada] -9981
Per solucionar-ho, només cal que augmenteu el nombre assignat al fragment de la variable fins que l'error ja no aparegui.
Modificant
La variable barkLength dicta el nombre de vegades que el programa fa bucles abans que un soroll ja no es vegi com una escorça, sinó com un udol. Si els vostres gossos udolen però ho fan només per una ràfega breu, hauríeu de disminuir aquest nombre.
Les variables vermell i verd fan referència als ports de sortida que s’utilitzaran per als indicadors LED. Es poden canviar per adaptar-les a les vostres necessitats.
Tot i que no faig servir el retard variable activament al meu programa, es pot observar que indica la freqüència dels lladrucs o udols.
La retenció de variable fa referència a quantes vegades el programa fa bucles on el nivell de soroll està per sobre del llindar i s’utilitza per determinar si s’està produint un udol. Aquesta variable no s'ha de modificar de cap manera ja que es detecten udols mitjançant la manipulació de la variable barkLength.
La variable llindar es pot reduir si l'escorça no és molt forta o augmenta si hi ha soroll de fons que es pot interpretar erròniament com a soroll que emana el gos.
Pas 5: maquinari
És en aquest moment que heu de tenir un programa completament funcional que mostri a la pantalla el que farà el maquinari. En aquest punt del projecte és on heu de decidir si es tracta d’un micròfon estacionari que es fixa en un lloc (per exemple, un lloc de la casa on el gos freqüenta o entra en contacte amb els visitants normalment) o si es minimitzarà el projecte. i fixat al coll del gos per proporcionar informació immediata a la persona que interactua amb el gos.
Estacionari
El més fàcil de fer és deixar-ho tot sobre una taula de treball, ja que no hi haurà cap moviment que pugui separar els cables. Connecteu els càtodes dels LED vermells al pin de terra del Raspberry Pi i els ànodes mitjançant una resistència de 330 ohm o directament al pin 7 del Raspberry Pi. Feu el mateix amb els LED verds, però connecteu els ànodes al pin 5. Executeu el programa i hauríeu de tenir un projecte completat un cop hàgiu modificat el codi a les vostres necessitats.
No estacionari
Recomanaria completar la versió estacionària primer només per assegurar-me que tot funcioni i, a continuació, passar d'allà soldant-ho tot de manera que no hi hagi cables fora del moviment del gos.
Col·loqueu els LED al collaret perquè estiguin tots dos en una posició còmoda i que algú els pugui veure a mesura que s’acosta.
A continuació, connecteu la font d'alimentació externa, com la que es veu AQUÍ, al raspberry pi i fixeu-la al coll de manera que sigui còmoda per al gos.
Un cop tot estigui assegurat al seu lloc, seguiu endavant i executeu el programa, fixeu el collaret al gos i ja ho teniu.
Recomanat:
Raspberry Pi - Tutorial de Java del detector de proximitat digital d'infrarojos TMD26721: 4 passos
Raspberry Pi - TMD26721 Detector de proximitat digital d'infrarojos Tutorial de Java: TMD26721 és un detector de proximitat digital d'infrarojos que proporciona un sistema complet de detecció de proximitat i una lògica d'interfície digital en un mòdul de muntatge superficial de 8 pins. precisió. Un professional
Llum d’humor de vidre súper fàcil: 6 passos
Llum d’humor de vidre súper fàcil: Hola Creadors! Es tracta d’un projecte d’arduino senzill i senzill que funcionarà com una eina d’aprenentatge i també com una llum d’ànim increïble i malvada. Només són algunes peces, de manera que podeu muntar-les juntes amb el temps que calgui per imprimir la base. Fa una gran lliçó una
Llum d’humor IOT: 8 passos (amb imatges)
IOT Mood Lamp: una làmpada IoT Mood fabricada amb un Node MCU (ESP8266), LED RGB i un pot. Els colors de la làmpada es poden canviar mitjançant l’aplicació Blynk. He triat l’estàtua commemorativa de Tony Starks que he imprès en 3D per posar-la en aquest llum. Podeu agafar qualsevol estàtua ja feta o podeu
Millora d’un cub d’humor LED Arduino (senzill) (vídeo inclòs): 4 passos
Millorar un Arduino LED Mood Cube (simple) (vídeo inclòs): després de veure un petit projecte de cub d'ànim LED creat per 'earl, vaig decidir fer una versió millorada del LED Mood Cube. La meva versió serà més complexa que l’original, ja que serà una mica més gran que l’original, tindrà dos colors més
Detector de fum IOT: actualitzeu el detector de fum existent amb IOT: 6 passos (amb imatges)
Detector de fum IOT: actualitzeu el detector de fum existent amb IOT: Llista de col·laboradors, Inventor: Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Supervisor: Dr. Chia Kim Seng Departament d'Enginyeria Mecatrònica i Robòtica, Facultat d'Enginyeria Elèctrica i Electrònica, Universiti Tun Hussein Onn Malaysia.Distribut