0

Arduino Leonardo e Arduino Micro

Comunicação USB embarcada no microcontrolador

O Arduino Leonardo e o Arduino Micro diferem de outros Arduinos que usam um único microcontrolador para executar os seus programas e para a comunicação USB com computador. O Uno e outras placas usam microcontroladores separados para estas duas funções, o que  significa que a conexão USB para o computador permanece estabelecido, independentemente do estado do microcontrolador principal. Ao combinar essas duas funções num único processador, o Leonardo permite uma maior flexibilidade na sua comunicação com o computador. Ela também ajuda a reduzir o custo da placa removendo a necessidade de um processador adicional.

 

Reinicialização da porta serial quando o Arduino é feito o reset

Uma vez que as placas não têm um chip dedicado para ligar com a comunicação serial, isto significa que a porta serial é virtual. Assim como o computador cria uma instância do controlador de porta serial quando conetado em qualquer Arduino, o Leonardo/Micro cria instância de série sempre que executa o seu bootloader. A placa é uma instância de USB Connected Device Class (CDC) driver.

Isto significa que cada vez que reiniciar a placa, a conexão serial USB será quebrado e re-estabelecida. A placa irá desaparecer da lista de portas seriais e a lista vai voltar a reunumera-la. Qualquer programa que tem conexão serial aberta ao Leonardo vai perder sua conexão. Isso está em contraste com o Arduino Uno, com qual pode reiniciar o processador principal (ATmega328P) sem fechar a conexão USB (que é mantido pelo ATmega8U2 secundário ou processador ATmega16U2). Esta diferença tem implicações para as instalação do driver, upload e comunicação.

 

Quando abre a porta serial sem reiniciar a placa

Ao contrário do Arduino Uno, o Leonardo e Micro não irá reinicia o seu programa  quando abre uma porta serial no computador. Isso significa que não vai ver os dados que já foram enviados para o computador pela porta serial, incluindo, por exemplo, a maioria dos dados enviados na função setup().

Esta mudança significa que se estiver a usar qualquer comando de biblioteca Serial – print(), print() or write() – em função setup, eles não vão aparecer quando abrir o monitor serial. Para contornar isso, pode verificar se a porta serial é aberta depois de chamar Serial.begin() da seguinte forma:

 

Serial.begin(9600);
 // enquanto não houver comunicação serial, não faça nada
 while (!Serial);

Emulação do teclado e rato

Uma vantagem de usar um único chip para os seus programas e para USB é o aumento da flexibilidade na comunicação com o computador. Enquanto a placa aparece como uma porta serie virtual para o seu sistema operacional (também chamado de CDC) para programação e comunicação (como acontece com o Arduino Uno), ele também pode se comportar como um teclado ou rato HID).

Separação de comunicação USB e serial

No Arduino Leonardo e o Arduino Micro, a principal classe Serial refere-se ao virtual serial driver na placa para conexão ao computador via USB. Nele, a porta serial não é ligada aos pinos físicos 0 e 1 como ele é no Uno e nas placas anteriores. Para utilizar a porta de serie do hardware (pinos 0 e 1 para SPI e TWI).

 

 

 

Artigo gentilmente cedido por Vida de Silicio

 

Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.

Gostaram deste artigo? Deixem o vosso comentário no formulário a baixo e partilhem com os vossos amigos.

Não se esqueçam de fazer like na nossa Página no Facebook.

Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?

Comments

Comentários

ArduinoPortugal.pt

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

To use BrandCaptcha you must get an API Key