Мазмұны:

Dog Mood Detector (Raspberry Pi): 5 қадам
Dog Mood Detector (Raspberry Pi): 5 қадам

Бейне: Dog Mood Detector (Raspberry Pi): 5 қадам

Бейне: Dog Mood Detector (Raspberry Pi): 5 қадам
Бейне: Face Recognition With Raspberry Pi + OpenCV + Python 2024, Қараша
Anonim
Иттің көңіл -күй детекторы (Raspberry Pi)
Иттің көңіл -күй детекторы (Raspberry Pi)

Бұл нұсқаулық ит шығаратын дыбыстарды қабылдауға және жарық диодты индикаторлармен оларға жақындау керек пе, жоқ па екенін анықтауға арналған. Ит иелерінің көпшілігі үй жануарларын біледі және олар беретін сигналдарды оқи алады, сондықтан бұл нұсқаулық көбінесе сіздің итіңізбен байланыста болатын бейтаныс адамдарға бағытталған.

1 -қадам: бөлшектер

Бөлшектер
Бөлшектер
Бөлшектер
Бөлшектер
Бөлшектер
Бөлшектер

Саған қажет болады:

  • Raspberry Pi
  • Қызыл/жасыл жарық диодтары (X2)
  • Монитор
  • USB бар пернетақта/тінтуір
  • WiFi Dongle
  • Сыртқы USB микрофон
  • 330 Ом резисторы (X2)

Қосымша бөлшектер

  • Сыртқы Raspberry Pi қуат көзі
  • Ит жағасы

2 -қадам: Процедура

Процедура
Процедура

Бұл жобаны бастаудың алғашқы қадамы - сіздің итіңізге байланысты мінез -құлық пен заңдылықтарды бақылау. Сіз бұл жерден нені іздеу керектігін білуге болады. Менің жағдайда, менің итім біреуді көргенде қуанғанда немесе қуанғанда жылайды, жүйкесі нашарлаған кезде мезгіл -мезгіл үреді. Келесі бірнеше қадамдарда мен сіздің итіңіздің мінез -құлқына сәйкес болу үшін бағдарламамды қалай өзгерту керектігін түсіндіремін.

3 -қадам: бағдарламалау

Бағдарламалау
Бағдарламалау

Төменде мен итіме қолданған Python бағдарламасы. Келесі қадамда мен сіздің итіңіздің мінез -құлқына арналған бағдарламаны қалай өзгерту керектігін түсіндіремін. Бағдарламаны әлі іске қоспаңыз, себебі ол келесі қадамды жасамайынша жұмыс істемейді.

№!

қабық = 0

howl = Жалған ұстау = 0 barkLength = 5 кешіктіру = 0 күту = 2 жалауша = 0 қызыл = 7 жасыл = 5 шығуFlag = Жалған

def toggleLightRed (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (қызыл, GPIO. OUT) GPIO.output (c, True) ұйқы (10) GPIO.output (c, False) басып шығару («Қызыл ауысқан»)

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (жасыл, GPIO. OUT) GPIO.output (c, True) ұйқы (10) GPIO.output (c, False) басып шығару («Жасыл ауысқан»)

def main ():

жаһандық қабық жаһандық жылау жаһандық қабық

дана = 8192

FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 шектік = 3000 max_value = 0 p = pyaudio. PyAudio () ағын = p.open (формат = FORMAT, арналар = АРНАЛАР, жылдамдық = RATE, енгізу = Дұрыс, шығыс = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (қызыл, GPIO. OUT) GPIO.setup (жасыл, GPIO. OUT) көріңіз: «Анықтау инициализацияланды» деп басып шығарыңыз, ал True: try: data = stream.read (chunk) IOError дан басқа ex: if ex [1]! = pyaudio.paInputOverflowed: data = '\ x00' * бөлшегін as_ints = массив ('h', деректер) max_value = max (as_ints) көтеру кезінде max_value> threshold: delay = 0 hold = hold+1 try: data = stream.read (chunk) from IOError as ex: if ex [1]! = Pyaudio.paInputOverflowed: data = '\ x00' * жинағын as_ints = массив ('h', деректер)) max_value = max (as_ints) if hold> = barkLength: howl = True print «HOWL DETECTED» toggleLightGreen (жасыл) GPIO.cleanup () elif hold> 0 ұстап тұрыңыз

егер _ аты _ == '_ негізгі _':

негізгі ()

4 -қадам: Ақаулықтарды жою және өзгерту

Ақаулықтарды жою және өзгерту
Ақаулықтарды жою және өзгерту
Ақаулықтарды жою және өзгерту
Ақаулықтарды жою және өзгерту
Ақаулықтарды жою және өзгерту
Ақаулықтарды жою және өзгерту

Орнату

Бағдарламаны іске қоспас бұрын, PyAudio орнату үшін Терминалға келесіні енгізу қажет:

sudo apt-get intall python-pyaudio

Осыдан кейін сіз бағдарламаның дұрыс жұмыс істейтініне көз жеткізу үшін оны тексере аласыз.

Ақаулық себебін іздеу және түзету

Сіз келесі қатені сезінуіңіз мүмкін:

IOError: [Errno Input толып кетті] -9981

Мұны түзету үшін, қате пайда болмайынша, айнымалы бөлікке тағайындалған санды көбейтіңіз.

Өзгертілуде

BarkLength айнымалысы шудың қабық ретінде емес, жылау ретіндегі бағдарламаның айналу санын анықтайды. Егер сіздің иттер жыласа, бірақ ол қысқа жарылыс үшін ғана болса, онда бұл санды азайту керек.

Қызыл және жасыл айнымалы мәндер жарықдиодты индикаторлар үшін қолданылатын шығыс порттарына жатады. Оларды сіздің қажеттіліктеріңізге сәйкес өзгертуге болады.

Мен өз бағдарламамда ауыспалы кідірісті белсенді қолданбасам да, оның үру немесе жылау жиілігін көрсететінін байқауға болады.

Айнымалы ұстау шудың деңгейі шекті мәннен жоғары болатын бағдарламаның неше рет айналатынын білдіреді және ол айқайдың бар -жоғын анықтау үшін қолданылады. Бұл айнымалы мәнді өзгертуге болмайды, өйткені barkLength айнымалысы арқылы жылау анықталады.

Егер қабық өте қатты болмаса немесе көтерілмесе, шекті айнымалы мәнді төмендетуге болады, егер иттен шыққан шу деп қате түсіндірілсе.

5 -қадам: Жабдық

Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал

Дәл осы сәтте сізде аппараттық құрал не істейтінін экранға шығаратын толық жұмыс істейтін бағдарлама болуы керек. Жобаның бұл нүктесі - бұл бір жерде орнатылатын стационарлық микрофон болатынын (мысалы, ит жиі келетін немесе келушілермен байланысатын үйдегі орын) немесе жобаны барынша азайтуды шешу керек. және итпен қарым -қатынас жасайтын адамға тез арада кері байланыс жасау үшін иттің мойнына бекітілген.

Стационарлық

Ең оңай нәрсе - бәрін тақтаға қалдыру, өйткені сымдарды ажырататын қозғалыс болмайды. Қызыл светодиодтардың катодтарын Raspberry Pi мен анодтардың жерге тұйықтауышына 330 Ом резистор арқылы немесе тікелей Raspberry Pi 7 істігіне қосыңыз. Жасыл светодиодтармен де осылай жасаңыз, бірақ анодтарды 5 -істікке жалғаңыз. Бағдарламаны іске қосыңыз және кодты сіздің қажеттіліктеріңізге өзгерткеннен кейін сізде аяқталған жоба болуы керек.

Тұрақты емес

Мен алдымен стационарлық нұсқаны аяқтауды ұсынамын, бәрі жұмыс істеп тұрғанына көз жеткізіңіз, содан кейін иттердің қозғалысынан сымдар қосылмайтындай етіп бәрін дәнекерлеп жалғастырыңыз.

Светодиодтарды жағасына бекітіңіз, сонда олар ыңғайлы күйде болады және жақындаған кезде біреуге көрінуі мүмкін.

Содан кейін сыртқы қуат көзін, мында мына жерден таңқурайға қосыңыз және оны итке ыңғайлы етіп жағасына бекітіңіз.

Барлығы бекітілгеннен кейін, бағдарламаны іске қосыңыз, мойынтіректі итке бекітіңіз, сіз аяқтадыңыз!

Ұсынылған: