tdc2014 - arduino legacy
TRANSCRIPT
![Page 1: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/1.jpg)
Trilha: Internet das CoisasArduino Legacy
Marcondes MaçaneiroLuiz Avila
![Page 3: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/3.jpg)
Marcondes Maçaneiro
Twitter: @lapavilaE-mail: [email protected] at: EFICIDGrupos de usuários: GUJavaSC, GDG Floripa
![Page 4: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/4.jpg)
Agenda
● Introdução ao Arduino● Motivação para Hackday● Persiana Control● Android Control● Chrome Control● Kineckt Control
![Page 5: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/5.jpg)
Introdução ao Arduino
● Plataforma baseada em Atmel da AVR (ATMega168);● Oferece um IDE e bibliotecas de programação de alto
nível;● Open-source hardware e software● Ampla comunidade● Programado em C/C++● Transferência de firmware via USB● MCU com bootloader● Placa controladora com entradas e saídas
![Page 6: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/6.jpg)
História
● Mássimo Banzi (Institute Ivrea, em 2005)● Nasceu para programação, computação física e gráfica● Baseou-se no Processing para criação da IDE● Possui inúmeras variantes● Utiliza linguagem Wiring (baseado em C++)● Licença Creative Commons
![Page 7: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/7.jpg)
Simplicidade
![Page 8: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/8.jpg)
Aplicações Práticas
● Robôs● Roupas eletrônicas● Máquinas de corte e modelagem 3D de baixo custo● Segway open-source● Desenvolvimento de celulares customizados● Instrumentos musicais● Paredes interativas● Instrumentação humana
![Page 9: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/9.jpg)
Tipo
● Mega● Lilypad● Nano● Uno● Pro● Arduino BT● Freeduino● Severino● Program-ME
![Page 10: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/10.jpg)
Atmega
● Características do ATmega 168○ RISC○ 20 MIPS (20 Milhões de instruções por segundo)○ 16Kb Flash / 512 b EEPROM / 1Kb RAM Estática○ 10.000 ciclos na Flash e 100.000 na EEPROM○ 2 contadores / temporizadores de 8bits○ 1 contador / temporizador de 16bits○ 1 temporizador de tempo real com clock a parte○ 14 portas digitais○ 6 portas analógicas
![Page 11: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/11.jpg)
Características Técnicas
● 6 canais PWM● 6 conversores analógico/digital de 10 bits● 1 serial programável (USART)● 1 interface SPI (Serial Peripheral Interface)● 1 interface serial a 2 fios (I2C)● 1 watch dog timer programável● 1 comparador analógico no chip● Interrupção ou wake-up na alteração de
estado dos pinos
![Page 12: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/12.jpg)
Características Técnicas
![Page 13: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/13.jpg)
Program-me v.20
![Page 14: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/14.jpg)
Program-me v.20
![Page 15: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/15.jpg)
Program-me v.20
![Page 16: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/16.jpg)
Persiana Control
![Page 17: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/17.jpg)
Programação Arduino#include <SPI.h>#include <Ethernet.h>EthernetServer server(80); byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x40, 0x02 };IPAddress ip(192,168,100, 110);int ligaVermelho;int ligaAmarelo;int ligaVerde;void setup(){ Ethernet.begin(mac, ip); server.begin(); pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(9,OUTPUT); ligaVermelho = 0; ligaAmarelo = 0; ligaVerde = 0; }
![Page 18: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/18.jpg)
Programação Arduinovoid loop(){ EthernetClient client = server.available(); if(client){ //Se tiver cliente conectado String get; //Cria um String essa String armazenará o que vem do cliente while(client.connected()){ //Inicia um laço, que repetirá enquanto houver o cliente conectado if(client.available()){ //Se tiver conexão com cliente char c = client.read(); //Le o que vem do cliente (neste caso vem Char por Char) get.concat(c); //Vai concatenando cada char que vem na String get
if (c == '\n') { if(get.substring(6,10) == "ve=1") { ligaVermelho = 1; }else{
if(get.substring(6,10) == "ve=0") { ligaVermelho = 0; }
} client.stop(); }
}
![Page 19: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/19.jpg)
![Page 20: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/20.jpg)
Cliente Android
![Page 21: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/21.jpg)
![Page 22: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/22.jpg)
#include "Device.h"#include "etherShield.h"#include "ETHER_28J60.h"#include "Ethernet.h"Device homeDevice=Device("central-device");Ethernet ethernet=Ethernet(&homeDevice);
void setup() { homeDevice.add("buzz", PWM, 6); homeDevice.add("fan", PWM, 9); homeDevice.add("pwm-aux1", PWM, 3); homeDevice.add("pwm-aux2", PWM, 5); homeDevice.add("speaker", DIGITAL, 4); homeDevice.add("relay1", DIGITAL, 7); homeDevice.add("relay2", DIGITAL, 8);
homeDevice.add("relay3", DIGITAL, 15); homeDevice.add("relay4", DIGITAL, 14); homeDevice.add("light", ANALOG, 3); homeDevice.add("temp", ANALOG, 2); //Starting booth communication! Serial.begin(115200); int ip[]={192,168,100,115}; ethernet.startNetwork(ip);}
void loop() { homeDevice.loop(); ethernet.loop();}
![Page 23: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/23.jpg)
Proposta para Nova Placa
![Page 24: TDC2014 - Arduino Legacy](https://reader034.vdocuments.com.br/reader034/viewer/2022042700/5590cbd11a28ab48538b47bd/html5/thumbnails/24.jpg)
Source Code
http://goo.gl/JpogTy
http://goo.gl/w7CCkX@vsenger