40
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

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

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