Índice:

Homunculus - the Mechanical Mystical Oracle Fortune Teller: 15 etapas (com fotos)
Homunculus - the Mechanical Mystical Oracle Fortune Teller: 15 etapas (com fotos)

Vídeo: Homunculus - the Mechanical Mystical Oracle Fortune Teller: 15 etapas (com fotos)

Vídeo: Homunculus - the Mechanical Mystical Oracle Fortune Teller: 15 etapas (com fotos)
Vídeo: Unboxing ZOLA the tattoo FORTUNE TELLER 2024, Novembro
Anonim
Image
Image
Homunculus - o caixa da fortuna do oráculo místico mecânico
Homunculus - o caixa da fortuna do oráculo místico mecânico

Ok - então o que isso deveria ser … a história por trás disso que conto às pessoas é que o crânio é de um místico do século 19 cujo túmulo foi roubado e que seu crânio que acabou em algum lado do carnaval aparece no início de 1900. Eu o encontrei no porão de alguma casa vitoriana degradada e reconstruí o adereço em uma cartomante do século 21 - 'que pode entrar no éter da internet, dizer a você sua sorte, quem são seus amigos e inimigos, diga uma piada e leia meu e-mail e calendário do dia '.

O que realmente é - Bem, é o incrível software Jasper rodando em um Raspberry pi e eu fiz um crânio Linburg falante de 2 canais que fala junto com muitos sinos e assobios (e um pandeiro) para adicionar a ele.

Este foi um projeto superambicioso. Muitas mídias diferentes para trabalhar - várias tortas, trabalho em madeira, pintura, muita fiação, muita codificação em python, codificação ardunio, muita fiação pequena, fiação 120v, placas externas pi 'hats', relés e relés, 24v fontes de alimentação, fazendo as coisas se moverem - uma caveira com 2 eixos e o bater do pandeiro.

Não vou entrar em detalhes detalhados peça por peça para cada parte, especialmente a codificação python, mas tentarei descrever cada componente brevemente e incluir imagens.

Além disso, nos exemplos de Python - sim, eu poderia ter sido muito mais orientado a objetos na codificação, mas minha experiência com Python quando comecei o projeto era bem básica e, claro, é mais fácil cortar e colar quando você está com pressa vs. parando o que está fazendo, reescreva-o corretamente e continue.

Etapa 1: Componentes principais - coisas que tive que encontrar / obter / comprar

Componentes principais - coisas que tive que encontrar / obter / comprar
Componentes principais - coisas que tive que encontrar / obter / comprar
Componentes principais - coisas que tive que encontrar / obter / comprar
Componentes principais - coisas que tive que encontrar / obter / comprar
Componentes principais - coisas que tive que encontrar / obter / comprar
Componentes principais - coisas que tive que encontrar / obter / comprar

Raspberry Pi

Dois deles

www.adafruit.com/products/1914?gclid=CjwKE…

Jaspe

“Jasper é uma plataforma de código aberto para o desenvolvimento de aplicativos sempre ligados e controlados por voz”

jasperproject.github.io/

'Olhos' de Adafruit

learn.adafruit.com/adafruit-1-44-color-tft…

Teensy - cérebro para os olhos

www.adafruit.com/product/2756

Como criar os olhos usando as telas tft de 1 a 44 cores

learn.adafruit.com/animated-electronic-eye…

Chapéu Serveo de 16 canais

learn.adafruit.com/adafruit-16-channel-pwm…

The Classic Lindberg Skull

www.amazon.com/Lindberg-scale-Pirate-skull…

Placa de retransmissão de 4 canais que funcionará com um Raspberry Pi

www.amazon.com/Sizet-Channel-Module-Arduin…

Empurre o Solenóide

(Disponível em muitos lugares diferentes)

www.aliexpress.com/item/High-quality-DC-12…

Microfone USB

Isso está disponível em muitos lugares diferentes

www.samsontech.com/samson/products/micropho…

Diversos

Dois Servos que eu tinha por aí, chifres de servo que encontrei na cesta de $ 1 na loja de hobby. Cabos de extensão servo, alto-falante USB / Bluetooth, parafusos de porca, MDF, cola quente, tubos de vácuo antigos, vários pedaços de lâmpadas e bits, um telefone celular Samsung S5 antigo, chapa de aço, fio de cobre, fita de cobre, pregos, cola normal, etc. etc.

Etapa 2: Por que duas tortas de framboesa?

Por que duas tortas de framboesa?
Por que duas tortas de framboesa?

Originalmente, eu queria sincronizar os crânios falando com o discurso, mas depois de instalar o Jasper e determinar tudo o que eu queria fazer, todas as coisas se movendo, achei que seria melhor dividir todo o trabalho em duas tortas. Eu tinha um prazo para fazer isso e não queria ter que voltar atrás se tivesse algum tipo de problema de desempenho. Agora que o trabalho está feito, acredito que poderia fazê-lo com um único Pi, na época achei melhor deixar um pi gerenciar Jasper e um segundo pi conduzir os servos e relés para que eu pudesse ter uma demarcação clara entre os trabalhar. Também era mais fácil para o desenvolvimento. Eu poderia fazer tudo certo em Jasper sem ter que me preocupar com servos e relés. No outro pi, eu poderia me concentrar em dirigir os servos, cronometrar as coisas - acender as luzes, mover servos, etc. e não ter que me preocupar com problemas relacionados a voz / alto-falante / microfone.

O lado ruim disso é que perdi a capacidade de sincronizar o crânio movendo sua mandíbula com o discurso, mas depois de olhar o trabalho de Grant Imahara para o The Late Late Show criando "Geoff", percebi que as coisas pareceriam boas o suficiente.

www.popularmechanics.com/science/a5473/4350…

Etapa 3: Como as duas tortas se comunicam?

Como as duas tortas se comunicam?
Como as duas tortas se comunicam?
Como as duas tortas se comunicam?
Como as duas tortas se comunicam?

Existem algumas maneiras diferentes de fazer isso. Eu fui da velha escola e decidi ir com uma conexão serial. São necessários apenas três fios entre as duas tortas (Tx, Rx & gnd) e uma pequena quantidade de código para abrir uma conexão serial de Pi # 1 a Pi # 2 e enviar algo para ela. Pi # 2 abre uma conexão serial para ler dados e define em um loop fechado lendo sua conexão serial. Ao receber algum texto, ele vê se corresponde a um comando (falar, luzes acesas, luzes apagadas, conversa apagada, etc.) e faz o que precisa fazer. O lado negativo da conexão serial é que há um pequeno atraso entre o momento em que o comando é enviado e o processo do comando. Pi # 2 está em um loop com um pequeno atraso na leitura. Então eu tive que controlar as coisas. Também para futuros projetos multi-pi, é bom saber que posso ter dois Pies se comunicando e NÃO preciso da internet para fazer isso.

Etapa 4: Threads Python

Python Threads
Python Threads

Para adicionar alguma complexidade adicional a tudo, acabei tendo que usar threads de Python no Pi # 2 para que pudesse lidar com várias solicitações e processá-las ao mesmo tempo. Por exemplo, eu precisava ser capaz de começar a falar - movendo a cabeça do crânio para a esquerda / direita enquanto a mandíbula sobe e desce, mas e se Pi # 1 tiver um erro por algum motivo e não for capaz de dizer Pi # 2 para parar de falar, o crânio falaria para sempre. Então, eu precisava que o crânio dissesse a si mesmo para desligar depois de algum tempo. Para fazer isso, era mais fácil criar um fio. Dentro da rotina de discussão para falar há algum código que depois de algum tempo máximo, para de falar, reconfigura a cabeça e a mandíbula e sai. O mesmo para o pandeiro, eu precisava que ele disparasse um pouco antes de a caveira parar de falar, então giro outra linha para o pandeiro e tudo funciona junto e o código para o movimento da cabeça é totalmente separado do bater do pandeiro - o mesmo para ligar as luzes e os olhos de todos os fios podem funcionar simultaneamente.

A quantidade de código necessária em Python para usar threads é muito pequena, mas é obtusa e levei algum tempo para entender, mas funciona muito bem. A capacidade de usar threads é uma boa ferramenta para ter na caixa de ferramentas se você for um desenvolvedor Raspberry Pi.

Etapa 5: modificações Jasper e Jasper

O site Jasper é O recurso para instalá-lo em um pi, qual reco de voz usar, como configurar, escrever novos módulos, tudo - e é grátis! No entanto, não é uma instalação simples. Muitos passos, muitos pacotes para instalar e configurar. Eu faço esse tipo de trabalho para viver e ainda era algo que consideraria um desafio. Quando terminei este projeto, eu me aprofundava no Japer e fiz várias modificações para acomodar o que estava tentando fazer.

Algumas mudanças que fiz:

Remoção da escuta passiva e uso de uma porta GPIO para iniciar a escuta ativa com um interruptor de corte caseiro. Isso fez com que parecesse mais um tipo de 'arcade' em vez de usar a escuta passiva.

Alterei os parâmetros conforme necessário para trabalhar com meu microfone - tive que passar por três microfones USB diferentes até encontrar um que funcionasse corretamente para mim. Eu também tive que ajustar alguns dos valores de limite no código. Esta foi a parte mais dolorosa de usar Jasper para mim pessoalmente.

Adicionado o código de conexão serial em todos os módulos para abrir uma conexão serial, dizer ao escravo pi o que fazer 'olhos em', 'falar', 'bater pandeiro'

Adicionou os módulos ‘quem são meus amigos’, ‘conte-me uma piada’, ‘leia minha programação de meu calendário de CRM’, ‘diga-me minha sorte’. Alguns dos quais exigiam fazer chamadas REST para software baseado em nuvem para obter dados. Existem muitos módulos prontos para uso que aproveitei como exemplos, juntamente com a documentação no site para me ajudar a fazer o que eu precisava.

Etapa 6: adicionar dois eixos ao crânio

Adicionando dois eixos ao crânio
Adicionando dois eixos ao crânio
Adicionando dois eixos ao crânio
Adicionando dois eixos ao crânio
Adicionando dois eixos ao crânio
Adicionando dois eixos ao crânio

Comecei com o crânio básico de Lindberg. Eu tinha pensado originalmente em um crânio de 4/5 eixos, mas o tempo que levaria para escrever o código python para coordenar os movimentos junto com a construção do hardware para o movimento excederia o tempo que eu tinha para terminar o resto do projeto. (Não sei se ele já existe, mas um pedaço de software em um Pi ou Ardunio para conduzir um crânio multi-eixo que seria um projeto muito legal em si.) Então, um eixo - o movimento da mandíbula era muito fraco, então Adicionei o movimento da cabeça e com os olhos LCD funcionando, estou feliz com os resultados.

Então, olhando para o trabalho que outros fizeram com crânios falantes, descobri o que precisava fazer, dois servos e chifres de servo, um pedaço de MDF, cola quente, laços de zíper, tentativa e erro - eu tinha a parte física disso no lugar. A programação básica do movimento em Pi, na verdade, demorou mais. Eu tive que descobrir os valores do PWM para ambos os servos. Comecei com o básico totalmente aberto / fechado, gire a cabeça totalmente para a esquerda / direita. Mas não parecia bom. Então eu fiz movimentos intermediários, mandíbula totalmente aberta, atraso.1, mandíbula parcialmente fechada, sem atraso, jar parcialmente aberta, atraso,.etc, etc. O mesmo para o movimento da cabeça, bater para frente e para trás parecia péssimo, então movimentos intermediários e atrasos parece melhor.

Uma coisa lamentável que eu não tive tempo de trabalhar é que todo o material que coloquei na calota craniana - a tira de metal, pontas, coroa de cobre e fiação tornou o crânio geral mais pesado e dificultou o uso do servo. está se movendo mais devagar e não tão longe. Um servo de torque mais alto provavelmente ajudaria aqui, mas eu estava sem tempo e sem fundos …

Etapa 7: Driver Servo Adaifruit Hat

Driver Servo Adaifruit Hat
Driver Servo Adaifruit Hat

A Adafruit tem ótimos exemplos de como usar seus produtos. O que foi desafiador foi descobrir quais eram exatamente os valores para cada um dos servos - centro, extrema esquerda e direita. Não é 0, 90, 180 como você pensa. Era um programa python de apenas algumas linhas, mas levou algumas horas de ajustes para passar por isso em ambos os servos.

Etapa 8: Placa de Relé

Placa de Relé
Placa de Relé

Eu peguei isso na Amazon. Muitos sites vendem o que parece ser exatamente a mesma unidade. Demorou alguns experimentos aqui, mas inverter os relés leva apenas algumas linhas de código e você tem um NC e conexões NO nos relés tornando ainda mais fácil. Outro desafio aqui é que uma porta / pino GPIO não é uma correspondência 1: 1 com o pino no Pi. Demorou um pouco para entender isso.

Etapa 9: Teensy e os olhos

Teensy e os Olhos
Teensy e os Olhos

Peguei 100% do site Adafruit. Originalmente, eu tinha algumas bolas de pingue-pongue acesas por LEDs que eu ia usar, mas assim que vi isso no site deles, eu precisava delas. Eu não tinha nenhuma experiência com Ardunio antes disso, mas segui cegamente os exemplos em seu site e os fiz funcionar em cerca de ½ dia. Além disso - como eu lancei o programa para o pequeno, ele o mantém e quando você o liga. O Ardunio arranca em cerca de 3 segundos e ilumina os olhos. Então, tudo que eu tive que fazer para fazer os olhos funcionarem foi conectar 12v a um dos relés e ligar o pequenino e os olhos e a mágica acontecerá!

Montar as telas de LCD no crânio foi SUPER doloroso. 7 pequenos fios em cada LCD, então 14 fios no total e tentar moer o crânio e montá-los em linha reta e não quebrar um fio - o que acontece muito foi muito doloroso. Portanto, programar dificuldade moderada - difícil de montar. Exatamente o oposto do que eu esperava. O Teensy fica atrás dos olhos, abaixo da placa de MDF que segura os dois servos.

Etapa 10: Pandeiro

Pandeiro
Pandeiro
Pandeiro
Pandeiro

Bem, eu sempre me lembro da cabeça na bola de cristal na Mansão Assombrada e do pandeiro flutuando enquanto ela estava em contato com os espíritos, então eu tinha que ter algo assim para este projeto. Como o crânio era de um ex-leitor / vidente de mentes, os espíritos precisam avisar às pessoas quando estão presentes J. Eu encontrei o maior relé push pull mais poderoso que pude encontrar. Em seguida, passei de 12v para 24v com um carregador sobressalente para laptop que eu tinha. Tive que fazer algumas versões diferentes do mecanismo, mas minha terceira iteração funcionou melhor. Tive que mexer no comprimento da alavanca, alinhamento, etc. Meu grande erro foi fazer tudo isso com madeira / MDF. Quando eu montei isso pela primeira vez, correndo a 24v, o solenóide batia no pandeiro com tanta força que ele se despedaçava. (A 12v não era forte o suficiente) Com o tempo, tendo um eixo de madeira montado em MDF e pintando as coisas, a coisa toda ficou mais difícil / mais difícil de mover, o que significava que o solenóide tinha mais dificuldade para empurrar para fora quando energizado E mais difícil para retornar. Então, eu tive que adicionar uma mola de retorno adicional - o que requer que o solenóide desperdice energia quando é energizado. Então acabou batendo o pandeiro no lado lento. Da próxima vez, construirei essa parte em metal - bucha de bronze, eixo de metal etc. e evito esse problema.

Etapa 11: lâmpada de plasma

Lâmpada de plasma
Lâmpada de plasma
Lâmpada de plasma
Lâmpada de plasma

Já que eu não iria construir uma escada Jacobs ou alguma outra fonte de energia de cientista maluco para o projeto, eu precisava de algum tipo de "energia" para mover o crânio. Peguei meu antigo Samsung Galaxy S5, fiz uma redefinição de fábrica e carreguei um aplicativo de bola de energia nele. Tive que carregar outro aplicativo que não deixava o telefone entrar no modo de proteção de tela para mantê-lo ativo no aplicativo.

Etapa 12: Como fazer a luz 120v piscar

Como fazer a luz 120v piscar
Como fazer a luz 120v piscar

AVISO -

Isso está atrapalhando com o plugue de 120v AC na alimentação da parede aqui. Se não sabe o que está fazendo, não faça

AVISO -

halloweenpropmaster.com/u-build-it3.htm

Este site fornece a melhor explicação de como fazer isso. O custo do starter é super barato e eu destruí um cabo de extensão sobressalente que eu tinha. Eu tenho alguns deles construídos e os tenho usado durante o Halloween e eles funcionam muito bem, sem fusíveis queimados, sem superaquecimento, etc. Eu os usei por horas seguidas sem problemas. Portanto, para este projeto, peguei um dos cabos de extensão com o starter em linha e o conectei a um dos quatro relés da placa. Algumas linhas de código GPIO irão desativá-lo e ativá-lo. Também começa a funcionar imediatamente, sem tempo de aquecimento.

Etapa 13: A plataforma / mesa

A plataforma / mesa
A plataforma / mesa
A plataforma / mesa
A plataforma / mesa

Eu vi alguns 'caveira em uma mesa', 'cabeça de Frankenstein em uma mesa' tipo de adereços de cientista maluco e decidi que queria seguir esse caminho. Isso me daria a chance de experimentar mais do que apenas o crânio falante. Eu descobri o tamanho básico da mesa e a construí com ¼ de MDF. Usar uma serra de mesa torna isso muito fácil. Meus projetos são tipicamente de metal, então construir com madeira era algo novo para mim. Cortei as peças básicas e fiz meus 4 lados da caixa e uma tampa bem rápido. Aprendi uma lição difícil com uma pistola de cola para montá-los. O que descobri é que - esta não é a maneira de fazer isso. Todas as peças se desfizeram assim que peguei a maldita coisa! Então cortei algumas peças extras de 1”quadrado para reforçar os cantos e a madeira colei / preguei juntos. Lição aprendida. Coloquei alguns enfeites entre o topo e as laterais da plataforma, colei e preguei no lugar. Spot colocado para preencher as lacunas e estava pronto para ter o resto dos componentes montados nele.

Quanto ao resto, me inspirei em imagens que vi na web. Para "antiquar" o crânio, tentei usar uma mancha escura. Não funcionou; não grudou no plástico. Então tentei pintar o crânio com um esbranquiçado e depois coloquei a mancha. Funcionou muito melhor. Eu sei que existem muitas técnicas para fazer isso e estou feliz com o resultado. Fita de cobre que usei de outro projeto que usei para a calota craniana e ao redor dos ossos da bochecha. Pintei a mancha no resto dos itens não pintados de preto para dar uma aparência antiquada / velha.

O resto das peças e bolas eu tinha de outros projetos. Todas as peças de latão são de uma loja de lâmpadas. Fiz a chave de corte com alguns materiais de sucata e o botão na extremidade é outra peça de lâmpada. Os tubos que encontrei em um lugar de excedente eletrônico junto com os isoladores. Picos de punk rocker que recebi de outro projeto pós-apocalíptico. Chapa de aço e fio de cobre da loja de ferragens e um tubo de PVC para as vértebras.

Para o pôster, encontrei uma foto de pôster de um velho mágico na web e com um pouco de magia do Photo Shop mudei o nome.

Etapa 14: o resto

O resto
O resto
O resto
O resto
O resto
O resto
O resto
O resto

Me inspirei em imagens que vi na web. Para "antiquar" o crânio, tentei usar uma mancha escura. Não funcionou; não grudou no plástico. Então tentei pintar o crânio com um esbranquiçado e depois coloquei a mancha. Funcionou muito melhor. Eu sei que existem muitas técnicas para fazer isso e estou feliz com o resultado. Fita de cobre que usei de outro projeto que usei para a calota craniana e ao redor dos ossos da bochecha. Pintei a mancha no resto dos itens não pintados de preto para dar uma aparência antiquada / velha.

O resto das peças e bolas eu tinha de outros projetos. Todas as peças de latão são de uma loja de lâmpadas. Fiz a chave de corte com alguns materiais de sucata e o botão na extremidade é outra peça de lâmpada. Os tubos que encontrei em um lugar de excedente eletrônico junto com os isoladores. Picos de punk rocker que recebi de outro projeto pós-apocalíptico. Chapa de aço e fio de cobre da loja de ferragens e um tubo de PVC para as vértebras.

Etapa 15: Montagem / Ajuste / Ajustes

Montagem / Tuning / Tweaking
Montagem / Tuning / Tweaking

Então, aqui estava meu processo de construção:

# 1 Instale Jasper em um Pi e faça-o funcionar.

# 2 Compre vários microfones e ajuste até ter algum sucesso.

# 3 No 2º Pi, instale o chapéu Adafruit e entenda como mover os servos. Coloque os servos no crânio e entenda os valores que eu precisava usar para movê-los.

# 4 Construa uma base de teste para o crânio para que eu possa trabalhar nisso em meu escritório. Ajustar, ajustar novamente, ajustar um pouco mais.

# 5 Monte todos os componentes elétricos em uma placa de acrílico. Tortas, placa de relé, fontes de alimentação USB e fios relacionados.

# 6 Construa os olhos Adafruit. Prove para mim mesmo que eles só precisam de tensão aplicada para que tudo funcione. Eu não sabia disso quando comecei esta parte.

# 7 Faça uma prova de conceito de envio e recebimento de dados seriais entre as duas tortas. Escreva uma rotina de loop para o segundo Pi com os comandos de que eu precisava - falar liga / desliga, etc. Teste-o com algum código de amostra no Pi # 1. Sem Jasper ainda.

# 8 Adicione o código serial ao código Jasper - prove que posso obter movimentos básicos quando Jasper está falando.

# 9 Comece a mexer na placa de relé. Adicione o código para ativar os olhos.

# 10 Adicione o código para ligar o 120v. Construa o solenóide e o pandeiro em uma plataforma separada para descobrir como eles devem funcionar.

# 11 Monte os olhos no crânio.

# 12 Construa a plataforma em que tudo será montado. Monte todas as peças na plataforma, faça a base de aço do crânio para segurá-la, acrescente os componentes do pandeiro.

# 13 Tente levar as tortas e a tábua de dentro de casa para a garagem e descubra como colocá-las dentro da plataforma.

# 14 Comece a sintonizar. Mais afinação, continue a afinar. Percebo que preciso tornar o código Python multithread para que todas as ações funcionem juntas.

# 15 Decida adicionar a bola de energia abaixo dos tubos de vácuo. Descobrir que posso fazer isso com um telefone celular antigo. Feito esse trabalho em menos de um dia.

# 16 Continue a adicionar detalhes. Espigões, fios de cobre, tubos, caveiras antigas. Continue ajustando e testando. Pinte, retocar e consertar coisas que estão sempre se soltando, reengenharia / reforce coisas que estão caindo aos pedaços.

# 17 Teste e ajuste Prepare-se para mostrá-lo a outras pessoas.

Recomendado: