Სარჩევი:

ძაღლის განწყობის დეტექტორი (ჟოლოს პი): 5 ნაბიჯი
ძაღლის განწყობის დეტექტორი (ჟოლოს პი): 5 ნაბიჯი

ვიდეო: ძაღლის განწყობის დეტექტორი (ჟოლოს პი): 5 ნაბიჯი

ვიდეო: ძაღლის განწყობის დეტექტორი (ჟოლოს პი): 5 ნაბიჯი
ვიდეო: "ცხელი ძაღლის" მსახიობები სტუმრად ღამის შოუში 2024, ნოემბერი
Anonim
ძაღლის განწყობის დეტექტორი (ჟოლო პი)
ძაღლის განწყობის დეტექტორი (ჟოლო პი)

ეს ინსტრუქცია შექმნილია იმისთვის, რომ მიიღოს ძაღლის ხმები და დაადგინოს უნდა მიუახლოვდეს თუ არა მათ ინდიკატორების LED- ებით. ძაღლების მეპატრონეების უმეტესობამ იცის თავისი შინაური ცხოველები და შეუძლიათ წაიკითხონ სიგნალები, რასაც ისინი გასცემენ, ამიტომ ეს ინსტრუქცია ძირითადად მიმართულია უცნობი ადამიანებისკენ, რომლებიც შეიძლება დაუკავშირდნენ თქვენს ძაღლს.

ნაბიჯი 1: ნაწილები

ნაწილები
ნაწილები
ნაწილები
ნაწილები
ნაწილები
ნაწილები

თქვენ დაგჭირდებათ:

  • ჟოლო პი
  • წითელი/მწვანე LED- ები (X2)
  • მონიტორი
  • კლავიატურა/მაუსი USB- ით
  • WiFi Dongle
  • გარე USB მიკროფონი
  • 330 ohm რეზისტორი (X2)

არჩევითი ნაწილები

  • გარე ჟოლოს კვების ბლოკი
  • ძაღლის საყელო

ნაბიჯი 2: პროცედურა

Პროცედურა
Პროცედურა

პირველი ნაბიჯი ამ პროექტის დასაწყებად არის თქვენი ძაღლის ქცევისა და ნიმუშების დაკვირვება. თქვენ შეგიძლიათ დააწკაპუნოთ აქ მარტივი სახელმძღვანელოსთვის, თუ რას უნდა ეძებოთ. ჩემს შემთხვევაში, ჩემი ძაღლი ყვირის, როცა აღფრთოვანებულია ან უხარია ვინმეს ნახვა და ნერვიულობის ან დამძიმების დროს წყვეტს ყეფს. მომდევნო რამდენიმე ნაბიჯში მე აგიხსნით, თუ როგორ შეცვალოთ ჩემი პროგრამა თქვენი ძაღლის ქცევების მოსაწყობად.

ნაბიჯი 3: პროგრამირება

პროგრამირება
პროგრამირება

ქვემოთ მოცემულია პითონის პროგრამა, რომელიც მე გამოვიყენე ჩემი ძაღლისთვის. მომდევნო ეტაპზე მე აგიხსნით როგორ შეცვალოთ პროგრამა თქვენი ძაღლის ქცევისთვის. არ გაუშვათ პროგრამა ჯერჯერობით, რადგან ის არ იმუშავებს, სანამ არ გააკეთებთ შემდეგ ნაბიჯს.

#!/usr/bin/pythonimport pyaudio იმპორტი sys იმპორტი ძაფი დროიდან იმპორტი ძილი მასივიდან იმპორტი მასივი იმპორტი RPi. GPIO როგორც GPIO

ქერქი = 0

ყვირილი = ყალბი დაჭერა = 0 ქერქი სიგრძე = 5 შეფერხება = 0 ლოდინი = 2 დროშა = 0 წითელი = 7 მწვანე = 5 გასვლა დროშა = ყალბი

def toggleLightRed (გ):

GPIO.setmode (GPIO. BOARD) GPIO.setup (წითელი, GPIO. OUT) GPIO.output (c, True) ძილი (10) GPIO.output (c, False) print ("Red toggled")

def toggleLightGreen (გ):

GPIO.setmode (GPIO. BOARD) GPIO.setup (მწვანე, GPIO. OUT) GPIO.output (c, True) ძილი (10) GPIO.output (c, False) print ("Green toggled")

def main ():

გლობალური ქერქი გლობალური ყვირილი გლობალური გლობალური ქერქი გლობალური გვიან გლობალური დროშა გლობალური წითელი გლობალური მწვანე

ნაჭერი = 8192

FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 ბარიერი = 3000 max_value = 0 p = pyaudio. PyAudio () ნაკადი = p. გახსნილი (ფორმატი = ფორმატი, არხები = CHANNELS, განაკვეთი = RATE, შეყვანა = True, გამომავალი = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (წითელი, GPIO. OUT) GPIO.setup (მწვანე, GPIO. OUT) ცადეთ: დაბეჭდეთ "აღმოჩენის ინიციალიზაცია" ხოლო True: ცადეთ: მონაცემები = ნაკადი.კითხული (ნაჭერი) IOError as ex: if ex [1]! = pyaudio.paInputOverflowed: მონაცემების გაზრდა = '\ x00' * chunk as_ints = მასივი ('h', მონაცემები) max_value = max (as_ints) ხოლო max_value> ბარიერი: დაგვიანებით = 0 გამართვა = გამართვა+1 ცდა: data = stream.read (chunk) IOError as ex: if ex [1]! = Pyaudio.paInputOverflowed: data raise = '\ 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

თუ _name_ == '_ მთავარი_':

მთავარი ()

ნაბიჯი 4: პრობლემების მოგვარება და შეცვლა

პრობლემების მოგვარება და შეცვლა
პრობლემების მოგვარება და შეცვლა
პრობლემების მოგვარება და შეცვლა
პრობლემების მოგვარება და შეცვლა
პრობლემების მოგვარება და შეცვლა
პრობლემების მოგვარება და შეცვლა

Აწყობა

სანამ პროგრამას გაუშვებთ, თქვენ უნდა ჩაწეროთ შემდეგი ტერმინალში PyAudio– ს ინსტალაციისთვის:

sudo apt-get intall python-pyaudio

ამის შემდეგ შეგიძლიათ შეამოწმოთ პროგრამა, რათა დარწმუნდეთ, რომ ის გამართულად მუშაობს.

Დიაგნოსტიკა

თქვენ შეიძლება განიცადოთ შემდეგი შეცდომა:

IOError: [Errno Input overflowed] -9981

ამის გამოსასწორებლად, უბრალოდ გაზარდეთ ცვლადი ნაწილისთვის მინიჭებული რიცხვი, სანამ შეცდომა აღარ გამოჩნდება.

მოდიფიცირება

ცვლადი barkLength განსაზღვრავს რამდენჯერმე პროგრამის მარყუჟები სანამ ხმაური აღარ განიხილება როგორც ქერქი, არამედ როგორც ყმუილი. თუ თქვენი ძაღლები ყვირიან, მაგრამ ამას აკეთებენ მხოლოდ მცირეოდენი გასროლით, მაშინ უნდა შეამციროთ ეს რიცხვი.

ცვლადი წითელი და მწვანე ეხება გამომავალ პორტებს, რომლებიც გამოყენებული იქნება LED ინდიკატორებისთვის. ეს შეიძლება შეიცვალოს თქვენი საჭიროებების შესაბამისად.

მიუხედავად იმისა, რომ მე არ ვიყენებ ცვლადი შეფერხებას აქტიურად ჩემს პროგრამაში, შეიძლება აღინიშნოს, რომ მიუთითებს ყეფა ან ყვირილი.

ცვლადი შეფერხება ეხება რამდენჯერ მარყუჟს პროგრამა სადაც ხმაურის დონე ზღურბლზე მაღლაა და გამოიყენება იმის დასადგენად ხდება თუ არა ყვირილი. ეს ცვლადი არანაირად არ უნდა შეიცვალოს, რადგან ყვირილი აღმოჩენილია barkLength ცვლადის მანიპულირებით.

ბარიერის ცვლა შეიძლება შემცირდეს, თუ ქერქი არ არის ძალიან ხმამაღალი ან აწეული, თუ არის ფონური ხმაური, რომელიც შეიძლება არასწორად იქნას განმარტებული, როგორც ძაღლიდან წამოსული ხმაური.

ნაბიჯი 5: აპარატურა

ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა

ამ დროს თქვენ უნდა გქონდეთ სრულად ფუნქციონირებადი პროგრამა, რომელიც ეკრანზე აჩვენებს რას გააკეთებს ტექნიკა. პროექტის ეს წერტილი არის ის, სადაც თქვენ უნდა გადაწყვიტოთ იქნება ეს სტაციონარული მიკროფონი ერთ ადგილას (მაგ. ადგილი სახლში, სადაც ძაღლი ჩვეულებრივ ჩადის ან კონტაქტში მოდის ვიზიტორებთან) თუ პროექტი მინიმუმამდე შემცირდება და მიმაგრებულია ძაღლის საყელოზე, რათა უზრუნველყოს დაუყოვნებელი გამოხმაურება ძაღლთან ურთიერთობისას.

სტაციონარული

უმარტივესი რამ არის ყველაფერი დატოვოთ პურის დაფაზე, რადგან არ იქნება მოძრაობა, რომელსაც შეუძლია მავთულის გაწყვეტა. შეაერთეთ წითელი LED- ების კათოდები Raspberry Pi- ს და Anodes- ის Ground pin- ზე ან 330 ohm რეზისტორის საშუალებით, ან პირდაპირ Raspberry Pi- ის პინ 7 -ში. იგივე გააკეთეთ მწვანე შუქდიოდებით, მაგრამ შეაერთეთ ანოდები პინ 5 -ზე. გაუშვით პროგრამა და თქვენ უნდა გქონდეთ დასრულებული პროექტი მას შემდეგ რაც შეცვლით კოდს თქვენს საჭიროებებზე.

არასტაციონალური

მე გირჩევთ შეავსოთ სტაციონარული ვერსია ჯერ მხოლოდ იმის უზრუნველსაყოფად, რომ ყველაფერი მუშაობს და შემდეგ გადადით იქიდან, შეაერთეთ ყველაფერი ისე, რომ მავთულები არ იყოს დაუკავშირებელი ძაღლის მოძრაობასთან.

მიამაგრეთ LED- ები საყელოზე ისე, რომ ორივე კომფორტულ მდგომარეობაში იყოს და მიახლოებისას ვინმემ ნახოს.

შემდეგ დააკავშირეთ თქვენი გარე კვების ბლოკი, როგორიცაა აქ ნახული ჟოლოს პი და მიამაგრეთ იგი საყელოზე ძაღლისთვის კომფორტულად.

მას შემდეგ რაც ყველაფერი თავის ადგილზე იქნება უზრუნველყოფილი, გაუშვით და გაუშვით პროგრამა, მიამაგრეთ საყელო ძაღლს და თქვენ დაასრულებთ!

გირჩევთ: