Tópicos neste artigo
Introdução
O Arduino é uma plataforma de eletrônica de baixo custo, open source, baseada em hardware e software fáceis de usar.
As placas do Arduino são capazes de ler entradas - luz em um sensor, um dedo em um botão, uma mensagem no Twitter - e transformá-las em uma saída - ativando um motor, ligando um LED, publicando algo online.
Por padrão, a programação é feita utilizando uma linguagem baseada em C/C++, sem a necessidade de equipamentos extras além de um cabo USB.
O que vamos tratar neste artigo demanda um conhecimento intermediário de Arduíno, mas se você se interessou e quiser entender mais sobre o assunto, dá uma olhada nesse material sensacional sobre o assunto no Manual do Mundo.
…
Bom… bora começar!
As vezes focamos em algo principal e nos esquecemos dos detalhes.
O Arduino Uno tem como microcontrolador principal o ATmega328p, assim como o Mega tem o Mega2560, certo?
Mas eles também têm um outro microcontrolador, o 16u2, que geralmente ignoramos, pois achamos que “ele só serve pra fazer a comunicação USB com o computador”.
Bom… na verdade se olharmos para o Arduino Pro Micro e o Leonardo por exemplo, notamos que eles usam o 32u4, que é um microcontrolador similar ao 16u2 que vem com o Uno/ Mega, sendo que este último tem menos memória, pinos, e outros recursos, porém é um microcontrolador totalmente funcional e também podemos usá-lo!
O que quero dizer é que é possível ter 2 microcontroladores trabalhando ao mesmo tempo e de forma independente na mesma placa. É como se tivéssemos uma versão mais simples do Arduino Leonardo/ Micro embutido no Arduino Uno/ Mega!!!
Pra ter acesso a esse microcontrolador (16u2) pela IDE do Arduino vamos precisar alterar o Bootloader padrão (que é o DFU no Uno/Mega e CDC no Leonardo/Micro) por um Bootloader CDC + Fast USB-Serial tudo junto, o Hoodloader2.
*Só verifique, pois, alguns Arduinos usam o CH340G, que é apenas conversor serial para ser mais barato.
Aí não funciona 🙁
Instalação do Hoodloader2
Para fazer uso do 16u2 usamos o próprio ATmega328p para configurá-lo. Mudando o bootloader, não o firmware. Pra isso basta usar o próprio Arduino, 1 cabo USB, 4 fios e um capacitor de 100nF.
-
Prepare o seu arduino: Não deixe nenhum componente ou fiação.
-
Faça download do sketch de instalação clicando no link.
-
Descompacte o conteúdo e abra o sketch Installation_Sketch.ino na IDE do Arduino.
-
Se necessário mude a configuração HEXFILE para a sua placa.
-
Conecte o cabo USB, selecione a sua placa normalmente (como faz para descarregar qualquer sketch) e carregue o sketch para a placa.
-
Espere até aparecer “Done uploading“. Vai demorar um tempinho.
-
Desconecte o cabo USB do Arduino.
-
Conecte os cabos e componentes no Arduino conforme imagem:
*É a mesma configuração para o Mega2560
Capacitor 100nF:
328/2560 RESET - GND
Conexões dos pinos:
328/2560 - 16u2
MOSI - MOSI
MISO - MISO
SCK - SCK
PIN 10 - 16u2 RESET
- Sobrescreva o bootloader:
Uma vez que o microcontrolador principal estiver com o sketch, nós estamos aptos a sobrescrever o bootloader para o 16u2.
Este processo acontece sem a interação do usuário!
Verifique novamente se as conexões estão corretas, plugue o arduino na porta USB e espere.
O led vai piscar lentamente por 10 segundos, tentar sobrescrever o bootloader e depois piscar rapidamente (a cada 100ms). Espere pelo menos 30 segundos antes de remover o cabo USB, para ter certeza que tudo ocorreu como deveria.
Caso tenha problemas, consulte o FAQ oficial (em inglês).
Desconecte o capacitor e fiações e pode começar a utilizar os 2 microcontroladores!
Utilizando os 2 microcontroladores
Sobre o Hardware.. Como fica a pinagem?
No 16u2 Nós passamos a ter acesso a 7 pinos (fundo cor creme na imagem acima):
D1 – PB1 PCINT1 SCLK D2 – PB2 PCINT2 MOSI D3 – PB3 PCINT3 MISO D4 – PB4 PCINT4 D5 – PB5 PCINT5 D6 – PB6 PCINT6 ~D7 – PB7 PCINT7 TIMER1C PWM …
Dica: Para facilitar o uso, gosto de soldar conectores nos pinos PB4, PB5, PB6 e PB7:
Configurando a IDE do Arduino A instalação de novos drivers não é necessária para Windows10/ MacOS/ Linux. Mas se estiver usando Windows 7/ 8 siga as etapas de instalação dos drivers CDC.
- Abra as preferências da IDE e adicione o endereço a seguir no campo “URLs Adicionais para Gerenciadores de Placas”
https://raw.githubusercontent.com/NicoHood/HoodLoader2/master/package_NicoHood_HoodLoader2_index.json
- Instale o Hoodloader2 pelo Gerenciador de Placas (Ferramentas > Placa > Gerenciador de Placas)
Certo! E como descarrego meus Sketches?
Depois de configurado na IDE do Arduino e alterado o Bootloader do 16u2, basta selecionar se quer descarregar o Sketch para o 16u2 ou para o ATmega328p (ou Mega2560).
Para ter os 2 sketches rodando descarregue primeiro do ATmega328p/ Mega2560 e somente depois o do 16u2. Se descarregar ao contrário ele vai considerar apenas o que foi pro ATmega328p/ Mega2560.
Ah!… e uma coisa bacana do 16u2 é que, assim como os Arduinos Leonardo e Pro Micro, ele pode funcionar como uma conexão plug n’ play com o USB do PC, da TV, do Android, do videogame (Conhecido como HID – Human interface Device), … Ou seja, sem precisar de driver de instalação, assim como os teclados, mouses e joysticks fazem.
Pronto! Agora utilize sua criatividade para tirar vantagem do uso dos 2 microcontroladores simultaneamente!
Alguns exemplos de aplicação:
Referências
https://github.com/NicoHood/HoodLoader2
comments powered by Disqus