Talaan ng mga Nilalaman:

Dog Mood Detector (Raspberry Pi): 5 Hakbang
Dog Mood Detector (Raspberry Pi): 5 Hakbang

Video: Dog Mood Detector (Raspberry Pi): 5 Hakbang

Video: Dog Mood Detector (Raspberry Pi): 5 Hakbang
Video: Big Tree Tech - SKR 3EZ - EZ2209 Sensorless homing and Cooling Fan 2024, Mayo
Anonim
Dog Mood Detector (Raspberry Pi)
Dog Mood Detector (Raspberry Pi)

Ang Instructable na ito ay dinisenyo upang kunin ang mga tunog na ginagawa ng isang aso at matukoy kung dapat silang lapitan o hindi sa mga tagapagpahiwatig na LED. Karamihan sa mga may-ari ng aso ay alam ang kanilang mga alaga at maaaring mabasa ang mga senyas na ibinibigay nila kaya't ang Instructable na ito ay higit na nakadirekta sa mga hindi kilalang tao na maaaring makipag-ugnay sa iyong aso.

Hakbang 1: Mga Bahagi

Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi
Mga Bahagi

Kakailanganin mong:

  • Raspberry Pi
  • Red / Green LEDs (X2)
  • Subaybayan
  • Keyboard / mouse na may USB
  • WiFi Dongle
  • Panlabas na USB Mikropono
  • 330 ohm Resistor (X2)

Opsyonal na Mga Bahagi

  • Panlabas na Suplay ng Lakas ng Raspberry Pi
  • Dog Collar

Hakbang 2: Pamamaraan

Pamamaraan
Pamamaraan

Ang unang hakbang sa pagsisimula ng proyektong ito ay upang obserbahan ang mga pag-uugali at pattern na nauugnay sa iyong aso. Maaari kang mag-click DITO para sa isang simpleng gabay sa kung ano ang dapat mong hanapin. Sa aking kaso, ang aking aso ay umaangal tuwing siya ay nasasabik o masaya na makita ang isang tao at paulit-ulit na tumahol kapag kinakabahan o pinalala. Sa mga susunod na hakbang ay ipaliwanag ko kung paano baguhin ang aking programa upang mapaunlakan ang mga pag-uugali ng iyong aso.

Hakbang 3: Programming

Programming
Programming

Nasa ibaba ang programa ng Python na ginamit ko para sa aking aso. Sa susunod na hakbang ay ipaliwanag ko kung paano baguhin ang programa para sa pag-uugali ng iyong aso. Huwag patakbuhin ang programa sa ngayon dahil hindi ito gagana hanggang sa gawin mo ang susunod na hakbang.

#! / usr / bin / pythonimport pyaudio import sys import thread mula sa oras na pag-import ng pagtulog mula sa pag-import ng array na pag-import ng RPi. GPIO bilang GPIO

tumahol = 0

alulong = Maling paghawak = 0 barkLength = 5 pagkaantala = 0 maghintay = 2 watawat = 0 pula = 7 berde = 5 exitFlag = Maling

def toggleLightRed (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (pula, GPIO. OUT) GPIO.output (c, True) pagtulog (10) GPIO.output (c, Mali) print ("Red toggled")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (berde, GPIO. OUT) GPIO.output (c, True) pagtulog (10) GPIO.output (c, Mali) print ("Green toggled")

def main ():

pandaigdigang pag-iyak pandaigdigan pandaigdigang paghawak ng pandaigdigan na barkoPatagal ng pagkaantala ng pandaigdigan na pandaigdigan pandaigdigang pandaigdigang berde

tipak = 8192

FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 threshold = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (format = FORMAT, mga channel = CHANNELS, rate = RATE, input = True, output = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (pula, GPIO. OUT) GPIO.setup (berde, GPIO. OUT) subukan: i-print ang "Na-initialize ang Detection" habang Totoo: subukan: data = stream.read (chunk) maliban sa IOError bilang hal: kung ex [1]! = pyaudio.paInputOverflowed: taasan ang data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) habang max_value> threshold: antala = 0 hold = hold + 1 try: data = stream.read (chunk) maliban sa IOError bilang hal: kung ex [1]! = Pyaudio.paInputOverflowed: taasan ang data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) kung hawakan> = barkLength: howl = True print "HOWL DETected" toggleLightGreen (green) GPIO.cleanup () elif hold> 0 and hold

kung _name_ == '_main_':

pangunahing ()

Hakbang 4: Pag-troubleshoot at Pagbabago

Pag-troubleshoot at Pagbabago
Pag-troubleshoot at Pagbabago
Pag-troubleshoot at Pagbabago
Pag-troubleshoot at Pagbabago
Pag-troubleshoot at Pagbabago
Pag-troubleshoot at Pagbabago

Pag-set up

Bago mo patakbuhin ang programa kakailanganin mong i-type ang sumusunod sa Terminal upang mai-install ang PyAudio:

sudo apt-get intall python-pyaudio

Pagkatapos nito maaari mong subukang patakbuhin ang programa upang matiyak na gumagana ito nang maayos.

Pag-troubleshoot

Maaari kang makaranas ng sumusunod na error:

IOError: [Umapaw ang Errno Input] -9981

Upang ayusin ito, dagdagan lamang ang bilang na nakatalaga sa variable chunk hanggang sa hindi na lumitaw ang error.

Pagbabago

Ang variable barkLength ay nagdidikta ng bilang ng beses na nag-loop ang programa bago ang isang ingay ay hindi na nakikita bilang isang bark, ngunit bilang isang alulong. Kung ang iyong mga aso ay umangal ngunit ginagawa ito para lamang sa isang maikling pagsabog pagkatapos ay dapat mong bawasan ang bilang na ito.

Ang mga variable na pula at berde ay tumutukoy sa mga output port na gagamitin para sa mga tagapagpahiwatig ng LED. Maaaring baguhin ang mga ito upang magkasya sa iyong mga pangangailangan.

Bagaman hindi ko ginagamit ang variable na pagkaantala ng aktibo sa aking programa, maaari itong maobserbahan upang ipahiwatig ang dalas ng pag-uwang o pag-alulong.

Ang variable hold ay tumutukoy sa kung gaano karaming beses ang mga loop ng programa kung saan ang antas ng ingay ay nasa itaas ng threshold at ginagamit upang matukoy kung may nagaganap na alulong. Ang variable na ito ay hindi dapat mabago sa anumang paraan tulad ng pag-alulong na napansin sa pamamagitan ng pagmamanipula ng variable ng barkLength.

Ang variable ng threshold ay maaaring maibaba kung ang bark ay hindi masyadong malakas o itataas kung may ingay sa background na maaaring maling bigyang kahulugan bilang ingay na nagmula sa aso.

Hakbang 5: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Sa puntong ito na dapat kang magkaroon ng isang ganap na gumaganang programa na ipinapakita sa screen kung ano ang ginagawa ng hardware. Ang puntong ito sa proyekto ay kung saan dapat kang magpasya kung ito ay magiging isang nakatigil na mikropono na itinakda sa isang lugar (hal. Isang lugar sa bahay kung saan ang aso ay karaniwang dumadalaw o nakikipag-ugnay sa mga bisita) o kung ang proyekto ay mababawasan at nakakabit sa kwelyo ng aso upang magbigay ng agarang puna sa taong nakikipag-ugnay sa aso.

Nakatigil

Ang pinakamadaling gawin ay iwanan ang lahat sa isang breadboard dahil walang paggalaw na maaaring tumanggal ng mga wire. Ikonekta ang mga cathode ng Red LEDs sa Ground pin sa Raspberry Pi at ang Anodes alinman sa pamamagitan ng isang 330 ohm resistor o diretso sa pin 7 ng Raspberry Pi. Gawin ang pareho sa Green LEDs ngunit ikonekta ang Anodes sa pin 5. Patakbuhin ang programa at dapat mayroon kang isang nakumpletong proyekto sa sandaling nabago mo ang code sa iyong mga pangangailangan.

Hindi Nakatigil

Inirerekumenda kong kumpletuhin muna ang nakatigil na bersyon upang matiyak lamang na ang lahat ay gumagana at pagkatapos ay magpatuloy mula doon sa pamamagitan ng paghihinang na magkasama ang lahat upang walang mga wire ay magiging hindi konektado mula sa paggalaw ng aso.

Ikabit ang mga LED sa kwelyo upang pareho silang nasa komportableng posisyon at makikita ng isang tao sa kanilang paglapit.

Susunod na ikonekta ang iyong panlabas na supply ng kuryente tulad ng isang nakikita DITO sa raspberry pi at i-secure ito sa kwelyo sa isang paraan na komportable para sa aso.

Kapag ang lahat ay na-secure sa lugar magpatuloy at patakbuhin ang programa, ikabit ang kwelyo sa aso, at tapos ka na!

Inirerekumendang: