Este documento apresenta um mini curso sobre Arduino ministrado pelo professor Rodrigo Santa Maria. O curso inclui uma introdução ao Arduino, seus modelos, sensores, programação e projetos práticos.
1. S
Mini Curso de Arduino
Prof. Rodrigo Santa Maria
rodrigo@digitallymade.com.br
Apoio:
Google Developers Group São João da Boa Vista, SP.
2. Rodrigo Santa Maria
S Bacharel em Ciência da Computação;
S Especialista com MBA Internacional em Gerenciamento de
Projetos;
S Professor Universitário;
S Empresário de TI;
S Acesse: www.digitallymade.com.br
S E-mail: rodrigo@digitallymade.com.br
3. Rodrigo Santa Maria
S Desenvolvedor de aplicações desde 2000.
S Experiência em projetos com microcontroladores FPGA da
família Cyclone da Altera desde 2007.
S Experiência em projetos com microntroladores da Atmel da
família Arduino desde 2012.
4. Pauta:
Ø Apresentação do Arduino para iniciantes.
Ø Modelos disponíveis.
Ø Sensores/atuadores.
Ø Uso e interações do Arduino.
Ø Noções básicas de como programá-lo.
Ø Exercícios práticos!
Mini Curso Arduino
5. Ø O que é Arduino?
Ø ARDUINO é uma plataforma
open-source de software e
hardware para prototipagem
flexível, fácil de usar e
multiplataforma!
Ø Por ser open: Perminte
constução caseira e software
livre.
Ø Caráter colaborativo.
Mini Curso Arduino
6.
7. Ø O que ele faz?
Ø Recebe, Gera e Interpreta
Dados.
Ø Premite desenvolver:
l Controle residencial
l Robótica
l Design interativo
l Quase tudo que sonhar
esta ferramenta pode
tornar realidade.
Mini Curso Arduino
8. Ø Como é estruturado seu
Hardware:
Ø Analog Reference pin-AREF(Laranja).
Ø Digital Ground (Verde Claro).
Ø Digital Pins 2-13 (Verde).
Ø Digital Pins 0-1/Serial In/Out - TX/RX
(Verde Escuro) – Estes Pinos não
podem ser usados para digital I/O
(digitalRead e digitalWrite) se estiver
usando comunicação serial
(Serial.begin).
Ø Botão de Reset - S1 (Azul Escuro).
Ø In-circuit Serial Programmer -ICSP
(Azul-Verde).
Mini Curso Arduino
9. Ø Como é estruturado seu
Hardware:
Ø Analog In Pins 0-5 (Azul Claro).
Ø Power and Ground Pins (power:
orange, grounds: light Laranja Claro).
Ø Suprimento Externo de energia In (9-
12VDC) - X1 (Rosa).
Ø SV1-Jumper: Determina alimentação
da USB ou Esterna X1 (Roxo).
Ø USB: Usada para gravar os
programas; Comunicação serial entre
placa e computador; Alimentação da
placa (Amarelo) .
Mini Curso Arduino
10.
11. Conversor
Serial ↔ USB
Entradas e saídas digitais
CPU
AtmelFonte de
alimentação
Entradas analógicas
ou saídas digitais
Terminais de alimentação
5V – 3,3V e Terra (0 V)
Microcontrolador
Cristal
Jack
Alimentação
Jack
USB
Arduino Uno
Mini Curso Arduino
12. Ø Outras coisas importantes no
Arduino:
Ø Led Serial: 0 (RX) e 1 (TX).
Usado para Receber (RX)
transmitir (TX) TTL dados seriais.
Ø Chip FTDI (comunicação serial
USB)
Mini Curso Arduino
13. Ø Outras coisas importantes no
Arduino:
Ø Saída com PWM (Pulse Width
Modulation):
Usa-se pinos: 3, 5, 6, 9, 10, e 11.
analogWrite();
Mini Curso Arduino
14. Ø Arduino...! Só este modelo?
Ø 8k,16k ou 32k?
Ø USB?
Mini Curso Arduino
15. Não!
Temos vários modelos para
aplicações diversas.
Ø Arduino Mega- 126k (Flash Memory)
Ø 54 Pinos de I/O
Ø LilyPad Arduino
Mini Curso Arduino
16. Não!
Temos vários modelos para
aplicações diversas.
ØArduino BT (Bluetooth)
ØArduino Mini
ØArduino Pro
Mini Curso Arduino
17. Ø O que são Shields?
Ø “Escudos”. Extentenções
do Arduino que permitem
interagir com tecnologias
diversas com facilidade.
ØEx:
ØEthernet shield
ØXbee shield
Mini Curso Arduino
18. ØMotor shield
Ø SD shield
ØLCD shield
Ø O que são Shields?
Ø “Escudos”. Extentenções
do Arduino que permitem
interagir com tecnologias
diversas com facilidade.
ØEx:
Mini Curso Arduino
19. Ø Como usar os Shields?
Ø Conecta-se sobre a
placa do Arduino. É
possível empilhar*
shields.
Mini Curso Arduino
23. ØEsta é a IDE e estes
são os botões para
comandos:
Ø Verify: Para Verificar se o
programa está sem erros.
Ø Upload: Carrega o programa
no Microcontrolador.
Ø Serial Monitor: Ativa a
leitura da porta serial. Mostra
valores.
Mini Curso Arduino
24. Ø O Programa.
Ø Linguagem C/C++.
Ø Funções nativas
facilitam a programação.
Ø Após compilar temos os dados
na tela preta abaixo:
Mini Curso Arduino
26. Funções base
void setup() - Esta função apenas é executada uma vez e é normalmente utilizada para
executar a inicialização de variáveis, a inicialização da utilização bibliotecas, a definição dos
pinos (como input ou output), o início do uso de comunicação série, entre outros. Esta função
apenas volta a ser executada novamente ao ser efectuado o reset ou quando se desligar e
volta a ligar a placa de desenvolvimento Arduino.
void loop() - Esta função faz um “loop” sucessivo (como o próprio nome indica), ou seja,
todos os comandos existentes no interior desta função são sucessivamente repetidos, o que
pode permitir a leitura sucessiva de portas, a leitura sucessiva de parâmetros provenientes de
sensores externos e actuar de acordo com as condições estabelecidas.
27. Programar no Arduino
Comentários
Muitas vezes é importante comentar alguma parte do código do programa.
Existem duas maneiras de adicionar comentários a um programa em Arduino.
A primeira é usando //, como no exemplo abaixo:
// Este é um comentário de linha
A segunda é usando /* */, como no exemplo abaixo:
/* Este é um comentário de bloco. Permite acrescentar comentários com mais de
uma linha */
Nota: Quando o programa é compilado os comentários são automaticamente suprimidos do arquivo executável,
aquele que será gravado na placa do Arduino.
28.
29. Programar no Arduino
Constantes
No Arduino existem algumas constantes previamente definidas e são
consideradas palavras reservadas.
As constantes definidas são:
true – indica valor lógico verdadeiro
false – indica valor lógico falso
HIGH – indica que uma porta está ativada, ou seja, está em 5V.
LOW – indica que uma porta está desativada, ou seja, está em 0V.
INPUT – indica que uma porta será de entrada de dados.
OUTPUT – indica que uma porta será de saída de dados.
30. ØEntendendo o Programa.
int ledPin = 13; // Diz: Vou usar o Pino de número 13 do Arduino e ele será
chamado "ledPin” e será uma variável inteira.
void setup() //Função chamada automaticamente na primeira vez que o código é
lido.
//Devemos dizer como o Pino deve se comportar.
{
pinMode(ledPin, OUTPUT); // PinMode diz:
O comportamento do pino (Número do Pino, ENTRADA
ou SAÍDA).
// Temos OUTPUT=Saída e INPUT=Entrada.
// A variável ledPin contém o número 13 (pino 13)
}
Mini Curso Arduino
31. Programar no Arduino
Numa linguagem de programação existem vários operadores que
permitem operações do tipo: Aritmética, Relacional, Lógica e Composta.
35. Ø Praticando o Programa.
Ø Instalar a interface( IDE).
Ø Reconhecer os botões.
Ø Abrir arquivo com o
programa Blink.
Ø Ler o programa identificar
os comandos.
Ø Fazer perguntas e tirar
duvidas! É o momento.
Mini Curso Arduino
37. ØEntendendo o Programa.
void loop() // Função onde tudo acontece. Chama-se Loop
porque está executando repetidas vezes.
{
digitalWrite(ledPin, HIGH); // Temos HIGH= LIGADO e LOW=DESLIGADO
// E o nome do pino é LedPIN, que é o mesmo Pino 13
delay(1000); // Atraso de 1 segundo
digitalWrite(ledPin, LOW); // Temos LOW=DESLIGADO
delay(1000); // Atraso de 1 segundo
}
Mini Curso Arduino
38. Ø Vamos compliar e ver o que
acontece?
Ø Conecte a USB ao PC e ao
Arduino
Ø É preciso indicar o modelo de
arduino e a porta USB que ele está
conectado.
ØVá em TOOLs > Board> “Modelo”
ØTOOLs > Serial PORT> “porta
usada”
Mini Curso Arduino
39. Ø Entendendo o Programa.
Ø Agora vamos modificar os valores
no Deley(10)
Ø Observar o que acotece
Ø Espere alguns segundos.
Ø Conecte um LED como indicado
na figura ao lado.
Mini Curso Arduino
40. Ø Entendendo o Programa.
Ø Algumas funções digitais importantes:
Ø pinMode()
•Diz se o comportamento será INPUT
ou OUTPUT
Ø digitalWrite()
•Gera HIGH ou LOW no pino
Ø digitalRead()
•Recebe HIGH ou LOW do pino
Mini Curso Arduino
41. Ø Aprendendo com exemplos:
Ø Apresentar e vistar site
www.arduino.cc Principal fonte de
documentação.
Ø Link: LEARNING
Ø Executar programas Digital I/O
l Blink Without Delay:
l Button
l ...
Mini Curso Arduino
42. ØEntendendo o Programa.
ØFunções analógicas.
ØGera e recebe valores de 0 a
1023.
Permitindo medir além do LIGADO e
DESLIGADO.
ØAnalogRead()
•Faz leitura do pino analógico.
Valor entre 0 a 1023
ØAnalogWrite()
•Gera valor analógico entre 0 e
1023. Onda PWM.
Mini Curso Arduino
43. ØAprendendo com exemplos:
ØVistar site www.arduino.cc
Principal fonte dedocumentação.
ØTópico: LEARNING
ØExecutar programas: Analog
I/O
•Analog Input
•Calibration
•Fading
•Smoothing
Térmica inteligente
Mini Curso Arduino
44. ØPorta serial.
ØÉ a forma como comunicar computador com Arduino em tempo real.
ØSerial.begin(9600);
lAjusta velocidade em 9600 bps
ØSerial.println("TEXTO");
lPara escrever na tela.
Mini Curso Arduino
45. ØSerial Port. Vamos praticar?
void setup() // run once, when the sketch starts
{
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Olá! Sou o Arduino!"); // prints hello with ending line break
}
void loop() // run over and over again
{
// do nothing!
}
Mini Curso Arduino
46. ØSerial Port: Agora mudando o programa.
void setup() // run once, when the sketch starts
{
Serial.begin(9600); // set up Serial library at 9600 bps
}
void loop() // run over and over again
{
Serial.println("Olá! Sou o Arduino!"); // prints hello with ending line break
}
Mini Curso Arduino
47. ØSerial Port: Incrementando mais uma vez.
void setup() // run once, when the sketch starts
{
Serial.begin(9600); // set up Serial library at 9600 bps
}
void loop() // run over and over again
{
Serial.println("Olá! Sou o Arduino!"); // prints hello with ending line break
delay(1000);
}
Mini Curso Arduino
48. Ø Simulador de Arduino (grátis e online):
Ø http://123d.circuits.io/
Mini Curso Arduino
49. Ø Projetos em Arduino:
Ø http://labdegaragem.com/page/projetos-1
Mini Curso Arduino
50. Lojas Online
S MSS Eletrônica: www.msseletronica.com
S Lab de Garagem: www.labdegaragem.org/loja
S Robo Core: www.robocore.net
S FilipeFlop: www.filipeflop.com
S Mercado Livre: www.mercadolivre.com.br
51. Ø Referências:
Brasilrobotics. Disponível em <www.brasilrobotics.blogspot.com/>
Adafruit. Disponível em <http://www.adafruit.com/>
Arduino.cc. Disponível em <www.arduino.cc/>
Banzi, Massimo. Getting Started with Arduino. O'reilly,EUA
Creativecommons. Disponível em: <www.creativecommons.org.br/>
Mini Curso Arduino