ݺߣ

ݺߣShare a Scribd company logo
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=/slideshow/introduo-ao-raspberry-pi-e-integrao-com-arduino/33949698/"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

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=/slideshow/introduo-ao-raspberry-pi-e-integrao-com-arduino/33949698/"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