Arduino

Transcrição

Arduino
Governo do Estado de Pernambuco
Secretaria de Educação
Secretaria Executiva de Educação Profissional
Escola Técnica Estadual Professor Agamemnon Magalhães
ETEPAM
Arduino: Primeiros Passos
Prof. Jener Toscano Lins e Silva
Toscano Lins e Silva
Características da plataforma Arduino
• O Arduino é uma plataforma de prototipagem
eletrônica open-source que se baseia em hardware e software
flexíveis e fáceis de usar.
• É destinado a artistas, designers, hobbistas e qualquer pessoa
interessada em criar objetos ou ambientes interativos.
• O Arduino pode interagir com os seus arredores, controlando
luzes, motores e outros atuadores.
• O microcontrolador na placa é programado com a linguagem
de programação Arduino.
• Os projetos desenvolvidos com o Arduino podem
ser autônomos ou podem comunicar-se com um computador
para a realização da tarefa, com uso de software específico.
Microcontroladores - Prof. Jener Toscano
2
A plataforma de desenvolvimento
Arduino
• O Arduino é formado por dois componentes principais:
Hardware e Software.
• O hardware é composto por uma placa de
prototipagem na qual são construídos os projetos.
• O software é uma IDE, que é executado em um
computador onde é feita a programação, conhecida
como sketch, na qual será feita upload para a placa de
prototipagem Arduino, através de uma comunicação
serial.
• O sketch feito pelo projetista dirá à placa o que deve
ser executado durante o seu funcionamento.
Microcontroladores - Prof. Jener Toscano
3
Hardware
Arduino UNO
Os diversos conectores que servem
para interface com o mundo externo
• 14 pinos de entra e saída digital (pinos 0-13):
– Esses pinos podem ser utilizados como entradas ou saídas digitais de
acordo com a necessidade do projeto e conforme foi definido no
sketch criado na IDE.
• 6 pinos de entradas analógicas (pinos A0 - A5):
– Esses pinos são dedicados a receber valores analógicos, por exemplo,
a tensão de um sensor. O valor a ser lido deve estar na faixa de 0 a 5 V
onde serão convertidos para valores entre 0 e 1023.
• 6 pinos de saídas analógicas (pinos 3, 5, 6, 9, 10 e 11):
– São pinos digitais que podem ser programados para ser utilizados
como saídas analógicas, utilizando modulação PWM.
Microcontroladores - Prof. Jener Toscano
4
Alimentação
• A placa pode ser alimentada
pela conexão USB ou por uma
fonte de alimentação externa
com valores de 7 a 12 volts.
• O CI regulador de tensão
NCP1117 + diodo D1 fazem a
proteção da placa quando a
tensão ligada for invertida.
Microcontroladores - Prof. Jener Toscano
5
Circuitos de Proteção
•
•
•
•
•
•
Quando o cabo USB é plugado, a tensão não
precisa ser estabilizada pelo regulador de
tensão. Dessa forma a placa é alimentada
diretamente pela USB.
Dois varistores (Z1 e Z2) protege a placa de
picos de tensões elevadas transientes.
Os resistores de 22 Ohms (RN3A e RN3D)
protege os pinos do microcontrolador de
descarga elétrica eventual de um usuário em
contato com o conector USB.
O fusível resetável (F1) de 500mA impede que
a porta USB do computador queime, caso
ocorra uma falha no circuito.
O ferrite L1 evita que ruídos da USB externa
entrem no circuito da placa Arduino.
O regulador de (U2- LP2985), é responsável
por fornecer uma tensão continua de 3,3V e
corrente máxima de 50 mA para alimentação
de circuitos ou shields.
Microcontroladores - Prof. Jener Toscano
6
Conectores de alimentação para conexão
de shields e módulos na placa Arduino UNO
•
•
•
•
•
•
IOREF - fornece uma tensão de referência
para que os shields possam selecionar o tipo
de interface apropriada. Dessa forma, shields
que funcionam com a placas Arduino
alimentadas com 3,3V, podem se adaptar
para funcionar em 5V, e vice-versa.
RESET - pino conectado ao pino de RESET do
microcontrolador. Pode ser utilizado para um
reset externo da placa Arduino.
3,3 V. – fornece tensão de 3,3V. para
alimentação de shield e módulos externos.
Corrente máxima de 50 mA.
5 V - Fornece tensão de 5 V para alimentação
de shields e circuitos externos.
GND - pinos de referência, terra.
VIN - pino para alimentar a placa através de
shield ou bateria externa. Quando a placa é
alimentada através do conector jack, a tensão
da fonte estará nesse pino
Microcontroladores - Prof. Jener Toscano
7
Comunicação USB
•
•
•
•
O microcontrolador ATMEGA16U2 é
responsável pela comunicação via USB
entre o computador e a placa Arduino
UNO, possibilitando o upload do código
binário gerado após a compilação do
programa feito pelo usuário.
Possui um conector ICSP para gravação de
firmware através de um programador
ATMEL, para atualizações futuras.
Dois leds (TX, RX), controlados pelo
software do microcontrolador, que
indicam o envio e recepção de dados da
placa para o computador.
Possui um cristal externo de 16 MHz.
Microcontroladores - Prof. Jener Toscano
8
Conexão dos Microcontroladores
na placa do Arduino UNO
ATMEGA16U2
ATMEGA328P
Microcontroladores - Prof. Jener Toscano
9
O microcontrolador ATMEGA328
• É o componente principal da placa
Arduino UNO:
• É um dispositivo de 8 bits da
família AVR com arquitetura RISC
avançada e com encapsulamento
DIP28.
– Com 32 KB de Flash (mas 512 Bytes
são utilizados pro bootloader),
– 2 KB de RAM e 1 KB de EEPROM.
• Pode operar a até 20 MHz, porém
na placa Arduino UNO opera em 16
MHz, valor do cristal externo que
está conectado aos pinos 9 e 10 do
microcontrolador.
• Possui 28 pinos, sendo que 23
desses podem ser utilizados como
E/S.
Microcontroladores - Prof. Jener Toscano
10
Entradas e saídas
•
•
•
Possui 14 pinos de entrada e saídas digitais
que trabalham com tensão de 5 volts e
corrente de 40 mA.
Cada pino possui resistor de pull-up interno
habilitado por software.
Pinos com funções digitais especiais:
–
–
–
•
PWM : 3,5,6,9,10 e 11 podem ser usados como
saídas PWM de 8 bits através da função
analogWrite();
Comunicação serial: 0 e 1 podem ser utilizados para
comunicação serial;
Interrupção externa: 2 e 3 para gerar uma
interrupção externa, através da função
attachInterrupt().
E 6 pinos de entrada analógicas, onde cada
um tem a resolução de 10 bits.
–
–
Por padrão a referencia do conversor AD está ligada
internamente a 5V, ou seja, quando a entrada estiver
com 5V o valor da conversão analógica digital será
1023;
O valor da referência pode ser mudado através do
pino AREF.
Microcontroladores - Prof. Jener Toscano
11
Outras Características da placa
•
•
•
•
•
•
O usuário deve ter muito cuidado ao manusear os pinos
de E/S, pois entre os pinos do microcontrolador e a barra
de pinos, não há nenhum resistor, que limite a corrente
Cuidado para não provocar curto circuito nos pinos na
sua parte inferior da placa, pois a mesma não possui
isolação.
A placa não possui botão liga/desliga. Para desligar a
alimentação, tem que “puxar” o cabo USB.
A placa Arduino UNO é programada através da
comunicação serial, pois o microcontrolador vem
programado de fábrica com o bootloader para fazer o
upload do programa a ser carregado na placa através do
protocolo STK500.
A programação do microcontrolador também pode ser
feitar através do conector ICSP (in – circuit serial
programming), utilzando um programador ATMEL.
A placa Arduino UNO possui pequenas dimensões
cabendo na palma da mão. Possui 4 furos para que a
mesma possa ser fixada em alguma superfície.
Microcontroladores - Prof. Jener Toscano
12
Resumo da placa Arduino UNO
Microcontroladores - Prof. Jener Toscano
13
Software do Arduino
•
•
•
•
•
O software para programação do Arduino é uma IDE que permite a
criação de sketches para a placa Arduino.
A linguagem de programação é modelada a partir do programa
escrito .
Quando pressionado o botão upload da IDE, o código escrito é
traduzido para a linguagem C e é transmitido para o compilador que
realiza a tradução dos comandos para uma linguagem que pode ser
compreendida pelo microcontrolador.
A IDE apresenta um alto grau de abstração possibilitando o uso do
microcontrolador sem que o usuário conheça a sua estrutura
interna.
A IDE do Arduino possui uma linguagem própria baseada na
linguagem C e C++.
Microcontroladores - Prof. Jener Toscano
14
O Ciclo de programação do Arduino
•
•
•
•
Conexão da placa a uma porta USB do computador;
Desenvolvimento de um sketch com comandos para a placa;
Upload do sketch para a placa, utilizando a comunicação USB.
Aguardar a reinicialização, após ocorrerá à execução do sketch
criado.
• A partir do momento que foi feito o upload o Arduino não
precisa mais do computador: o Arduino executará o sketch
criado, desde que seja ligado a uma fonte de energia.
Microcontroladores - Prof. Jener Toscano
15
IDE do Arduino
• A IDE pode ser baixada
gratuitamente no site
do Arduino, onde pode
ser escolhida a melhor
opção de download
conforme plataforma
utilizada.
Microcontroladores - Prof. Jener Toscano
16
Seleção do modelo de placa Arduino
• Após a conexão do
Arduino ao computador, é
atribuído a placa uma
COM. A primeira vez que o
programa Arduino for
executado deve-se
selecionar o modelo de
placa utilizado, no nosso
caso escolheremos
Arduino Uno.
Microcontroladores - Prof. Jener Toscano
17
Seleção da porta de comunicação
Após estas configurações o ambiente está preparado para uso e pode-se
testar qualquer um dos exemplos que acompanham a IDE ou até mesmo com
um novo sketch.
Microcontroladores - Prof. Jener Toscano
18
Iniciando a Programação Arduino
• A placa Arduino Uno possui um Led ligado ao pino digital 13 que pode ser
utilizado para o teste, e na IDE podemos carregar o exemplo Blink:
Microcontroladores - Prof. Jener Toscano
19
Verificação do Código
•
Para verificar de o código está correto deve-se clicar no ícone verify, após a
compilação é exibida uma mensagem de status da operação e caso esteja tudo
certo será exibida a quantidade de bytes gerados pelo programa:
• Para gravar o código na memória flash do microcontrolador é necessário clicar no
ícone Upload, para ser transferido o código para a placa que após alguns
segundos o LED ligado ao pino 13 começará a piscar em intervalos de 1 segundo.
Microcontroladores - Prof. Jener Toscano
20
Analisando o Código
•
•
•
•
•
•
•
•
•
•
O código do exemplo Blink é relativamente simples, porém apresenta a
estrutura básica de um programa desenvolvido na IDE Arduino.
Inicialmente nota-se que existem duas funções obrigatórias em um programa
Arduino: setup() e loop().
A função setup () é executada na inicialização do programa e é responsável pelas
configurações iniciais do microcontrolador, tal como definição dos pinos de I/O,
inicialização da comunicação serial, entre outras.
A função loop () será onde ocorrerá o laço infinito da programação, ou seja,
onde será inserido o código que será executado continuamente pelo
microcontrolador.
Dentro do loop principal está o código que fará o led ligado pino 13 piscar em
intervalos de 1 segundo.
A função digitalWrite(led, HIGH); coloca o pino em nível lógico 1, ligando o led.
A função delay(1000); aguarda o tempo de 1000 ms, ou seja, 1 segundo para
que possa ser executada a próxima instrução.
A função digitalWrite(led, LOW); coloca o pino em nível lógico 0, desligando o
led.
E novamente é esperado 1 segundo com a função delay();
O loop é repetido infinitamente enquanto a placa estiver ligada.
Microcontroladores - Prof. Jener Toscano
21
A referência da linguagem Arduino
• Pode ser acessada através do menu <help>:
Microcontroladores - Prof. Jener Toscano
22
Conclusão
• A placa Arduino UNO é uma ótima ferramenta para
quem está começando.
• É uma ferramenta simples e possui um hardware
mínimo, com várias características interessantes de
projeto.
• Sua conectividade USB e facilidade em programar é,
sem dúvida nenhuma, um grande atrativo.
http://www.embarcados.com.br/arduino-uno/
Microcontroladores - Prof. Jener Toscano
23