Оглавление:
- Шаг 1: Детали
- Шаг 2: Процедура
- Шаг 3: программирование
- Шаг 4. Устранение неполадок и изменение
- Шаг 5: Оборудование
Видео: Детектор настроения собаки (Raspberry Pi): 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Это руководство предназначено для того, чтобы улавливать звуки, издаваемые собакой, и определять, следует ли к ним приближаться или нет, с помощью светодиодных индикаторов. Большинство владельцев собак знают своих питомцев и могут читать сигналы, которые они издают, поэтому данное руководство в основном предназначено для незнакомцев, которые могут вступить в контакт с вашей собакой.
Шаг 1: Детали
Тебе понадобится:
- Raspberry Pi
- Красный / зеленый светодиоды (X2)
- Монитор
- Клавиатура / мышь с USB
- Wi-Fi ключ
- Внешний USB-микрофон
- Резистор 330 Ом (X2)
Дополнительные детали
- Внешний блок питания Raspberry Pi
- Собачий ошейник
Шаг 2: Процедура
Первым шагом к началу этого проекта является наблюдение за поведением и паттернами, связанными с вашей собакой. Вы можете щелкнуть ЗДЕСЬ, чтобы получить простое руководство о том, что вам следует искать. В моем случае моя собака воет всякий раз, когда она взволнована или рада кого-то видеть, и периодически лает, когда нервничает или раздражается. В следующих нескольких шагах я объясню, как изменить мою программу, чтобы приспособиться к поведению вашей собаки.
Шаг 3: программирование
Ниже представлена программа Python, которую я использовал для своей собаки. На следующем этапе я объясню, как изменить программу для поведения вашей собаки. Пока не запускайте программу, так как она не будет работать, пока вы не выполните следующий шаг.
#! / usr / bin / pythonimport pyaudio import sys import thread from time import sleep from array import array import RPi. GPIO as GPIO
кора = 0
howl = False hold = 0 barkLength = 5 delay = 0 wait = 2 flag = 0 красный = 7 зеленый = 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 («Красный переключен»)
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (зеленый, GPIO. OUT) GPIO.output (c, True) спящий режим (10) GPIO.output (c, False) print («Зеленый переключен»)
def main ():
глобальный лай глобальный вой глобальный удерживающий глобальный лай
кусок = 8192
FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 threshold = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (формат = FORMAT, каналы = CHANNELS, rate = RATE, input = True, output = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (красный, GPIO. OUT) GPIO.setup (зеленый, GPIO. OUT) try: print "Detection initialized" while True: try: data = stream.read (chunk) кроме IOError как ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints), а max_value> threshold: delay = 0 hold = hold + 1 try: data = stream.read (chunk), кроме IOError как ex: if ex [1]! = Pyaudio.paInputOverflowed: поднять данные = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) if hold> = barkLength: howl = True print "HOWL DETECTED" toggleLightGreen (зеленый) GPIO.cleanup () elif удерживайте> 0 и удерживайте
если _name_ == '_main_':
главный()
Шаг 4. Устранение неполадок и изменение
Настраивать
Перед запуском программы вам нужно будет ввести в Терминал следующее для установки PyAudio:
sudo apt-get intall python-pyaudio
После этого вы можете протестировать программу, чтобы убедиться, что она работает правильно.
Исправление проблем
Может возникнуть следующая ошибка:
IOError: [Errno Input overflowed] -9981
Чтобы исправить это, просто увеличивайте номер, присвоенный блоку переменной, до тех пор, пока ошибка не исчезнет.
Изменение
Переменная barkLength определяет, сколько раз программа повторяет цикл, прежде чем шум перестанет восприниматься как лай, а как вой. Если ваша собака воет, но делает это только на короткое время, вам следует уменьшить это число.
Переменные красный и зеленый относятся к выходным портам, которые будут использоваться для светодиодных индикаторов. Их можно изменить в соответствии с вашими потребностями.
Хотя я не использую активно переменную задержку в своей программе, можно заметить, что она указывает на частоту лая или воя.
Переменная hold указывает, сколько раз программа повторяет цикл, когда уровень шума превышает пороговое значение, и используется для определения того, имеет ли место вой. Эту переменную не следует изменять каким-либо образом, поскольку завывания обнаруживаются посредством манипуляций с переменной barkLength.
Пороговую переменную можно уменьшить, если лай не очень громкий, или повысить, если имеется фоновый шум, который можно ошибочно принять за шум, исходящий от собаки.
Шаг 5: Оборудование
Именно в этот момент у вас должна быть полностью работающая программа, которая отображает на экране, что будет делать оборудование. На этом этапе проекта вы должны решить, будет ли это стационарный микрофон, установленный в одном месте (например, в месте в доме, где собака обычно бывает или контактирует с посетителями), или проект будет минимизирован. и прикреплен к ошейнику собаки, чтобы обеспечить немедленную обратную связь с человеком, взаимодействующим с собакой.
Стационарный
Проще всего оставить все на макетной плате, поскольку не будет движения, которое могло бы отсоединить провода. Подключите катоды красных светодиодов к контакту заземления на Raspberry Pi, а аноды либо через резистор 330 Ом, либо прямо к контакту 7 Raspberry Pi. Сделайте то же самое с зелеными светодиодами, но подключите аноды к контакту 5. Запустите программу, и у вас должен быть завершенный проект после того, как вы изменили код в соответствии с вашими потребностями.
Нестационарный
Я бы рекомендовал сначала завершить стационарную версию, чтобы убедиться, что все работает, а затем двигаться дальше, спаяв все вместе, чтобы никакие провода не отключались от движения собаки.
Прикрепите светодиоды к ошейнику так, чтобы они оба находились в удобном положении и чтобы кто-нибудь мог их видеть при приближении.
Затем подключите внешний источник питания, такой как тот, который показан ЗДЕСЬ, к raspberry pi и закрепите его на ошейнике удобным для собаки способом.
Как только все будет закреплено на месте, запустите программу, прикрепите ошейник к собаке, и все готово!
Рекомендуемые:
Светодиодная лампа для настроения за 1 доллар с ATtiny13 и WS2812: 7 шагов
Светодиодная лампа для настроения за 1 доллар с ATtiny13 и WS2812: это недорогая лампа для настроения с четырьмя режимами. Радужная искра. Искра света раз за разом движется вверх и постепенно меняет цвет. Радужное свечение. Стабильное свечение, постепенно меняющее цвет 3. Моделирование возгорания свечи 4. Выкл. Вы можете
Напечатанная на 3D-принтере светодиодная лампа для настроения: 15 шагов (с изображениями)
Светодиодная лампа для настроения с 3D-печатью: я всегда был очарован лампами, поэтому возможность сочетать 3D-печать и Arduino со светодиодами была тем, что мне нужно было реализовать. Концепция очень проста, а результат - один из самых приятных визуальных эффектов. впечатления, которые вы можете передать
Лампа настроения IOT: 8 шагов (с изображениями)
IOT Mood Lamp: лампа IoT Mood, созданная с использованием Node MCU (ESP8266), светодиодов RGB и Jar. Цвета лампы можно изменить с помощью приложения Blynk. Я выбрал Мемориальную статую Тони Старка, которую напечатал на 3D-принтере, чтобы вставить в эту лампу. Вы можете взять любую готовую статуэтку или можете
Лампа настроения Arduino: 6 шагов
Arduino Mood Lamp: лампа настроения или лампа настроения, созданная для создания программы на Arduino. Лампа состоит из функциональной структуры, функциональных возможностей Arduino UNO, потенциометров, NeoPixeles, переключателя энсендидо и апагадо, ботинок для простого входа в режим
Напоминание о кормлении собаки: 5 шагов
Напоминание о кормлении собаки: если у вас дома также есть собака, вам может понадобиться эта машина для напоминания о кормлении собаки или для напоминания о том, когда вам нужно выгуливать собаку. Эта машина очень маленькая, поэтому ее легко переносить, и она очень