Índice:
- Etapa 1: peças
- Etapa 2: Procedimento
- Etapa 3: Programação
- Etapa 4: Solução de problemas e modificação
- Etapa 5: Hardware
Vídeo: Detector de humor para cães (Raspberry Pi): 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Este Instructable é projetado para pegar os sons que um cão faz e determinar se ele deve ser abordado ou não com LEDs indicadores. A maioria dos donos de cães conhece seus animais de estimação e pode ler os sinais que eles emitem, portanto, este Instructable é direcionado principalmente a estranhos que possam entrar em contato com seu cão.
Etapa 1: peças
Você vai precisar de:
- Raspberry Pi
- LEDs vermelhos / verdes (X2)
- Monitor
- Teclado / mouse com USB
- Dongle WiFi
- Microfone USB Externo
- Resistor de 330 ohm (X2)
Peças opcionais
- Fonte de alimentação externa Raspberry Pi
- Coleira
Etapa 2: Procedimento
O primeiro passo para iniciar este projeto é observar os comportamentos e padrões associados ao seu cão. Você pode clicar AQUI para obter um guia simples sobre o que você deve procurar. No meu caso, minha cadela uiva sempre que está animada ou feliz em ver alguém e late intermitentemente quando está nervosa ou irritada. Nas próximas etapas, explicarei como modificar meu programa para acomodar os comportamentos de seu cão.
Etapa 3: Programação
Abaixo está o programa Python que usei para meu cachorro. Na próxima etapa, explicarei como modificar o programa para o comportamento do seu cão. Não execute o programa ainda, pois ele não funcionará até que você execute a próxima etapa.
#! / usr / bin / pythonimport pyaudio import sys import thread de time import sleep from array import array import RPi. GPIO as GPIO
latido = 0
howl = False hold = 0 barkLength = 5 delay = 0 wait = 2 flag = 0 red = 7 green = 5 exitFlag = False
def toggleLightRed (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (vermelho, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Red toggled")
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (verde, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Green toggled")
def main ():
latido global uivo global global segurar latido global Comprimento global atraso bandeira global global vermelho global verde
pedaço = 8192
FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 threshold = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (format = FORMAT, channels = CHANNELS, rate = RATE, input = True, output = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (vermelho, GPIO. OUT) GPIO.setup (verde, GPIO. OUT) try: print "Detecção inicializada" enquanto True: try: data = stream.read (chunk) exceto IOError como ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) enquanto max_value> threshold: delay = 0 hold = hold + 1 try: data = stream.read (chunk) exceto IOError como ex: if ex [1]! = Pyaudio.paInputOverflowed: raise data = '\ 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
if _name_ == '_main_':
a Principal()
Etapa 4: Solução de problemas e modificação
Configurar
Antes de executar o programa, você precisará digitar o seguinte no Terminal para instalar o PyAudio:
sudo apt-get intall python-pyaudio
Depois disso, você pode executar um teste do programa para verificar se ele está funcionando corretamente.
Solução de problemas
Você pode enfrentar o seguinte erro:
IOError: [Errno Input overflowed] -9981
Para corrigir isso, basta aumentar o número atribuído ao pedaço variável até que o erro não apareça mais.
Modificando
A variável barkLength determina o número de vezes que o programa faz um loop antes que um ruído não seja mais visto como um latido, mas como um uivo. Se seus cães uivam, mas fazem isso apenas por um curto período, você deve diminuir esse número.
As variáveis vermelho e verde referem-se às portas de saída que serão usadas para os indicadores LED. Eles podem ser alterados para atender às suas necessidades.
Embora eu não use a variável delay ativamente em meu programa, ela pode ser observada para indicar a frequência de latidos ou uivos.
A variável hold refere-se a quantas vezes o programa faz um loop onde o nível de ruído está acima do limite e é usada para determinar se um uivo está ocorrendo. Esta variável não deve ser modificada de forma alguma, pois os uivos são detectados através da manipulação da variável barkLength.
A variável de limite pode ser reduzida se o latido não for muito alto ou aumentado se houver ruído de fundo que possa ser mal interpretado como ruído proveniente do cão.
Etapa 5: Hardware
É neste ponto que você deve ter um programa em pleno funcionamento que exibe na tela o que o hardware estará fazendo. Este ponto no projeto é onde você deve decidir se este será um microfone fixo colocado em um lugar (por exemplo, um lugar na casa onde o cão normalmente frequenta ou entra em contato com visitantes) ou se o projeto será minimizado e presa à coleira do cão para fornecer feedback imediato à pessoa que interage com o cão.
Estacionário
A coisa mais fácil a fazer é deixar tudo em uma placa de ensaio, pois não haverá nenhum movimento que possa separar os fios. Conecte os cátodos dos LEDs vermelhos ao pino terra no Raspberry Pi e os ânodos por meio de um resistor de 330 ohms ou diretamente no pino 7 do Raspberry Pi. Faça o mesmo com os LEDs verdes, mas conecte os ânodos ao pino 5. Execute o programa e você deverá ter um projeto concluído depois de modificar o código de acordo com suas necessidades.
Não Estacionário
Eu recomendaria completar a versão estacionária primeiro apenas para garantir que tudo está funcionando e depois seguir em frente soldando tudo junto para que nenhum fio fique desconectado do movimento do cão.
Prenda os LEDs ao colar para que ambos fiquem em uma posição confortável e possam ser vistos por alguém quando se aproximar.
Em seguida, conecte sua fonte de alimentação externa, como a mostrada AQUI, ao pi de framboesa e prenda-a na coleira de maneira confortável para o cão.
Depois que tudo estiver preso no lugar, vá em frente e execute o programa, coloque a coleira no cachorro e pronto!
Recomendado:
Comedouro automático para cães: 6 etapas
Comedouro automático para cães: Este é o meu projeto de comedouro automático para animais de estimação. Meu nome é Parker, estou na 11ª série e fiz esse projeto em 11 de novembro de 2020 como CCA (atividade culminante do curso). Nesse projeto irei mostrar a vocês como fazer um comedouro automático para animais de estimação com o Arduino UNO
Arreio para cães com indicador de distância LED: 5 etapas (com fotos)
Arreios para cães com LEDs indicadores de distância: Normalmente levo meu cachorro Rusio para passear quando o sol se põe para que ele possa brincar sem ficar muito quente. O problema é que quando ele está fora da coleira às vezes ele fica muito animado e corre mais longe do que deveria e com a luz baixa e os outros cães
NeckLight: um colar PCB para humanos e cães: 8 etapas (com fotos)
NeckLight: um colar de PCB para humanos e cães: Olá a todos, este projeto é meu primeiro Instructables, então vou tentar fazer o meu melhor. Neste projeto, vou explicar como consegui criar este colar de PCB que brilha no escuro! Para ser honesto, este é o projeto perfeito se você quiser aprender
Sistema de resfriamento e detecção para cães: 5 etapas
Sistema de resfriamento e detecção para cães .: Olá, meu nome é Bryan e tenho dois cães. Eu queria saber como eu poderia resfriá-los em um trailer em um dia quente. Minha solução é fazer um sistema de resfriamento e detecção. O sistema de detecção é para se certificar de que o sistema está ativo quando os cães estão
Cadeira de rodas para cães: 4 etapas
Cadeira de rodas para cães: Olá, hoje vou mostrar-lhes como fazer uma cadeira de rodas para cães para o seu cão. Tive essa ideia pesquisando na internet para ver como as pessoas podem curtir mais os cães mais velhos. Eu realmente não precisava de um porque meu cachorro tem 2 anos, mas o cachorro da minha tia, que tem 8