Curso introdutório de microcontroladores - Plataforma Arduino

Documentos relacionados
Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Disciplina: Laboratório de Fis26

Arduino. Gilmar Aquino

Arduino. Introdução aos Componentes Básicos. Leonardo Mauro P. Moraes. Universidade Federal de Mato Grosso do Sul - UFMS.

Introdução à Plataforma ARDUINO

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Projeto 01. Adriano Joaquim de Oliveira Cruz Instituto de Matemática UFRJ 2015 Adriano Cruz. 30 de agosto de 2015

Introdução ao Arduino

- Tarefas Práticas de Programação usando Arduino - Imagem do Robô com Legendas

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

ARDUINO BÁSICO E T A P A 1 O QUE É ARDUINO? Prof. Amadeu Zanon Neto

Robótica com Arduino Professor: Paulo Marcos Trentin

Programação do Arduino. Parte 1. IDE Wiring

Scaling Up Inclusion: Robotics, a STEM focused Project. Centro de Formação de Associação de Escolas Paços de Ferreira, Paredes e Penafiel

Introdução à plataforma Arduino

Aula 1 Apresentação e Conceitos Iniciais. Wellington Cássio Faria fb.com/wellingtoncf

Arduino como ferramenta de aquisição de Dados

Introdução. O que é o Arduino?

MINICURSO - PLATAFORMA ARDUINO Eixo de Informação e Comunicação Gil Eduardo de Andrade

Arduino - Primeiros Passos

INTRODUÇÃO A PLATAFORMA ARDUINO. TÁSSIO JOSÉ GONÇALVES GOMES

MINICURSO ARDUINO BÁSICO

Arduino MS. Sobre esta Oficina. Oriunda do Arduino Hack Day Organizado pelos Coordenadores do ArduinoMS Agradecimentos ao apoio do SENAC

Curso de Básico Arduino! Ministrado por: Wellington Cássio Faria Contato:

Scaling Up Inclusion: Robotics, a STEM focused Project. Centro de Formação de Associação de Escolas Paços de Ferreira, Paredes e Penafiel

Oficina de Programação utilizando a plataforma Arduino

Introdução ao Arduino. Pessanha Santos ASPOF EN-AEL

Hardware Livre Arduino. Givanaldo Rocha de Souza

CANAL ANALÓGICO

arduino = new roboticalivre(); Arduino Marcus Fazzi

Descrição dos pinos de entrada e saída e de funções especiais. Descrição dos modos de acesso: individual e por porto

// Arduino {? } Mais o que é?..

Universidade Federal do Parana Departamento de Informática. Oficina Arduino Robótica. Prof. Eduardo Todt 2018

O que você pode fazer com o Arduino

- Trabalho Prático de Algoritmos e Programação usando Robô Arduino -

Oficina de Programação utilizando a plataforma Arduino

Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO

Mundo Arduino: Vamos começar a programar?

Introdução do Arduino para aquisição de dados e controle de instrumentos

Kit controle remoto IR acionando 3 Led com Arduino

Curso de robótica 2. Novos conceitos de programação

OFICINA Uso da plataforma Arduino no Ensino de Ciências

- Clique aqui e veja o video deste curso - Clique aqui para ver as imagens deste curso

Por Sergio Genilson Pfleger PLATAFORMA ROBÓTICA GENÉRICA BASEADA EM ARDUINO.

Plataforma Arduino, um universo de possibilidades

Microcontrolador Arduino: Aplicação em controle PI

Arquitetura do Microcontrolador Atmega 328

Plano de Aula. 1 o semestre. Aula número 011 Periféricos Display LCD, Conversor AD e conversor DA (PWM)

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais.

Introdução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE. Núcleo de Arte e Tecnologia. julio lucio martin. Aula 07

Ricardo Ribeiro dos Santos - ricardo@facom.ufms.br Faculdade de Computação - UFMS

Arduino. Prof. Maurício Dias

Oficina de Programação utilizando a plataforma Arduino

ROBÓTICA 1 INTRODUÇÃO A PROGRAMAÇÃO NO ARDUINO

Plano de Aula. 1 o semestre. Aula número 012 Periféricos Comunicação Serial. Conhecer os princípios de comunicação serial

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

Comunicação Serial 1

Enviando Dados Pela Porta Serial na placa LaunchPad MSP430 Utilizando o ambiente ENERGIA

Estrutura Básica da Linguagem Arduino

ARDUINO. Profº. Engº. Robson Dias Ramalho

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO PROJETO SCATMAN S DIMMER

MINICURSO ARDUINO AVANÇADO

Anatomia do Arduino Bootloader

PUCRS CURSO DE ENGENHARIA ELÉTRICA

Sistemas Digitais EDUARDO ELIAS ALVES PEREIRA

Guia da Placa de desenvolvimento PD Mega16 N1

Introdução ao kit microcontrolado Arduino

Por Fernando Koyanagi

Entrada de dados com botões

Programação em Linguagem C

Programação Básica em Arduino Aula 4

Oficina de Programação utilizando a plataforma Arduino

Viabilizado pela Organização do ERI MS; Apoiado pelo grupo ArduinoMS; Agradecimentos especiais ao do SENAC e UCDB.

O ARDUINO. Plataforma de prototipagem eletrônica; Open Source; Formada por duas partes básicas: hardware e software.

ALGORITMOS, ARQUITETURA E ARDUINO

MOBILIDADE SUSTENTÁVEL. Luís Martins Duarte Abreu

Pequenos Projetos com Arduino

UNIDADE 5 Sinais Analógicos

ARDUINO. Níveis lógicos de referência VCC e GND Entradas e saídas digitais e analógicas.

Curso de Arduino. Quais seus principais componentes?

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Arduino

INTRODUÇÃO: MICROCONTROLADORES

Minicurso - Arduino Startup Garagem

OFICINA Uso da plataforma Arduino no Ensino de Ciências

Conhecendo o ARDUINO LEGENDA

Tutoriais PET-Tele. Introdução à Amostragem de Sinais com o kit Arduino (Versão: A2016M06D21)

Arquitetura e Organização de Computadores. Conjunto de Instruções da Arquitetura CompSim

OFICINA DE ARDUINO. Prof. M. Sc. Ruben Hernandez Conceitos e implementações básicas da placa arduino

Missão: Arduino. 3 de Março. Organização

Plano de Aula. 1 o semestre. Aula número 009 Interrupções. Fazer uso das interrupções externas no Arduíno

ARDUÍNO PROCEDIMENTOS BÁSICOS

Sistemas de Controle 2

Robótica com Arduino

Oficina de Introdução ao Arduino

Controle de irrigação automatizado controlado por placa de Arduino Mega

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Transcrição:

Curso introdutório de microcontroladores - Plataforma Arduino Prof. Fábio Rodrigues de la Rocha FLISOL - UTFPR-PR - Abril/2011 FLISOL - UTFPR-PR - Abril/2011 1

Introdução Mas afinal, o que é Arduino? Arduino é um nome fantasia que representa uma família de placas eletrônicas. Nestas placas temos um microcontrolador, botões, Leds, algum tipo de conexão para ligar no computador. FLISOL - UTFPR-PR - Abril/2011 2

Introdução Microcontrolador Microcontrolador é semelhante a um processador tal como nos computadores desktop/notebooks, mas existem diferenças: É muito mais simples e mais barato; 8 bits; 2 KiB de memória RAM; 32 KiB de memória de programa; Custo aproximadamente de 4 dólares. Possui internamente timers/contadores/protocolos de transmissão de dados, conversores AD, memória RAM/FLASH/EEPROM, etc. FLISOL - UTFPR-PR - Abril/2011 3

Introdução: Kits Figura: Arduino 2009 Figura: Arduino Pro Mini Figura: Arduino Mega Figura: LilyPad Figura: Arduino Pro Figura: Freeduino FLISOL - UTFPR-PR - Abril/2011 4

Introdução: Kits Figura: Arduino Severino Figura: Arduino UNO Figura: Mega 2560 FLISOL - UTFPR-PR - Abril/2011 5

Introdução Kits x microcontroladores FLISOL - UTFPR-PR - Abril/2011 6

Introdução: Características dos microcontroladores FLISOL - UTFPR-PR - Abril/2011 7

Introdução: Pinos FLISOL - UTFPR-PR - Abril/2011 8

Introdução Mas por que o Arduino é popular? Kits de microcontroladores existem já a décadas, mas o Arduino possui algumas características que o diferencial dos demais. Baixo custo; Possui ambiente de desenvolvimento Assembly/C disponibilizado como SL; Possui hardware livre*; Não necessita de hardware especial para programação*; Algumas versões, usa componentes DIP, que facilita a utilização em desenvolvimento de protótipos; Possui site com manuais, bibliotecas e exemplos de códigos; Pode operar sem a presença de um computador; Possibilidade de expandir a sua capacidade através da utilização de shields FLISOL - UTFPR-PR - Abril/2011 9

Hardware:Como um microcontrolador é programado? AVR Compiler 0011001110000110010010 1110010101010101010101 1110000000000011010101 0101010101010101010101 0101010101010101010110 0101010101010101010101 0101000011110000111000 0101010101010101010101 0101101000111100001111 FLISOL - UTFPR-PR - Abril/2011 1

Hardware:Como um microcontrolador é programado? FLISOL - UTFPR-PR - Abril/2011 1

Hardware:Como um microcontrolador é programado? FLISOL - UTFPR-PR - Abril/2011 1

Hardware: Bootloader FLISOL - UTFPR-PR - Abril/2011 1

Hardware: Bootloader FLISOL - UTFPR-PR - Abril/2011 1

Hardware: Shield para o Arduino FLISOL - UTFPR-PR - Abril/2011 1

Hardware: Shield para o Arduino FLISOL - UTFPR-PR - Abril/2011 1

Software O arduino possui um ambiente de desenvolvimento disponível para download em www.arduino.cc; É SL e multiplataforma; É um editor de texto, compilador e gravador do microcontrolador, tudo numa única ferramenta. FLISOL - UTFPR-PR - Abril/2011 1

Software Como programar no Arduino? Na maioria dos casos os programadores que desenvolvem software para o Arduino não utilizam as linguagens C ou C++, mas a linguagem denominada Wiring que pode ser considerada a linguagem do Arduino. A linguagem Wiring é similar as linguagens C e C++, contudo possui algumas diferenças. FLISOL - UTFPR-PR - Abril/2011 1

Software Um programa escrito na linguagem do arduino é denominado sketch e deve ser escrito no ambiente de desenvolvimento Arduino (Figura 10). O ambiente Arduino é escrito na linguagem Java e assim está disponível para diversos sistemas. Quando um sketch é compilado, o ambiente Arduino varre o código fonte Wiring fazendo algumas substituições e transforma o código Wiring em linguagem C/C++ que é compilado efetivamente pelo compilador da GNU. FLISOL - UTFPR-PR - Abril/2011 1

Software FLISOL - UTFPR-PR - Abril/2011 2

Software FLISOL - UTFPR-PR - Abril/2011 2

1 int ledpin = 13; // LED esta conectado ao pino 13 do arduino 2 // Na placa eletronica, deve - se ligar um LED entre o 3 // pino 13 e o GND 4 5 6 // Setup () eh executada uma vez apenas 7 void setup () { 8 // Inicializa o pino digital como sendo pino de saida 9 pinmode ( ledpin, OUTPUT ); 0 } 1 2 3 // a funcao loop () executa ciclicamente 4 void loop () 5 { 6 digitalwrite ( ledpin, HIGH ); // Liga o LED colocando nivel alto no pino 7 // do microcontrolador 8 delay (1000) ; // Espera 1 segundo 9 digitalwrite ( ledpin, LOW ); // Desliga o LED colocando nivel baixo no 0 // pino do microcontrolador 1 delay (1000) ; // Espera 1 segundo 2 } FLISOL - UTFPR-PR - Abril/2011 2

Software: Pisca LED FLISOL - UTFPR-PR - Abril/2011 2

Software Pinos de Entrada/Saída Digital Antes de utilizar um pino como entrada/saída devemos configurá-lo ou como entrada ou como saída. A configuração é feita utilizando-se a função pinmode(numero_pino,modo) pinmode(3,output); ou pinmode(3,input); e depois podemos utilizar a função x=digitalread(numero_pino) e digitalwrite(numero_pino, LOW); FLISOL - UTFPR-PR - Abril/2011 2

Software: Liga LED usando botão FLISOL - UTFPR-PR - Abril/2011 2

1 const int buttonpin = 2; // botao 2 const int ledpin = 13; // LED 3 4 5 int buttonstate = 0; // Estado do botao 6 7 void setup () { 8 pinmode ( ledpin, OUTPUT ); 9 pinmode ( buttonpin, INPUT ); 0 } 1 2 void loop (){ 3 // Le o estado do botao 4 buttonstate = digitalread ( buttonpin ); 5 6 // Botao pressionado? 7 if ( buttonstate == HIGH ) { 8 // Liga o LED 9 digitalwrite ( ledpin, HIGH ); 0 } 1 else { 2 // Desliga o LED 3 digitalwrite ( ledpin, LOW ); 4 } 5 } FLISOL - UTFPR-PR - Abril/2011 2

Software Transmissão de dados seriais O Arduino possui uma UART que pode transmitir dados seriais. No software deve-se configurar a taxa de transmissão e enviar bytes ou cadeias de caracteres e ler bytes pela porta serial. 1 2 void setup (){ 3 Serial. begin (9600) ; 4 5 Serial. println ("Olá mundo"); 6 Serial. write (128) ; 7 8 } 9 void loop (){ 0 1 if ( Serial. available () > 0) { 2 // Lê um byte que tenha sido transmitido 3 // do PC 4 incomingbyte = Serial. read (); 5 } FLISOL - UTFPR-PR - Abril/2011 2

Software Pinos de Entrada analógica Alguns pinos do Arduino estão conectados a um conversor AD. O Arduino pode possuir diversos pinos que são pinos analógicos, mas existe apenas um conversor. Quando desejamos ler um pino analógico do Arduino, usa-se a função analogread(pino); 1 int analogvalue ; 2 unsigned char valor_a, valor_b ; 3 4 analogvalue = analogread (0) ; 5 valor_a = ( byte ) analogvalue ; 6 valor_b = ( byte )( analogvalue > >8); FLISOL - UTFPR-PR - Abril/2011 2

Software: Lê um potenciometro FLISOL - UTFPR-PR - Abril/2011 2

1 int sensorpin = A0; // Pino onde o potenciometro esta ligado 2 int sensorvalue = 0; // valor lido do sensor 3 4 void setup () { 5 // Os pinos analogicos ja sao configurados 6 // como pinos de entrada por padrao 7 Serial. begin (9600) ; 8 } 9 0 void loop () { 1 // le o valor do potenciometro 2 sensorvalue = analogread ( sensorpin ); 3 Serial. print (" Valor do potenciometro :"); 4 Serial. println ( sensorvalue, DEC ); 5 } FLISOL - UTFPR-PR - Abril/2011 3

Software Pinos de saída analógica O Arduino possui apenas um conversor AD, ou seja, consegue converter um sinal de tensão em uma representação digital. Mesmo assim, o Arduino possui uma função 1 int ledpin = 9; // LED connected to digital pin 9 2 int analogpin = 3; // potentiometer connected to analog pin 3 3 int val = 0; // variable to store the read value 4 5 void setup () 6 { 7 pinmode ( ledpin, OUTPUT ); // sets the pin as output 8 } 9 0 void loop () 1 { 2 val = analogread ( analogpin ); // read the input pin 3 analogwrite ( ledpin, val / 4); // analogread values go from 0 to 1023, analogwrite values from 0 to 255 4 } FLISOL - UTFPR-PR - Abril/2011 3

Software Memória EEPROM O Arduino possui uma memória EEPROM de 512Bytes que pode ser lida/gravada pelo programador. 1 # include < EEPROM.h> 2 int addr = 0; 3 4 void setup () 5 { 6 } 7 8 void loop () 9 { 0 int val = analogread (0) / 4; 1 EEPROM. write (addr, val ); 2 addr = addr + 1; 3 if ( addr == 512) addr = 0; 4 delay (100) ; 5 } FLISOL - UTFPR-PR - Abril/2011 3

Software Função Map Conversão de valores. 1 void setup () {} 2 3 void loop () 4 { 5 int val = analogread (0) ; 6 val = map ( val, 0, 1023, 0, 255) ; 7 analogwrite (9, val ); 8 } FLISOL - UTFPR-PR - Abril/2011 3

Software Interrupções O Arduino pode gerar interrupções 1 # include < TimerOne.h> 2 3 volatile int valor =0, contador =0,n =0; 4 unsigned char valor_a, valor_b ; 5 long freq ; 6 7 void setup () 8 { 9 interrupts (); 0 freq = 16 ; // frequencia em hertz 1 Timer1. initialize (1000000/ freq ); 2 Timer1. attachinterrupt ( Estouro_de_Tempo ); 3 Timer1. start (); 4 } 5 6 void Estouro_de_Tempo () 7 { 8 // Faz alguma coisa 9 } FLISOL - UTFPR-PR - Abril/2011 3

Software Atraso de tempo O Arduino possui algumas funções para causar um atraso de tempo, como delay() e delaymicroseconds() 1 void loop () 2 { 3 digitalwrite ( ledpin, HIGH ); // sets the LED on 4 delay (1000) ; // waits for a second 5 digitalwrite ( ledpin, LOW ); // sets the LED off 6 delay (1000) ; // waits for a second 7 8 9 digitalwrite ( outpin, HIGH ); // sets the pin on 0 delaymicroseconds (50) ; // pauses for 50 microseconds 1 digitalwrite ( outpin, LOW ); // sets the pin off 2 delaymicroseconds (50) ; // pauses for 50 microseconds 3 4 } FLISOL - UTFPR-PR - Abril/2011 3

Software Contando o tempo O Arduino possui funções para medir a passagem do tempo desde que o programa comecou a executar. time = micros(); Retorna a quantidade de microsegundos que se passaram desde que o Arduino foi iniciado. Estoura aprox. após 70min. time = millis(); Retorna a quantidade de milisegundos que se passaram desde que o Arduino foi iniciado. Estoura depois de aprox. 50 dias. 1 unsigned long time ; 2 3 void setup (){ 4 Serial. begin (9600) ; 5 } 6 void loop (){ 7 Serial. print (" Time : "); 8 time = micros (); 9 // prints time since program started 0 Serial. println ( time ); 1 // wait a second so as not to send massive amounts of data 2 delay (1000) ; 3 } FLISOL - UTFPR-PR - Abril/2011 3

Software No site http://arduino.cc pode-se encontrar bibliotecas para controlar diversos dispositivos como displays de LCD, acelerômetros, sensores de temperatura. FLISOL - UTFPR-PR - Abril/2011 3