SlideShare a Scribd company logo
1 of 40
Download to read offline
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
Introduc¸˜ao ao Raspberry Pi e intragrac¸˜ao com
o Arduino
FLISOL 2014
Prof. Walter Silvestre Coan, MSc.
Universidade da Regi˜ao de Joinville - UNIVILLE
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO ROB ˆO COM WEBCAM
Rede sem fio: RASPBERRYWIFI
Interface: http://10.1.1.100
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PRIMEIROS COMPUTADORES PESSOAIS
Altair 8800 - 1975:
Kit de eletrˆonica vendido na revista Popular Eletronics
Suportava as linguagens FORTRAN e BASIC
Arquitetura modular permitia a inclus˜ao de novas placas
para expandir as funcionalidades do computador como:
aumento da mem´oria principal, interface paralela,
interface serial RS232 e fica cassete.
Altair 8800
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PRIMEIROS COMPUTADORES PESSOAIS
Apple I - 1976:
Criado por Steve Wozniak e por Steve
Jobs
Linguagem de programac¸˜ao Basic como
principal forma de operar o computador
CPU 1 MHz - 4 `a 8KB - gr´aficos de 40x24
caracteres
Porta paralela e interface para fita
cassete
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PRIMEIROS COMPUTADORES PESSOAIS
BBC Micro - 1981:
Dois modelos: A 32KB mem´oria - B 128KB mem´oria
Gr´aficos 640x256 pixels
Interface: paralela, RS432 serial, Tube para um segundo
processador Zilog Z80
Linguagem de programac¸˜ao: BBC Basic, Pascal, Lisp,
Logo, Prolog, Cobol
BBC Micro
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
RASPBERRY PI
Raspberry Pi - 2012:
Projeto criado por um grupo de professores liderados por
Eben Upton;
Objetivo do projeto: recriar um computador para crianc¸as,
baseado no BBC Micro, para que possam se interessar
sobre programac¸˜ao;
Eben Upton
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
RASPBERRY PI
Raspberry Pi - 2012:
Modelos: B US$35 (fev/2012) - A US$ 25 (fev/2013) n˜ao
possui conex˜ao ethernet e apenas uma porta USB
• Modelo A Modelo B
CPU 700 MHz ARM11 700 MHz ARM11
GPU Broadcom VideoCore IV Broadcom VideoCore IV
SDRAM 256MB 512MB
(a) Modelo B (b) Modelo A
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
RASPBERRY PI
Raspberry Pi - 2012:
Diferenc¸a de componentes entre os dois modelos
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
RASPBERRY PI
Raspberry Pi - GPIO:
GPIO - General-purpose input/output
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
LISTA DE COMPRAS
Lista de Compras:
Cart˜ao SD de no m´ınimo 8GB classe 4;
Cabo conector com a TV: RCA ou HDMI;
Teclado e mouse USB;
Fonte de energia USB 5v com corrente m´ınima de 1000
milliamper
Raspberry Pi conectado
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJECT KANO
Projeto Kano:
Kit educacional composto pelo Raspberry Pi, os perif´ericos
necess´arios para utilizac¸˜ao do computador e um sistema
operacional customizado.
Projeto iniciou no KickStarter
Project Kano
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
SUPERCOMPUTADOR RASPBERRY PI
Universidade de Southampton - Reino Unido
64 n´os
Gerenciador da distribuic¸˜ao dos processos - Python
https:
//www.southampton.ac.uk/˜sjc/raspberrypi/
pi_supercomputer_southampton.htm
M´odulo lego
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
RADIO RASPBERRY PI
Transmissor de r´adio FM
GPIO
http://makezine.com/projects/
make-38-cameras-and-av/
raspberry-pirate-radio/
Transmissor de r´adio
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
SISTEMAS OPERACIONAIS
http://www.raspberrypi.org/downloads/
http://www.raspberrypi.org/documentation/
installation/installing-images/README.md
Sistemas Operacionais
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
CONFIGURAC¸ ˜AO B ´ASICA
Realizar o download do sistema operacional
Gravar a imagem no cart˜ao SD
Configurac¸ ˜oes b´asicas atrav´es do RASPI-CONFIG
1 - Expandir o tamanho da partic¸˜ao para o tamanho real do
cart˜ao
2 - Habilitar a interface gr´afica ap´os o boot (startx)
3 - Habilitar a conex˜ao SSH
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
CONFIGURAC¸ ˜AO B ´ASICA - EXPANDIR FILESYSTEM
raspi-config
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
CONFIGURAC¸ ˜AO B ´ASICA - BOOT OPTION INTERFACE
GR ´AFICA
raspi-config
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
CONFIGURAC¸ ˜AO B ´ASICA - HABILITAR SERVIDOR SSH
raspi-config
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
INSTALAR SERVIDOR VNC
HTTPS:
//LEARN.ADAFRUIT.COM/ADAFRUIT-RASPBERRY-PI-LESSON-7-REMOTE-CONTROL-WITH-VNC/INSTALLING-VNC
Configurac¸ ˜ao do VNCServer
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PIVIEW
Conversor HDMI para VGA
Modelo oficial / ”paralelo”
Necessidade de configurar a porta HDMI no arquivo
config.txt na raiz do cart˜ao SD ou no SO na pasta
/boot/config.txt para habilitar a porta HDMI
Pode ocorrer perda de ´area ´util da tela
hdmi force hotplug = 1
hdmi drive=2
hdmi group=1
hdmi mode=4
Conversor HDMI-VGA - Piview
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PIFACE
Formato de shield semelhante aos do arduino
Utiliza a GPIO
2 relˆes 110/220 10A
8 sa´ıdas digitais
8 entradas digitais
8 LEDs
4 PIN buttons
Programavel Python, Scratch ou C
Possui simulador e emulador para download
Conversor HDMI-VGA - Piview
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH
Robˆo integrado ao Scratch
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH
Habilita socket server na porta 42001
Habilitar conex˜ao sensor remoto
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH
Configurando conex˜ao Bluetooth:
sudo apt-get update
sudo apt-get install bluetooth bluez-utils blueman
hciconfig #testar dispositivo
hcitool scan #procurar por dispositivos bluetooth
sudo nano /etc/bluetooth/rfcomm.conf
rfcomm0 {
# Automatically bind the device at startup
bind no;
# Bluetooth address of the device
device 00:11:02:FF:02:FF;
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment ”Carroduino”;
}
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH
Configurando conex˜ao Bluetooth:
Script para conex˜ao bluetooth que cria a porta serial
/dev/rfcomm0
bluetooth-agent 1234 & #agente para informar a senha do bluetooth
sudo rfcomm connect rfcomm0 &
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH
Programa python para integrar o socket com a porta serial
from array import array
import socket
import time
import signal
import sys
import serial
HOST = ’127.0.0.1’
PORT = 42001
def signal_handler(signal, frame):
print ("You pressed Ctrl+C!")
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
print("connecting SOCKET...")
scratchSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
scratchSock.connect((HOST, PORT))
print("connected SOCKET")
print("connecting SERIAL...")
sport = serial.Serial("/dev/rfcomm0",baudrate=9600,timeout=3.0)
print("connected SERIAL")
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH
Programa python para integrar o socket com a porta serial
while True:
data = str(scratchSock.recv(1024)).lower()
if data.find(’frente’) > 0:
sport.write("1")
elif data.find(’atras’) > 0:
sport.write("2")
elif data.find(’direita’) > 0:
sport.write("3")
elif data.find(’esquerda’) > 0:
sport.write("4")
elif data.find(’lento’) > 0:
sport.write("5")
elif data.find(’rapido’) > 0:
sport.write("6")
else:
sport.write("0");
print("closing serial...")
sport.close()
print("closing socket...")
scratchSock.close()
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH
C´odigo arduino
#include <AFMotor.h>
AF_DCMotor motor1(3);
AF_DCMotor motor2(4);
char command;
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
motor1.setSpeed(255);
motor2.setSpeed(255);
Serial.print("AT+NAMECarroDuinorn");
delay(4000);
motor1.run(RELEASE);
motor2.run(RELEASE);
}
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH
C´odigo arduino
void loop() {
if(Serial.available()){
command = Serial.read();
if(command == ’1’){
motor1.run(FORWARD);
motor2.run(FORWARD);
}else{
if(command == ’2’){
motor1.run(BACKWARD);
motor2.run(BACKWARD);
}else{
if(command == ’4’){
motor1.run(FORWARD);
motor2.run(RELEASE);
}else{
if(command == ’3’){
motor1.run(RELEASE);
motor2.run(FORWARD);
}
}
}
}
delay(500);
motor1.run(RELEASE);
motor2.run(RELEASE);
}
delay(50);
}
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 2 - ROB ˆO COM WEBCAM
Robˆo com Webcam
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 2 - ROB ˆO COM WEBCAM
Instalac¸˜ao do Apache:
sudo apt-get update
sudo apt-get install apache2
Servidor de Stream mjpg streamer
http://blog.miguelgrinberg.com/post/
how-to-build-and-run-mjpg-streamer-on-the-raspberry
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 2 - ROB ˆO COM WEBCAM
#! /bin/sh
# /etc/init.d/camera_mjpg
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting mjpg_streamkick script"
export LD_LIBRARY_PATH=/usr/local/lib
mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -y -r 320x240 -f 10" -o "/usr
;;
stop)
echo "Stopping webcam script"
killall mjpg-streamer
;;
*)
echo "Usage: /etc/init.d/mjpg_streamkick {start|stop}"
exit 1
;;
esac
exit 0
Registrar no update-rc.d para iniciar automaticamente ap´os o boot
sudo update-rc.d camera mjpg defaults
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 2 - ROB ˆO COM WEBCAM
Servidor WebSocket em python escrito utilizando a biblioteca
TORNADO
import tornado.ioloop
import tornado.web
import tornado.websocket
import socket
import serial
from tornado.options import define, options, parse_command_line
define("port", default=8888, help="run on the given port", type=int)
sport = serial.Serial("/dev/ttyACM0",baudrate=9600,timeout=3.0)
print("connected SERIAL")
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 2 - ROB ˆO COM WEBCAM
Servidor WebSocket em python escrito utilizando a biblioteca
TORNADO
class WebSocketHandler(tornado.websocket.WebSocketHandler):
def open(self, *args):
self.id = self.get_argument("Id")
#self.stream.set_nodelay(True)
def on_message(self, message):
print ("Client received a message " + message)
if(message == "frente"):
sport.write("1")
if(message == "atras"):
sport.write("2")
if(message == "direita"):
sport.write("4")
if(message == "esquerda"):
sport.write("3")
def on_close(self):
print("Close")
app = tornado.web.Application([
(r’/’, WebSocketHandler),
])
if __name__ == ’__main__’:
parse_command_line()
app.listen(options.port)
#sport = serial.Serial("/dev/ttyACM0",baudrate=9600,timeout=3.0)
print("connected SERIAL")
tornado.ioloop.IOLoop.instance().start()
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 2 - ROB ˆO COM WEBCAM
P´agina HTML5 que recebe o stream de v´ıdeo e conecta via
WebSockets
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript">
window.addEventListener("load", function(event) {
var btnFrente = document.getElementById("btnFrente");
var btnAtras = document.getElementById("btnAtras");
var btnDireita = document.getElementById("btnDireita");
var btnEsquerda = document.getElementById("btnEsquerda");
var ws = null;
ws = new WebSocket("ws://10.1.1.100:8888/?Id=1");
ws.onopen = function() {
ws.send("ok");
};
ws.onmessage = function (evt) {
var received_msg = evt.data;
};
ws.onclose = function() {
alert("Vocˆe foi desconectado!!!");
};
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 2 - ROB ˆO COM WEBCAM
P´agina HTML5 que recebe o stream de v´ıdeo e conecta via
WebSockets
btnFrente.addEventListener("click", function(event) {
ws.send(’frente’);
});
btnAtras.addEventListener("click", function(event) {
ws.send(’atras’);
});
btnDireita.addEventListener("click", function(event) {
ws.send(’direita’);
});
btnEsquerda.addEventListener("click", function(event) {
ws.send(’esquerda’);
});
});
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 2 - ROB ˆO COM WEBCAM
P´agina HTML5 que recebe o stream de v´ıdeo e conecta via
WebSockets
</script>
<style type="text/css">
.side{
display:inline;
width: 20px;
padding:70px
}
#bl{
display:inline-block;
width: 20px;
padding: 10px;
padding-top: 30px;
}
input{
width:70px;
height: 60px;
font-size: 14px;
}
img{
padding: 0px 0px 0px 110px;
}
</style>
</head>
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 2 - ROB ˆO COM WEBCAM
P´agina HTML5 que recebe o stream de v´ıdeo e conecta via
WebSockets
<body>
<img src="http://10.1.1.100:8088/?action=stream" />
<p>
<div class="side">
<input type=’button’ id=’btnDireita’ value=’Direita’>
</div>
<div id=’bl’>
<input type=’button’ id=’btnFrente’ value=’Frente’>
<input type=’button’ id=’btnAtras’ value=’Atr´as’>
</div>
<div class="side">
<input type=’button’ id=’btnEsquerda’ value=’Esquerda’>
</div>
</body>
</html>
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
PROJETO 2 - ROB ˆO COM WEBCAM
#! /bin/sh
# /etc/init.d/websocketrasp
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting websocketrasp script"
python /home/pi/websocketserial.py
;;
stop)
echo "Stopping websocketrasp script"
killall python
;;
*)
echo "Usage: /etc/init.d/websocketrasp {start|stop}"
exit 1
;;
esac
exit 0
Registrar no update-rc.d para iniciar automaticamente ap´os o boot
sudo update-rc.d websocketrasp defaults
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE
OBRIGADO!
Universidade da Regi˜ao de Joinville - UNIVILLE
Departamento de Inform´atica
Prof. Walter Silvestre Coan, MSc.
walter.s@univille.br - walter.coan@gmail.com
http://www.univille.br/deptoinformatica
http://www.faltoupontoevirgula.com.br
100% LATEX

More Related Content

More from Walter Coan

Novidades da plataforma Azure IoT
Novidades da plataforma Azure IoTNovidades da plataforma Azure IoT
Novidades da plataforma Azure IoTWalter Coan
 
Aplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
Aplicações resilientes e Chaos Engineering em .NET com Polly + SimmyAplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
Aplicações resilientes e Chaos Engineering em .NET com Polly + SimmyWalter Coan
 
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...Walter Coan
 
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#Walter Coan
 
Microsoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure functionMicrosoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure functionWalter Coan
 
Azure Floripa - Introdução a plataforma Azure IoT
Azure Floripa - Introdução a plataforma Azure IoTAzure Floripa - Introdução a plataforma Azure IoT
Azure Floripa - Introdução a plataforma Azure IoTWalter Coan
 
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT EdgeUtilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT EdgeWalter Coan
 
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...Walter Coan
 
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Walter Coan
 
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...Walter Coan
 
Canal .NET - Utilizando o Event Hub e o Event Grid
Canal .NET - Utilizando o Event Hub e o Event GridCanal .NET - Utilizando o Event Hub e o Event Grid
Canal .NET - Utilizando o Event Hub e o Event GridWalter Coan
 
Internet das Coisas na Medicina - Summit ACM 2021
Internet das Coisas na Medicina - Summit ACM 2021Internet das Coisas na Medicina - Summit ACM 2021
Internet das Coisas na Medicina - Summit ACM 2021Walter Coan
 
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...Walter Coan
 
Azure Weekend 2ed - Azure Confidential Computing
Azure Weekend 2ed - Azure Confidential ComputingAzure Weekend 2ed - Azure Confidential Computing
Azure Weekend 2ed - Azure Confidential ComputingWalter Coan
 
TDC Connections 2021 – Trilha Software Security - Proteção de dados sensíveis...
TDC Connections 2021 – Trilha Software Security - Proteção de dados sensíveis...TDC Connections 2021 – Trilha Software Security - Proteção de dados sensíveis...
TDC Connections 2021 – Trilha Software Security - Proteção de dados sensíveis...Walter Coan
 
The Developers Connections 2021 - Internet das Coisas aplicada no suporte a p...
The Developers Connections 2021 - Internet das Coisas aplicada no suporte a p...The Developers Connections 2021 - Internet das Coisas aplicada no suporte a p...
The Developers Connections 2021 - Internet das Coisas aplicada no suporte a p...Walter Coan
 
Cloud Lunch and Learn – Azure Sphere: melhores práticas de segurança para IoT
Cloud Lunch and Learn – Azure Sphere: melhores práticas de segurança para IoTCloud Lunch and Learn – Azure Sphere: melhores práticas de segurança para IoT
Cloud Lunch and Learn – Azure Sphere: melhores práticas de segurança para IoTWalter Coan
 
Cloud Lunch and Learn - Sobrevoando o Azure
Cloud Lunch and Learn - Sobrevoando o AzureCloud Lunch and Learn - Sobrevoando o Azure
Cloud Lunch and Learn - Sobrevoando o AzureWalter Coan
 
Azure Weekend - Utilizando Azure Batch em Linux
Azure Weekend - Utilizando Azure Batch em LinuxAzure Weekend - Utilizando Azure Batch em Linux
Azure Weekend - Utilizando Azure Batch em LinuxWalter Coan
 
AmbevTech Day - Introdução ao Azure IoT
AmbevTech Day - Introdução ao Azure IoTAmbevTech Day - Introdução ao Azure IoT
AmbevTech Day - Introdução ao Azure IoTWalter Coan
 

More from Walter Coan (20)

Novidades da plataforma Azure IoT
Novidades da plataforma Azure IoTNovidades da plataforma Azure IoT
Novidades da plataforma Azure IoT
 
Aplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
Aplicações resilientes e Chaos Engineering em .NET com Polly + SimmyAplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
Aplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
 
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
 
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
 
Microsoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure functionMicrosoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure function
 
Azure Floripa - Introdução a plataforma Azure IoT
Azure Floripa - Introdução a plataforma Azure IoTAzure Floripa - Introdução a plataforma Azure IoT
Azure Floripa - Introdução a plataforma Azure IoT
 
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT EdgeUtilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
 
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
 
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
 
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
 
Canal .NET - Utilizando o Event Hub e o Event Grid
Canal .NET - Utilizando o Event Hub e o Event GridCanal .NET - Utilizando o Event Hub e o Event Grid
Canal .NET - Utilizando o Event Hub e o Event Grid
 
Internet das Coisas na Medicina - Summit ACM 2021
Internet das Coisas na Medicina - Summit ACM 2021Internet das Coisas na Medicina - Summit ACM 2021
Internet das Coisas na Medicina - Summit ACM 2021
 
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
 
Azure Weekend 2ed - Azure Confidential Computing
Azure Weekend 2ed - Azure Confidential ComputingAzure Weekend 2ed - Azure Confidential Computing
Azure Weekend 2ed - Azure Confidential Computing
 
TDC Connections 2021 – Trilha Software Security - Proteção de dados sensíveis...
TDC Connections 2021 – Trilha Software Security - Proteção de dados sensíveis...TDC Connections 2021 – Trilha Software Security - Proteção de dados sensíveis...
TDC Connections 2021 – Trilha Software Security - Proteção de dados sensíveis...
 
The Developers Connections 2021 - Internet das Coisas aplicada no suporte a p...
The Developers Connections 2021 - Internet das Coisas aplicada no suporte a p...The Developers Connections 2021 - Internet das Coisas aplicada no suporte a p...
The Developers Connections 2021 - Internet das Coisas aplicada no suporte a p...
 
Cloud Lunch and Learn – Azure Sphere: melhores práticas de segurança para IoT
Cloud Lunch and Learn – Azure Sphere: melhores práticas de segurança para IoTCloud Lunch and Learn – Azure Sphere: melhores práticas de segurança para IoT
Cloud Lunch and Learn – Azure Sphere: melhores práticas de segurança para IoT
 
Cloud Lunch and Learn - Sobrevoando o Azure
Cloud Lunch and Learn - Sobrevoando o AzureCloud Lunch and Learn - Sobrevoando o Azure
Cloud Lunch and Learn - Sobrevoando o Azure
 
Azure Weekend - Utilizando Azure Batch em Linux
Azure Weekend - Utilizando Azure Batch em LinuxAzure Weekend - Utilizando Azure Batch em Linux
Azure Weekend - Utilizando Azure Batch em Linux
 
AmbevTech Day - Introdução ao Azure IoT
AmbevTech Day - Introdução ao Azure IoTAmbevTech Day - Introdução ao Azure IoT
AmbevTech Day - Introdução ao Azure IoT
 

Introdução ao Raspberry Pi e integração com Arduino

  • 1. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE Introduc¸˜ao ao Raspberry Pi e intragrac¸˜ao com o Arduino FLISOL 2014 Prof. Walter Silvestre Coan, MSc. Universidade da Regi˜ao de Joinville - UNIVILLE
  • 2. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO ROB ˆO COM WEBCAM Rede sem fio: RASPBERRYWIFI Interface: http://10.1.1.100
  • 3. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PRIMEIROS COMPUTADORES PESSOAIS Altair 8800 - 1975: Kit de eletrˆonica vendido na revista Popular Eletronics Suportava as linguagens FORTRAN e BASIC Arquitetura modular permitia a inclus˜ao de novas placas para expandir as funcionalidades do computador como: aumento da mem´oria principal, interface paralela, interface serial RS232 e fica cassete. Altair 8800
  • 4. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PRIMEIROS COMPUTADORES PESSOAIS Apple I - 1976: Criado por Steve Wozniak e por Steve Jobs Linguagem de programac¸˜ao Basic como principal forma de operar o computador CPU 1 MHz - 4 `a 8KB - gr´aficos de 40x24 caracteres Porta paralela e interface para fita cassete
  • 5. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PRIMEIROS COMPUTADORES PESSOAIS BBC Micro - 1981: Dois modelos: A 32KB mem´oria - B 128KB mem´oria Gr´aficos 640x256 pixels Interface: paralela, RS432 serial, Tube para um segundo processador Zilog Z80 Linguagem de programac¸˜ao: BBC Basic, Pascal, Lisp, Logo, Prolog, Cobol BBC Micro
  • 6. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE RASPBERRY PI Raspberry Pi - 2012: Projeto criado por um grupo de professores liderados por Eben Upton; Objetivo do projeto: recriar um computador para crianc¸as, baseado no BBC Micro, para que possam se interessar sobre programac¸˜ao; Eben Upton
  • 7. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE RASPBERRY PI Raspberry Pi - 2012: Modelos: B US$35 (fev/2012) - A US$ 25 (fev/2013) n˜ao possui conex˜ao ethernet e apenas uma porta USB • Modelo A Modelo B CPU 700 MHz ARM11 700 MHz ARM11 GPU Broadcom VideoCore IV Broadcom VideoCore IV SDRAM 256MB 512MB (a) Modelo B (b) Modelo A
  • 8. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE RASPBERRY PI Raspberry Pi - 2012: Diferenc¸a de componentes entre os dois modelos
  • 9. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE RASPBERRY PI Raspberry Pi - GPIO: GPIO - General-purpose input/output
  • 10. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE LISTA DE COMPRAS Lista de Compras: Cart˜ao SD de no m´ınimo 8GB classe 4; Cabo conector com a TV: RCA ou HDMI; Teclado e mouse USB; Fonte de energia USB 5v com corrente m´ınima de 1000 milliamper Raspberry Pi conectado
  • 11. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJECT KANO Projeto Kano: Kit educacional composto pelo Raspberry Pi, os perif´ericos necess´arios para utilizac¸˜ao do computador e um sistema operacional customizado. Projeto iniciou no KickStarter Project Kano
  • 12. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE SUPERCOMPUTADOR RASPBERRY PI Universidade de Southampton - Reino Unido 64 n´os Gerenciador da distribuic¸˜ao dos processos - Python https: //www.southampton.ac.uk/˜sjc/raspberrypi/ pi_supercomputer_southampton.htm M´odulo lego
  • 13. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE RADIO RASPBERRY PI Transmissor de r´adio FM GPIO http://makezine.com/projects/ make-38-cameras-and-av/ raspberry-pirate-radio/ Transmissor de r´adio
  • 14. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE SISTEMAS OPERACIONAIS http://www.raspberrypi.org/downloads/ http://www.raspberrypi.org/documentation/ installation/installing-images/README.md Sistemas Operacionais
  • 15. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE CONFIGURAC¸ ˜AO B ´ASICA Realizar o download do sistema operacional Gravar a imagem no cart˜ao SD Configurac¸ ˜oes b´asicas atrav´es do RASPI-CONFIG 1 - Expandir o tamanho da partic¸˜ao para o tamanho real do cart˜ao 2 - Habilitar a interface gr´afica ap´os o boot (startx) 3 - Habilitar a conex˜ao SSH
  • 16. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE CONFIGURAC¸ ˜AO B ´ASICA - EXPANDIR FILESYSTEM raspi-config
  • 17. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE CONFIGURAC¸ ˜AO B ´ASICA - BOOT OPTION INTERFACE GR ´AFICA raspi-config
  • 18. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE CONFIGURAC¸ ˜AO B ´ASICA - HABILITAR SERVIDOR SSH raspi-config
  • 19. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE INSTALAR SERVIDOR VNC HTTPS: //LEARN.ADAFRUIT.COM/ADAFRUIT-RASPBERRY-PI-LESSON-7-REMOTE-CONTROL-WITH-VNC/INSTALLING-VNC Configurac¸ ˜ao do VNCServer
  • 20. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PIVIEW Conversor HDMI para VGA Modelo oficial / ”paralelo” Necessidade de configurar a porta HDMI no arquivo config.txt na raiz do cart˜ao SD ou no SO na pasta /boot/config.txt para habilitar a porta HDMI Pode ocorrer perda de ´area ´util da tela hdmi force hotplug = 1 hdmi drive=2 hdmi group=1 hdmi mode=4 Conversor HDMI-VGA - Piview
  • 21. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PIFACE Formato de shield semelhante aos do arduino Utiliza a GPIO 2 relˆes 110/220 10A 8 sa´ıdas digitais 8 entradas digitais 8 LEDs 4 PIN buttons Programavel Python, Scratch ou C Possui simulador e emulador para download Conversor HDMI-VGA - Piview
  • 22. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH Robˆo integrado ao Scratch
  • 23. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH Habilita socket server na porta 42001 Habilitar conex˜ao sensor remoto
  • 24. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH Configurando conex˜ao Bluetooth: sudo apt-get update sudo apt-get install bluetooth bluez-utils blueman hciconfig #testar dispositivo hcitool scan #procurar por dispositivos bluetooth sudo nano /etc/bluetooth/rfcomm.conf rfcomm0 { # Automatically bind the device at startup bind no; # Bluetooth address of the device device 00:11:02:FF:02:FF; # RFCOMM channel for the connection channel 1; # Description of the connection comment ”Carroduino”; }
  • 25. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH Configurando conex˜ao Bluetooth: Script para conex˜ao bluetooth que cria a porta serial /dev/rfcomm0 bluetooth-agent 1234 & #agente para informar a senha do bluetooth sudo rfcomm connect rfcomm0 &
  • 26. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH Programa python para integrar o socket com a porta serial from array import array import socket import time import signal import sys import serial HOST = ’127.0.0.1’ PORT = 42001 def signal_handler(signal, frame): print ("You pressed Ctrl+C!") sys.exit(0) signal.signal(signal.SIGINT, signal_handler) print("connecting SOCKET...") scratchSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) scratchSock.connect((HOST, PORT)) print("connected SOCKET") print("connecting SERIAL...") sport = serial.Serial("/dev/rfcomm0",baudrate=9600,timeout=3.0) print("connected SERIAL")
  • 27. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH Programa python para integrar o socket com a porta serial while True: data = str(scratchSock.recv(1024)).lower() if data.find(’frente’) > 0: sport.write("1") elif data.find(’atras’) > 0: sport.write("2") elif data.find(’direita’) > 0: sport.write("3") elif data.find(’esquerda’) > 0: sport.write("4") elif data.find(’lento’) > 0: sport.write("5") elif data.find(’rapido’) > 0: sport.write("6") else: sport.write("0"); print("closing serial...") sport.close() print("closing socket...") scratchSock.close()
  • 28. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH C´odigo arduino #include <AFMotor.h> AF_DCMotor motor1(3); AF_DCMotor motor2(4); char command; void setup() { Serial.begin(9600); // set up Serial library at 9600 bps motor1.setSpeed(255); motor2.setSpeed(255); Serial.print("AT+NAMECarroDuinorn"); delay(4000); motor1.run(RELEASE); motor2.run(RELEASE); }
  • 29. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 1 - ROB ˆO INTEGRADO AO SCRATCH C´odigo arduino void loop() { if(Serial.available()){ command = Serial.read(); if(command == ’1’){ motor1.run(FORWARD); motor2.run(FORWARD); }else{ if(command == ’2’){ motor1.run(BACKWARD); motor2.run(BACKWARD); }else{ if(command == ’4’){ motor1.run(FORWARD); motor2.run(RELEASE); }else{ if(command == ’3’){ motor1.run(RELEASE); motor2.run(FORWARD); } } } } delay(500); motor1.run(RELEASE); motor2.run(RELEASE); } delay(50); }
  • 30. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 2 - ROB ˆO COM WEBCAM Robˆo com Webcam
  • 31. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 2 - ROB ˆO COM WEBCAM Instalac¸˜ao do Apache: sudo apt-get update sudo apt-get install apache2 Servidor de Stream mjpg streamer http://blog.miguelgrinberg.com/post/ how-to-build-and-run-mjpg-streamer-on-the-raspberry
  • 32. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 2 - ROB ˆO COM WEBCAM #! /bin/sh # /etc/init.d/camera_mjpg # Carry out specific functions when asked to by the system case "$1" in start) echo "Starting mjpg_streamkick script" export LD_LIBRARY_PATH=/usr/local/lib mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -y -r 320x240 -f 10" -o "/usr ;; stop) echo "Stopping webcam script" killall mjpg-streamer ;; *) echo "Usage: /etc/init.d/mjpg_streamkick {start|stop}" exit 1 ;; esac exit 0 Registrar no update-rc.d para iniciar automaticamente ap´os o boot sudo update-rc.d camera mjpg defaults
  • 33. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 2 - ROB ˆO COM WEBCAM Servidor WebSocket em python escrito utilizando a biblioteca TORNADO import tornado.ioloop import tornado.web import tornado.websocket import socket import serial from tornado.options import define, options, parse_command_line define("port", default=8888, help="run on the given port", type=int) sport = serial.Serial("/dev/ttyACM0",baudrate=9600,timeout=3.0) print("connected SERIAL")
  • 34. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 2 - ROB ˆO COM WEBCAM Servidor WebSocket em python escrito utilizando a biblioteca TORNADO class WebSocketHandler(tornado.websocket.WebSocketHandler): def open(self, *args): self.id = self.get_argument("Id") #self.stream.set_nodelay(True) def on_message(self, message): print ("Client received a message " + message) if(message == "frente"): sport.write("1") if(message == "atras"): sport.write("2") if(message == "direita"): sport.write("4") if(message == "esquerda"): sport.write("3") def on_close(self): print("Close") app = tornado.web.Application([ (r’/’, WebSocketHandler), ]) if __name__ == ’__main__’: parse_command_line() app.listen(options.port) #sport = serial.Serial("/dev/ttyACM0",baudrate=9600,timeout=3.0) print("connected SERIAL") tornado.ioloop.IOLoop.instance().start()
  • 35. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 2 - ROB ˆO COM WEBCAM P´agina HTML5 que recebe o stream de v´ıdeo e conecta via WebSockets <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script type="text/javascript"> window.addEventListener("load", function(event) { var btnFrente = document.getElementById("btnFrente"); var btnAtras = document.getElementById("btnAtras"); var btnDireita = document.getElementById("btnDireita"); var btnEsquerda = document.getElementById("btnEsquerda"); var ws = null; ws = new WebSocket("ws://10.1.1.100:8888/?Id=1"); ws.onopen = function() { ws.send("ok"); }; ws.onmessage = function (evt) { var received_msg = evt.data; }; ws.onclose = function() { alert("Vocˆe foi desconectado!!!"); };
  • 36. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 2 - ROB ˆO COM WEBCAM P´agina HTML5 que recebe o stream de v´ıdeo e conecta via WebSockets btnFrente.addEventListener("click", function(event) { ws.send(’frente’); }); btnAtras.addEventListener("click", function(event) { ws.send(’atras’); }); btnDireita.addEventListener("click", function(event) { ws.send(’direita’); }); btnEsquerda.addEventListener("click", function(event) { ws.send(’esquerda’); }); });
  • 37. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 2 - ROB ˆO COM WEBCAM P´agina HTML5 que recebe o stream de v´ıdeo e conecta via WebSockets </script> <style type="text/css"> .side{ display:inline; width: 20px; padding:70px } #bl{ display:inline-block; width: 20px; padding: 10px; padding-top: 30px; } input{ width:70px; height: 60px; font-size: 14px; } img{ padding: 0px 0px 0px 110px; } </style> </head>
  • 38. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 2 - ROB ˆO COM WEBCAM P´agina HTML5 que recebe o stream de v´ıdeo e conecta via WebSockets <body> <img src="http://10.1.1.100:8088/?action=stream" /> <p> <div class="side"> <input type=’button’ id=’btnDireita’ value=’Direita’> </div> <div id=’bl’> <input type=’button’ id=’btnFrente’ value=’Frente’> <input type=’button’ id=’btnAtras’ value=’Atr´as’> </div> <div class="side"> <input type=’button’ id=’btnEsquerda’ value=’Esquerda’> </div> </body> </html>
  • 39. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE PROJETO 2 - ROB ˆO COM WEBCAM #! /bin/sh # /etc/init.d/websocketrasp # Carry out specific functions when asked to by the system case "$1" in start) echo "Starting websocketrasp script" python /home/pi/websocketserial.py ;; stop) echo "Stopping websocketrasp script" killall python ;; *) echo "Usage: /etc/init.d/websocketrasp {start|stop}" exit 1 ;; esac exit 0 Registrar no update-rc.d para iniciar automaticamente ap´os o boot sudo update-rc.d websocketrasp defaults
  • 40. FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENC¸ ˜AO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBE OBRIGADO! Universidade da Regi˜ao de Joinville - UNIVILLE Departamento de Inform´atica Prof. Walter Silvestre Coan, MSc. walter.s@univille.br - walter.coan@gmail.com http://www.univille.br/deptoinformatica http://www.faltoupontoevirgula.com.br 100% LATEX