Índice:

Robô doméstico EWON Raspberry Pi: 7 etapas (com imagens)
Robô doméstico EWON Raspberry Pi: 7 etapas (com imagens)
Anonim
Robô doméstico com motor EWON Raspberry Pi
Robô doméstico com motor EWON Raspberry Pi
Robô doméstico com motor EWON Raspberry Pi
Robô doméstico com motor EWON Raspberry Pi
Robô doméstico com motor EWON Raspberry Pi
Robô doméstico com motor EWON Raspberry Pi

Por sharathnaikSharathnaik.comSiga mais pelo autor:

Visualizador de coração | Veja o seu batimento cardíaco
Visualizador de coração | Veja o seu batimento cardíaco
Visualizador de coração | Veja o seu batimento cardíaco
Visualizador de coração | Veja o seu batimento cardíaco
DIY - Cool Denim Pocket Notebook (com fotos)
DIY - Cool Denim Pocket Notebook (com fotos)
DIY - Cool Denim Pocket Notebook (com fotos)
DIY - Cool Denim Pocket Notebook (com fotos)
PUPPI
PUPPI
PUPPI
PUPPI

Sobre: Engenharia e Design Mais sobre sharathnaik »

Recentemente, eu me peguei assistindo a um monte de séries da Netflix devido à situação atual, espero que todos estejam bem, e vi que a 5ª temporada do Black Mirror foi lançada. Uma série de antologia que gira em torno de um grupo de vidas pessoais de pessoas e como a tecnologia manipula seu comportamento.

E um dos episódios que me chamou a atenção foi Rachel, Jack e Ashley Too. Um dos personagens principais desta série é um robô doméstico chamado Ashley O e esse robô tem muitos personagens em torno dele e eu pensei por mim mesmo que deveria construir um, é um bom projeto para começar a programar se não isso, pelo menos Posso programar para rir das minhas piadas.!

O que / quem é Ewon? O que é que isso pode fazer?

Portanto, antes de começar a trabalhar neste projeto, defini algumas regras básicas a serem seguidas. Este projeto tinha que ser

  • Fácil para todos experimentar
  • Não só por ser fofo, mas também por ser útil para não acabar na prateleira
  • Modular, para que você possa continuar adicionando novos recursos.

Depois de definir essa regra, decidi usar o SDK do Google Assistant. Este SDK fornece muitos recursos que eu estava procurando e se você ficar entediado com o Ewon, você pode sempre usá-lo como um dispositivo Google Home e fazer o que um Google Home faz.

O que Ewon fará é adicionar um personagem ao assistente do Google. Isso é mostrar emoções e reagir ao que o usuário diz. Agora não é apenas a voz que você ouve, mas também vê como reage.

NOTA: Este instrutivo está em desenvolvimento. Em breve irei fazer upload de todos os arquivos relevantes. Obrigada

Etapa 1: peças necessárias para o Ewon

ELETRÔNICOS

  • Raspberry Pi
  • Servo SG90 (x4)
  • Servo MG995 - padrão (x2)
  • PCA9685 Servo Driver de 16 Canais
  • Placa de som USB
  • Microfone
  • Alto-falantes (qualquer alto-falante pequeno servirá, algo assim)
  • Conectores de pino macho e fêmea
  • Tábua de pão
  • Nextion Display

PRENDEDORES E ROLAMENTOS

  • M3 * 10 mm (x10)
  • M3 * 8 mm (x10)
  • Porcas M3 (x20)
  • Consequência
    • OD: 15 mm ID: 6 mm Largura: 5 mm (x2)
    • OD: 22 mm ID: 8 mm Largura: 7 mm (x2)

OUTROS MATERIAIS

  • Impasse

    • 40 mm (x4)
    • 30 mm (x4)

FERRAMENTAS

impressora 3d

Etapa 2: Compreendendo o Ewon e a programação

Compreendendo o Ewon e a programação
Compreendendo o Ewon e a programação
Compreendendo o Ewon e a programação
Compreendendo o Ewon e a programação
Compreendendo o Ewon e a programação
Compreendendo o Ewon e a programação

Antes de começar com o aspecto da programação, deixe-me explicar brevemente o diagrama de blocos do circuito de Ewon.

RPI (Raspberry pi) é o cérebro do sistema. O servo driver controlado por RPI aciona o servo. Display controlado por RPI com comunicação serial para mostrar emoções e, por último, microfone e alto-falantes usados para se comunicar com Ewon. Agora que sabemos o que o hardware faz, vamos começar a programar o Ewon.

Instalando o Google Assistant SDK

Deixe-me explicar os dois motivos pelos quais planejei usar o Google Assistente:

  • Eu queria que Ewon não fosse apenas um robô divertido, mas também útil. O SDK do Google Assistant já tem muitos recursos que você pode usar para aumentar a funcionalidade do Ewon.
  • Você também pode usar ações no Google e fluxo de diálogo para dar a Ewon a capacidade de bater papo com respostas predefinidas. Por enquanto, vamos nos concentrar apenas no SDK básico.

Vamos começar instalando o Google Assistant SDK. Isso não deve ser difícil, pois há muitos recursos para ajudá-lo a configurar o SDK do Google Assistant no RPI. Você pode acompanhar este tutorial junto:

Tutorial:

Após o término do processo acima, você deve conseguir clicar em entrar no teclado e falar com o assistente. Isso é tudo sobre como instalar o SDK do Google Assistant.

O que devo nomear? Ewon?

Ok Google! É o que é usado para começar a falar com o assistente do Google e, infelizmente, o Google não permite que qualquer outra palavra de ativação personalizada seja usada. Então, vamos ver como podemos mudar isso para que o Google Assistant seja acionado quando alguém ligar para o Ewon.

Snowboy: um mecanismo de detecção de hot word altamente personalizável que é integrado em tempo real, compatível com Raspberry Pi, (Ubuntu) Linux e Mac OS X.

Uma hot word (também conhecida como wake word ou trigger word) é uma palavra-chave ou frase que o computador escuta constantemente como um sinal para desencadear outras ações.

Vamos começar instalando o Snowboy no RPI. Lembre-se de ativar o ambiente virtual para instalar o Snowboy como você fez para instalar o Assistant SDK. Tudo o que instalarmos daqui em diante deve ser instalado no ambiente virtual. Instalar o Snowboy pode ser um pouco complicado, mas este link deve ajudá-lo a instalá-lo sem problemas. Link:

Aqui está um processo de instalação resumido se o link acima ficar confuso ou se a instalação falhar.

$ [sudo] apt-get install libatlas-base-dev swig $ [sudo] pip install pyaudio $ git clone https://github.com/Kitt-AI/snowboy $ cd snowboy / swig / Python3 $ make $ cd.. /.. $ python3 setup.py build $ [sudo] python setup.py install

Depois de instalado, execute o arquivo demo [encontrado na pasta - snowboy / examples / Python3 /] para ver se tudo funciona perfeitamente.

Observação: você também pode alterar facilmente o nome do seu robô para outro nome. Tudo que você precisa fazer é ir para https://snowboy.kitt.ai/ e treinar uma hotword personalizada e, em seguida, colocar essa hot word na mesma pasta que ewon.pmdl.

Ewon consegue entender as emoções?

Agora que Ewon tem um nome, usarei Ewon em vez de chamá-lo de robô. Ok, emoções, respostas curtas não, Ewon não consegue entender as emoções, então o que vamos fazer aqui é fazer com que Ewon detecte emoção em nossa fala usando palavras-chave e, em seguida, reproduza a expressão facial correspondente associada a ela.

Para conseguir isso, o que fiz é um script simples de análise de sentimento. Existem 6 classes de emoções diferentes.

Imagem
Imagem

Feliz, Triste, Raiva, Medo, Nojo e Surpresa. Estas são as principais classes de emoções e cada uma delas possui uma lista de palavras-chave associadas à emoção. (por exemplo, bom, bom, animado, todos estão sob a emoção feliz).

Portanto, sempre que dizemos qualquer uma das palavras-chave na classe de emoção, a emoção correspondente é acionada. Então, quando você diz "Ei Ewon!" e espero que Ewon fale e eu continuo dizendo "Hoje é um bom dia!", ele pega a palavra-chave "Legal" e aciona a emoção correspondente 'Feliz' que aciona a expressão facial de Feliz.

Essas orelhas estão no Ewon?

O próximo passo seria usar a emoção desencadeada para executar a respectiva expressão facial. Com Ewon, a expressão facial é notar, mas mover sua orelha e pescoço usando servos e mudar a exibição para mudar os movimentos dos olhos.

Primeiro, os servos, para executá-los é bastante fácil seguir este tutorial para configurar a biblioteca de servos Adafruit. Link:

Imagem
Imagem

Em seguida, atribuímos o valor máximo e mínimo para todos os servos. Isso é feito movendo manualmente cada servo e verificando seus limites. Você pode fazer isso depois de montar Ewon.

Olhos para Ewon

Para os olhos, estou usando uma tela Nextion que tem um monte de fotos como abaixo.

Imagem
Imagem

É uma sequência de imagens que projetei no photoshop que, quando reproduzida em sequência, cria uma animação. Uma sequência semelhante foi criada para todas as emoções. Agora, para exibir qualquer emoção, tudo o que você precisa fazer é chamar a sequência de imagens específica que compõe a animação. Os arquivos estão dentro da pasta 'Exibir arquivos', link para download abaixo.

Finalmente

Juntando tudo, quando a emoção feliz é acionada pelo script, a função feliz é chamada e o servo se move para os ângulos já definidos e o display reproduz a animação do olho feliz. Portanto, é assim que alcançamos a "compreensão" das emoções humanas. Este método não é o melhor e há momentos em que as palavras-chave não caem na mesma emoção que o predefinido, mas por enquanto, isso funciona bem o suficiente e você sempre pode adicionar mais palavras-chave para aumentar a precisão da detecção. Além disso, isso pode ser substituído por um modelo de análise de emoções muito mais treinado, como o modelo de análise de emoções Paralleldots, para obter melhores resultados. Mas quando tentei, houve muitos atrasos que fariam o Ewon reagir mais devagar. Talvez o Ewon versão 2.0 tenha algo assim.

Este é o LINK para todos os arquivos necessários para executar o EWON. Baixe o arquivo e siga as etapas abaixo:

  • Descompacte o arquivo coloque esta pasta (Ewon) em home / pi /
  • Adicione a ID do dispositivo e a ID do modelo no arquivo main.py. O ID é obtido durante a instalação do Google Assistant SDK.
  • Abra o prompt de comando e execute a fonte dos seguintes comandos:

fonte env / bin / activatepython main.py models / Ewon.pmdl

Etapa 3: imprimir o corpo

Você pode encontrar os arquivos 3D aqui:

Agora que estamos todos configurados com o cérebro de Ewon, é hora de imprimir seu corpo. São 18 peças únicas a serem impressas, a maioria delas bem pequenas, com um tempo total de impressão em torno de 15-20 horas. (excluindo os casos).

Usei PLA branco com 50% de preenchimento e uma camada de 2mm de altura. Você pode alterar esses valores se necessário, ele deve funcionar bem, mas certifique-se de que as partes pequenas tenham 100% de preenchimento, para maior resistência.

Depois que os arquivos foram impressos, você pode usar uma lixa ou uma lixa manual e limpar as partes impressas, especialmente os links onde as partes deslizam umas pelas outras. O alisamento das juntas tornará o mecanismo liso e proporcionará menos resistência ao servo. Este processo pode demorar o tempo que você quiser, pois você pode se perder tentando fazer com que as peças impressas pareçam perfeitas.

Notas extras: Você pode fazer novamente os furos nas peças impressas em 3D usando uma broca de 3 mm. Todos os orifícios têm as mesmas dimensões. Isso tornará mais fácil aparafusar as porcas posteriormente na montagem.

Etapa 4: Juntando Ewon

Juntando Ewon
Juntando Ewon
Juntando Ewon
Juntando Ewon
Juntando Ewon
Juntando Ewon
Juntando Ewon
Juntando Ewon

Antes de iniciarmos a montagem, são necessárias algumas modificações nas peças impressas. Os arquivos chamados servo link devem ser equipados com servo links que vêm com o servo, isso faz com que os links impressos em 3D se conectem bem com o servo.

A montagem do Ewon deve ser direta. Anexei imagens para você acompanhar.

Observações extras: Certifique-se de não apertar demais nenhum parafuso ou parafuso, pois isso pode quebrar e desgastar as peças impressas.

Etapa 5: Fiação do Ewon

Fiação Ewon
Fiação Ewon
Fiação Ewon
Fiação Ewon
Fiação Ewon
Fiação Ewon

Estamos na etapa final para dar vida a Ewon. Aqui está o diagrama de fiação para os componentes, juntamente com imagens que mostram a conexão.

  • O servo driver é conectado aos pinos I2C que são SDA e SCL de RPI.
  • O display está conectado aos pinos RX e TX do RPI
  • Microfone e alto-falantes são conectados à placa de som USB que está conectada ao RPI por meio da porta USB.

Aviso: Tenha cuidado ao encurtar seu RPI. Verifique todas as suas conexões duas vezes e certifique-se de que não cometeu nenhum erro. Todos os acessórios que são alto-falante, servo driver e monitor são alimentados por uma bateria separada de 5v e não usam a linha Raspberry Pi 5v. O Raspberry pi é usado apenas para enviar dados aos acessórios, mas não para alimentá-los.

Etapa 6: Ei Ewon! Você pode me ouvir?

Ei Ewon! Você pode me ouvir?
Ei Ewon! Você pode me ouvir?

Por isso, anexamos todos os nossos acessórios e instalamos todas as bibliotecas necessárias. Você pode iniciar o Ewon executando o script de shell usando./run Ewon.shMas o que é esse script.sh? Ewon usa muitas bibliotecas diferentes com scripts diferentes (Google Assistant SDK, Snowboy, Adafruit, etc). Todos os scripts são colocados em suas respectivas pastas. (Podemos mover todos os arquivos no mesmo caminho e ter todos os scripts organizados, mas atualmente algumas das bibliotecas não permitem mover os arquivos de origem, então, por enquanto, vamos apenas mantê-los em seus respectivos locais).sh são scripts de shell que executam todos esses scripts um por um em cada local, para que você não precise ir manualmente para cada local e executar os scripts. Isso torna mais fácil lidar com todos os comandos.

Depois de executar o script de shell, basta dizer “Ei, Ewon!” e você deverá ver Ewon começar a ouvi-lo. Agora você pode usar o Ewon como assistente do Google e falar com ele, e você pode ver o Ewon mudando as expressões do que você diz. Experimente algo como “Ei Ewon! Estou triste hoje “e você pode ver o Ewon triste com você. Peça uma piada a Ewon e veja ele rir da piada.

Etapa 7: o que vem a seguir?

Ewon não para por aqui. Ewon agora tem uma maneira de detectar e mostrar emoções, mas podemos fazer com que faça muito mais. Isto é apenas o começo.

Na próxima atualização, vamos trabalhar em como fazer

  • Ewon detecta rostos e rastreia seu rosto e se move junto com seu rosto.
  • Vamos adicionar efeitos sonoros para dar uma profundidade extra ao personagem.
  • Adicione mobilidade para que Ewon possa se mover junto com você.

Nota: Devido à situação atual, tornou-se muito difícil obter peças para o projeto. Isso me fez mudar o design e a funcionalidade, considerando o que eu tinha em meu inventário. Mas assim que eu colocar minhas mãos em todas as partes, irei atualizar o projeto acima.

Atualizações:

  • Fez algumas alterações no código e removeu o shell script.
  • Adicionado um corpo retangular para EWON.

Recomendado: