Cuprins:
- Pasul 1: Piese
- Pasul 2: Procedură
- Pasul 3: Programare
- Pasul 4: Depanarea și modificarea
- Pasul 5: Hardware
Video: Detector de dispoziție pentru câini (Raspberry Pi): 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Acest instructabil este conceput pentru a prelua sunetele pe care le scoate un câine și pentru a determina dacă acestea trebuie abordate sau nu cu LED-uri indicatoare. Cei mai mulți proprietari de câini își cunosc animalele de companie și pot citi semnalele pe care le dau, astfel încât acest Instructable este îndreptat mai ales către străini care pot intra în contact cu câinele tău.
Pasul 1: Piese
Vei avea nevoie:
- Raspberry Pi
- LED-uri roșii / verzi (X2)
- Monitor
- Tastatură / mouse cu USB
- WiFi Dongle
- Microfon USB extern
- Rezistor de 330 ohmi (X2)
Piese opționale
- Alimentare externă Raspberry Pi
- Zgarda pentru caini
Pasul 2: Procedură
Primul pas pentru a începe acest proiect este să observați comportamentele și tiparele asociate câinelui dvs. Puteți face clic AICI pentru un ghid simplu despre ceea ce ar trebui să căutați. În cazul meu, câinele meu urlă ori de câte ori este încântat sau fericit să vadă pe cineva și latră intermitent când este nervos sau agravat. În următorii pași vă voi explica cum să-mi modificați programul pentru a adapta comportamentele câinelui dvs.
Pasul 3: Programare
Mai jos este programul Python pe care l-am folosit pentru câinele meu. În pasul următor vă voi explica cum să modificați programul pentru comportamentul câinelui dvs. Nu rulați programul încă, deoarece nu va funcționa până nu faceți pasul următor.
#! / usr / bin / pythonimport pyaudio import sys import thread from time import sleep from array import array import RPi. GPIO as GPIO
scoarță = 0
howl = False hold = 0 bark Lungime = 5 întârziere = 0 wait = 2 flag = 0 roșu = 7 verde = 5 exitFlag = False
def toggleLightRed (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (roșu, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Red toggled")
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (verde, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Green toggled")
def main ():
scoarță globală urlu global țineți scoarță globală Lungime întârziere globală steag global roșu global verde verde
bucată = 8192
FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 prag = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (format = FORMAT, canale = CHANNELS, rate = RATE, input = True, output = True, frames_per_buffer = bucată) GPIO.setmode (GPIO. BOARD) GPIO.setup (roșu, GPIO. OUT) GPIO.setup (verde, GPIO. OUT) încearcă: tipărește „Detectare inițializată” în timp ce Adevărat: încearcă: date = stream.read (chunk) cu excepția IOError ca ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) în timp ce max_value> prag: întârziere = 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
dacă _name_ == '_main_':
principal()
Pasul 4: Depanarea și modificarea
Înființat
Înainte de a rula programul, va trebui să tastați următoarele în Terminal pentru a instala PyAudio:
sudo apt-get intall python-pyaudio
După aceasta, puteți testa-rula programul pentru a vă asigura că funcționează corect.
Depanare
Este posibil să aveți următoarea eroare:
IOError: [Intrare Errno depășită] -9981
Pentru a remedia acest lucru, pur și simplu creșteți numărul atribuit fragmentului variabil până când eroarea nu mai apare.
Modificatoare
Variabila barkLength dictează de câte ori se derulează programul înainte ca un zgomot să nu mai fie văzut ca o scoarță, ci ca un urlet. Dacă câinii dvs. urlă, dar o fac doar pentru o scurtă explozie, atunci ar trebui să micșorați acest număr.
Variabilele roșu și verde se referă la porturile de ieșire care vor fi utilizate pentru indicatorii LED. Acestea pot fi schimbate pentru a se potrivi nevoilor dumneavoastră.
Deși nu utilizez în mod activ întârzierea variabilă în programul meu, se poate observa că indică frecvența lătratului sau a urletului.
Ținerea variabilă se referă la de câte ori programul se bucură în cazul în care nivelul de zgomot este peste prag și este utilizat pentru a determina dacă are loc un urlet. Această variabilă nu trebuie modificată în niciun fel, deoarece urletele sunt detectate prin manipularea variabilei barkLength.
Variabila prag poate fi coborâtă dacă scoarța nu este foarte puternică sau ridicată dacă există zgomot de fond care ar putea fi interpretat greșit ca zgomot provenit de la câine.
Pasul 5: Hardware
În acest moment ar trebui să aveți un program pe deplin funcțional, care afișează pe ecran ce va face hardware-ul. Acest punct al proiectului este locul în care ar trebui să decideți dacă acesta va fi un microfon staționar care este setat într-un singur loc (de exemplu, un loc din casă în care câinele frecventează în mod normal sau intră în contact cu vizitatorii) sau dacă proiectul va fi minimizat și atașat la gulerul câinelui pentru a oferi feedback imediat persoanei care interacționează cu câinele.
Staționar
Cel mai ușor lucru de făcut este să lăsați totul pe un panou, deoarece nu va exista nicio mișcare care ar putea desprinde firele. Conectați catodii LED-urilor roșii la pinul de la sol de pe Raspberry Pi și anode fie printr-un rezistor de 330 ohm, fie direct în pinul 7 al Raspberry Pi. Faceți același lucru cu LED-urile verzi, dar conectați anodii la pinul 5. Rulați programul și ar trebui să aveți un proiect finalizat după ce ați modificat codul în funcție de nevoile dvs.
Non-staționar
Aș recomanda completarea versiunii staționare mai întâi doar pentru a vă asigura că totul funcționează și apoi treceți de acolo lipind totul împreună, astfel încât niciun fir să nu fie deconectat de mișcarea câinelui.
Atașați LED-urile la guler, astfel încât să fie ambele într-o poziție confortabilă și să poată fi văzute de cineva când se apropie.
Conectați-vă apoi sursa de alimentare externă, cum ar fi cea văzută AICI, la zmeura pi și fixați-o pe guler într-un mod confortabil pentru câine.
Odată ce totul este fixat, continuați și rulați programul, atașați gulerul la câine și gata!
Recomandat:
Lampă de dispoziție pentru aripile din față: 5 pași
Lampă de dispoziție pentru aripile din față: După ce am avut un accident, am rămas cu o mașină care nu merita reparată sau casată. În timp ce mașina ocupa spațiu în curtea mea, am creat oarecare creativitate și am transformat-o în mobilier. Acesta este un proiect foarte simplu pe care îl puteți face folosind simp
Alarmă pentru hrana pentru câini: 5 pași
Alarmă pentru hrana pentru câini: Bună ziua din nou! În gospodăria mea, responsabilitățile de a ne hrăni câinele, un doodle de aur numit Taos (după noul oraș mexican), ne revin adesea copiilor. Cu toate acestea, când vine timpul să-l hrănești, este greu de spus dacă a fost hrănit anterior sau
Lumină LED DIY - Lampă modernă de dispoziție pentru desktop cu telecomandă: 8 pași (cu imagini)
DIY LED Light - Lampă modernă de dispoziție pentru desktop cu telecomandă: În acest articol voi trece peste procesul pe care l-am folosit pentru a construi această minunată lampă LED Mood în formă de piramidă. Am folosit arțar pentru structura principală și niște spini de mahon pentru o rezistență sporită. Pentru lumini am folosit lumini LED RGB care vin într-o bandă de 16 picioare t
Alimentator automat pentru câini Raspberry Pi și Streamer video live: 3 pași
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: Acesta este alimentatorul meu automat pentru câini Raspberry PI. Obișnuiam să lucrez de dimineața 11:00 până la 21:00. Câinele meu o ia razna dacă nu-l hrănesc la timp. Am navigat pe google pentru a cumpăra hrănitoare automate pentru alimente, nu sunt disponibile în India și sunt importate cost
Lampă de dispoziție pentru încărcătorul de telefon: 7 pași
Lampă de dispoziție pentru încărcătorul de telefon: utilizați un încărcător de telefon vechi pentru a alimenta o lampă cu aspect frumos. Am făcut modelele pe umbră cu o bicicletă adaptată. De asemenea, verificați această instrucțiune pentru a vă crea propria roată. Pentru inspirație, consultați această galerie de lămpi completate