O documento descreve como programar um Arduino Leonardo usando bibliotecas USB, explicando como configurar o Leonardo, as funções das bibliotecas de teclado e mouse, e fornecendo um exemplo de código que simula teclas e movimenta o cursor do mouse.
1. Programação do Arduino
Leonardo
Usando bibliotecas USB
Tyler James Dennis
2013/04/05
Tyler Dennis
ECE 480 Equipe 5
O seguinte aplication note dá ao leitor o
conhecimento básico necessário para começar a
programar um Arduino Leonardo usando
bibliotecas USB. O documento descreve as etapas
para configurar o Arduino Leonardo, descreve as
funções da biblioteca USB, e conduz o leitor através
de um programa de exemplo.
2. Índice
Introdução ao Arduino..................................... 1
Arduino Leonardo .......... ................................. 1
Introdução ao Arduino Leonardo ....... .............. 1
Funções da biblioteca USB ................................ 3
Mouse ................................... .......................... 3
Teclado ................................................ ........... 4
Exemplo de código .................. ......................... 5
Resumo ........................................................... 7
Referências ............ .......................................... 8
3. Introdução ao Arduino
Um Arduino é um microcontrolador. A linha de
microcontroladores Arduino foi projetada
especificamente para simplificar a criação de
protótipos eletrônicos para amadores e pequenos
projetos de design. O Arduino é programado
utilizando a linguagem de programação Arduino,
que se baseia na linguagem de programação de
fiação. O software Arduino utiliza um ambiente de
desenvolvimento que se baseia na IDE existente,
Processamento.
Arduino Leonardo
Figura 1. O Arduino Leonardo
Ao contrário das outras placas Arduino, o Arduino
Leonardo tem um único microcontrolador para a
conexão USB e o usuário que cria programas
4. Arduino. Isto dá ao utilizador uma maior
flexibilidade quando se trata de reconhecimento do
dispositivo por um computador. O Leonardo
também oferece mais funcionalidade como um
dispositivo de entrada do que outros modelos
Arduino. Isto é devido ao facto de que ele é
reconhecido como um dispositivo de entrada na
conexão ao computador através de uma porta USB.
O Leonardo tem 20 pinos deentrada / saída, que
dão ao usuário a abundância de entradas e saídas
para o máximode funcionalidade. A placa também
foi construída com uma porta de alimentação jack
micro-USB para suportar o uso de uma fonte de
alimentação externa.
Introdução ao Arduino Leonardo
A fim de começar a usar o Leonardo, o usuário
precisa dos seguintes itens:
1. Computador Pessoal
2. Cabo Micro-USB
1) Baixe o Arduino IDE
O Arduino IDE é o ambiente em que o Arduino
Leonardo pode ser programado. Este software
é uma ferramenta necessária para o
5. desenvolvedor. O Arduino IDE pode ser
baixado do site do Arduino. No link fornecido
abaixo:
http://arduino.cc/en/Main/Software
2) Conecte a placa ao computador usando um
cabo micro-USB. Uma vez conectado, o
Arduino Leonardo começará a receber energia
através da conexão USB. O LED verde com a
indicação "ON" se acenderá.
3) Faça o download dos drivers Arduino
Os drivers mais recentes Arduino podem ser
localizados e transferidos através do
gerenciador de dispositivos do Windows. Basta
clicar no dispositivo Arduino Leonardo na lista
e escolha Atualizar driver.
O usuário precisa garantir que os drivers serão
baixados na a pasta apropriada. A Figura 2
6. mostra o diretório apropriado:
4)Escolha o dispositivo preferido
A fim de incluir as bibliotecas necessárias, o
usuário precisa optar por usar o Arduino
Leonardo através do Arduino IDE. A fim de fazer
isso o usuário precisa executar o seguinte dentro
do IDE:
Selecione Ferramentas -> Board -> Arduino Leonardo
Uma vez que os passos 1 a 4 foram concluídos,
o Arduino Leonardo pode ser programado.
7. Funções da biblioteca USB
O Arduino Leonardo é uma das poucas placas
Arduino que podem ser programados usando
bibliotecas USB. Essas bibliotecas permitem
que o usuário facilmente emular um teclado ou
mouse usando o Arduino Leonardo. As
bibliotecas USB são automaticamente incluídas
no programa quando o usuário optar por usar
o Arduino Leonardo através do Arduino IDE.
Alguns dos comandos básicos do teclado e do
mouse emulação são explicados abaixo.
mouse
Mouse.begin() e Mouse.end ()
A função begin () inicia a biblioteca mouse.
Isso permite que o Leonardo possa começar a
funcionar como um mouse. Por outro lado, a
função end () interrompe a emulação.
Mouse.click ()
A função click () emula um clique do mouse. Os
padrões de função do botão esquerdo do
mouse em um clique. No entanto, a função
click () pode aceitar três parâmetros
diferentes:
8. MOUSE LEFT - Clique no botão esquerdo do mouse
MOUSE_RIGHT - Clique no botão direito do mouse
MOUSE MIDDLE - Clique no botão do meio do mouse
Mouse.move()
A função move () permite que o Leonardo
controlar a localização do cursor do mouse na
tela. A função move () requer três argumentos
inteiros:
xVal - Define a quantidade o cursor se move no eixo-x
yVal - Define o valor que o cursor se move no eixo-y
wheel - Define a quantidade dos pontos da roda
de rolagem
Mouse.press () e Mouse.release()
A função press () opera de forma semelhante à
função click (). No entanto, a função press ()
mantém o botão escolhido até que seja
liberado manualmente com a função de
release (). As funções press () e release()valem
para os botões padrão tanto para o botão
esquerdo do mouse, mas pode aceitar os
mesmos argumentos que a função click ().
Mouse.isPressed()
A função IsPressed() retorna um valor
9. booleano (true ou false) se uma determinada
tecla é pressionada. Esta função também tem
como padrão o botão esquerdo do mouse, e
pode aceitar os mesmos argumentos que as
funções press (), release () e click em ().
teclado
Keyboard.begin() e Keyboard.end()
As funções begin () e end () da biblioteca teclado
funcionam da mesma forma como os seus
homólogos da biblioteca mouse.
Keyboard.press () e Keyboard.release ()
As funções press () e release () também funcionam
de forma semelhante às suas respectivas funções
da biblioteca mouse. No entanto, o usuário pode
especificar qual tecla é pressionada ou solta por
meio de um argumento de caráter.
Keyboard.print()
A função print () é usado para enviar as teclas
digitadas no computador. Como parâmetros, a
função aceita caracteres. Os caracteres podem ser
transmitidos, quer um de cada vez ou como nos
strings.
10. Keyboard.println()
A função println () opera de forma semelhante à
função print. No entanto, a função println () sempre
realiza um retorno de carro e inicia uma nova linha
no final dos caracteres impressos.
Keyboard.releaseAll ()
A função releaseAll()opera de forma similar a
função release (), mas ela libera todas as teclas
pressionadas ao mesmotempo.
Keyboard.write ()
A função write () permite ao usuário enviar
qualquer combinação de teclas para o computador,
incluindo asteclas não-caráter . Exemplos de
combinações de teclas que não são caracteres
incluem o backspace, control, alt, e teclas de
função. A função write () pode aceitar inteiro
(ASCII), caráter, hex, e argumentos binários.
exemplo de código
Esta seção irá mostrar e explicar (usando
comentários) um exemplo de programa que
11. apresenta o uso das bibliotecas de teclado e mouse.
// Inicializaos pinos analógicas no Arduino e atribui cada um para uma
teclado teclado correspondente
constint upButton = 2;
constint downButton = 3;
const int leftButton = 4;
constint rightButton = 5;
constint mouseButton = 6;
void setup()
{
// Designaos pinos para ser entradas analógicas
pinMode(upButton, INPUT);
pinMode(downButton, INPUT);
pinMode(leftButton, INPUT);
pinMode(rightButton, INPUT);
pinMode(mouseButton, INPUT);
Serial.begin(9600);
// Inicializaas bibliotecas de mouse e teclado
Mouse.begin();
Keyboard.begin();
}
void loop()
{
// Instrui o Arduino para usar a porta serial para o controle do mouse
if (Serial.available() > 0)
{
char inChar = Serial.read();
switch (inChar)
12. {
// Mover o cursor com base nos dados armazenados na variável
inChar
case 'u':
Mouse.move(0, -40);
break;
case 'd':
Mouse.move(0, 40);
break;
case 'l': Mouse.move(-40, 0);
break;
case 'r': Mouse.move(40, 0);
break;
case 'm': Mouse.click(MOUSE_LEFT);
break;
}
}
// Dados do Teclado são emulados quando o pino de entrada analógica
escolhido lê valor alto.
if (digitalRead(upButton) == HIGH)
{
Keyboard.write('u');
}
if (digitalRead(downButton) == HIGH)
{
Keyboard.write('d');
}
if (digitalRead(leftButton) == HIGH)
{
Keyboard.write('l');
}
if (digitalRead(rightButton) == HIGH)
{
Keyboard.write('r');
}
if (digitalRead(mouseButton) == HIGH)
13. {
Keyboard.write('m');
}
}
Em resumo, este programa simulauma tecla e
move o cursor do mouse simultaneamentequando
uma voltagem diferente de zero é detectada em
algum dos pinos de entrada analógica declarados.
Se interruptores momentâneos estão ligados para
controlar a tensão destes pinos, em seguida, os
switches podem acionar as funções de teclado e
mouse. As aplicações práticas desse programa são
praticamente inexistentes, mas mostra como ambas
as bibliotecas funcionam.
resumo
O Arduino Leonardo oferece muitas ferramentas
que agilizam a emulação de dispositivos de entrada.
As bibliotecas de teclado e mouse e construído em
porta micro-USB estão no cerne desta conveniência.
Há também bibliotecas criadas pelo usuário que
podem ser baixadas para melhorar o desempenho
do Leonardo ainda mais. A simplicidade e poder do
Leonardo permitem grandes oportunidades na
criação de dispositivos de entrada.