S
Mini Curso de ArduinoProf. Rodrigo Santa Maria
Apoio:Google Developers Group São João da Boa Vista, SP.
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: [email protected]
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.
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
Ø O que é Arduino?
Ø ARDUINO é uma plataformaopen-source de software ehardware para prototipagemflexível, fácil de usar emultiplataforma!
Ø Por ser open: Perminteconstução caseira e softwarelivre.
Ø Caráter colaborativo.
Mini Curso Arduino
Ø O que ele faz?
Ø Recebe, Gera e InterpretaDados.
Ø Premite desenvolver:
l Controle residencial
l Robótica
l Design interativo
l Quase tudo que sonharesta ferramenta podetornar realidade.
Mini Curso Arduino
Ø Como é estruturado seuHardware:
Ø 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ãopodem ser usados para digital I/O (digitalRead e digitalWrite) se estiverusando comunicação serial (Serial.begin).
Ø Botão de Reset - S1 (Azul Escuro).
Ø In-circuit Serial Programmer -ICSP (Azul-Verde).
Mini Curso Arduino
Ø Como é estruturado seuHardware:
Ø 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çãoda USB ou Esterna X1 (Roxo).
Ø USB: Usada para gravar osprogramas; Comunicação serial entre placa e computador; Alimentação da placa (Amarelo) .
Mini Curso Arduino
ConversorSerial ↔ USB
Entradas e saídas digitais
CPUAtmelFonte de
alimentação
Entradas analógicas ou saídas digitais
Terminais de alimentação 5V – 3,3V e Terra (0 V)
Microcontrolador
Cristal
JackAlimentação
JackUSB
Arduino Uno
Mini Curso Arduino
Ø 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
Ø 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
Ø Arduino...! Só este modelo?
Ø 8k,16k ou 32k?
Ø USB?
Mini Curso Arduino
Não! Temos vários modelos paraaplicações diversas.
Ø Arduino Mega- 126k (Flash Memory)
Ø 54 Pinos de I/O
Ø LilyPad Arduino
Mini Curso Arduino
Não! Temos vários modelos paraaplicações diversas.
ØArduino BT (Bluetooth) ØArduino Mini
ØArduino Pro
Mini Curso Arduino
Ø O que são Shields?
Ø “Escudos”. Extentençõesdo Arduino que permiteminteragir com tecnologiasdiversas com facilidade.
ØEx:
ØEthernet shield
ØXbee shield
Mini Curso Arduino
ØMotor shield
Ø SD shield
ØLCD shield
Ø O que são Shields?
Ø “Escudos”. Extentençõesdo Arduino que permiteminteragir com tecnologiasdiversas com facilidade.
ØEx:
Mini Curso Arduino
Ø Como usar os Shields?
Ø Conecta-se sobre a placa do Arduino. Épossível empilhar* shields.
Mini Curso Arduino
Ø Sensores/Atuadores para Arduino:
Mini Curso Arduino
Ø Projetos feitos com Arduino
Mini Curso Arduino
S
Vamos Desenvolver ???
ØEsta é a IDE e estessão os botões paracomandos:
Ø Verify: Para Verificar se o programa está sem erros.
Ø Upload: Carrega o programano Microcontrolador.
Ø Serial Monitor: Ativa a leitura da porta serial. Mostravalores.
Mini Curso Arduino
Ø O Programa.
Ø Linguagem C/C++.
Ø Funções nativasfacilitam a programação.
Ø Após compilar temos os dados na tela preta abaixo:
Mini Curso Arduino
Ciclo de desenvolvimento
Funções basevoid 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.
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.
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.
Ø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
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.
Programar no Arduino
Programar no Arduino
Programar no Arduino
Ø Praticando o Programa.
Ø Instalar a interface( IDE).
Ø Reconhecer os botões.
Ø Abrir arquivo com o programa Blink.
Ø Ler o programa identificaros comandos.
Ø Fazer perguntas e tirarduvidas! É o momento.
Mini Curso Arduino
S
Exemplo Blink
Ø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
Ø Vamos compliar e ver o queacontece?
Ø Conecte a USB ao PC e aoArduino
Ø É preciso indicar o modelo de arduino e a porta USB que ele estáconectado.
ØVá em TOOLs > Board> “Modelo”
ØTOOLs > Serial PORT> “portausada”
Mini Curso Arduino
Ø Entendendo o Programa.
Ø Agora vamos modificar os valoresno Deley(10)
Ø Observar o que acotece
Ø Espere alguns segundos.
Ø Conecte um LED como indicadona figura ao lado.
Mini Curso Arduino
Ø 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
Ø 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 Buttonl ...
Mini Curso Arduino
Ø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
ØAprendendo com exemplos:
ØVistar site www.arduino.ccPrincipal fonte dedocumentação.
ØTópico: LEARNING
ØExecutar programas: Analog I/O
•Analog Input•Calibration•Fading•Smoothing
Térmica inteligente
Mini Curso Arduino
Ø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
Ø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
Ø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
Ø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
Ø Simulador de Arduino (grátis e online):
Ø http://123d.circuits.io/
Mini Curso Arduino
Ø Projetos em Arduino:
Ø http://labdegaragem.com/page/projetos-1
Mini Curso Arduino
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
Ø 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
S
Dúvidas ???Obrigado!!