arduino 01

Download Arduino 01

Post on 07-Dec-2014

11 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

Introduo ao Arduino

Pessanha Santos ASPOF EN-AEL

Programa1. 2. 3. 4. 5. Introduo plataforma de desenvolvimento Arduino Anlise sua constituio Software de desenvolvimento Arduino Estrutura e Sintaxe do seu cdigo Estudo de alguns exemplos

IntroduoPlataforma de desenvolvimento Arduino

O que o ARDUINO?

Plataforma de desenvolvimento Simples

placa de circuito impresso com um microcontrolador ATMega da ATMEL (mas vamos j ver exemplos!?!??).

Caractersticas principaisde utilizao (Programao, utilizao); Cross-platform; Baixo custo; Open-Source. Simplicidade

A possibilidade de actuar no Mundo que nos rodeia.

Arduino o que consigo fazer?

Ler valores provenientes de sensores Acelermetros,

LDR, ultra-sons, entre muitos outros.

Actuar no Mundo exterior Leds,

Motores, Displays(LCD), entre muitos outros.

Capacidade de efectuar prottipos rapidamente e com grande simplicidade. E muito mais..

O que o Arduino? Exemplos ?

Algumas apresentaes possveis.

Mini Nano

LilyPad

Duemilinove

Mega

Arduino Duemilinove

Ou mais simplesmente

Ou ainda mais simplesmente

O que o Arduino?

Software

Vantagens

Claramente ser uma ferramenta Open-Source (Software e Hardware);Tem uma enorme comunidade de seguidores por todo o Mundo (Permite uma constante actualizao e inovao);

Pode operar sem a presena de um computador (standalone); Possibilidade de expandir a sua capacidade atravs da utilizao de shields.

O que so shields? Exemplos ?

Algumas apresentaes possveis.

Zigbee

Inputshield

Ethernet

Mas existem muitas mais.

Bibliografia (Alguns exemplos...)

Livros de texto Making Things Talk, Tom Igoe, OREILLY, 2007. Getting started with Arduino, Massimo Banzi,

OREILLY, 2007. Programming

Interactivity, Joshua Noble, OREILLY,

2009.

Outros Site

oficial (www.arduino.cc) ; Alguns Fruns (Lusorobtica, Portugal-a-Programar).

HardwareAnlise sua constituio

Microcontroladores utilizadosModelo Arduino Duemilinove Arduino Diecimilia Arduino Mega Arduino Nano LilyPad Pro Pro mini

Microcontrolador utilizado ATmega168 ou ATmega328 ATmega168 ATmega1280 ATmega168 ou ATmega328 ATmega168V ATmega168 ou ATmega328 ATmega168

Basicamente baseia-se em trs modelos microcontrolador: ATmega168, ATmega328 ATmega1280

de e

Microcontroladores utilizados (Exemplos de apresentao)

ATmega168 (PDIP)

ATmega1280 (TQFP)

ATmega328 (PDIP)

ATmega168/328/1280 Algumas caractersticasATmega168Flash SRAM 16 KB 1 KB

ATmega328Flash SRAM 32 KB 2 KB

ATmega1280Flash SRAM 128 KB 8 KB

EEPROMClock mximo ADC

512 bytes20 MHz 10 bit

EEPROMADC

1 KB10 bit

EEPROMADC

4 KB10 bit

Clock mximo 20 MHz Clock mximo 16 MHz

Consumo a 25C (Modo activo)

250 A 1 MHz (1.8 V)PWM I2C SPI RS232

Consumo a 25C (Modo activo)

0.2 mA 1 MHz (1.8 V)PWM I2C SPI RS232

Consumo a 25C (Modo activo)

500 A 1 MHz (1.8 V)PWM I2C SPI RS232

Outros

Outros

Outros

ATmega168/328/1280 Algumas caractersticas (Cont.)

Existe claramente uma diferena em termos de memria disponvel (SRAM, Flash e EEPROM);O ATmega328 apresenta a mesma arquitectura do ATmega168 mas com diferentes capacidades em termos de quantidade de memria disponvel;

Consumo energtico do ATmega1280 inferior ao do ATmega328 nas mesmas condies de funcionamento;Todos os modelos apresentados possuem a mesma resoluo no seu conversor A/D.

ATmega168/328

ATmega1280

Arduino Duemilinove vs MegaArduino DuemilinoveMicrocontroladorTenso de operao

Arduino MegaMicrocontroladorTenso de operao

Atmega168/3285V 6-20V 14 6 6 40 mA 50 mA

ATmega12805V 6-20V 54 16 14 40 mA 50 mA

Tenso de entrada (limites)Pinos de I/O digital Pinos analgico Pinos PWM Corrente DC por pino de I/O Corrente DC (3.3V)

Tenso de entrada (limites)Pinos de I/O digital Pinos analgico Pinos PWM Corrente DC por pino de I/O Corrente DC (3.3V)

Arduino Duemilinove vs Mega

Existe uma diferena clara em termos de nmero de pinos analgicos e digitais disponveis, com vantagem para o Arduino Mega; O Arduino Mega apresenta maiores dimenses que o Duemilinove, o que dependendo da aplicao pode um factor importante;

Funcionam ambos com as mesmas tenses de alimentao; Mas no podemos esquecer que o ATmega1280 (Arduino Mega) apresenta uma maior quantidade de memria disponvel (EEPROM, SRAM e Flash).

Atmega168/328 Anlise ao seu pinout vs Arduino

Arduino DuemilinoveReferncia Analgica Pinos digitais Power led Cristal FTDI Microcontrolador Reset Alimentao (Standalone) Boto de reset

Pinos alimentao

Pinos analgicos

Arduino MegaReferencia Analgica Pinos digitais (PWM) Pinos de comunicao

FTDI

ICSP

Pinos digitais

Microcontrolador Reset Cristal Boto de reset

Pinos alimentao

Pinos analgicos

SoftwareUma abordagem sua utilizao

Software de desenvolvimento Algumas caractersticas

Disponvel para download directamente do site oficial Arduino (www.arduino.cc);Open-Source; Cross-platform; Ambiente de desenvolvimento escrito em java; Sintaxe utilizada baseada na linguagem de programao de alto nvel C (Basicamente C..); Enorme simplicidade de utilizao, devido ao bootloader previamente gravado no microcontrolador.

Software de desenvolvimento

Compilar

Novo

Upload

Abrir Parar Compilar Leitura porta srie

Leitura da porta srie (Software Arduino)

Possibilita tambm a leitura e envio de dados utilizando a porta srie

Envio de dados Visualizar dados recebidos

Seleccionar a Baud rate

Ciclo de desenvolvimentoEditar Compilar Uploading Executar

Estrutura e SintaxeInstrues e estrutura do cdigo a utilizar

Estrutura do sketch//Declarao de bibliotecas #include #include #include //Declarao de variveis globais int i=0; float x=5.67; void setup() { //Instruo 1 //Instruo 2 }

Declarao de bibliotecas

Declarao de variveis globais

Funo setup Obrigatoriamente do tipo - void Funo loop

void loop() { //Instruo 3 //Instruo 4 }

Funes Importantes

A funo void setup() apenas executada uma vez, sendo utilizada para:

Inicializao de variveis;

Inicializao de da utilizao de bibliotecas;Definio dos pinos a utilizar; Incio do uso da comunicao srie.

A funo void loop() uma funo executada em loop. Apenas outras funes, cuja chamada feita ao executar esta funo, sero executadas.

Funes Analgicas e Digitais//Definio do pino Nmero do pino como INPUT ou OUTPUT pinMode(Nmero do Pino, Modo); EX: pinMode(13, OUTPUT); //Definio do pino Nmero do pino como HIGH ou LOW digitalWrite(Nmero do Pino, Modo); EX: digitalWrite(13, OUTPUT); //Permite a leitura do valor digital presente no Nmero do pino Varivel do tipo integer = digitalRead(Nmero do Pino); EX: leitura = digitalRead(5); // Permite a leitura do valor analgico presente no Nmero do pino Varivel do tipo integer = analogRead(Nmero do Pino); EX: leitura = analogRead(2); //Permite a criao de um pulso PWM com o duty cicle definido pelo valor analogWrite(Nmero do Pino, valor); EX: analogWrite(11,255);

PWM Pulse Width Modulation

PWM Pulse Width Modulation

Podemos ento concluir que a tenso mdia Vdc directamente proporcional ao duty cicle do sinal PWM.

Ciclo if.else.//Ciclo que utilizado para descrever uma condioIf(condio){ Instruo 1; Instruo 2; } else{ Instruo 3; Instruo 4; }

A condio referida anteriormente tem de respeitar as condies descritas na tabela acima. No caso descrito em cima se a condio se verificar o instruo 1 e 2 executada, caso contrrio so executadas a instruo 3 e 4.

Ciclo for//Ciclo que utilizado quando se pretende executar um determinado conjunto de instrues um certo nmero de vezes for( inicializao; condio; Incremento a efectuar){ Instruo 1; Instruo 2; () }

A condio referida anteriormente tem de respeitar as condies descritas na tabela acima. A inicializao da varivel apenas efectuada no inicio do ciclo, sendo a cada execuo do ciclo efectuado o respectivo incremento na varivel de controlo do ciclo.

Ciclo switch / case//Ciclo que normalmente utilizado para descrever uma lista de casos possveis para uma determinada varivel switch(varivel){ case 1: Instruo a executar quando a varivel for 1 (varivel == 1) break; case 2: Instruo a executar quando a varivel for 1 (varivel == 2) break; () default: Conjunto de instrues a executar se nenhuma das condies for verificada. A utilizao desta condio opcional. break; }

Ciclo while//Ciclo que utilizado quando se pretende executar um determinado conjunto de instrues um certo nmero de vezes while(condio){ Instruo 1; Instruo 2; }

Ciclo do..while

//Ciclo bastante semelhante ao ciclo while mas a condio apenas testada no fim do ciclo, sendo sempre executado o ciclo pelo menos uma vez do{ Instruo 1; Instruo 2; () while(condio);

ExemplosAplicao do exposto anteriormente a casos prticos

Exerccio 1

Faa com que um led acenda e apague com uma frequncia de 2 Hz. //Declarao de variveis globaisint ledpin=13; void setup() { pinMode(ledPin,OUTPUT); } void loop() { digitalWrite(ledPin,HIGH); Delay(500); digitalWrite(ledPin,LOW); Delay(500); }

Exerccio 2

Utilize um sinal digital de entrada (HIGH ou LOW) para fazer com que o led acenda ou apague (valor digital de entrada HIGH o led liga, valor digita de entrada LOW o led encontra-se desligado).

Exerccio 2 - Resoluo//Declarao de varive