Índice:

Construa uma cabeça de robô falante com Arduino !: 26 etapas (com imagens)
Construa uma cabeça de robô falante com Arduino !: 26 etapas (com imagens)

Vídeo: Construa uma cabeça de robô falante com Arduino !: 26 etapas (com imagens)

Vídeo: Construa uma cabeça de robô falante com Arduino !: 26 etapas (com imagens)
Vídeo: Robô com inteligência artificial mais tecnológico do mundo Ameca #tecnologia #inteligenciaartificial 2024, Julho
Anonim
Construa uma cabeça de robô falante com Arduino!
Construa uma cabeça de robô falante com Arduino!

Esta cabeça de robô foi originalmente construída como um projeto de fim de ano para minha aula de computação física, mas durante o verão ela "aprendeu" a falar. O cabeçote é alimentado por dois Freeduinos, 3 chips TLC5940NT e um Adafruit Industries Wave Shield encontrado aqui: www.ladyada.net/make/waveshield/. A cabeça está atualmente conectada a um computador por dois cabos USB, um para alimentação e outro para enviar comandos seriais sobre o que dizer / se emocionar. Assim que a cabeça recebe os comandos digitados sobre o que dizer / emotar, ela reproduz os arquivos de palavras individuais para criar uma ou várias frases. Ele também muda suas emoções de acordo com os comandos emocionais enviados do computador. Esta cabeça de robô é uma base para muitas aplicações possíveis, pois pode dizer qualquer coisa para o qual tenha vocabulário. No momento, estou trabalhando para conectá-lo à internet e fazê-lo verificar e ler meu e-mail via script PHP. Vou atualizar este Instructable à medida que progredir junto com ele. Aqui está um vídeo dele em ação: O head ainda é um projeto em andamento, então qualquer comentário sobre qualquer coisa aqui é mais do que bem-vindo! Um agradecimento especial a Liz Arum por me ajudar em tudo! Atualização: Devido a um pedido popular, agora adicionei um vídeo do robô falando e se expressando! Aproveite no seu lazer!

Etapa 1: compilar todos os materiais / peças / eletrônicos

Esta cabeça do robô usa: 1 placa de ensaio (deve ter mais de 48 linhas de comprimento com uma lacuna no centro da placa para conectar os chips IC. Um barramento de alimentação e aterramento passando ao longo da lateral da placa de ensaio também é uma necessidade). 2 LEDs RGB (para os olhos multicoloridos) Ânodo comum. $ 1,50 - 1,95 cada. 2 X $ 1,75 = $ 3,5036 Leds vermelhos (para a boca) algo em torno da faixa de preço de 40-50 centavos para cada um. 36 X $ 0,45 = $ 16,202 HXT900 Micro Servos (para mover as sobrancelhas) Pode ser encontrado em: https://www.hobbycity.com/hobbycity/store/uh_viewItem.asp?idProduct=662 2 X $ 3,65 = $ 7,303 TLC5940NT's (Para acender / acender todos os Leds e controlar os servos) podem ser encontrados em Digi-key https://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-17732-5-ND onde estão os preços em $ 4,28. 3 X $ 4,28 = $ 12,84ou Mouser https://www.mouser.com/ProductDetail/Texas-Instruments/TLC5940NT/?qs=sGAEpiMZZMu8%252bGBKj8XSFEjwsgnt5grMZ49G/W4nR14%3d3 Capacitores (~ 1000 Leds e linha de ruído) servos) Recuperado de uma fonte de alimentação de computador antigo. Free2 Freeduinos ou Arduinos originais. Os Freeduinos podem ser comprados em https://www.freeduino.org/buy.html. Eles custam 23,99 cada. 2 X $ 23,99 = $ 47,98 Ou www.sparkfun.com/commerce/product_info.php para Arduinos. Custando US $ 29,95 cada. 2 X $ 29,95 = $ 59,90. Aviso: Os Freeduinos requerem algum conhecimento de soldagem, se você quiser não soldar suas placas, compre um Arduino. Aviso: Este Instructable requer algum conhecimento de soldagem de qualquer maneira, então por que não começar agora?:) 1 Waveshield da Adafruit Industries (para permitir que o robô fale) Pode ser comprado em: https://www.ladyada.net/make/waveshield/ Com preço de $ 22 cada. Custo total estimado de todas as peças de alta tecnologia (não incluindo frete) se você comprou Freeduinos em vez de Arduinos é…. $ 109,82! O custo total de todas as peças de alta tecnologia se você comprou Arduinos em vez de Freeduinos é…. $ 121,74! E quanto aos materiais de baixa tecnologia, você vai precisar: Uma caixa de papelão do mesmo tamanho que você quer que sua cabeça fique. Um pequeno pedaço de papelãoTapeGlueBreadboard fio compatível (calibre 22, sólido) Fio para prender coisas a outras coisas Um pequeno bloco de furadeira woodPower. Tubo encolhível de calor para isolar os fios expostos e algo que sopra ar quente para encolhê-lo com (Pistola de ar quente) Cortador de caixa.

Etapa 2: Monte e solde todas as placas de circuito e blindagens

Monte e solde todas as placas de circuito e blindagens
Monte e solde todas as placas de circuito e blindagens

Solde os Freeduinos (como eu fiz), Ou desconsidere essa linha se comprou um Arduino. Aqui está o link para as instruções de montagem para todas as pessoas que compraram Freeduinos: mcukits.com/2009/03/12/assembling-the-freeduino-board-kit/Solder the Waveshields. Lady Ada tem um guia muito bom sobre como fazer isso em seu website em https://www.ladyada.net/make/waveshield/solder.htmlNota: Além de soldar o Waveshield conforme descrito. Adicione um fio longo soldado no resistor R7 no lado mais próximo do chip amplificador. Este será conectado à Entrada Analógica 1 do Freeduino que está controlando os LEDs da cabeça do robô. (Não se preocupe sobre onde conectar a outra extremidade do fio por enquanto, isso será explicado em detalhes mais tarde.) Veja a imagem para obter esclarecimentos sobre onde soldar o fio.

Etapa 3: Projete a cabeça do robô

Projete a cabeça do robô
Projete a cabeça do robô

Pegue a caixa de papelão que você escolheu para ser sua cabeça e marque os lugares que você gostaria de cortar para os olhos e a boca, cortando pedaços de papel e colocando-os em cima da caixa. Quando estiver satisfeito com o arranjo, você pode começar a cortar as coisas.

Etapa 4: Projete sua cabeça de robô: Cortando os olhos

Projete sua cabeça de robô: cortando os olhos
Projete sua cabeça de robô: cortando os olhos

Prenda ou marque as peças em suas posições finais na caixa e corte-as. (Guarde o pedaço de papel que você usou para representar a boca, você vai precisar dele mais tarde.)

Etapa 5: Projete a cabeça do robô: fazendo uma matriz de LED para a boca

Projete sua cabeça de robô: fazendo uma matriz de LED para a boca
Projete sua cabeça de robô: fazendo uma matriz de LED para a boca
Projete sua cabeça de robô: fazendo uma matriz de LED para a boca
Projete sua cabeça de robô: fazendo uma matriz de LED para a boca
Projete sua cabeça de robô: fazendo uma matriz de LED para a boca
Projete sua cabeça de robô: fazendo uma matriz de LED para a boca

Cada LED na boca acenderá independentemente. Para fazer isso, você precisa fazer uma matriz de LED para a boca. (Para uma ideia do que é uma matriz de LED, veja a figura 1) Pegue o pedaço de papel que deveria ser a boca e, com um lápis e uma régua, divida o pedaço de papel em 36 partes (9 X 4), Um para cada LED na grade. Depois de fazer isso, cole o pedaço de papel em um pedaço de madeira e tome cuidado para não perfurar o chão (isso já aconteceu comigo, então eu recomendo furar em cima de uma caixa de papelão.) Faça furos onde as linhas se cruzam com uma broca de 1/4 de polegada, para que seus LEDs se encaixem perfeitamente. O tamanho da broca depende obviamente do tamanho dos LEDs, portanto, use uma broca menor para LEDs menores. (Comece devagar e vá subindo!) Observe as figuras 2 e 3 para esclarecimentos sobre a perfuração / marcação.

Etapa 6: Fazendo a matriz de LED da boca: Soldando nos LEDs

Fazendo a matriz de LED da boca: Soldando nos LEDs
Fazendo a matriz de LED da boca: Soldando nos LEDs
Fazendo a matriz de LED da boca: Soldando nos LEDs
Fazendo a matriz de LED da boca: Soldando nos LEDs
Fazendo a matriz de LED da boca: Soldando nos LEDs
Fazendo a matriz de LED da boca: Soldando nos LEDs

Antes de fazer qualquer outra coisa, verifique se todos os LEDs não estão queimados ou escurecidos. Você pode fazer isso encontrando uma pequena bateria de botão de 3 V e segurando as pernas dos LEDs na bateria (lembre-se que a perna longa é positiva, a curta é negativa). Em seguida, insira os LEDs uma linha de cada vez em seu gabarito de grade perfurado. Dobre as pernas compridas de modo que fiquem paralelas uma à outra e solde-as, fileira por fileira (veja as fotos 2 e 3). Solde as pernas longas, já que você usará TLCs para controlar esses LEDs, e os TLCs são dissipadores de energia. Isso significa que eles controlam os LEDs alterando o diferencial de tensão entre a alimentação e o aterramento.

Etapa 7: Fazendo a matriz de LED da boca: Soldando os fios de controle nos LEDs

Fazendo a matriz de LED da boca: Fios de controle de soldagem nos LEDs
Fazendo a matriz de LED da boca: Fios de controle de soldagem nos LEDs
Fazendo a matriz de LED da boca: Fios de controle de soldagem nos LEDs
Fazendo a matriz de LED da boca: Fios de controle de soldagem nos LEDs
Fazendo a matriz de LED da boca: Fios de controle de soldagem nos LEDs
Fazendo a matriz de LED da boca: Fios de controle de soldagem nos LEDs

Solde fios longos que possam caber em uma placa de ensaio (calibre 22) em todos os condutores de cátodo do LED. Esses fios controlarão os LEDs. Em seguida, certifique-se de isolar todos os fios individuais com fita isolante (não é divertido) ou tubo termorretrátil (recomendado). Além de soldar os fios em todos os condutores do cátodo dos LEDs, solde 2 ou 3 fios na parte do ânodo da grade (A parte que está toda soldada). Esses fios servirão como fontes de alimentação, distribuindo energia por toda a rede. Eles serão conectados a 5V.

Etapa 8: Instale os servos que movem a sobrancelha dentro da cabeça do robô

Instale os servos que movem a sobrancelha dentro da cabeça do robô
Instale os servos que movem a sobrancelha dentro da cabeça do robô
Instale os servos que movem a sobrancelha dentro da cabeça do robô
Instale os servos que movem a sobrancelha dentro da cabeça do robô
Instale os servos que movem a sobrancelha dentro da cabeça do robô
Instale os servos que movem a sobrancelha dentro da cabeça do robô

Antes de instalar seus minisservos dentro da cabeça do robô, cole um fio longo e forte (mas ainda dobrável) no braço do servo. Este fio irá subir pelo interior do seu robô, sair do topo e rastejar de volta para mover as sobrancelhas. (Veja as fotos para esclarecimentos.) Pegue seus minisservos (com os fios conectados) e cole-os com cola quente no interior da cabeça do robô, bem abaixo dos olhos, certificando-se de que os fios possam se mover de um lado para o outro.

Etapa 9: Instale a grade dentro da cabeça do robô

Instale a grade dentro da cabeça do robô
Instale a grade dentro da cabeça do robô
Instale a grade dentro da cabeça do robô
Instale a grade dentro da cabeça do robô

Cole a grade com cola quente em um pedaço de papelão no qual você fez orifícios e cole com cola quente no interior da cabeça do robô.

Etapa 10: Solde os LEDs RGB

Solde os LEDs RGB
Solde os LEDs RGB

Solde o cabo LED RGB do ânodo comum em um fio longo. Em seguida, solde um fio colorido (vermelho, verde, azul) ao cabo de LED RGB que corresponde a ele (a cor de um cabo individual pode ser encontrada usando uma bateria de botão de 3 V para acender cada cabo de LED por vez). Não se esqueça de isolar os fios!

Etapa 11: Instale os LEDs RGB dentro da cabeça do robô

Instale os LEDs RGB dentro da cabeça do robô
Instale os LEDs RGB dentro da cabeça do robô
Instale os LEDs RGB dentro da cabeça do robô
Instale os LEDs RGB dentro da cabeça do robô

Instale os LEDs dentro da cabeça do robô, colocando-os onde quiser e, em seguida, dobrando e prendendo os fios dentro da caixa. Colocar um canudo sob o LED também ajuda a mantê-lo no lugar. (Veja as fotos para esclarecimentos)

Etapa 12: Conclua a fabricação dos olhos

Termine de fazer os olhos
Termine de fazer os olhos
Termine de fazer os olhos
Termine de fazer os olhos

Cole um pedaço de papel quadrado que seja um pouco maior do que o orifício que você cortou. Cole-o sobre o orifício para cobrir o orifício e o LED atrás dele. Você também pode prender algumas folhas de papel toalha no interior dos orifícios dos olhos para difundir a luz que vem dos LEDs.

Etapa 13: Conecte os chips TLC5940NT

Conecte os chips TLC5940NT
Conecte os chips TLC5940NT
Conecte os chips TLC5940NT
Conecte os chips TLC5940NT
Conecte os chips TLC5940NT
Conecte os chips TLC5940NT

Nesta etapa, você terá que encadear 3 TLC5940NTs em série para acionar um total de 42 saídas de LED (36 para a boca, 6 para os olhos multicoloridos). As pessoas no playground do Arduino têm um guia de conexão muito bem documentado sobre como fazer margaridas encadeie 3 TLC5940NTs juntos. Aqui está em forma compactada: Arduino pino 13 -> SCLK (TLC pino 25) Arduino pino 11 -> SIN (TLC pino 26) Arduino pino 10 -> Em branco (TLC pino 23) Arduino pino 9 -> XLAT (TLC pino 24) Arduino pino 3 -> GSCLK (TLC pino 18) -------------- U ------------ LED Out 1 | 1 28 | LED Out 0LED Out 2 | 2 27 | GNDLED Out 3 | 3 26 | SIN (Ard pin 11.) LED Out 4 | 4 25 | SCLK (Ard pin 13)… | 5 24 | XLAT (Ard pin 9)… | 6 23 | EM BRANCO (Ard pin 10)… | 7 22 | GND… | 8 21 | VCC (5V)… | 9 20 | Resistor 2K para aterramento… | 10 19 | 5V… | 11 18 | GSCLK (Ard pin 3)… | 12 17 | SOUT (Conectado ao SIN do próximo TLC na Daisychain)… | 13 16 | XERR Out 14 | 14 15 | LED Out 15 ----------------------------- Nota: estamos conectando 3 TLCs, portanto, o SIN do primeiro TLC está conectado ao Arduino pino 11. O resto dos TLCs têm seu SIN conectado ao SOUT do TLC anterior. Todos os BLANKs estão conectados entre si (BLANK do TLC1 está conectado ao BLANK do TLC2 etc …) Todos os XLATs estão conectados. Os SCLKs estão conectados. Todos os GSCLKs estão conectados. Todos os XERRs estão conectados. Também conecte 2 ou 3 capacitores eletrolíticos ao aterramento e à alimentação da placa de ensaio (negativo no capacitor indo para o aterramento, positivo para 5V). A quantidade de carga que ele mantém não é tão importante, mas deve ser classificado para 5 V ou superior. Esses capacitores vão atuar como um filtro, filtrando todas as imperfeições (ruídos) na alimentação de tensão que os TLCs produzem. Isso é importante porque o Waveshield que usaremos compartilha o mesmo aterramento dos TLCs e REALMENTE não gosta de ruído elétrico (faz um barulho estranho de clique).

Etapa 14: Conecte os LEDs aos TLCs

Conecte os LEDs aos TLCs
Conecte os LEDs aos TLCs
Conecte os LEDs aos TLCs
Conecte os LEDs aos TLCs

Conecte todos os LEDs aos TLCs, linha por linha, começando com o que está no canto superior esquerdo e passando para o LED diretamente à direita. Aqui está uma grade de todos os pinos de LED TLC incluídos para sua conveniência. Veja as fotos para esclarecimento. Boca: 0 1 2 3 4 5 6 7 89 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Agora também é um bom momento para conectar seus olhos de LED RGB aos TLCs, então aqui estão os pinos… Olhos de LED RGB: Esquerda: RGB Direita: RGB 36 40 38 37 41 39 Não se esqueça para conectar os fios de alimentação universal para The Grid e LEDs RGB em 5V!

Etapa 15: Conecte os Servos aos TLCs

Conecte os Servos aos TLCs
Conecte os Servos aos TLCs

Conecte a alimentação e o aterramento dos servos para alimentação e aterramento em sua placa de ensaio. Conecte o fio de controle do servo esquerdo (seu esquerdo enquanto está de frente para o robô.) Ao pino 43 (lembre-se de começar do zero.) E o servo direito ao pino 44. Você precisará conectar um resistor de 3,3K ohm de ambos os pinos para 5 V porque os TLCs são dissipadores de energia e requerem energia para dissipar.

Etapa 16: Você está entrando na terra do software e do código! (majoritariamente)

Por favor, não ultrapasse …

Etapa 17: Baixe a Biblioteca TLC

A biblioteca TLC mais recente para o Arduino pode ser encontrada na página de código do Google em: code.google.com/p/tlc5940arduino/. Baixe a biblioteca mais recente e insira a pasta descompactada "Tlc5940" em [pasta da versão mais recente do Arduino] / hardware / bibliotecas /

Etapa 18: Teste os TLCs

Carregue meu esboço de teste de expressão serial que você pode baixar abaixo. Carregue-o no Freeduino e digite alguns comandos no monitor serial para testar se tudo funciona. Aqui está a lista de comandos: behappybesadbemadfullmouthlinemouthoffmouthoffeyesbluegreeneyesredeyesblueeyesopenmouthtalkmouth (não fala, mas faz movimentos com a boca)

Etapa 19: Baixe o Suporte aprimorado de alta capacidade (um pouco), biblioteca Waveshield

Baixe o novo waveshield melhorado Adafruit do código do Google (Obrigado, Sr. Fat16 por fazer esta biblioteca melhorada): code.google.com/p/wavehc/ Novamente cole a pasta descompactada em hardware / libraries / folder.

Etapa 20: formate e carregue seus cartões SD

Insira seus cartões SD no computador e formate-os usando o tipo de arquivo FAT ou FAT16. NÃO FAT32! Em seguida, carregue seus cartões SD com arquivos de fala do excelente site de texto em fala da AT&T www.research.att.com/~ttsweb/tts/demo.php#top Renomeie os arquivos com o nome da palavra que está falando no arquivo e trunque esse nome de arquivo para algo que contém 6 ou menos letras. (O waveshield só pode lidar com arquivos cujos nomes de arquivo tenham 6 caracteres ou menos.) Ex. Se você baixar o arquivo para "Instructables.com" -> nomeie instrc.wavSe olá -> olá.wav

Etapa 21: Teste seu Waveshield

Baixe e execute meu esboço de teste Waveshield serial. Você deve conseguir, através do terminal serial, digitar uma frase e fazer com que o Waveshield a reproduza (desde que tenha os arquivos.wav de que precisa). Irá pegar a primeira palavra, adicionar ".wav" e reproduzi-lo antes de passar para a segunda. Ex.você digita: Olá, meu nome é Bob. Ele tocará: hello.wavmy.wavname.wavis.wavbob.wav Nota: Teste o Waveshield no outro Freeduino (aquele que não está conectado aos TLCs) porque tanto o Waveshield quanto os TLCs usam os pinos 13, 12, 11 e 10 (no Freeduino). Isso ocorre porque esses pinos têm suporte de hardware para uma interface chamada Interface Periférica Serial (SPI) que tanto os TLCs quanto o Waveshield exigem. Esses pinos não podem ser compartilhados entre eles, então teremos que conectar dois Freeduinos usando a interface I2C para que eles possam passar informações entre eles. Mais sobre isso na etapa 22.

Etapa 22: Conecte a interface I2C entre os dois Freeduinos

Conecte a interface I2C entre os dois Freeduinos
Conecte a interface I2C entre os dois Freeduinos

Espere … Por que precisamos conectar uma interface I2C entre dois Freeduinos? Por que não podemos simplesmente conectar o Waveshield e os TLCs em um Freeduino? Aqui está o motivo: tanto o Waveshield quanto os TLCs usam os pinos 13, 12, 11 e 10 no Freeduino. A razão para isso é que esses pinos têm suporte de hardware para uma interface chamada Interface Periférica Serial (SPI) que os TLCs e o Waveshield exigem e não podem compartilhar. Isso significa que teremos que conectar dois Freeduinos usando algum tipo de conexão de dados para que ambos trabalhem juntos em conjunto. Serial não era uma opção porque meu computador já o estava usando para se comunicar com o Waveshield Freeduino, então, depois de algumas buscas intensas no Google, descobri um método de comunicação extremamente conveniente e simples. I2C! Aqui está como conectar a interface: Conecte o pino 4 da entrada analógica em ambos os Freeduinos (Este é o SDA ou linha de dados serial.) Conecte o pino 5 da entrada analógica em ambos os Freeduinos (Este é o SCL ou linha do relógio serial.) Conecte o aterramento em ambos Freeduinos (Caso contrário, a interface I2C não funcionará.) Conecte o fio que você soldou no início deste Instructable do resistor R7 no Waveshield ao pino de entrada analógica 1 no TLC controlando Freeduino (este fio é para verificar o volume de as palavras faladas pelo Waveshield e não fazem parte da interface I2C). (Veja a imagem para esclarecimentos)

Etapa 23: Habilite I2C no Freeduino de controle do TLC

Habilite I2C no Freeduino que você usou para controlar os TLCs baixando este esboço. Receberá informações sobre as expressões do Waveshield e também verificará o volume da saída da fala no Waveshield Freeduino e moverá a boca para simular a fala dependendo do volume da palavra sendo falada. Definição I2C: I2C também é conhecido como TWI (Interface de dois fios) é uma maneira simples de conectar vários dispositivos juntos (até 128!) Com dois fios de dados e um aterramento comum. Atualização: adicionei um recurso de piscar ao Arduino Sketch. O robô agora piscará em intervalos de 2 a 11 segundos, assim como um humano.

Etapa 24: Teste a interface I2C

Baixe este sketch e carregue-o no Waveshield Freeduino, ele envia as palavras "behappy;" e então "besad;" através da interface I2C para o TLC controlando Freeduino em intervalos de dois segundos, esperançosamente fazendo o robô ir de feliz para triste em intervalos de dois segundos.

Etapa 25: Está quase pronto! Apenas algum código para carregar …

Carregue a versão final do código Waveshield Freeduino. Deve pegar todas as palavras que você digitar no monitor serial e pronunciá-las (desde que tenha os arquivos.wav para fazer isso) e deve passar comandos de expressão como "behappy;" e "besad;" no Freeduino controlando os TLCs por meio da interface I2C. Observação: A lista de comandos é a mesma para o código de teste TLC anterior (consulte a etapa 17), exceto que você deve adicionar um ponto-e-vírgula a cada comando de expressão. EX. Se você quiser que o robô fique triste e diga "Sinto-me triste", digite: besad; Me sinto triste. Atualização: O Waveshield Sketch agora usa pontuação corretamente (ou seja, pontos e vírgulas, mas não pontos de exclamação).

Etapa 26: Monte tudo na caixa da cabeça do robô e pronto

Monte tudo na caixa da cabeça do robô e pronto!
Monte tudo na caixa da cabeça do robô e pronto!
Monte tudo na caixa da cabeça do robô e pronto!
Monte tudo na caixa da cabeça do robô e pronto!

Monte todos os Freeduinos na parte traseira da caixa com fios. Feche a aba superior da caixa com fios e pronto! Agora, se pudesse verificar meu e-mail. Hmmmm ……. Obrigado por ler este Instructable! Comentários são sempre bem vindos em qualquer coisa!

Segundo Prêmio no Concurso Arduino

Recomendado: