Minicurso de Arduino Básico

52
S Mini Curso de Arduino Prof. Rodrigo Santa Maria [email protected] Apoio: Google Developers Group São João da Boa Vista, SP.

Transcript of Minicurso de Arduino Básico

Page 1: Minicurso de Arduino Básico

S

Mini Curso de ArduinoProf. Rodrigo Santa Maria

[email protected]

Apoio:Google Developers Group São João da Boa Vista, SP.

Page 2: Minicurso de Arduino Básico

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]

Page 3: Minicurso de Arduino Básico

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.

Page 4: Minicurso de Arduino Básico

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

Page 5: Minicurso de Arduino Básico

Ø 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

Page 6: Minicurso de Arduino Básico
Page 7: Minicurso de Arduino Básico

Ø 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

Page 8: Minicurso de Arduino Básico

Ø 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

Page 9: Minicurso de Arduino Básico

Ø 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

Page 10: Minicurso de Arduino Básico
Page 11: Minicurso de Arduino Básico

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

Page 12: Minicurso de Arduino Básico

Ø 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

Page 13: Minicurso de Arduino Básico

Ø 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

Page 14: Minicurso de Arduino Básico

Ø Arduino...! Só este modelo?

Ø 8k,16k ou 32k?

Ø USB?

Mini Curso Arduino

Page 15: Minicurso de Arduino Básico

Não! Temos vários modelos paraaplicações diversas.

Ø Arduino Mega- 126k (Flash Memory)

Ø 54 Pinos de I/O

Ø LilyPad Arduino

Mini Curso Arduino

Page 16: Minicurso de Arduino Básico

Não! Temos vários modelos paraaplicações diversas.

ØArduino BT (Bluetooth) ØArduino Mini

ØArduino Pro

Mini Curso Arduino

Page 17: Minicurso de Arduino Básico

Ø O que são Shields?

Ø “Escudos”. Extentençõesdo Arduino que permiteminteragir com tecnologiasdiversas com facilidade.

ØEx:

ØEthernet shield

ØXbee shield

Mini Curso Arduino

Page 18: Minicurso de Arduino Básico

Ø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

Page 19: Minicurso de Arduino Básico

Ø Como usar os Shields?

Ø Conecta-se sobre a placa do Arduino. Épossível empilhar* shields.

Mini Curso Arduino

Page 20: Minicurso de Arduino Básico

Ø Sensores/Atuadores para Arduino:

Mini Curso Arduino

Page 21: Minicurso de Arduino Básico

Ø Projetos feitos com Arduino

Mini Curso Arduino

Page 22: Minicurso de Arduino Básico

S

Vamos Desenvolver ???

Page 23: Minicurso de Arduino Básico

Ø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

Page 24: Minicurso de Arduino Básico

Ø O Programa.

Ø Linguagem C/C++.

Ø Funções nativasfacilitam a programação.

Ø Após compilar temos os dados na tela preta abaixo:

Mini Curso Arduino

Page 25: Minicurso de Arduino Básico

Ciclo de desenvolvimento

Page 26: Minicurso de Arduino Básico

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.

Page 27: Minicurso de Arduino Básico

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.

Page 28: Minicurso de Arduino Básico
Page 29: Minicurso de Arduino Básico

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.

Page 30: Minicurso de Arduino Básico

Ø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

Page 31: Minicurso de Arduino Básico

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.

Page 32: Minicurso de Arduino Básico

Programar no Arduino

Page 33: Minicurso de Arduino Básico

Programar no Arduino

Page 34: Minicurso de Arduino Básico

Programar no Arduino

Page 35: Minicurso de Arduino Básico

Ø 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

Page 36: Minicurso de Arduino Básico

S

Exemplo Blink

Page 37: Minicurso de Arduino Básico

Ø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

Page 38: Minicurso de Arduino Básico

Ø 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

Page 39: Minicurso de Arduino Básico

Ø 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

Page 40: Minicurso de Arduino Básico

Ø 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

Page 41: Minicurso de Arduino Básico

Ø 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

Page 42: Minicurso de Arduino Básico

Ø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

Page 43: Minicurso de Arduino Básico

Ø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

Page 44: Minicurso de Arduino Básico

Ø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

Page 45: Minicurso de Arduino Básico

Ø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

Page 46: Minicurso de Arduino Básico

Ø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

Page 47: Minicurso de Arduino Básico

Ø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

Page 48: Minicurso de Arduino Básico

Ø Simulador de Arduino (grátis e online):

Ø http://123d.circuits.io/

Mini Curso Arduino

Page 49: Minicurso de Arduino Básico

Ø Projetos em Arduino:

Ø http://labdegaragem.com/page/projetos-1

Mini Curso Arduino

Page 50: Minicurso de Arduino Básico

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

Page 51: Minicurso de Arduino Básico

Ø 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

Page 52: Minicurso de Arduino Básico

S

Dúvidas ???Obrigado!!