Existe um mundo lá fora esperando para ser controlado: Delphi Mobile + Arduino

Post on 26-Jan-2017

232 views 2 download

Transcript of Existe um mundo lá fora esperando para ser controlado: Delphi Mobile + Arduino

Arduino+Delphi MobileExiste um mundo lá fora esperando para ser controlado!

[Victory Fernandes]

Victory Fernandes• Eu amo Delphi desde 1998 • Embarcadero MVP; Evangelista Gnostice• CTO da TKS Software• Eng. Eletricista; Pós Docência; MSc. Medicina – Neurociência

@victoryjorge

Já trabalhou com microcontroladores?

mbed NXP LPC1768Equipamento médico portátil para acompanhamento do comprometimento motor em pacientes com doença de parkinson

• Introdução IoT

www.arduino.cc Arduino Uno, Mega, DUO

• Plataformas microcontroladas para prototipagem simples e flexível• Hardware e software open-source• Dimensão física e peso, recursos, consumo, aplicação?• 8bits, 32bits…• 16MHz, 95Mhz…• 32KB-512KB Flash; 2KB-32KB RAM…• 8051, PIC, AtMega, ARM…• Intel, Microchip, Atmel, Freescale, NXP…

Desmistificando Microcontroladores

Digital I/Os

•Pinos numerados de 0 to 13

•0 (zero) = LOW = 0 Volts•1 (um) = HIGH = 5 Volts

•Corrente máxima de saída 20mA

Digital I/Os

Analog Input

• Pinos numerados de A0 a A5

• Tensão de entrada de 0 a 5V é mapeada em um Byte• Valores binário de 0000-0000 a 1111-1111• Valores decimais de 0 a 255

• Permite leitura de sensores analógicos de temperatura, distância, luminosidade e etc...

Analog Input

• RISC• Reduced Instruction Set Computer• 131 instruções Assembler; 1 instrução por ciclo

• A 16MHz quase 16x106 linhas de código por segundo!

ATMega328P

•Memória EEPROM, uma vez gravada não há necessidade de energia para manter o conteúdo.

•Seu código C é armazenado aqui depois de fazer o download para o microcontrolador

Memória Flash - 32KB

•Static Random Access Memory, mantém seu conteúdo desde que haja energia; Não é preciso refresh como no caso da DRAM.

•Aqui o microcontrolador executa seu programa... Sem energia? O status de execução e todas as variáveis é perdido!

Memória SRAM - 2KB

•Electrically-Erasable Programmable Read-Only Memory

•Aqui podemos armazenar informações que não queremos perder após desligar a energia!

Memória EEPROM - 1KB

Existe muito mais…

SPI-Serial Peripherical Interface

I2C-inter-Integrated Circuit

Não é muito?

E o que são shields?

+ +

+ =

www.shieldlist.org

shieldlist.org

GameDuinoSaida VGAAudio Stereo

NTSC e PAL

Video

Joystick

Joystick

MP3

Som

VoiceBoxSerial to Voice

LCD colorido Display 16x2

Display de 7 segmentos

Touch

Display

Controle de MotorPonte H – 1A

Controle de MotorPonte H – 2A

Motores

Ethernet

Wi-Fi

Rede

microSD

SDCard logger

Armazenamento

ZigBee

CanBus

Automação

Saídas a Relé

Protoboard

Monte seu circuito!

Placa perfurada

• Introdução IoT

www.arduino.cc Arduino Mini, Micro, Nano…

Tamanho reduzido…

www.arduino.cc Arduino Lilypad

Projetos Wearable…

Funcional Estética Diversão

"Hello world”?

"Hello world”?

"Hello world”?

"Hello world”?

"Hello world”?

Robocore Padawanwww.robocore.net/loja/produtos/arduino-shield-padawan.html

RGB LED

DFRobot accessory boardwww.dfrobot.com/index.php?route=product/product&path=35&product_id=1045

RGB LED

“Hello World”?

LED pin 13

Delphi Android/iOS app

ON

OFF

UDP Server192.168.1.177:8888

’H’ ’H’ ’H’=On’L’ ’L’ ’L’=Off

Vamos construir um proposta de

protocolo genérico de controle?

Demo que acompanha o compilador do Arduino

Código original do demo…Configure aqui seu Arduino na rede!

Código adicionado ao exemplo original!

Código adicionado ao exemplo original!

agora temos um código que aciona um pino quando recebe

a String ‘H’ ou ‘L’

LED demo app…

Que a força esteja com vc!

LED é 5 VDC…

Precisamos de 110/220 VAC…

Interruptor tradicional…

Relés

1

2

3

4 5

1

23

4

5

Embobinamento + Corrente = Campo Magnético

Módulo relé… R$ 15,00www.robocore.net/loja/produtos/modulo-rele.html

Módulo relé… R$ 15,00www.dfrobot.com/index.php?route=product/product&search=relay&description=true&product_id=64

Circuito da lâmpada…

App para acionamento da lâmpada…

Aplicação simples na vida real…

Robocore Padawanwww.robocore.net/loja/produtos/arduino-shield-padawan.html

Sensor Temperatura

Joystick

Potenciômetro

RGB LEDConector genérico suportaEntrada DigitalSaída Digital ou PWM

Display 7 segmentos

Sensor de Luz

DFRobot accessory boardwww.dfrobot.com/index.php?route=product/product&path=35&product_id=1045

RGB LED

Joystick

Potenciômetro

ReléBuzzer

LCD Display

Pressão/Humidade

E para interface com qualquer pino?

para ‘Digital’ ou ‘Analog’?

Strings suportadas…

‘dw04h’ = digital write pino 4 high‘dr02’ = digital read pino 02

‘aw03255’ = analog write pino 3 valor 255

‘ar02’ = analog read pino 2

Código completo em C para Arduino…

@ victoryfernandes@yahoo.com.br@victoryjorgewww.youtube.com/c/victoryfernandes