Escolar Documentos
Profissional Documentos
Cultura Documentos
Exemplos
●
● Shields
● Sensores
● Projetos
● Automação Residencial..
● OpenDevice (Hands-On)
● Arduino / Raspberry e Similares
● Protocolos de Comunicação
● Brincando via JavaScript
● Comunicação em real-time utilizando WebSockets
● Utilizando o Android
Agenda
Apresentação
Ricardo JL Rufino
➔ Esp. em Engenharia de Software
➔ Mestrando em Gestão de TI (UFPE)
GENIAL !!!! = )
Como vim para aqui ?
●
Depois a meta era uma Guitarra !
● Resumindo:
2 anos juntando mesada !
E o amplificador ?
E o amplificador ?
• Severino
• Brasuíno
Similares
Digispark Digispark
Similares
●
O que não temos, podemos criar !
●
O que não temos, podemos criar !
Dúvidas ?
Características de Hardware
Arduino Uno
Arduino Uno
● Microcontrolador: ATmega328p (8-bit AVR RISC);
● Tensão de operação: 5V;
● Tensão de entrada (recomendada): 7-12V;
● Pinos digitais de E/S:14 (6 podem ter sinal PWM);
● Pinos com entrada analógica: 6;
● Corrente máxima por pino de E/S: 40 mA;
● Hardware para comunicação: 1 porta serial (UART TTL), I2C (TWI), SPI;
● Memória Flash (de programa): 32 kB (0,5 kB são usados pelo bootloader);
● Memória SRAM: 2 kB; EEPROM: 1 kB;
● Frequência de clock: 16 MHz.
http://arduino.cc/en/Main/arduinoBoardUno
Arduino UNO
Arduino Leonardo
Arduino Leonardo
● Microcontrolador: ATmega32u4 (Atmel 8-bit AVR RISC);
● Tensão de operação: 5V;
● Tensão de entrada (recomendada): 7-12V;
● Pinos digitais de E/S: 20 (7 podem ter sinal PWM);
● Pinos com entrada analógica: 12;
● Corrente máxima por pino de E/S: 40 mA;
● Hardware para comunicação: 1 porta serial (UART), I2C (TWI), SPI, USB 2.0
(emula teclado ou mouse);
● Memória Flash (de programa): 32 kB (4 kB usado pelo bootloader)
● Memória SRAM: 2,5 kB; EEPROM: 1 kB;
● Frequência de clock: 16 MHz.
● Suporte a comunicação USB no próprio ATmega32u4;
http://arduino.cc/en/Main/arduinoBoardLeonardo
Arduino Mega 2560
Arduino Mega 2560
● Microcontrolador: ATmega2560;
● Tensão de operação: 5V;
● Tensão de entrada (recomendada): 7-12V;
● Pinos digitais de E/S: 54 (15 podem ter sinal PWM);
● Pinos com entrada analógica: 16;
● Corrente máxima por pino de E/S: 40 mA;
● Hardware para comunicação: 4 portas seriais (UART), I2C (TWI), SPI, USB 2.0
(emula teclado ou mouse);
● Memória Flash (de programa): 256 kB (8 kB são usados pelo bootloader)
● Memória SRAM: 8 kB; EEPROM: 4 kB;
● Frequência de clock: 16 MHz.
O que é um Microcontrolador?
● CPU de pequeno porte, capaz de executar um
conjunto de instruções;
● Ou seja, possui um microprocessador!
● – Instruções simples e rápidas;
● – Possui memória(s);
● – Possui periféricos;
● – Pode se comunicar com outros periféricos;
Microcontrolador
Microcontrolador
Diagrama do PIC16F887
Microcontrolador
Comparativo Arduinos
Software e Programação
Programação (Blink)
Desliga
Esquema / Ligações
Esquema / Ligações
No LED a maior perna é o positivo
10
Prática ?!
8
Coluna 1
6 Coluna 2
Coluna 3
0
Linha 1 Linha 2 Linha 3 Linha 4
Dúvidas ?
Antes do Arduino
http://www.avr-tutorials.com/
Antes do Arduino
Digital I/O Assembly
http://www.avr-tutorials.com/
Antes do Arduino
● Processo Lento
● Mais caro
● Mais Complexo
OK !!! Voltando....
Exemplo 2 : Botão (Leitura Digital)
Exemplo 2 : Botão (Leitura Digital)
Exemplo 2 : Botão (Leitura Digital)
http://arduino.cc/en/Tutorial/DigitalReadSerial
Exemplo 2 : Botão (explicação)
http://www.arduino.cc/en/tutorial/potentiometer
Potenciômetro : Leitura Analógica
Potenciômetro : Código
Potenciômetro : Leitura Analógica
● analogRead() - Lê valores dos pinos analógicos
● O conversor A/D do microcontrolador ATmega328 possui 10
bits de resolução, gerando valores na faixa 0 a 1023
conforme a tensão no pino, que varia de 0v a 5v.
● A quantidade de pinos analógicos varia em cada modelo.
● Demora 100 microsegundos (0.0001 s) para ler (10,000
leituras / seg)
Sensor de Luz : LDR
● LDR (do inglês Light Dependent Resistor) ou Photo-resistor
● Componente eletrônico passivo do tipo resistor variável
● A medida que a intensidade da luz aumenta, a sua resistência
diminui.
● Não é muito preciso !
Sensor de Luz : LDR
Modo Pull-Down
Pouca Luz → Valor Baixo
Modo Pull-Up
Pouca Luz → Valor Alto
Sensor de Luz : Código
Shields Arduino
● Sistema modular para expandir as
funcionalidades do arduino.
● A parte mais genial !!!
● Uma lista enorme pode
ser encontrada em:
http://shieldlist.org/
12
10
Exemplos
8
Coluna 1
6 Coluna 2
Coluna 3
0
Linha 1 Linha 2 Linha 3 Linha 4
Shield : Ethernet
Shield : WiFly Shield
https://www.sparkfun.com/products/9954
Shield : Cellular with SM5100B
https://www.sparkfun.com/products/9607
Shield : GPS
https://www.sparkfun.com/products/10710
Shield : XBee
Shield : Color LCD Shield
https://www.sparkfun.com/products/retired/9363
Shield : Relay Shield
http://www.seeedstudio.com/depot/relay-shield-v20-p-1376.html?cPath=132_134
Shield : MP3 Player Shield
12
10
Sensores
8
Coluna 1
6 Coluna 2
Coluna 3
0
Linha 1 Linha 2 Linha 3 Linha 4
http://www.trossenrobotics.com/
Sensores
http://www.trossenrobotics.com/c/arduino-sensors.aspx?sort=SalesRank
Sensores
http://www.trossenrobotics.com/c/arduino-sensors.aspx?sort=SalesRank
Sensores
http://www.trossenrobotics.com/c/arduino-sensors.aspx?sort=SalesRank
12
10
Robôs
8
Coluna 1
6 Coluna 2
Coluna 3
0
Linha 1 Linha 2 Linha 3 Linha 4
Robôs
Robôs
Robôs
Robôs
Automação Residencial
Automação Residencial
● Ligar/Desligar qualquer eletrodoméstico
● Controlar iluminação, temperatura
● Sensores de Presença (segurança)
● Controle de portas e portões automáticos
● Controle Centralizado
● Controle Remoto (pela internet)
● Economia de Energia e Monitoramento de Consumo
● Hardware barato ( Redução de Custos !!!! )
Automação Residencial
12
10
Projetos
8
Coluna 1
6 Coluna 2
Coluna 3
0
Linha 1 Linha 2 Linha 3 Linha 4
Twitter Enabled Coffee Pot
http://www.instructables.com/id/Tweet-a-Pot-Twitter-Enabled-Coffee-Pot/
Inebriator
http://www.theinebriator.com/
Flamethrowing Jack-O'-Lantern
http://www.instructables.com/id/Flamethrowing-Jack-O-Lantern/
Tree Climbing Robot
http://www.instructables.com/id/Tree-Climbing-Robot/
Arduino R/C Lawnmower
http://www.instructables.com/id/Arduino-RC-Lawnmower/
http://www.wired.com/2013/01/wearable-arduinos/#slideid-351561
Drones
ArduIMU Quascopter
http://thecoolgadgets.com/arduimu-quascopter-diy-arduino-helicopter-4-infrared-and-1-ultra-sonic-sensors/
Dúvidas ?
12
10
8
Problema !!
Como fazer a comunicação com esses equipamentos / dispositivos
Coluna 1 ?
6 Coluna 2
Coluna 3
Os
4 padrões ainda estão sendo criados.... (verdadeira gerra !)
2
É preciso ser fácil
0
Linha 1 Linha 2 Linha 3 Linha 4
1 Alternativas com JAVA ?
12 USB ??
A Sun nos abandonou ! (JavaComm/JSR80 ?!?)
●10
0
Linha 1 Linha 2 Linha 3 Linha 4
●
Desktop nem pensar !! e Raspberry ?? rsrsr
8
●
4 Problema : Ultimo release é de 2008
Snapshot em 2010
2
0
Linha 1 Linha 2 Linha 3 Linha 4
0
Linha 1 Linha 2 Linha 3 Linha 4
Tudo junto ?
12
10
8
Dá um trabalhinho !
Coluna 1
6 Coluna 2
2 Correção de Erros
0
Precisa ter uma boa experiência
Linha 1
Etc.. etc...
Linha 2 Linha 3 Linha 4
12
Solução ?
10
Coluna 1
0
Linha 1 Linha 2 Linha 3 Linha 4
OpenDevice
Open IoT (Internet Of Things) Platform and Framework.
* C / Arduino
Blink - Java
Blink Java (mais livre)
Blink Java (Comandos)
Incrementando no Arduino
* C / Arduino
Incrementando no JAVA
Definição de Dispositivos
* JAVA
Adicionando Rest !
Adicione essa linha e seja feliz !!!
… ou com JavaScript !
Agora ficou sério ! WebSockets !
Adicione essas linhas e fique Real-Time e de quebra servidor http !