Arduino - Desenvolvendo com hardware livre

Post on 14-May-2015

3.188 views 0 download

description

Apresentação no #3DiaLivre na FIC

Transcript of Arduino - Desenvolvendo com hardware livre

ARDUINO

DESENVOLVENDO COM HARDWARE LIVRE

Marcelo Melo

Massimo Banzi & Arduino Team

Massimo Banzi é responsável pelo projeto Arduino, trabalhou por muitos anos como arquiteto de software em Milão e Londres, em projetos para clientes como a Itália Online, Sapient, do Partido Trabalhista, a BT, a MCI WorldCom , SmithKlineBeecham , StorageTek, a BSkyB e boo.com.

Foi professor durante quatro anos no " Interaction Design Institute Ivrea“. Lecionou, também em instituições como: CIID - Copenhaga, Architectural Association - Londres, Central Saint Martin - Londres, Bartlett - Londres, Basel Hyperwerk, Hochschule für Gestaltung und Kunst Basel, Hochschule für Gestaltung Schwäbisch Gmünd, FH Potsdam, na Domus Academy, Medialab Madrid, Escola Superior de Disseny Barcelona, o Ars Electronica em Linz, Amsterdam Mediamatic dentre outas.

O que é Arduino?

O projeto Arduino (http://www.arduino.cc) iniciou-se na cidade de Ivrea, Itália, em 2005, tinha como objetivo interagir em projetos escolares de forma a ter um orçamento menor que outros sistemas disponíveis naquela época.

Obteve reconhecimento através de uma menção honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Eletronica, além da marca de mais de 50.000 placas vendidas até outubro de 2008.

É uma placa de desenvolvimento aberta, que facilita criação de projetos eletrônicos e interativos de fácil acesso as pessoas.

Vantagens» Hardware e Software livres – além disso você pode fazer o download dos

arquivos de confecção da placa, comprar os componentes e montar sua placa sem pagar nada aos mantenedores do Arduino;

» Hardware de baixo custo, na maioria das placas o microcontrolador fica "espetado" em um soquete podendo ser facilmente removido para projetos Stand Alone ou substituido em caso de pane;

» Linguagem de fácil compreensão, já que eh baseada em C;

» A maioria das placas não necessita de harwdware adicional para fazer a gravação no microcontrolador, podendo ser feita pela porta USB, Serial ou Paralela!

» Tem um Ambiente de desenvolvimento multiplataforma, podendo rodar em Windows, Linux e Macintosh;

» Com a IDE de programação Processing, o desenvolvimento fica mais fácil, é muito utilizado por artistas e designers.

» Comunidade cada vez mais crescente e atuante, diariamente são postado dezenas de projetos, portanto há muita gente para auxiliá-lo;

» O Projeto Arduino foi concebido para pessoas comuns, designers, artista e engenheiros - pela facilidade no aprendizado- criarem hardwares interativos, de baixo custo, que proporcionem uma grande interação homem-máquina.

"A CRIATIVIDADE É O LIMITE!"

A filosofia Arduino

O ambiente de programação

O Hardware

A comunidade

O hardware

A placa do Arduino é composta por um microcontrolador com Atmel AVR de 8 bits da série megaAVR, especialmente os ATmega8, ATmega168, ATmega328 e a ATmega1280, e contam, na maioria, com uma estrutura de conectores fêmeas de 0,25 centímetros para facilitar a incorporação de outras placas(shields) ou até mesmo fios e conectores de pinos. Esses microcontroladores vêm pré-programado com o bootloader, que simplifica o processo de de carregamento do firmware para o chip de memória flash embutido no mesmo. Os Arduinos fabricados por usuários também se utilizam desses microcontroladores!

A comunicação do Arduino é serial, portanto as placas mais atuais contam com um chip FTDI FT232 para converter os sinais dos níveis RS-232 para uma comunicação via USB. Placas que não possuem esse chip necessitam de uma placa ou cabo especial para a comunicação com o PC.

A maioria dos pinos de I/O dos microcontroladores são para uso externo, seja com botões, sensores ou atuadores. A versão UNO, disponibiliza 14 pinos digitais, dos quais 6 podem produzir sinais PWM, além de 6 entradas analógicas.

O que precisa pra começar?

-Arduino (usb)-Protoboard-Fios-Resistores-Leds-Botões-LDR ou potenciometro-IDE Arduino

Vontade de aprender!

A IDE A IDE (Integrated Development Environment) do

Arduino é desenvolvida em Java, portanto, multiplataforma, tendo uma linguagem derivada do Processing (www.processing.org) e Wiring, tais características tornam mais fáceis a programação por pessoas não familiarizadas com o desenvolvimento de software sendo capaz de compilar e carregar programas para a placa com um único clique. Com isso não há a necessidade de editar Makefiles ou rodar programas em ambientes de linha de comando. A biblioteca chamada "Wiring", possui a capacidade de rodar códigos em C/C++ permitindo criar interações I/O com o mundo externo!

Quando pressionado o botão que envia o Sketch para a placa: o código é traduzido em linguagem C (que geralmente é muito difícil para

um iniciante de usar), e é passado para o compilador avr-gcc,este faz a tradução língua compreendida pelo microcontrolador.

ESTRUTURA DO FIRMWARE

/*Comentários de 2 linhas ou mais (opcional)

*/

void setup() //Inicializa as configurações

{ // Instruções}void loop() //Bloco que se repete até o microcontrolador seja reiniciado

{ // Instruções

}

Exemplo: BLINK (“Hello World”)/* Blink V1.0 rev.:0.0.Arduino-ce

Comunidade de Hardware Livre do Ceará*/

#define ledPin 13 // Pino em que o LED está conectado

void setup() { pinMode(ledPin, OUTPUT); // habilita o pino 13 para saída digital }

void loop(){ digitalWrite(ledPin, HIGH); // Põe o pino do led em nível alto (liga o led) delay(1000); // Aguarda 1000ms = 1segundo! digitalWrite(ledPin, LOW); // Põe o pino do led em nível baixo (desliga o led) delay(1000); // Aguarda 1000ms }

ARDUINO SERIAL» Microcontrolador: ATmega8» Voltagem de operação: 5V» Voltagem de entrada(recomendada): 7-12V» Limites de voltagem de entrada: 6-20V» Pinos de I/O digitais: 14 (dos quais 3 podem ser de saída PWM)» Pinos de entrada analógica: 6» Corrente DC por pino de I/O: 40 mA» Corrente DC para pino de 3.3V: 50 mA» Memória Flash: 8 KB dos quais 0.5 KB é utilizado no bootloader» Memória SRAM: 1 KB » Memória EEPROM: 512 bytes» Velocidade de Clock: 16 MHz

DUEMILANOVE» Microcontrolador: ATmega168» Voltagem de operação: 5V» Voltagem de entrada(recomendada): 7-12V» Limites de voltagem de entrada: 6-20V» Pinos de I/O digitais: 14 (dos quais 6 podem ser de saída PWM)» Pinos de entrada analógica: 6» Corrente DC por pino de I/O: 40 mA» Corrente DC para pino de 3.3V: 50 mA» Memória Flash: 16 KB ou 32KB (ATmega328) dos quais 2 KB são utilizados no bootloader» Memória SRAM: 1 KB ou 2KB(ATmega328)» Memória EEPROM: 512 bytes ou 1KB (ATmega328)» Velocidade de Clock: 16 MHz

ARDUINO NANO» Microcontrolador: ATmega168 ou ATmega328» Voltagem de operação: 5V» Voltagem de entrada(recomendada): 7-12V» Limites de voltagem de entrada: 6-20V» Pinos de I/O digitais: 14 (dos quais 6 podem ser de saída PWM)» Pinos de entrada analógica: 8» Corrente DC por pino de I/O: 40 mA» Memória Flash: 16 KB ou 32KB (ATmega328) dos quais 2 KB são utilizados no bootloader» Memória SRAM: 1 KB ou 2KB(ATmega328)» Memória EEPROM: 512 bytes ou 1KB (ATmega328)» Velocidade de Clock: 16 MHz

ARDUINO MEGA

» Microcontrolador: ATmega1280» Voltagem de operação: 5V» Voltagem de entrada(recomendada): 7-12V» Limites de voltagem de entrada: 6-20V» Pinos de I/O digitais: 54 (dos quais 14 podem ser de saída PWM)» Pinos de entrada analógica: 16» Corrente DC por pino de I/O: 40 mA» Memória Flash: 128KB dos quais 4 KB são utilizados no bootloader» Memória SRAM: 8KB» Memória EEPROM: 4KB» Velocidade de Clock: 16 MHz

LILYPAD ARDUINO» Microcontrolador: ATmega168 ou ATmega328» Voltagem de operação: 2,7V-5,5V» Voltagem de entrada(recomendada): 7-12V» Limites de voltagem de entrada: 2,7V-5,5V» Pinos de I/O digitais: 14 (dos quais 6 podem ser de saída PWM)» Pinos de entrada analógica: 6» Corrente DC por pino de I/O: 40 mA» Memória Flash: 16 KB dos quais 2 KB são utilizados no bootloader» Memória SRAM: 1 KB » Memória EEPROM: 512 bytes » Velocidade de Clock: 8 MHz

LILYPAD ARDUINO

LILYPAD ARDUINO

LILYPAD ARDUINO

Leah BuechleyAssistant Professor of Media Arts and SciencesAT&T Career Development ProfessorDirector, High-Low Tech GroupMIT Media Labhttp://web.media.mit.edu/~leah/index.html

ARDUINO PRO MINI» Microcontrolador: ATmega168 » Voltagem de operação: 3,3 ou 5V (dependendo do modelo)» Voltagem de entrada: 3,35V-12V (modelo 3,3V) ou 5V-12V (modelo 5V)» Pinos de I/O digitais: 14 (dos quais 6 podem ser de saída PWM)» Pinos de entrada analógica: 6» Corrente DC por pino de I/O: 40 mA» Memória Flash: 16 KB dos quais 2 KB são utilizados no bootloader» Memória SRAM: 1 KB» Memória EEPROM: 512 bytes» Velocidade de Clock: 16 Mhz (modelo 3,3V) ou 16MHZ (modelo 5V)

ARDUINO UNO» Microcontrolador: ATmega328» Voltagem de operação: 5V» Voltagem de entrada(recomendada): 7-12V» Limites de voltagem de entrada: 6-20V» Pinos de I/O digitais: 14 (dos quais 6 podem ser de saída PWM)» Pinos de entrada analógica: 6» Corrente DC por pino de I/O: 40 mA» Corrente DC para pino de 3.3V Pin : 50 mA» Memória Flash: 32 KB (ATmega328) dos quais 0.5 KB é utilizado no bootloader» Memória SRAM: 2 KB (ATmega328)» Memória EEPROM: 1 KB (ATmega328)» Velocidade de Clock: 16 MHz

ARDUINO UNO ETHERNET

Arduino+Ethernet em uma placa compacta com suporte a cartão microSD para armazenamento de dados.

Não tem uma porta USB integrada devendo-se utilizar um cabo FTDI (usb-serial) para gravar os sketches.

O QUE VEM POR AI...

(http://shieldlist.org/)

Faça o seu também!Paperduino

Loveduino

Severino

Ardupilot

Freeduino

CRACKER

Avião Snifferhttp://www.mundodoshackers.com.br/hackers-criam-aviao-sniffer

Shields

Shields são placas auxiliares que possuem uma (ou mais funções) aumentando assim, as funcionalidades no Arduino, ficam geralmente "plugadas" direto na placa. As

Shields podem ser compradas ou feitas :-)

Ethernetshield

Ethernetshield SD

Wishield

Wishield da AsyncLabs

Waveshield

Ladyada.net & Adafruit Industries (www.adafruit.com)

GPS LOGGER

Adafruit Industries (www.adafruit.com)

DATALOGGER

Adafruit Industries (www.adafruit.com)

OS SENSORES/ ATUADORES

Módulo de Rele da

Seedstudios

Driver de motor DC

Sensor de temperatura LM35

Sensor de luz

Alguns projetos

Android + Arduino http://www.amarino-toolkit.net

OBRIGADO!

http://arduino-ce.blogspot.com