perlduino - interfaceando sua aplicação com o mundo real!

24
Perl + Arduino Extendendo sua aplicação ao mundo real! http://rio.pm.org http://www.arduinrio.cc

Upload: samir-siqueira

Post on 12-May-2015

1.726 views

Category:

Documents


0 download

DESCRIPTION

Palestra que dei no Encontro Técnico de Perl da comunidade http://rio.pm.org no dia 19/09/0210http://rio.pm.org/enc_tecnicos.pl

TRANSCRIPT

Page 1: Perlduino - Interfaceando sua aplicação com o mundo real!

Perl + ArduinoExtendendo sua aplicação ao

mundo real!

http://rio.pm.org http://www.arduinrio.cc

Page 2: Perlduino - Interfaceando sua aplicação com o mundo real!

O que é um Microcontrolador?

Computador ? Circuito Integrado ?

Computador num Circuito Integrado! Computador

Entradas => INTELIGÊNCIA => Saídas Microcontrolador

Entradas => INTELIGÊNCIA => Saídas

Ou : Sensores => INTELIGÊNCIA => Atuadores

No caso da robótica

Page 3: Perlduino - Interfaceando sua aplicação com o mundo real!

Arduino = Microcontrolador + Gravador + Interfaces

• A alma do negócio é o Microcontrolador ATMega 328

– Porém ele não funciona sozinho

Page 4: Perlduino - Interfaceando sua aplicação com o mundo real!

Componentes perifericos

• Como toda CPU, precisa de um Clock

– Para isto temos o cristal

• Interface serial/USB

• Regulador de tensão – {7,21} V → 5 V

Page 5: Perlduino - Interfaceando sua aplicação com o mundo real!

Entradas e Saídas do Arduino Duemilanove(2009)

Isto geralmente não muda muito para um conjunto de microcontroladores de mesmo porte :

Page 6: Perlduino - Interfaceando sua aplicação com o mundo real!

PWM(Modulacao por Largura de Pulso)

Page 7: Perlduino - Interfaceando sua aplicação com o mundo real!

Conversor Analogico<->Digital (ADC)

Page 8: Perlduino - Interfaceando sua aplicação com o mundo real!

Arduino – a quebra de paradigmas

Software Livre – Faça e extenda (em casa) Hardware Livre – Faça e extenda (em casa!)

Cultura de simplificação Linguagem Wiring – o “C simplificado” Você também pode programar o Arduino em C

puro.

Page 9: Perlduino - Interfaceando sua aplicação com o mundo real!

int ledPin = 13; // LED connected to digital pin 13void setup(){ pinMode(ledPin, OUTPUT); // sets the digital pin as output}void loop(){ digitalWrite(ledPin, HIGH); // sets the LED on delay(1000); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off delay(1000); // waits for a second}

Page 10: Perlduino - Interfaceando sua aplicação com o mundo real!

Shields – Bibliotecas de Hardware

Apenas encaixando a placa de expansão e carregando a biblioteca, você já tem a funcionalidade pronta

Page 11: Perlduino - Interfaceando sua aplicação com o mundo real!

Shield Ethernet

• Fale com seu Arduino via TCP/IP, logo de qualquer lugar do mundo

Page 12: Perlduino - Interfaceando sua aplicação com o mundo real!

Wi-Fi Shield

• Fale com seu Arduino de qualquer lugar do mundo sem precisar de fios

– WEP (64-bit and 128-bit)

– WPA/WPA2 (TKIP and AES) PSK

Page 13: Perlduino - Interfaceando sua aplicação com o mundo real!

Motor Shield

• 2 Servo motores

• 4 Motores DC – dois sentidos

• 2 motores de passo

Page 14: Perlduino - Interfaceando sua aplicação com o mundo real!

Conclusão Facilidade

Até artistas programam hoje Estudantes de escolas técnicas não tem mais porque

não estudar este assunto Um Arduino custa R$ 40,00 vindo da china Por volta de R$ 85,00 no Brasil.

Criatividade A facilidade te abstrai os problemas menores para

que você se preocupe com o seu real problema

Page 15: Perlduino - Interfaceando sua aplicação com o mundo real!

Casos de uso• OpenEnergyMonitor.org

– Monitore o uso de energia eletrica numa casa, escritorio ou fabrica (com graficos caso mande para o PC)

• MouseGlove

– Controle seu mouse por acelerometros numa luva

• Automação de casa

– Aquecedor, alarme de seguranca e iluminacao.

– Interface WEB

• Padaria

– Arduino avisa aos clientes via Twitter quando o pão sai.

Page 16: Perlduino - Interfaceando sua aplicação com o mundo real!

E como falar com esse cara?

• USB – FDTI USB/Serial

• Serial

• Ethernet - TCP/IP

• Wi-Fi – TCP/IP

• Bluetooth

• Xbee?

Page 17: Perlduino - Interfaceando sua aplicação com o mundo real!

Fazendo o Perl falar com ele

• Device::SerialPort – no Linux

• O código do Arduino tem de estar preparado para receber mensagens, e interpreta-las para a ação desejada

my $sp=new Device::SerialPort("/dev/ttyUSB0");

$sp->databits(8);$sp->baudrate(9600);$sp->stopbits(1);$sp->parity("none");

$sp->write(“s”);

Page 18: Perlduino - Interfaceando sua aplicação com o mundo real!

void loop() { char pc_input; if (Serial.available()) { pc_input = Serial.read(); } if( pc_input == 'w') { if (Speed < 255){ Speed = Speed + 5; } go_forward(Speed); } if( pc_input == 's') { stopMotors(); } if( pc_input == 'a') { turn_left(10); } if( pc_input == 'd') { turn_right(10); } }

Page 19: Perlduino - Interfaceando sua aplicação com o mundo real!

Na Prática...

Page 20: Perlduino - Interfaceando sua aplicação com o mundo real!

Um minuto sobre Cellbots

• Arduino + Android

• Arduino + Smartphone

• Vantagens

– Diversos sensores (acelerometros, GPS, luminosidade)

– Camera embutida (streaming)

– Muitos rodam Linux, logo sem dificuldade rodam Perl

– Interface Wi-Fi

– Interface Bluetooth

– Internet – 3G / GPRS

Page 21: Perlduino - Interfaceando sua aplicação com o mundo real!
Page 22: Perlduino - Interfaceando sua aplicação com o mundo real!

Arduino TV Out

Page 23: Perlduino - Interfaceando sua aplicação com o mundo real!

Possibilidades

• Interfaceamento com controle remoto

– So precisa calibrar

• Interfaceamento com controle de Wii

• Interfaceamento com Ipod/Iphone/Android

• Sensores

– Temperatura, distância, microfone, luz, Infra-vermelho(controle remoto), muito mais!

• Atuadores

– Motores, LEDs, TVs, caixa de som, LED Infra-vermelho(controle remoto), muito mais!

Page 24: Perlduino - Interfaceando sua aplicação com o mundo real!

Agora é usar a imaginação e desenvolver!

Perguntas?