Material necessário
Vamos começar com a lista de peças que utilizei no Jarvis, até o momento, visto que se trata de um “desenvolvimento contínuo” (W.I.P.). Lembrando que, caso você queira fazer um igual, não é obrigatório que todas as peças sejam exatamente iguais. Itens como os servo-motores, por exemplo, podem ser de melhor qualidade/potência (caso você possa arcar com o custo), só necessitando de ajustes; já a bateria pode ser de maior capacidade e não será necessária nenhuma alteração; a placa principal poderia ser substituída por um Arduino, porém não recomendo fazer isso por uma série de motivos (que estão abaixo no detalhe do item).
Posto isto, vamos a lista:
- Kit de Suporte para servos
- Servos
- Placa controladora de servos
- Placa principal
- Regulador de voltagem
- Bateria
- Suporte para as placas e ferramentas
- Algum tipo de caixinha de som amplificada
Opcionais:
- Conjunto pan/tilt para fazer a “cabeça”
- Display OLED
- Arduino Nano (para o display)
- Módulo laser (para o braço)
Explicando agora cada item e incluindo links para os produtos adquiridos:
1) Este kit de suporte para servos ou similar, no AliExpress tem vários modelos, apenas veja se ele vem completo (com os rolamentos, caso contrário você terá que comprar estes separadamente): http://www.aliexpress.com/item/17DOF-Biped-Robotic-Educational-Robot-Kit-Servo-Bracket-Ball-Bearing-Black/2021791610.html
Repare que o kit é para um robô com 17 graus de liberdade (17DOF), porém minhas primeiras experiências foram frustrantes em tentar mantê-lo em pé e andar. Ele ficou demasiadamente pesado para os servos e as pernas eram muito longas e não mantinham a posição “de pé” sem que os servos estivesse energizados e travados naquela posição. Isso fazia com que eles ficassem “zumbindo”, já que tentavam manter a posição e o peso do robô queria fazer eles girarem. Durante a montagem entrarei em mais detalhes sobre isso.
2) Servos, vários servos, muuuitos servos. A maioria comprei no DX.com, sendo estes modelos:
O primeiro (MG946R) é mais rápido, porém gira com facilidade quando se aplica peso. O segundo (MG995) é mais lento, e resiste mais a pressão externa. Por exemplo, numa situação em que estejam desligados, dependendo da posição, o MG946R pode fazer girar o braço para baixo rapidamente se você levantar e soltá-lo, enquanto que o MG995 mantém ele na posição ou gira lentamente. Energizados ambos seguram bem a posição. Não espere a mesma qualidade de todos os comprados, porque *não* terão. Alguns fazem barulhos diferentes, tem tíques estranhos, e inclusive um MG995 que comprei gira 360 graus… rsrsrsrsrsrs.
Agora, o modelo que eu indicaria seria este aqui, porém já não está mais disponível e não achei outro anúncio igual:
Esses são muito bons, são menos barulhentos, tem força e ficam mais resistentes quando energizados. Se alguém achar desse modelo, por favor me fale. Só tenho quatro desses que uso nos calcanhares e na parte superior das pernas.
É bom ter sobrando porque eles podem estragar ou apresentar comportamentos estranhos.
3) A placa controladora de servos utilizada é está aqui:
Mas você encontrará mais barato no AliExpress:
Esta placa é uma réplica da placa controladora de servos da Adafruit e funciona exatamente com a mesma biblioteca. Não tive dificuldades para utilizá-la na LinkitONE, assim como no Arduino UNO/Nano. Ela se comunica com a placa por meio do protocolo I2C, que só exige dois pinos, o que é muito bom.
4) Sim, a placa principal, a placa mãe, que comandará tudo! Pode ser um Arduino Uno? Nano? Mega? Um ESP8266? Sim, qualquer uma destas serviria. Aliás, qualquer uma que possa se comunicar por I2C com a placa controladora de servos funcionará. Porém, recomendo a MediaTek Labs LinkitONE, uma vez que com qualquer uma das citadas anteriormente você teria severas limitações, a saber:
a) é a placa que estou usando e perderia o sentido de você seguir este blog (rsrsrsrs!);
b) você teria que fazer muuuuuitas modificações nos códigos;
c) você estaria limitado pelo espaço de armazenamento (na LinkitONE, o firmware do Jarvis só ocupa 1%, mas não caberia no Arduino UNO);
d) além do espaço de armazenamento, a memória RAM também seria limitada (ainda tenho que fazer otimizações, mas já consegui ultrapassar os 4MB da LinkitONE e tive problemas)
e) você precisaria de módulos ou shields externos para ter os recursos que ela já tem embutidos e que serão necessários, como Wi-Fi, bluetooth, cartão SD e áudio (este último que ainda não usei, mas pretendo).
A minha não comprei, eu troquei no site Hackster.io (aliás, muito obrigado!) por pontos que ganhei respondendo uma pesquisa. Infelizmente só peguei uma (tinha pontuação para duas) e ela não está mais disponível por lá. No AliExpress é um absurdo o preço que estão cobrando por ela, mas se você comprar no site oficial é quase certo que será taxado na Alfândega (estão taxando quase tudo hoje em dia mesmo):
http://www.seeedstudio.com/depot/LinkIt-ONE-p-2017.html
Se alguém encontrar com preços melhores, me avise, preciso de uma reserva!
5) Regulador de voltagem, sim e um bom. A princípio, nos testes iniciais, eu estava usando um regulador baratinho que achei no DX.com, como esse aqui (*não* compre este):
Eu só tinha baterias do tipo 18650 disponíveis e elas eram de 4,2V, e eu precisava de 5V ou 6V, então ao colocar duas eu tinha 8,4V e usava o regulador para baixar para 6V. Ele funcionava para movimentar dois servos, sem problemas. Porém, quando cheguei a 6 servos ligados havia momentos em que eles ficavam loucos, se movimentando aleatoriamente. Acabei descobrindo que a causa disto era a falta de corrente, ou seja, o regulador não deixava passar a amperagem necessária que os servos exigiam. Depois de algumas pesquisas encontrei o UBEC, que é muito utilizado em auto/aeromodelos (compre este):
Excelente produto, aliás. Não tive mais problemas desse tipo desde então. Com ele eu entro com a energia de uma bateria LiPo (que veremos abaixo) e tenho os 5V ou 6V (existe um interruptor para você escolher), com corrente de até 8A e picos de até 15A. Além disso, ele tem LEDs que permitem ver a “situação” da bateria e um botão ON/OFF.
6) Quanto à energia que move a criança, minha bateria escolhida foi esta aqui, mais por questão orçamentária mesmo:
Ainda não medi exatamente o quanto ela dura, porque também ainda não o coloquei para fazer algo repetidamente (a não ser andar, e mesmo assim não por muito tempo). Mas ela satisfaz minhas necessidades por enquanto, sem falar que encaixa perfeitamente no “quadril” dele, ficando quase imperceptível. Não coloquei como item essencial, mas é necessário ter um carregador para este tipo de bateria e o que adquiri foi este aqui:
7) E finalmente, um suporte para as placas. Sim, porque ao ficar com elas soltas você corre os risco de encostar fios que não deviam, cair, etc. No meu caso, por enquanto, isto nas costas dele é um pedaço de uma velha tábua de carne (Kkkkkkk!). Sim, é verdade, era o único pedaço de plástico maciço que eu tinha disponível. Mas já estou providenciando uma peça mais elegante. Fora isso, o que você precisará é de uma chave tipo philips pequena (recomendo um kit com várias pontas, é o que eu uso, mas adquiri há muitos anos e não foi online). Um alicate é desejável, porque há momentos que você precisará segurar a porca e seus dedos podem não caber. Uma mini retífica também pode ser útil para cortar e furar este suporte, mas existem diversas maneiras de se fazer isso.
8) Uma caixinha amplicada de som ou algo similar para emitir os sons através da saída de som da Linkit ONE. Eu encontrei este aqui que ficou muito bem encaixado na placa, pois o plug P2 dele já faz parte do seu corpo:
Na foto abaixo você vê como ele fica originalmente, mas já pintei ele de preto pra combinar com o restante. 😀
E para os opcionais farei um post separado, porque este já ficou longo demais!
Amigo boa tarde, estou montando um robozinho assim com o Jarvis, comprei uma plaquinha igual a sua e estou com dificuldades para implementar no meu código, se possível entra em contato para trocarmos figurinhas.
Desde já, grato pelo contato.
Boa tarde! Legal, vou entrar em contato com você por e-mail mais tarde!
Abraços!