Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Joy Robot (Robô Da Alegria)

Componentes e suprimentos

Arduino UNO
× 1
Espressif ESP8266 ESP-01
× 1
Micro servo motor SG90
× 6
Motor DC com redução e rodas de borracha
× 2
Driver L298N h-bridge
× 1
Adafruit 16 canais 12 bits PWM / Servo Driver - I2C interface - PCA9685
× 1
MAX7219 Visor LED 8x8
× 4
Drivers de motor SparkFun Dual H-Bridge L298
× 1
bateria 18650
× 2
porta-bateria 18650
× 2
Arduino Proto Shield
× 1
diodo 1N4001
× 1
Resistor 10k ohm
× 3

Ferramentas e máquinas necessárias

Impressora 3D
Impressora 3D (genérica)

Aplicativos e serviços online

Autodesk Fusion 360
Arduino IDE
Android SDK

Sobre este projeto




Primeiro prêmio no Instructables Wheel Contest, segundo prêmio no Instructables Arduino Contest e vice-campeão no Instructables Design for Kids Challenge. Obrigado a todos que votaram em nós !!!

http://www.instructables.com/id/Joy-Robot-Rob%C3%B4-Da-Alegria-Open-Source-3D-Printed-A/

Os robôs estão chegando a todos os lugares. De aplicações industriais a exploração subaquática e espacial. Mas os meus favoritos são aqueles usados ​​para diversão e entretenimento! Neste projeto um robô faça-você-mesmo foi desenhado para ser usado como entretenimento em hospitais infantis, trazendo um pouco de diversão para as crianças. O projeto tem como objetivo compartilhar conhecimento e promover a inovação tecnológica para auxiliar ONGs que realizam trabalhos beneficentes em hospitais infantis.

Este tutorial mostra como projetar um robô humanoide operado remotamente, controlado por uma rede Wi-Fi, usando um Arduino Uno conectado a um módulo Wi-Fi ESP8266. Ele usa alguns servomotores para movimentos de cabeça e braços, alguns motores DC para mover pequenas distâncias e uma face feita de matrizes de LED. O robô pode ser controlado a partir de um navegador comum da Internet, usando uma interface projetada em HTML. Um smartphone Android é usado para transmitir vídeo e áudio do robô para a interface de controle do operador.

O tutorial mostra como a estrutura do robô foi impressa e montada em 3D. O circuito eletrônico é explicado e o código do Arduino é detalhado, para que qualquer pessoa possa replicar o robô.

Algumas das técnicas utilizadas para este robô já foram publicadas em tutoriais. Por favor, dê uma olhada nos seguintes tutoriais:
  • https://www.instructables.com/id/WiDC-Wi-Fi-Controlled-FPV-Robot-with-Arduino-ESP82/
  • https://www.instructables.com/id/Controlling-a-LED-Matrix-Array-With-Arduino-Uno/
  • https://www.instructables.com/id/Wi-Servo-Wi-fi-Browser-Controlled-Servomotors-with/

Agradecimentos especiais aos demais membros da equipe envolvidos no projeto acima mencionado, responsáveis ​​pela primeira versão do código apresentado neste tutorial:
  • Thiago Farauche
  • Diego Augusto
  • Yhan Christian
  • Helam Moreira
  • Paulo de Azevedo Jr.
  • Guilherme Pupo
  • Ricardo Caspirro
  • ASEBS

Saiba mais sobre o projeto:
  • https://hackaday.io/project/12873-rob-da-alegria-joy-robot
  • https://www.hackster.io/igorF2/robo-da-alegria-joy-robot-85e178
  • https://www.facebook.com/robodaalegria/





Como você pode ajudar?


Este projeto é financiado por membros da equipe e pequenas doações de algumas empresas. Se gostou, existem algumas maneiras de nos ajudar:
  • Votar: Este projeto está concorrendo nos tutoriais Rodas, Design para Crianças e Concursos Arduino. Por favor, vote em nós! :D
  • Doação :você pode nos enviar dicas se quiser apoiar a construção do robô e suas futuras melhorias. As dicas servirão para comprar insumos (eletrônicos, impressão 3D, filamentos, etc.) e para ajudar na divulgação de nossas intervenções em hospitais infantis. Seu nome será adicionado aos créditos do projeto! Você pode enviar dicas de nosso design na plataforma Thingiverse:https://www.thingiverse.com/thing:2765192
  • Gostar :Mostre-nos o quanto você aprecia nosso projeto. Dê-nos um "like" nas plataformas em que documentamos o nosso projeto (Facebook, Hackster, Hackaday, Maker Share, Thingiverse ...).
  • Compartilhar :Compartilhe o projeto em seu site de mídia social favorito, para que possamos alcançar mais pessoas e inspirar mais criadores ao redor do mundo.

Você sabia que pode comprar o Creality CR10mini por apenas $ 349,99? Use o código de cupom cr10mini3d na Gearbest e receba:http://bit.ly/2FZ5OXw





Etapa 1:Um pouco de história ...


O projeto 'Robô da Alegria' nasceu em 2016, na Baixada Santista (Brasil), com o objetivo de desenvolver tecnologia e atrair a comunidade para o movimento maker. Inspirado em projetos voluntários realizados por ONGs em hospitais infantis, o projeto busca desenvolver um robô, utilizando ferramentas de hardware aberto e software apen, capaz de trazer um pouco de diversão ao ambiente hospitalar infantil e contribuir para o trabalho de outras organizações.

A semente do projeto foi plantada no final de 2015. Após uma palestra sobre a criação e desenvolvimento de tecnologia promovida pela Associação das Startups das Baixadas Santista (ASEBS). Foi idealizado um projeto, sem prêmio em dinheiro, mas que apresentasse um assunto no qual as pessoas se envolvessem de forma altruísta, com o objetivo de ajudar outras pessoas.

O robô passou por diversas transformações desde sua concepção inicial até o estado atual. De apenas uma cabeça, com olhos e sobrancelhas mecânicos, até sua forma humanóide atual, várias iterações foram realizadas, testando diferentes materiais construtivos e dispositivos eletrônicos. De um protótipo de acrílico e MDF cortado a laser, mudamos para um corpo impresso em 3D. Desde uma interface simples com dois servo motores controlados por Bluetooth, até um corpo composto por 6 servomotores e 2 motores DC comandado por uma interface web através de uma rede wi-fi.

A estrutura do robô foi totalmente produzida com impressão 3D utilizando Fusion 360. Para possibilitar a produção de réplicas de robôs em makerpaces ou fab labs, onde o tempo máximo de uso das impressoras é fundamental, o design do robô foi dividido em partes menor que três horas de impressão cada. O conjunto de peças é colado ou parafusado para montagem no corpo.

O rosto, composto por matrizes de LED, dá ao robô a capacidade de expressar emoções. Braços acionados por servomotores e pescoço fornecem ao pequeno autômato a mobilidade necessária para interação com os usuários. No centro de controle do robô, um Arduino Uno faz interface com todos os periféricos, incluindo comunicação com um módulo ESP8266, que dá ao usuário a capacidade de comandar expressões e movimentos por meio de qualquer dispositivo conectado à mesma rede wi-fi.

O Robot também possui um smartphone instalado em seu tórax, que é utilizado para transmissão de áudio e vídeo entre o operador do robô e as crianças. A tela do dispositivo ainda pode ser usada para interação com jogos e outros aplicativos projetados para interagir com o corpo do robô.





Etapa 2:Ferramentas e materiais


As seguintes ferramentas e materiais foram usados ​​para este projeto:

Ferramentas:
  • impressora 3D - Todo o corpo do robô é impresso em 3D. Várias horas de impressão 3D foram necessárias para construir toda a estrutura;
  • filamento PLA - Filamentos de PLA branco e preto para impressão do corpo;
  • Chave de fenda - A maioria das peças são conectadas por meio de parafusos;
  • Super cola - Algumas peças foram fixadas com super cola;
  • Alicates e cortadores
  • Ferro e fio de solda

Eletrônicos :
  • Arduino Uno (link / link) - É usado como o controlador principal do robô. Ele envia sinais para os motores e se comunica com o módulo WiFi;
  • ESP8266-01 (link / link) - É usado como um 'modem WiFi'. Recebe sinais da interface de controle a serem executados pelo Arduino Uno;
  • servomotores SG90 (x6) (link / link) - Quatro servos foram usados ​​para os braços e dois para os movimentos da cabeça;
  • Motores DC com redução e rodas de borracha (x2) (link / link) - Eles permitem ao robô viajar pequenas distâncias;
  • ponte H de canal duplo L298N (x1) (link / link) - Converte as saídas digitais do Arduino em tensões de energia para os motores;
  • servo controlador de 16 canais (link / link) - Com esta placa pode-se controlar vários servomotores usando apenas duas saídas Arduino;
  • Tela LED MAX7219 8x8 (x4) (link / link) - Eles são usados ​​como a face do robô;
  • Cabo micro USB - Usado para enviar o código;
  • Fios de ligação fêmea-fêmea (algum);
  • Fios de ligação macho-fêmea (algum);
  • Smartphone - Foi usado um smartphone Motorola Moto E de 4,3 ". Outros com tamanho semelhante também podem funcionar;
  • bateria 18650 (x2) (link) - Eles foram usados ​​para alimentar o Arduino e outros periféricos;
  • porta-bateria 18650 (x1) (link / link) - Eles mantêm as baterias no lugar;
  • diodos 1N4001 (x2)
  • resistores de 10 kohm (x3)
  • botão liga / desliga 20 mm (x1)
  • Protoshield (link) - Ajuda na fiação do circuito.

Mecânica:
  • Rodas esféricas (x2)
  • parafusos M2x6,0 mm (+ -70)
  • parafusos M2x10mm (+ -20)
  • porcas M2x1,5mm (x10)
  • Parafusos M3x40mm (x4)
  • porcas M3x1,5 mm (x4)

Os links acima são uma sugestão de onde você pode encontrar os itens utilizados neste tutorial e auxiliar no desenvolvimento deste projeto. Sinta-se à vontade para procurá-los em outro lugar e comprar em sua loja local ou online favorita.

Você sabia que pode comprar o Creality3D CR10mini por apenas $ 349,99? Use o código de cupom cr10mini3d na Gearbest e obtenha:http://bit.ly/2FZ5OXw





Etapa 3:Impressão 3D


A estrutura do robô foi totalmente produzida com impressão 3D no Autodesk Fusion 360. Para possibilitar a produção de réplicas de robôs em makerspaces ou fab labs, onde o tempo máximo de uso das impressoras é fundamental, o design do robô foi dividido em partes menor que três horas de impressão cada. O conjunto de peças é colado ou parafusado para montagem no corpo.

O modelo é composto por 36 peças diferentes. A maioria foi impressa sem suportes, com preenchimento de 10%.
  • Cabeça superior (direita / esquerda)
  • Cabeça inferior (direita / esquerda)
  • Tampas laterais da cabeça (direita / esquerda)
  • Placa frontal
  • Placa frontal
  • Eixo 1 do pescoço
  • Eixo 2 do pescoço
  • Eixo 3 do pescoço
  • Centro do pescoço
  • Armar (direita / esquerda)
  • Ombro (direita / esquerda)
  • Omoplata (direita / esquerda)
  • Omoplata (direita / esquerda)
  • Eixo do braço (direita / esquerda)
  • Busto (direito / esquerdo)
  • Baú (direita / esquerda / frente)
  • Rodas (direita / esquerda)
  • Base
  • Suporte para telefone
  • Voltar (direita / esquerda)
  • Botões (direita / esquerda)
  • Locker (direita / esquerda)

O procedimento para montar o robô é descrito nas etapas a seguir.

Você pode baixar todos os arquivos stl nos seguintes sites:
  • https://www.thingiverse.com/thing:2765192
  • https://pinshape.com/items/42221-3d-printed-joy-robot-robo-da-alegria
  • https://www.youmagine.com/designs/joy-robot-robo-da-alegria
  • https://cults3d.com/en/3d-model/gadget/joy-robot-robo-da-alegria

Este é um protótipo experimental. Algumas das partes precisam de algumas melhorias (para atualizações posteriores do projeto). Existem alguns problemas conhecidos:
  • Interferência entre a fiação de alguns servos e o ombro;
  • Atrito entre a cabeça e o busto;
  • Atrito entre as rodas e a estrutura;
  • O orifício para alguns parafusos é muito apertado e precisa ser alargado com uma broca ou uma faca de hobby.

Se você não tem uma impressora 3D, aqui estão algumas coisas que você pode fazer:
  • Peça a um amigo para imprimir para você;
  • Encontre um espaço para hackers / criadores nas proximidades. O modelo foi dividido em várias partes, de forma que cada parte individualmente leva menos de quatro horas para imprimir. Alguns espaços de hackers / criadores irão cobrar de você apenas pelos materiais usados;
  • Compre sua própria impressora 3D. Você pode encontrar um Anet A8 por apenas $ 165,99. Compre o seu na Gearbest:http://bit.ly/2kqVOdO
  • Interessado em comprar um kit faça você mesmo? Se houver interesse suficiente de pessoas, posso oferecer kits de bricolagem no Tindie.com. Se desejar, envie-me uma mensagem.





Etapa 4:Visão geral dos circuitos


O robô é controlado usando um Arduino Uno em seu núcleo. O Arduino faz a interface com um módulo ESP8266-01, que é usado para controlar remotamente o robô em uma rede Wi-Fi.

Um servo controlador de 16 canais é conectado ao Arduino usando comunicação I2C e controla 6 servomotores (dois para o pescoço e dois para cada braço). Uma matriz de cinco matrizes de LED 8x8 é alimentada e controlada pelo Arduino. Quatro saídas digitais do Arduino são usadas para o controle de dois motores DC, usando uma ponte h.

Os circuitos são alimentados por dois bancos de energia USB:um para os motores e outro para o Arduino. Tentei energizar o robô inteiro usando um pacote de energia signle. Mas o ESP8266 costumava perder a conexão devido a picos quando os motores CC eram ligados / desligados.

O peito do robô possui um smartphone. É usado para transmitir vídeo e áudio de / para a interface de controle, hospedada em um computador comum. Ele também pode enviar comandos para o ESP6288, controlando assim o corpo do próprio robô.

Pode-se notar que os componentes usados ​​aqui podem não ser otimizados para seu propósito. Um NodeMCU pode ser usado em vez da combinação Arduino + ESP8266, por exemplo. Um Rapsberry Pi com câmera substituiria o smartphone e controlaria os motores também. É até possível usar um smartphone Android como o "cérebro" do seu robô. É verdade ... Um Arduino Uno foi escolhido porque é muito acessível e fácil de usar para todos. Na época em que iniciamos este projeto, as placas ESP e Raspberry Pi ainda eram relativamente caras no lugar em que moramos ... uma vez que queríamos construir um robô barato, as placas Arduino eram a melhor escolha naquele momento.
robô% 2Bmk0% 2B-% 2Brev8_Esquem_C3_A1tico.pdf robô% 2Bmk0% 2B-% 2Brev8_bb.pdf





Etapa 5:montagem do rosto


Quatro matrizes de 8x8 LEDs foram usadas no rosto do robô.

A estrutura foi dividida em duas partes (placa traseira e placa frontal) impressas em 3D usando PLA preto. Levei cerca de 2,5 horas para imprimi-los em 3D, com preenchimento de 10% e sem suporte.

Devido às limitações de espaço, os conectores das matrizes de LEDs tiveram que ser dessoldados e tiveram sua posição alterada conforme descrito a seguir:
  • Remova a matriz de LED;
  • Conectores de entrada e saída do Dessolder;
  • Volte a soldar do outro lado da placa de circuito, com os pinos apontando para o centro da placa.

Você pode ver o resultado final nas imagens.

As quatro matrizes de LEDs foram então fixadas na placa traseira, usando 16 parafusos M2x6mm. Os pinos foram conectados de acordo com o esquema.

A primeira matriz foi conectada usando um jumper macho-fêmea de 5 fios. A extremidade masculina foi posteriormente conectada aos pinos do Arduino. A extremidade fêmea é conectada aos pinos de entrada da matriz. A saída de cada matriz é conectada à entrada da próxima por meio de um jumper fêmea-fêmea.

Após a conexão das matrizes, a placa frontal é instalada com quatro parafusos M2. Enrole os jumpers em torno dos painéis frontal e traseiro, para que não haja fios soltos.

O módulo facial é posteriormente instalado dentro da cabeça do robô, conforme será explicado nos próximos passos.





Etapa 6:montagem da cabeça


A cabeça do robô foi dividida em oito partes impressas em 3D, todas impressas em PLA branco com resolução de 0,2mm, preenchimento de 10% e sem suportes:
  • Cabeça superior (direita e esquerda)
  • Parte inferior da cabeça (direita e esquerda)
  • Tampa da cabeça (direita e esquerda)
  • Eixo 1 do pescoço
  • Eixo 2 do pescoço

Levei quase 18 horas para imprimir a estrutura de 130 mm de diâmetro.

O topo e a base da cabeça são divididos em duas partes. Eles são colados com super cola. Aplique a cola e deixe descansar por algumas horas.

As tampas laterais são então montadas usando parafusos fixados nas laterais da parte superior e inferior da cabeça. Dessa forma, o cabeçote pode ser desmontado para reparo removendo os parafusos fixados nas partes superiores do cabeçote. Antes de fechar a cabeça, monte a face do robô (descrita na etapa anterior) e o busto (descrito nas próximas etapas).

O servomotor nº 5 foi preso ao eixo do pescoço 1. Posicionei o servo no meio do eixo, prendi o chifre e usei um parafuso para travar sua posição. Usei dois parafusos M2x6mm para montar o eixo 2 do pescoço naquele servo motor. O servomotor nº 6 é conectado ao eixo do pescoço 2 da mesma maneira.

O eixo 2 do pescoço foi posteriormente conectado ao centro do pescoço, como mostrado na próxima etapa.

O módulo facial é instalado dentro da cabeça.





Etapa 7:montagem da explosão e dos ombros


O busto e o ombro levaram cerca de 12h para serem impressos.

Esta seção é composta por cinco partes diferentes:
  • Busto (direita / esquerda)
  • Ombros (direito / esquerdo)
  • Centro do pescoço
  • Eixo 3 do pescoço

As partes do busto foram coladas com supercola. Os ombros foram fixados nas laterais com parafusos M2x10mm e os servomotores (Servomotor nº 2 e nº 4) foram instalados em cada lado. Eles passam por um orifício retangular em cada ombro (na verdade, o fio é bem difícil de passar) e são presos com parafusos e porcas M2x10mm.

O pescoço central possui um orifício retangular, no qual a parte do eixo 3 do pescoço é inserida. Quatro parafusos M2x6mm foram usados ​​para ligar essas duas partes. Depois disso, o pescoço central foi preso aos ombros. Ele usa os mesmos parafusos usados ​​para montar o ombro no busto. Quatro porcas M2x1,5mm são usadas para travar sua posição.

O servomotor nº 6 foi conectado ao eixo do pescoço 3 por meio de dois parafusos. Em seguida, instalei o eixo 3 do pescoço dentro do orifício retangular central do pescoço e usei quatro parafusos M2x6mm para travar sua posição.





Etapa 8:Montagem dos braços


Levei cerca de 5 horas para imprimir cada braço.

Cada braço é feito de quatro peças:
  • Copo de ombro
  • Omoplata
  • Eixo do braço
  • Armar

O eixo do braço é centralizado e montado no próprio braço usando três parafusos M2x6mm. Um servo horne é anexado na outra extremidade do eixo.

Um servomotor (nº 1 e nº 3) é instalado dentro do copo de ombro usando alguns parafusos, e então tem seu chifre (aquele preso ao eixo do braço) instalado. Existe um orifício no copo para a instalação da outra corneta, que é fixada no servo (# 2 e # 4) já montada nos ombros, conforme foi mostrado na etapa anterior.

Tem outro orifício na Taça (e no Ombro) para passar os cabos dos servos. Em seguida, a tampa é instalada para fechar o ombro do robô, com dois parafusos M2x6mm.





Etapa 9:montagem do baú


The chest is the part that links the bust to the bottom (wheels and base) of the robot. It's made of only two parts (right and left parts. I printed them in 4 hours.

The shoulders of the robot fits on upper part of the chest. There is a hole for a bolt that helps the alignment and fixation of thos parts. Although it's recomended to glue those two parts.

The bottom of this parts have six holes, which are used for the connection to the wheels, as it will be shown later.

At this point I labelled the servomotors with some stickers, in order to make the connection of the circuits easier.





Step 10:Assembling the Wheels


The wheels of the robot uses three 3d printed parts:
  • Wheels (left/right)
  • Front

It took me around 10h to print those parts.

I followed the following steps for assembling the wheels:
  • First I had to solder some wires to DC motors connectors. Those wires were later used for powering the motors using a H-bridge circuit;
  • The motors were then attached to the structure using two M3x40 bolts and nuts for each. Actually a shorter bolt might be used (but I found none online);
  • After that I glued the front pannel, which links the other parts of the structure;
  • This part has some holes on its top. They are used for its attachment to the chest, shown previously. Six M2x6mm bolts were used for the connection of both sections.





Step 11:Phone Holder


The phone holder is a single 3d printed part, and it takes around 1 hour to print.

The robot has a smartphone at it's belly. It was designed for a Motorola Moto E. It has a 4.3" display. Other smartphones with similar size might fit as well.

The phone holder part is used to hold the smartphone in the desired position. First the smart phone is positioned, then it's pressed against the body of the robot using the phone holder and four M2x6mm bolts.

It's importart to connect the USB cabe to the smartphone before tightening the bolts. Otherwise it will be hard to connect it later. Unfortunatly the space is very limited, so I had to cut part of the USB connector away... :/





Step 12:Mounting the Base


The base has only one 3D printed part. It took me around 4h to print that part.

It has several holes for the installation of other components, like the ball wheels, and circuit boards for instance. The following procedure was used for assembling the base:
  • Install the 16 channel servo controller using four M2x6mm bolts;
  • Install the L298N h-bridge circuit using four M2x6mm bolts;
  • Install the Arduino Uno using four M2x6mm bolts;
  • Install the protoshield on the top of the robot;
  • Wire up the circuits (as it's described a couple steps later);
  • Installe the ball wheels using two screws for each one. The wires were arranged so that they are traped between the base and the screws used in the installation of the wheels;
  • Base was attached to wheels section using some screws.





Step 13:Back and Power Pack


The back cover of the robot was designed so that one can easilly open it for accessing the circuits, recharging the batteries, or turning the smartphone on/off.

It's made of six 3d printed parts:
  • Back (left/right)
  • Knobs (x2)
  • Locks (left/right)

It took me around 5h30 for printing the parts. Right and left back parts were glued using superglue. Wait until the glue is completly dry, or the cover will break easilly.

The power pack consists of two 18650 batteries and a battery holder. I had to solder some wires (between battery #1 negative pole and battery #2 positive pole). The negative pole of the power pack was connected to Arduinos GND (using some wires and jumpers). A on/off swich was installed between the positive pole and Arduino's Vin input.

The on/off switch was attached to back 3d printed parts using a M2x6mm bolt and M2x1.5mm nut. The battery holder was attached to the back using four M2x6mm bolts.

The cilindrical part of the locks had to be sanded with a sand paper for a better fitting. They pass through the holes on the cover. The knobs are connected and glued on the other side.

The cover fits to the back of the robot. The knobs can be turned for locking the lid, protecting the insides of the robot.





Step 14:Wiring Up the Circuits


The circuit was wired up according to the schematics.

Arduino:
  • Arduino pin D2 => L298N pin IN4
  • Arduino pin D3 => L298N pin IN3
  • Arduino pin D6 => L298N pin IN2
  • Arduino pin D7 => L298N pin IN1
  • Arduino pin D9 => MAX7219 pin DIN
  • Arduino pin D10 => MAX7219 pin CS
  • Arduino pin D11 => MAX7219 pin CLK
  • Arduino pin D4 => ESP8266 RXD
  • Arduino pin D5 => ESP8266 TXD
  • Arduino pin A4 => SDA
  • Arduino pin A5 => SCL
  • Arduino pin Vin => Battery V+ (before diodes)
  • Arduino pin gnd => Battery V-

ESP8266-01
  • ESP8266 pin RXD => Arduino pin D4
  • ESP8266 pin TXD => Arduino pin D5
  • ESP8266 pin gnd => Arduino pin gnd
  • ESP8266 pin Vcc => Arduino pin 3V3
  • ESP8266 pin CH_PD => Arduino pin 3V3

L298N h-bridge
  • L298N pin IN1 => Arduino pin D7
  • L298N pin IN2 => Arduino pin D6
  • L298N pin IN3 => Arduino pin D3
  • L298N pin IN4 => Arduino pin D2
  • L298N pin +12V => Battery V+ (after diodes)
  • L298N pin gnd => Arduino gnd
  • L298N OUT1 => Motor 1
  • L298N OUT2 => Motor 2

MAX7219 (first matrix)
  • MAX7219 pin DIN => Arduino pin D9
  • MAX7219 pin CS => Arduino pin D10
  • MAX7219 pin CLK => Arduino pin D11
  • MAX7219 pin Vcc => Arduino pin 5V
  • MAX7219 pin gnd => Arduino pin gnd

MAX7219 (other matrixes)
  • MAX7219 pin DIN => MAX7219 pin DOUT(previous matrix)
  • MAX7219 pin CS => MAX7219 pin CS (previous matrix)
  • MAX7219 pin CLK => MAX7219 pin CLK (previous matrix)
  • MAX7219 pin Vcc => MAX7219 pin VCC (previous matrix)
  • MAX7219 pin gnd =:MAX7219 pin gnd (previous matrix)

16-channel servo controller
  • Servo controller pin SCL => Arduino pin A5
  • Servo controller pin SDA => Arduino pin A4
  • Servo controller pin Vcc => Arduino pin 5V
  • Servo controller pin gnd => Arduino pin gnd
  • Servo controller pin V+ => Battery V+ (after diodes)
  • Servo controller pin gnd => Arduino pin gnd

Some say the Sg90 servo can be powered between 3.0 and 6.0V, others between 4.0 and 7.2V. To avoid trouble I decided to put two diodes in series after the batteries. This way, the voltage for servos is 2*3.7 - 2*0.7 =6.0V. The same is applied to the DC motors.

Notice this is not the most efficient way, but it worked for me.
robot%2Bmk0%2B-%2Brev8_bb.pdf robot%2Bmk0%2B-%2Brev8_Esquem_C3_A1tico.pdf





Step 15:Arduino Code


Install the latest Arduino IDE. No library was needed for communication with ESP-8266 module or control of the DC motors.

I'll need to add the following libraries:
  • LedControl.h :library used to control the LED matrixes;
  • Adafruit_PWMServoDriver.h :library used to control the servo motors.

Arduino code is divided in 9 parts:
  • RobodaAlegria.ino: this is the main sketch, and it call the other parts. Libraries are imported here. It also define and initialize global variables;
  • _05_Def_Olhos.ino: this is where the matrixes for each eye are defined. Each eye is represented by a 8x8 matrix, and 9 options where defined:neutral, wide-eye, closed up, closed down, angry, borred, sad, in love, and dead eyes. There is a different matrix for right and left eyes;
  • _06_Def_Boca.ino: this is where the matrices for the mouth are defined. The mouth is represented by a 16x8 matrix, and 9 options where defined:happy, sad, very happy, very sad, neutral, tongue out, open, wide-open, and disgusted mouth;
  • _10_Bracos.ino: predefined movements for arms and neck are defined in this file. Nine movements, mov1() to mov9(), were configured;
  • _12_Rosto.ino: in this file there are some functions for updating the face of the robot, combining the matrixes defined in _05_Def_Olhos.ino and _06_Def_Boca.ino;
  • _13_Motores_DC: it defines the functions for ther DC motors;
  • _20_Comunicacao.ino: a function for sending data to ESP8266 is defined in this file;
  • _80_Setup.ino: it runs on Arduino power up. It set the inicial face and position of the motors of the robot. It also send commands for the connection to a given Wi-Fi network;
  • _90_Loop: main loop. It looks for incoming commands from ESP8266 and call specific functions to control the outputs.

Download Arduino code. Replace the XXXXX by your wifi router SSID and YYYYY by router password on on '_80_Setup.ino'. Please check the baudrate of you ESP8266 and set it properly in the code ('_80_Setup.ino'). Connect the Arduino board to your computer USB port and upload the code.
RoboAlegria.rar





Step 16:Android Apps


An Android smartphone was used to broadcast the video and audio from the robot to the control interface. You can find the app I used on Google Play store (https://play.google.com/store/apps/details?id=com.pas.webcam).

The screen of the smartphone may also be transmited to the control interface, so that the operator can see what's on the screen. You can also find the app I used to mirror the screnn on Google Play store (https://play.google.com/store/apps/details?id=com.ajungg.screenmirror).

An Android video game was also designed to interact with the robot. It's not yet very stable, so it isn't available for download.





Step 17:Control Interface


A html interface was designed for the control of the robot.Download interface.rar and extract all the files to a given folder. Then open it on Firefox. The interface is divided in two blocks. To the left there are displays for the camera and screen mirror. To the right there are controll buttons for the commands.

Textbox forms are used in that interface to enter IP address of the ESP8266 module ('Endereço IP Arduino:'), video/audio server from Android IP Webcam app ('IP Webcam (IP):') and Screen Mirror IP address ('Screen Mirror (IP):').

Under 'Ações predefinidas' tab user can select between 9 predefined body movements and 13 different faces. On 'Ações personalizadas' tab user can set a given angles for each of the 6 servos, and individually select between 9 eyes possibilities and 8 mouths variations. A javascript function runs whenever one of those buttons is clicked, and a message is sent for ESP8266's IP address.

Keyboard arrow keys are used for moving the robot forward or backward, and to rotate left or right.

When the interface is started, a warning is displayed, asking if the user wants to share the microphone. If this option is selected, sound intensity of the microphone will be used to send a preconfigured command to the robot. This command will trigger an animation, simulating speech movement on robot's face. A settings button on upper right corner might be used to set the sensitivity of the microphone.

This settings menu might also be used to configure the speed of arms and neck movements.
interface.rar





Step 18:Have Fun


Power it up and have fun!

If you like it, please share this tutorial with you friends! And don't forget to vote on Instructubles Contests! :D

http://www.instructables.com/id/Joy-Robot-Rob%C3%B4-Da-Alegria-Open-Source-3D-Printed-A/

Código

  • Código Arduino
  • HTML Interface
Código Arduino Arduino
 Sem visualização (somente download). 
HTML InterfaceHTML
 Sem visualização (somente download). 
Github
https://github.com/wayoda/LedControlhttps://github.com/wayoda/LedControl
Github
https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Libraryhttps://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library

Peças personalizadas e gabinetes

Thingiverse
https://www.thingiverse.com/thing:2765192CAD file on thingiverse.com
Youmagine
https://www.youmagine.com/designs/joy-robot-robo-da-alegria

Esquemas


Processo de manufatura

  1. Protótipo da Raspoulette
  2. Robô da caixa de CD do Raspberry Pi
  3. Robô de alarme rotativo
  4. Crie um Minecraft Creeper Robot
  5. Arquimedes:A coruja robô AI
  6. Abra o Robô CV
  7. Robô ROS
  8. Robô Pi Simples
  9. Robô para navegação interna supercool
  10. O que é um Motor Linear?