SlideShare 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="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

PDF
Endereçamento de memória
PPTX
Esquenta MVP Conf 2025 Blumenau Azure IoT Platform
PPTX
SQL Saturday 2025 RAG COSMOSDB Azure OpenAI
PPT
Palestra SQLSAT 2025 AZURE ML NVIDIA CUDA
PPTX
Azure User Group Moçambique - Azure IoT Operations
PPTX
DevOps Experience 2025 - Certificacoes em Kubernetes CNCF
PPTX
Devops Exp 2024 O que é o Radius Novembro-2024
PPTX
Devops Exp 2024 OpenTelemetry Grafana Agosto 2024
Endereçamento de memória
Esquenta MVP Conf 2025 Blumenau Azure IoT Platform
SQL Saturday 2025 RAG COSMOSDB Azure OpenAI
Palestra SQLSAT 2025 AZURE ML NVIDIA CUDA
Azure User Group Moçambique - Azure IoT Operations
DevOps Experience 2025 - Certificacoes em Kubernetes CNCF
Devops Exp 2024 O que é o Radius Novembro-2024
Devops Exp 2024 OpenTelemetry Grafana Agosto 2024

More from Walter Coan (20)

PPTX
Computação em nuvem status da tecnologia nas empresas
PPTX
API Gateways DevOps Experience Abril-2024.pptx
PPTX
2024-04-20-GlobalAzure-EventGridNamespacesMQTT.pptx
PPTX
CODECON Caminhos para Formação de um Arquiteto de Soluções em Nuvem
PPTX
Talk Floripa - Desenvolvimento de projetos de Internet das Coisas
PPTX
TechConnection 2023 Floripa Azure Container Apps
PPTX
Shift left DevOps Experience
PPTX
DevFest2023-Pragmatismo da Internet das Coisas
PPTX
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
PPTX
Primeira certificação no Azure: AZ-900
PPTX
Novidades da plataforma Azure IoT
PPTX
Aplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
PPT
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
PPTX
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
PPTX
Microsoft Reactor Desenvolvimento serverless com azure function
PPTX
Azure Floripa - Introdução a plataforma Azure IoT
PPTX
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
PPTX
Azure Sphere: a evolução da plataforma de IoT concebida com princípios de seg...
PPTX
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
PPTX
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
Computação em nuvem status da tecnologia nas empresas
API Gateways DevOps Experience Abril-2024.pptx
2024-04-20-GlobalAzure-EventGridNamespacesMQTT.pptx
CODECON Caminhos para Formação de um Arquiteto de Soluções em Nuvem
Talk Floripa - Desenvolvimento de projetos de Internet das Coisas
TechConnection 2023 Floripa Azure Container Apps
Shift left DevOps Experience
DevFest2023-Pragmatismo da Internet das Coisas
DevOps Experience 2022: Build de aplicações Spring Boot utilizando Github Act...
Primeira certificação no Azure: AZ-900
Novidades da plataforma Azure IoT
Aplicações resilientes e Chaos Engineering em .NET com Polly + Simmy
TDC Connections 2022 - .NET + Microsserviços: alternativas open source para d...
Desenvolvimento de aplicações para o Microsoft Azure utilizando C#
Microsoft Reactor Desenvolvimento serverless com azure function
Azure Floripa - Introdução a plataforma Azure IoT
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...
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
MVPConf 2021 - .NET + Azure Functions Dicas e truques no desenvolvimento serv...
Ad

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