Upload
walter-coan
View
1.114
Download
10
Embed Size (px)
DESCRIPTION
Introdução ao uso do Raspberry Pi e integração com o Arduino.
Citation preview
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
Introducao ao Raspberry Pi e intragracao como ArduinoFLISOL 2014
Prof. Walter Silvestre Coan, MSc.Universidade da Regiao de Joinville - UNIVILLE
25 de abril de 2014
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO ROBO COM WEBCAM
Rede sem fio: RASPBERRYWIFIInterface: http://10.1.1.100
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PRIMEIROS COMPUTADORES PESSOAISAltair 8800 - 1975:
I Kit de eletronica vendido na revista Popular EletronicsI Suportava as linguagens FORTRAN e BASICI Arquitetura modular permitia a inclusao de novas placas
para expandir as funcionalidades do computador como:aumento da memoria principal, interface paralela,interface serial RS232 e fica cassete.
Altair 8800
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PRIMEIROS COMPUTADORES PESSOAIS
Apple I - 1976:
I Criado por Steve Wozniak e por SteveJobs
I Linguagem de programacao Basic comoprincipal forma de operar o computador
I CPU 1 MHz - 4 a 8KB - graficos de 40x24caracteres
I Porta paralela e interface para fitacassete
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PRIMEIROS COMPUTADORES PESSOAISBBC Micro - 1981:
I Dois modelos: A 32KB memoria - B 128KB memoriaI Graficos 640x256 pixelsI Interface: paralela, RS432 serial, Tube para um segundo
processador Zilog Z80I Linguagem de programacao: BBC Basic, Pascal, Lisp,
Logo, Prolog, Cobol
BBC Micro
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
RASPBERRY PIRaspberry Pi - 2012:
I Projeto criado por um grupo de professores liderados porEben Upton;
I Objetivo do projeto: recriar um computador para criancas,baseado no BBC Micro, para que possam se interessarsobre programacao;
Eben Upton
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
RASPBERRY PIRaspberry Pi - 2012:
I Modelos: B US$35 (fev/2012) - A US$ 25 (fev/2013) naopossui conexao ethernet e apenas uma porta USB• Modelo A Modelo B
CPU 700 MHz ARM11 700 MHz ARM11GPU Broadcom VideoCore IV Broadcom VideoCore IV
SDRAM 256MB 512MB
(a) Modelo B (b) Modelo A
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
RASPBERRY PI
Raspberry Pi - 2012:
Diferenca de componentes entre os dois modelos
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
RASPBERRY PIRaspberry Pi - GPIO:
GPIO - General-purpose input/output
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
LISTA DE COMPRASLista de Compras:
I Cartao SD de no mınimo 8GB classe 4;I Cabo conector com a TV: RCA ou HDMI;I Teclado e mouse USB;I Fonte de energia USB 5v com corrente mınima de 1000
milliamper
Raspberry Pi conectado
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJECT KANOProjeto Kano:
I Kit educacional composto pelo Raspberry Pi, os perifericosnecessarios para utilizacao do computador e um sistemaoperacional customizado.
I Projeto iniciou no KickStarter
Project Kano
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
SUPERCOMPUTADOR RASPBERRY PII Universidade de Southampton - Reino UnidoI 64 nosI Gerenciador da distribuicao dos processos - PythonI https://www.southampton.ac.uk/˜sjc/raspberrypi/pi_supercomputer_southampton.htm
Modulo lego
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
RADIO RASPBERRY PII Transmissor de radio FMI GPIOI http://makezine.com/projects/make-38-cameras-and-av/raspberry-pirate-radio/
Transmissor de radio
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
SISTEMAS OPERACIONAIShttp://www.raspberrypi.org/downloads/http://www.raspberrypi.org/documentation/installation/installing-images/README.md
Sistemas Operacionais
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
CONFIGURACAO BASICA
I Realizar o download do sistema operacionalI Gravar a imagem no cartao SDI Configuracoes basicas atraves do RASPI-CONFIGI 1 - Expandir o tamanho da particao para o tamanho real do
cartaoI 2 - Habilitar a interface grafica apos o boot (startx)I 3 - Habilitar a conexao SSH
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
CONFIGURACAO BASICA - EXPANDIR FILESYSTEM
raspi-config
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
CONFIGURACAO BASICA - BOOT OPTION INTERFACE
GRAFICA
raspi-config
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
CONFIGURACAO BASICA - HABILITAR SERVIDOR SSH
raspi-config
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
INSTALAR SERVIDOR VNCHTTPS:
//LEARN.ADAFRUIT.COM/ADAFRUIT-RASPBERRY-PI-LESSON-7-REMOTE-CONTROL-WITH-VNC/INSTALLING-VNC
Configuracao do VNCServer
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PIVIEWI Conversor HDMI para VGAI Modelo oficial / ”paralelo”I Necessidade de configurar a porta HDMI no arquivo
config.txt na raiz do cartao SD ou no SO na pasta/boot/config.txt para habilitar a porta HDMI
I Pode ocorrer perda de area util da tela
hdmi force hotplug = 1hdmi drive=2hdmi group=1hdmi mode=4
Conversor HDMI-VGA - Piview
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PIFACEI Formato de shield semelhante aos do arduinoI Utiliza a GPIOI 2 reles 110/220 10AI 8 saıdas digitaisI 8 entradas digitaisI 8 LEDsI 4 PIN buttonsI Programavel Python, Scratch ou CI Possui simulador e emulador para download
Conversor HDMI-VGA - Piview
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 1 - ROBO INTEGRADO AO SCRATCH
Robo integrado ao Scratch
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 1 - ROBO INTEGRADO AO SCRATCHHabilita socket server na porta 42001
Habilitar conexao sensor remoto
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 1 - ROBO INTEGRADO AO SCRATCH
Configurando conexao Bluetooth:sudo apt-get updatesudo apt-get install bluetooth bluez-utils bluemanhciconfig #testar dispositivohcitool scan #procurar por dispositivos bluetoothsudo nano /etc/bluetooth/rfcomm.confrfcomm0 {# Automatically bind the device at startupbind no;# Bluetooth address of the devicedevice 00:11:02:FF:02:FF;# RFCOMM channel for the connectionchannel 1;# Description of the connectioncomment ”Carroduino”;
}
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 1 - ROBO INTEGRADO AO SCRATCH
Configurando conexao Bluetooth:Script para conexao bluetooth que cria a porta serial/dev/rfcomm0bluetooth-agent 1234 & #agente para informar a senha do bluetooth
sudo rfcomm connect rfcomm0 &
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 1 - ROBO INTEGRADO AO SCRATCHPrograma python para integrar o socket com a porta serialfrom array import arrayimport socketimport timeimport signalimport sysimport 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 REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 1 - ROBO INTEGRADO AO SCRATCHPrograma 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 REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 1 - ROBO INTEGRADO AO SCRATCH
Codigo 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 bpsmotor1.setSpeed(255);motor2.setSpeed(255);Serial.print("AT+NAMECarroDuino\r\n");delay(4000);motor1.run(RELEASE);motor2.run(RELEASE);
}
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 1 - ROBO INTEGRADO AO SCRATCHCodigo 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 REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 2 - ROBO COM WEBCAM
Robo com Webcam
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 2 - ROBO COM WEBCAM
Instalacao do Apache:sudo apt-get updatesudo apt-get install apache2Servidor de Stream mjpg streamerhttp://blog.miguelgrinberg.com/post/how-to-build-and-run-mjpg-streamer-on-the-raspberry-pi
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 2 - ROBO COM WEBCAM
#! /bin/sh# /etc/init.d/camera_mjpg
# Carry out specific functions when asked to by the systemcase "$1" in
start)echo "Starting mjpg_streamkick script"export LD_LIBRARY_PATH=/usr/local/libmjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -y -r 320x240 -f 10" -o "/usr/local/lib/output_http.so -w ./usr/local/www -p 8088" &;;
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 apos o boot
sudo update-rc.d camera mjpg defaults
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 2 - ROBO COM WEBCAM
Servidor WebSocket em python escrito utilizando a bibliotecaTORNADOimport tornado.ioloopimport tornado.webimport tornado.websocketimport socketimport 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 REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 2 - ROBO COM WEBCAMServidor WebSocket em python escrito utilizando a bibliotecaTORNADOclass 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 REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 2 - ROBO COM WEBCAM
Pagina HTML5 que recebe o stream de vıdeo e conecta viaWebSockets<!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("Voce foi desconectado!!!");};
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 2 - ROBO COM WEBCAM
Pagina HTML5 que recebe o stream de vıdeo e conecta viaWebSockets
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 REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 2 - ROBO COM WEBCAM
Pagina HTML5 que recebe o stream de vıdeo e conecta viaWebSockets
</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 REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 2 - ROBO COM WEBCAM
Pagina HTML5 que recebe o stream de vıdeo e conecta viaWebSockets
<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=’Atras’>
</div><div class="side">
<input type=’button’ id=’btnEsquerda’ value=’Esquerda’></div>
</body></html>
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
PROJETO 2 - ROBO COM WEBCAM
#! /bin/sh# /etc/init.d/websocketrasp
# Carry out specific functions when asked to by the systemcase "$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 apos o boot
sudo update-rc.d websocketrasp defaults
FLISOL 2014 PRIMEIROS COMPUTADORES PESSOAIS REINVENCAO DO BBC MICRO, O RASPBERRY PI INICIANDO COM O RASPBERRY PI
OBRIGADO!
Universidade da Regiao de Joinville - UNIVILLEDepartamento de Informatica
Prof. Walter Silvestre Coan, [email protected] - [email protected]
http://www.univille.br/deptoinformaticahttp://www.faltoupontoevirgula.com.br
100% LATEX