Roteiro O que Arduino ? O projeto Arduino Modelos Como funciona ? Conhecimentos necessrios Shields Projetos Exemplos de cdigos Componentes de Interfaceamento Porta Serial ...
2 O que o Arduino ?
3 O que o Arduino ?
O Arduino uma plataforma de prototipao eletrnica open-source cujo objetivo est na flexibilidade, fcil uso do hardware e software. Destina-se aos artistas, designers, hobbyists e qualquer um interessado na interao entre objetos e ambientes.
4 O projeto Arduino O projeto iniciou-se na cidade de Ivrea, Itlia, em 2005, com o intuito de interagir em projetos escolares de forma a ter um custo menor que outros sistemas de prototipagem disponveis naquela poca.
Seu sucesso foi sinalizado com o recebimento de uma meno honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Electronica, alm da marca de mais de 50.000 placas vendidas at outubro de 2008. 5 O projeto Arduino 6
Massimo Banzi e David Cuartielles nomearam o projeto usando o nome de um bar!
Arduino um nome italiano que significa forte amigo
Em fevereiro de 2010 mais de 120 mil plataformas Arduino foram vendidas!
O projeto Arduino
O Arduino licenciado pela Creative Commons Attribution Share-Alike 2.5 e disponibilizado no site www.arduino.cc.
Os Layouts, programas, bootloaders, IDE tambm esto disponveis para Download.
O Cdigo Fonte da IDE do Arduino e suas bibliotecas esto disponveis sob a licena GPLv2. 7 Arduino Team
The Arduino Project team (back) Dave Mellis, Tom Igoe; (front) Gianluca Martino, David Cuartielles, Massimo Banzi 8 Modelos oficiais
Principais modelos 9 Diecimila 10 Duemilanove 11 Uno (2010) 12 Mega2560 13 Arduino Severino 14 Layout Arduino Severino 15 Como funciona?
1 Passo: ligar a placa via cabo usb
2 Passo: saber programar (em qq coisa!)
3 Passo: clicar em baixar na placa!
4 Passo: n tem! 16 Simples Assim! 17 Software do Arduino 18 A IDE do Arduino uma aplicao cross-platform escrita em Java a qual derivada da IDE utilizada na programao utilizando Processing e no projeto Wiring que so destinadas introduzir a programao para artistas e pessoas no familiarizadas com o desenvolvimento de software.
A IDE possui uma biblioteca escrita em C/C++ denominada Wiring(originadas do projeto Wiring) a qual facilita a interao entre a programao e as interfaces eletrnicas do Arduino.
Software do Arduino 19 Os programas em Arduino so escritos em C/C++, no entanto para definirmos um programa bsico e funcional no Arduino, precisamos apenas de duas funes bsicas e necessrias:
setup() Funo que executada apenas uma vez no comeo do programa a qual pode ser utilizada para configurao e inicializao de pinos/portas.
loop() Funo principal, chamada repetidamente at a placa ser desligada.
Modelo de Programa 20 Software do Arduino 21 O cdigo acima no parece ser um padro vlido dos compiladores de C/C++, mas quando o usurio clica no boto de Upload para a placa, uma cpia do cdigo escrita temporariamente como um programa em C/C++ com uma funo main() para obedecer ao padro do compilador.
A IDE do Arduino utiliza a GNU toolchain e a AVR Libc para a compilao dos programas utilizando a avrdude para baixar o programa na placa. Splash IDE Arduino 22 23
Hardware do Arduino A plataforma Arduino consiste de um microcontrolador Atmel AVR de 8 bits alm dos componentes eletrnicos que facilitam a programao e o interfaceamento com outros circuitos.
Um aspecto importante do Arduino o seu padro de conectores os quais facilitam o upgrade do hardware atravs de circuitos independentes chamados de Shields.
Os Arduinos oficiais utilizam a srie de chips megaAVR, especificamente o ATmega8, ATmega168, ATmega328, ATmega1280 e ATmega2560. 24 Hardware do Arduino Cristal oscilador de 16MHz, no entanto, o LilyPad funciona a 8MHz. As placas do Arduino incluem reguladores de tenso a 5V, ou seja, pode-se aliment-las em um range de 7V- 12V.
O microcontrolador do Arduino pre- programado com um bootloader no qual facilita o upload do cdigo na memria flash do microcontrolador.
Um dos motivos do sucesso do Arduino a reprogramao sem ter que retirar o chip do circuito do projeto e conect-lo placa programadora.
25 Hardware do Arduino As plataformas Arduino so programadas utilizando o protocolo RS-232 (protocolo da porta Serial). As placas possuem um conversor do nvel RS-232 (12V) para sinais nvel TTL (5V). O chip MAX232 amplamente utilizado para tal converso.
No Arduino propriamente dito a converso se d atravs do chip da FTDI com o FT232. Algumas plataformas so programveis via bluetooth ou outros mtodos (quando usadas as ferramentas de programao do prprio fabricante ao invs da IDE do Arduino).
26 O que um microcontrolador? Um microcontrolador (tambm denominado MCU) um computador-num-chip, contendo um processador, memria e perifricos de entrada/sada. um microprocessador que pode ser programado para funes especficas, em contraste com outros microprocessadores de propsito geral (como os utilizados nos PCs). Eles so embarcados no interior de algum outro dispositivo (geralmente um produto comercializado) para que possam controlar as funes ou aes do produto. 27 O que um microcontrolador? Os microcontroladores se diferenciam dos processadores, pois alm dos componentes lgicos e aritmticos usuais de um microprocessador de uso geral, o microcontrolador integra elementos adicionais em sua estrutura interna, como memria de leitura e escrita para armazenamento de dados, memria somente de leitura para armazenamento de programas, EEPROM para armazenamento permanente de dados, dispositivos perifricos como conversores analgico/digitais (ADC), conversores digitais/analgicos (DAC) em alguns casos; e, interfaces de entrada e sada de dados.
28 O que um microcontrolador? Com freqncias de clock de poucos MHz (Megahertz) ou talvez menos, os microcontroladores operam a uma freqncia muito baixa se comparados com os microprocessadores atuais, no entanto so adequados para a maioria das aplicaes usuais como por exemplo controlar uma mquina de lavar roupas ou uma esteira de cho de fbrica.
29 O que um microcontrolador? 30 O seu consumo em geral relativamente pequeno, normalmente na casa dos miliwatts e possuem geralmente habilidade para entrar em modo de espera (Sleep) aguardando por uma interrupo ou evento externo, como por exemplo o acionamento de uma tecla, ou um sinal que chega via uma interface de dados. O consumo destes microcontroladores em modo de espera pode chegar na casa dos nanowatts, tornando-os ideais para aplicaes onde a exigncia de baixo consumo de energia um fator decisivo para o sucesso do projeto. O que um microcontrolador? De forma oposta aos microprocessadores, onde se superdimensiona ao mximo tendo como limite o preo que o usurio deseja investir, a escolha do microcontrolador feita pelo projetista do equipamento. erro de projeto superdimensionar. Cada desperdcio ser multiplicado pelo numero de equipamentos fabricados (as vezes milhes). Por isso existem duas linhas de pesquisa paralelas mas opostas: uma criando microcontroladores mais capazes, para atender produtos de mais tecnologia como os novos celulares ou receptores de TV digital e outra para criar microcontroladores mais simples e baratos, para aplicaes elementares (como um chaveiro que emite sons).
31 O que um microcontrolador? 32 De forma diferente da programao para microprocessadores, que em geral contam com um sistema operacional e um BIOS, o programador ou projetista que desenvolve sistemas com microcontroladores tem que lidar com uma gama muito grande de desafios, fazendo muitas vezes todo o processo construtivo do aparelho: BIOS, firmware e circuitos.
33 Bootloader 34 Num microcontrolador comum, o programa compilado por ns programado no chip atravs de um circuito especial (firmware) compatvel, conhecido por programador. No entanto, isto implica que preciso tirar o microcontrolador do PCB e p-lo no programador. Repetindo este cenrio muita vezes podemos danificar os pinos do microntrolador bem como o PCB. Bootloader 35 Da existir uma outra alternativa de programar os nossos microcontroladores: explorar a funcionalidade RS232 dos nossos chips e transferir o programa compilado pela porta serial, on-chip (sem a necessidade de remover o micro do PCB). Para que isso seja possvel, previamente programado no microcontrolador um pequeno programa (inferior a 200 palavras) que controla a comunicao com o PC e que transfere a informao recebida para a memria de programa do microntrolador. Este programa designado por bootloader. Bootloader 36 O seu princpio de funcionamento simples. Sempre que o microcontrolador for ligado, inicia- se a execuo do bootloader. Este comea por perguntar ao PC sobre o que fazer.
Se no disser nada num determinado prazo e se existir um programa na memria do chip, o bootloader executa-o. Caso receba informaes do PC, iniciado o processo de transferncia e armazenamento do novo programa. Exemplo de bootloader 37 Algumas Interfaces do Arduino Utilizando o Arduino Mega2560 para a explicao temos: 54 pinos de escrita e leitura DIGITAIS.
16 pinos de leitura ANALGICA.
3 portas Seriais
Dos 54 pinos digitais, 14 so utilizados para PWM ! 38 Interfaces Digitais 54 pinos de leitura e escrita Digitais
No colocar mais 5V em qualquer pino de leitura/escrita do Arduino.
Os nveis digitais do Arduino so: Nvel Lgico 0 (LOW) = 0~2V(na leitura), 0V (na escrita) Nvel Lgico 1 (HIGH) = 3~5V(na leitura), 5V (na escrita)
39 Exemplo - Digital 40 Interfaces Analgicas 41 16 pinos de leitura de sinais Analgicos
No colocar mais 5V em qualquer pino de leitura/escrita do Arduino.
O Arduino possui uma preciso de 10 bits para sinais analgicos de 0 a 5V. Representados no programa de 0 a 1023. Aprox 0,005V por unidade !
A taxa de amostragem varia de 50KHz a 200KHz podendo ser alterada caso a preciso diminua. (Deixa queto ...) Exemplo - Analgico 42
Interfaces Seriais 43 3 portas Seriais no Arduino Mega
Cada porta Serial composta por 2 pinos, 1 para a transmisso dos dados (TX) outra para a recepo de dados(RX).
A comunicao Serial se d na transmisso de Bytes serialmente, ou seja, 1 Byte transmitido por vez. Mais prtico j que em 1 fio so transmitidos os Bytes e em outro so recebidos.
Mais lento j que apenas 1 Byte transmitido por vez.
Utilizam UART para sincronizar a comunicao. Interfaces Seriais 44 Importantes para comunicao de dispositivos que implementam a interface Serial atravs do protocolo RS-232.
As portas seriais construdas utilizando conectores DB9(prximo slide) trabalham a 12V. No ligar diretamente ao Arduino !
Implementar a converso SERIAL-TTL !
Ao utilizarmos dispositivos independentes devemos conectar seus GNDs para as corretas referncias! Conector DB9 45 Converso SERIAL-TTL 46 Pinos PWM 47 Basicamente os 14 pinos digitais PWM so capazes de escrever nveis de tenso de 0 a 255 mapeados em 0~5V, ou seja, aprox 0,02V para cada unidade.
Considera-se portanto, uma sada analgica utilizando um pino Digital.
Frequncia de trabalho em aprox 490Hz
Mas o que de fato PWM ?! PWM 48 Pulse Width Modulation, ou PWM, uma tcnica para obtermos resultados analgicos atravs de sadas digitais. O controle digital usado para criar uma onda quadrada ligando e desligando o sinal. A rpida mudana entre ligar e desligar capaz de simular voltagens entre 5V e 0V (Voltagens do Arduino) de acordo com o tempo que se liga e se desliga o sinal. O tempo em que o sinal est ligado chamado de largura de pulso. Para obtermos os valores analgicos mudamos(modulamos) a largura do pulso. Caso queiramos controlar o brilho de um LED utilizamos o PWM para tal propsito.
PWM 49 Exemplo - PWM 50 Mega2560 51 Shields Os Arduinos Shields so placas que podem ser conectadas diretamente ao Arduino aumentando suas capacidades!
Os diferentes Shields seguem a mesma filosofia da plataforma: fceis de usar e baratas de comprar !
Pode-se utilizar mais de um Shield simultaneamente. 52 Ethernet Shield 53 Ethernet Shield 54
XBee Shield 55
Joystick Shield 56
Ethernet+Proto Shield 57
GPS Shield 58
Wi Shield (wifi) 59
TouchShield + BatteryShield 60 ... 61 Projetos 62 Projetos http://www.youtube.com/watch?v=sLVXmsbVwUs&fe ature=player_embedded http://blogs.nokia.com/pushn900/category/sketch- your-world/ http://hacknmod.com/hack/use-the-wii-and-iphone- to-control-an-rc-car/ http://www.youtube.com/watch?v=pFPTlWSUL9s http://www.youtube.com/watch?v=pn_hxGk-6LA http://blubee.com/theblog/?cat=17 http://www.thepemberton.com/posts/archives/271 http://www.youtube.com/watch?v=GU8Ej0c2R14&fe ature=related 63 Monte o seu ! 64 Hardware Livre com Arduino. Fbio Leite Soares fls2@cin.ufpe.br