Mục lục:

Máy dò tâm trạng của chó (Raspberry Pi): 5 bước
Máy dò tâm trạng của chó (Raspberry Pi): 5 bước

Video: Máy dò tâm trạng của chó (Raspberry Pi): 5 bước

Video: Máy dò tâm trạng của chó (Raspberry Pi): 5 bước
Video: Chặn đến 99% quảng cáo trên mọi thiết bị bằng Rasberry Pi 2024, Tháng mười một
Anonim
Máy dò tâm trạng của chó (Raspberry Pi)
Máy dò tâm trạng của chó (Raspberry Pi)

Có thể hướng dẫn này được thiết kế để nghe âm thanh của chó và xác định xem chúng có nên được tiếp cận hay không bằng đèn LED chỉ báo. Hầu hết những người nuôi chó đều biết vật nuôi của họ và có thể đọc được các tín hiệu mà chúng phát ra, vì vậy Tài liệu hướng dẫn này chủ yếu hướng về những người lạ có thể tiếp xúc với con chó của bạn.

Bước 1: Các bộ phận

Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận

Bạn sẽ cần:

  • Raspberry Pi
  • Đèn LED đỏ / xanh lục (X2)
  • Màn hình
  • Bàn phím / chuột với USB
  • WiFi Dongle
  • Micrô USB bên ngoài
  • Điện trở 330 ohm (X2)

Phần tùy chọn

  • Nguồn cung cấp Raspberry Pi bên ngoài
  • Vòng cổ chó

Bước 2: Thủ tục

Thủ tục
Thủ tục

Bước đầu tiên để bắt đầu dự án này là quan sát các hành vi và khuôn mẫu liên quan đến con chó của bạn. Bạn có thể nhấp vào ĐÂY để xem hướng dẫn đơn giản về những gì bạn nên tìm kiếm. Trong trường hợp của tôi, con chó của tôi hú lên bất cứ khi nào nó phấn khích hoặc vui mừng khi nhìn thấy ai đó và sủa liên tục khi lo lắng hoặc trầm trọng hơn. Trong vài bước tiếp theo, tôi sẽ giải thích cách sửa đổi chương trình của tôi để phù hợp với các hành vi của con chó của bạn.

Bước 3: Lập trình

Lập trình
Lập trình

Dưới đây là chương trình Python mà tôi đã sử dụng cho con chó của mình. Trong bước tiếp theo, tôi sẽ giải thích cách sửa đổi chương trình cho hành vi của con chó của bạn. Đừng chạy chương trình ngay vì nó sẽ không hoạt động cho đến khi bạn thực hiện bước tiếp theo.

#! / usr / bin / pythonimport pyaudio nhập hệ thống nhập chuỗi từ thời gian nhập chế độ ngủ từ mảng nhập mảng nhập RPi. GPIO dưới dạng GPIO

sủa = 0

howl = False hold = 0 sủaLength = 5 delay = 0 wait = 2 flag = 0 red = 7 green = 5 exitFlag = False

def toggleLightRed (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (đỏ, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Red toggled")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (xanh lục, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) in ("Green toggled")

def main ():

toàn cầu sủa toàn cầu tru toàn cầu giữ toàn cầu sủa toàn cầu

chunk = 8192

FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 ngưỡng = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (format = FORMAT, channel = CHANNELS, rate = RATE, input = True, output = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (đỏ, GPIO. OUT) GPIO.setup (xanh lục, GPIO. OUT) thử: in "Đã khởi tạo phát hiện" trong khi True: try: data = stream.read (chunk) ngoại trừ IOError as ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) while max_value> ngưỡng: delay = 0 hold = hold + 1 try: data = stream.read (chunk) ngoại trừ IOError as ex: if ex [1]! = Pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) if hold> = shellLength: howl = True print "HOWL DETECTED" toggleLightGreen (xanh lục) GPIO.cleanup () elif hold> 0 and hold

nếu _name_ == '_main_':

chủ chốt()

Bước 4: Khắc phục sự cố và sửa đổi

Khắc phục sự cố và sửa đổi
Khắc phục sự cố và sửa đổi
Khắc phục sự cố và sửa đổi
Khắc phục sự cố và sửa đổi
Khắc phục sự cố và sửa đổi
Khắc phục sự cố và sửa đổi

Cài đặt

Trước khi chạy chương trình, bạn sẽ cần nhập thông tin sau vào Terminal để cài đặt PyAudio:

sudo apt-get intall python-pyaudio

Sau đó, bạn có thể chạy thử chương trình để đảm bảo rằng nó đang hoạt động bình thường.

Xử lý sự cố

Bạn có thể gặp lỗi sau:

IOError: [Errno Input đã bị tràn] -9981

Để khắc phục điều này, chỉ cần tăng số lượng được gán cho chunk biến cho đến khi lỗi không còn xuất hiện nữa.

Sửa đổi

Biến shellLength quy định số lần chương trình lặp lại trước khi tiếng ồn không còn được xem là tiếng sủa nữa mà là tiếng hú. Nếu chó của bạn hú lên nhưng chỉ kêu trong một khoảng thời gian ngắn thì bạn nên giảm con số này xuống.

Các biến màu đỏ và xanh lá cây đề cập đến các cổng đầu ra sẽ được sử dụng cho các chỉ báo LED. Chúng có thể được thay đổi để phù hợp với nhu cầu của bạn.

Mặc dù tôi không chủ động sử dụng độ trễ biến đổi trong chương trình của mình, nhưng nó có thể được quan sát để chỉ ra tần suất sủa hoặc hú.

Biến giữ liên quan đến số lần chương trình lặp lại trong đó mức ồn vượt quá ngưỡng và được sử dụng để xác định xem có tiếng hú đang diễn ra hay không. Biến này không nên được sửa đổi theo bất kỳ cách nào vì tiếng hú được phát hiện thông qua thao tác của biến độ dài.

Biến ngưỡng có thể được hạ xuống nếu tiếng sủa không quá lớn hoặc lớn lên nếu có tiếng ồn xung quanh có thể bị hiểu nhầm là tiếng ồn phát ra từ con chó.

Bước 5: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng

Tại thời điểm này, bạn nên có một chương trình hoạt động đầy đủ hiển thị trên màn hình những gì phần cứng sẽ làm. Điểm này trong dự án là nơi bạn nên quyết định xem đây sẽ là một micrô cố định được đặt ở một nơi (ví dụ: một nơi trong nhà mà con chó thường lui tới hoặc tiếp xúc với khách) hay liệu dự án sẽ được thu nhỏ và gắn vào cổ chó để cung cấp phản hồi ngay lập tức cho người tương tác với chó.

Đứng im

Điều đơn giản nhất để làm là để mọi thứ trên breadboard vì sẽ không có chuyển động nào có thể làm tách dây. Kết nối cực âm của đèn LED đỏ với chân Đất trên Raspberry Pi và Cực dương thông qua điện trở 330 ohm hoặc thẳng vào chân 7 của Raspberry Pi. Làm tương tự với đèn LED Xanh nhưng kết nối Cực dương với chân 5. Chạy chương trình và bạn sẽ có một dự án hoàn thành sau khi bạn đã sửa đổi mã theo nhu cầu của mình.

Không văn phòng phẩm

Tôi khuyên bạn nên hoàn thành phiên bản tĩnh trước tiên chỉ để đảm bảo rằng mọi thứ đang hoạt động và sau đó chuyển từ đó bằng cách hàn mọi thứ lại với nhau để không có dây nào trở nên không kết nối với chuyển động của con chó.

Gắn các đèn LED vào cổ áo để chúng ở vị trí thoải mái và có thể được ai đó nhìn thấy khi họ đến gần.

Tiếp theo, kết nối nguồn điện bên ngoài của bạn, chẳng hạn như nguồn điện được thấy ở đây với pi mâm xôi và cố định nó vào cổ áo theo cách thoải mái cho con chó.

Khi mọi thứ đã được đảm bảo an toàn, hãy tiếp tục và chạy chương trình, gắn vòng cổ vào chú chó và bạn đã hoàn tất!

Đề xuất: