Arduino - Desenvolvendo com hardware livre

36
ARDUINO DESENVOLVENDO COM HARDWARE LIVRE Marcelo Melo

description

Apresentação no #3DiaLivre na FIC

Transcript of Arduino - Desenvolvendo com hardware livre

Page 1: Arduino - Desenvolvendo com hardware livre

ARDUINO

DESENVOLVENDO COM HARDWARE LIVRE

Marcelo Melo

Page 2: Arduino - Desenvolvendo com hardware livre

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.

Page 3: Arduino - Desenvolvendo com hardware livre

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.

Page 4: Arduino - Desenvolvendo com hardware livre

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!"

Page 5: Arduino - Desenvolvendo com hardware livre

A filosofia Arduino

O ambiente de programação

O Hardware

A comunidade

Page 6: Arduino - Desenvolvendo com hardware livre

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.

Page 7: Arduino - Desenvolvendo com hardware livre

O que precisa pra começar?

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

Vontade de aprender!

Page 8: Arduino - Desenvolvendo com hardware livre

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.

Page 9: Arduino - Desenvolvendo com hardware livre

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

}

Page 10: Arduino - Desenvolvendo com hardware livre

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 }

Page 11: Arduino - Desenvolvendo com hardware livre
Page 12: Arduino - Desenvolvendo com hardware livre
Page 13: Arduino - Desenvolvendo com hardware livre

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

Page 14: Arduino - Desenvolvendo com hardware livre

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

Page 15: Arduino - Desenvolvendo com hardware livre

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

Page 16: Arduino - Desenvolvendo com hardware livre

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

Page 17: Arduino - Desenvolvendo com hardware livre

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

Page 18: Arduino - Desenvolvendo com hardware livre

LILYPAD ARDUINO

LILYPAD ARDUINO

Page 19: Arduino - Desenvolvendo com hardware livre

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

Page 20: Arduino - Desenvolvendo com hardware livre

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)

Page 21: Arduino - Desenvolvendo com hardware livre

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

Page 22: Arduino - Desenvolvendo com hardware livre

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.

Page 23: Arduino - Desenvolvendo com hardware livre

O QUE VEM POR AI...

Page 24: Arduino - Desenvolvendo com hardware livre

(http://shieldlist.org/)

Page 25: Arduino - Desenvolvendo com hardware livre

Faça o seu também!Paperduino

Loveduino

Severino

Page 26: Arduino - Desenvolvendo com hardware livre

Ardupilot

Freeduino

Page 27: Arduino - Desenvolvendo com hardware livre

CRACKER

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

Page 28: Arduino - Desenvolvendo com hardware livre

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 :-)

Page 29: Arduino - Desenvolvendo com hardware livre

Ethernetshield

Ethernetshield SD

Page 30: Arduino - Desenvolvendo com hardware livre

Wishield

Wishield da AsyncLabs

Page 31: Arduino - Desenvolvendo com hardware livre

Waveshield

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

Page 32: Arduino - Desenvolvendo com hardware livre

GPS LOGGER

Adafruit Industries (www.adafruit.com)

Page 33: Arduino - Desenvolvendo com hardware livre

DATALOGGER

Adafruit Industries (www.adafruit.com)

Page 34: Arduino - Desenvolvendo com hardware livre

OS SENSORES/ ATUADORES

Módulo de Rele da

Seedstudios

Driver de motor DC

Sensor de temperatura LM35

Sensor de luz

Page 35: Arduino - Desenvolvendo com hardware livre

Alguns projetos

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

Page 36: Arduino - Desenvolvendo com hardware livre

OBRIGADO!

http://arduino-ce.blogspot.com