Introdução ao Raspberry Pi e integração com Arduino
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 393 views

Introdução ao uso do Raspberry Pi e integração com o Arduino.

Introdução ao uso do Raspberry Pi e integração com o Arduino.

Statistics

Views

Total Views
393
Views on SlideShare
368
Embed Views
25

Actions

Likes
3
Downloads
2
Comments
0

1 Embed 25

http://www.faltoupontoevirgula.com.br 25

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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