linux embarcado, hacking e projetos diy

55
Embedded Labworks Por Sergio Prado. São Paulo, Agosto de 2013 ® Copyright Embedded Labworks 2004-2013. All rights reserved. Linux embarcado, hacking e projetos DIY

Upload: sergio-prado

Post on 11-Jun-2015

1.923 views

Category:

Technology


2 download

DESCRIPTION

Palestra apresentada no 8o. SoLiSC em 21 de setembro de 2013. RESUMO O mundo passa por uma revolução de hacks e projetos DIY. Muitos destes projetos são baseados em Linux embarcado em placas de baixíssimo custo como a Beaglebone Black e a Raspberry Pi. Adicione a isso ingredientes como hardware aberto e a cultura do software livre. Robôs, central de mídia, drones, impressoras 3D, supercomputadores? Do que você é capaz?

TRANSCRIPT

Page 1: Linux embarcado, hacking e projetos DIY

Embedded Labworks

Por Sergio Prado. São Paulo, Agosto de 2013® Copyright Embedded Labworks 2004-2013. All rights reserved.

Linux embarcado, hacking e projetos DIY

Page 2: Linux embarcado, hacking e projetos DIY

Embedded Labworks

SOBRE ESTE DOCUMENTO

✗ Este documento é disponibilizado sob a Licença Creative Commons BY-SA 3.0.http://creativecommons.org/licenses/by-sa/3.0/legalcode

✗ Os fontes deste documento estão disponíveis em:http://sergioprado.org/palestras/solisc2013

Page 3: Linux embarcado, hacking e projetos DIY

Embedded Labworks

SOBRE O PALESTRANTE

✗ Sergio Prado tem mais de 17 anos de experiência em desenvolvimento de software para sistemas embarcados, em diversas arquiteturas de CPU (ARM, PPC, MIPS, x86, 68K), atuando em projetos com Linux embarcado e sistemas operacionais de tempo real.

✗ É sócio da Embedded Labworks, onde atua com consultoria, treinamento e desenvolvimento de software para sistemas embarcados:http://e-labworks.com

✗ Mantém um blog pessoal sobre Linux e sistemas embarcados em:http://sergioprado.org

Page 4: Linux embarcado, hacking e projetos DIY

Embedded Labworks

SISTEMA EMBARCADO

✗ Um sistema embarcado é um computador dedicado!

Page 5: Linux embarcado, hacking e projetos DIY

Embedded Labworks

LINUX EMBARCADO

✗ Linux é o kernel!http://www.kernel.org

✗ As distribuições Linux (Ubuntu, Fedora, Debian, Slackware, etc) integram o kernel Linux, bibliotecas e aplicações, tendo como resultado um sistema operacional GNU/Linux.

✗ Linux embarcado é o uso do kernel Linux e de diversos outros componentes open-source em sistemas embarcados.

Page 6: Linux embarcado, hacking e projetos DIY

Embedded Labworks

HACKING, HACK E HACKER

✗ Hacking é o ato de modificar ou inventar algo (hack) para resolver problemas ou realizar funcionalidades diferentes das originais.

✗ Hacker é a pessoa, hacking é o processo e hack é o resultado!

✗ O termo hacker esta associado (às vezes de forma pejorativa) à diferentes comunidades e subculturas (segurança da informação, programação, hardware, biologia, arte, etc).

Page 7: Linux embarcado, hacking e projetos DIY

Embedded Labworks

DIY E MAKER

✗ DIY (Do it yourself) é o método de construir, modificar ou consertar algo sem a ajuda de profissionais. Ou seja, faça você mesmo!

✗ Existem projetos DIY em todas as áreas, música, artes, culinária, tecnologia, artesanato, etc.

✗ A cultura maker é uma extensão da cultura DIY, com foco em tecnologia (eletrônica, robótica, impressão 3D, etc).

Page 8: Linux embarcado, hacking e projetos DIY

Embedded Labworks

(R)EVOLUÇÃO

✗ Computador + Internet = inovação, expansão da cultura DIY.

✗ Hardware = aberto, barato, acessível, hackeável!

✗ Linux e software livre = facilitador, a caminho da dominação mundial!

Page 9: Linux embarcado, hacking e projetos DIY

Embedded Labworks

UM NOVO MUNDO

O que as pessoas tem feito com um computador na mão, hardware aberto e

software livre?

Page 10: Linux embarcado, hacking e projetos DIY

Embedded Labworks

IRON MAN COSTUME

✗ Fantasia do Iron Man feita para uma festa de Halloween!http://www.instructables.com/id/Iron-Man-Suit-with-Tech/

✗ O que faz?✗ Luz do ARC Reactor e auto-falante instalados no peito da fantasia.

✗ Repulsor de ar com uma bomba de CO2.

✗ Lançador de mísseis de papel usando a mesma bomba de CO2.

✗ Sensor magnético faz a luz da mão acender e o efeito fade in/fade out nas luzes dos olhos.

Page 11: Linux embarcado, hacking e projetos DIY

Embedded Labworks

IRON MAN COSTUME (cont.)

Page 12: Linux embarcado, hacking e projetos DIY

Embedded Labworks

IRON MAN COSTUME (cont.)

Angstrom

Page 13: Linux embarcado, hacking e projetos DIY

Embedded Labworks

BEAGLEBOARD.ORG

✗ A BeagleBoard.org Foundation é uma organização não lucrativa fundada por engenheiros da Texas Instruments com o objetivo de promover o uso de plataformas de hardware e software aberto.http://beagleboard.org/

✗ Possui 4 diferentes plataformas de hardware 100% abertas:✗ Beagleboard

✗ Beagleboard-xM

✗ Beaglebone

✗ Beaglebone Black

Page 14: Linux embarcado, hacking e projetos DIY

Embedded Labworks

BEAGLEBOARD ($125)

✗ ARM Cortex-A8 720MHz (OMAP3530 da TI).

✗ 256M de RAM.

✗ 256M de Flash e entrada para cartão SD/MMC.

✗ Áudio e vídeo DVI e S-Video.

✗ USB, serial, JTAG, GPIO, PWM, MMC, I2C, etc.

Page 15: Linux embarcado, hacking e projetos DIY

Embedded Labworks

BEAGLEBOARD-XM ($149)

✗ ARM Cortex A8 1GHz (DM3730 da TI).

✗ 512M de RAM.

✗ Entrada para cartão SD/MMC.

✗ Áudio e vídeo DVI e S-Video.

✗ USB, Ethernet, serial, JTAG, GPIO, PWM, MMC, I2C, etc.

Page 16: Linux embarcado, hacking e projetos DIY

Embedded Labworks

BEAGLEBONE ($89)

✗ ARM Cortex A8 720MHz (AM335x da TI).

✗ 256M de RAM.

✗ Entrada para cartão SD/MMC.

✗ USB, Ethernet, serial, JTAG, GPIO, PWM, MMC, I2C, etc.

Page 17: Linux embarcado, hacking e projetos DIY

Embedded Labworks

BEAGLEBONE BLACK ($45)

✗ ARM Cortex A8 1GHz (AM335x da TI).

✗ 512MB de RAM.

✗ Armazenamento interno de 2GB (eMMC) e entrada para cartão SD/MMC.

✗ Áudio e vídeo HDMI (720p).

✗ USB, Ethernet, serial, JTAG, GPIO, PWM, MMC, I2C, etc.

Page 18: Linux embarcado, hacking e projetos DIY

Embedded Labworks

BEAGLEBONE CAPES

✗ As Beaglebones são expansíveis!http://beagleboardtoys.com/products.html

Sensores de temperatura, pressão, etc

CâmeraWiFi e Bluetooth

Display com touchscreen

Page 19: Linux embarcado, hacking e projetos DIY

Embedded Labworks

ARDUINO

✗ Plataforma de computação projetada para facilitar a interface com o mundo físico (luzes, sensores, motores, etc).http://arduino.cc/

✗ É composto por um conjunto de componentes, incluindo uma placa Arduino, IDE multiplataforma e muitas bibliotecas disponíveis.

✗ Vantagens: custo acessível, multiplataforma, ambiente de programação simples, hardware e software 100% open-source.

✗ Baseada em microcontroladores da Atmel, com diversos modelos de placa existentes (Uno, Due, Leonardo, etc).

✗ As características técnicas dependem da placa: CPU entre 8MHz a 64MHz, RAM de 1KB a 96KB e flash de 16KB a 512KB.

Page 20: Linux embarcado, hacking e projetos DIY

Embedded Labworks

ARDUINO ($15 a $80)

Page 21: Linux embarcado, hacking e projetos DIY

Embedded Labworks

NINJA BLOCKS

✗ Dispositivo para conectar sensores e atuadores à Internet!http://ninjablocks.com/

✗ O que faz?✗ Permite acessar remotamente qualquer sensor (temperatura,

umidade, movimento, porta aberta, etc) ou atuador (desligar e ligar equipamentos, controlar luminosidade, etc).

✗ API e framework de aplicações para acessar os Ninja Blocks.

✗ Aplicação web otimizada para mobile para acessar os Ninja Blocks.

Page 22: Linux embarcado, hacking e projetos DIY

Embedded Labworks

NINJA BLOCKS (cont.)

Page 23: Linux embarcado, hacking e projetos DIY

Embedded Labworks

NINJA BLOCKS (cont.)

Page 24: Linux embarcado, hacking e projetos DIY

Embedded Labworks

NINJA BLOCKS (cont.)

✗ Beaglebone: rodando Ubuntu Oneiric 11.10, com as aplicações escritas em Node.js.

✗ Cape: através do Arduino, provê acesso aos sensores e atuadores (USB ou RF), e fornece uma interface WiFi para comunicação com a Internet.

Page 25: Linux embarcado, hacking e projetos DIY

Embedded Labworks

REPRAP

✗ O RepRap é um projeto de uma máquina de prototipação rápida, também chamada de impressora 3D.http://reprap.org/

✗ O que faz?✗ Permite impressão de qualquer objeto modelado de forma

tridimensional.

✗ Cultura de compartilhamento de modelos na Internet.

✗ Custo acessível: qualquer pessoa pode ter uma fábrica em casa!

Page 26: Linux embarcado, hacking e projetos DIY

Embedded Labworks

Replicape 3D printer

✗ Cape para a Beaglebone, 100% open-source, com software escrito em python.http://beagleboard.org/project/Replicape/

✗ Controla até 5 motores de passo.

✗ Possui 9 entradas analógicas.

✗ Sensor de temperatura.

Page 27: Linux embarcado, hacking e projetos DIY

Embedded Labworks

DIY WEARABLE COMPUTER

Page 28: Linux embarcado, hacking e projetos DIY

Embedded Labworks

DIY WEARABLE COMPUTER (cont.)

✗ Você conectado à um computador, 24 horas por dia!http://www.martinmagni.com/blog/2010/07/shoulder-strap-wearable-computer.html

✗ O que faz?✗ Um computador vestível conectado à Internet.

✗ Um pequeno display.

✗ Teclado wireless.

✗ Conectado à Internet.

Page 29: Linux embarcado, hacking e projetos DIY

Embedded Labworks

DIY WEARABLE COMPUTER (cont.)

Page 30: Linux embarcado, hacking e projetos DIY

Embedded Labworks

DIY WEARABLE COMPUTER (cont.)

✗ A Beagleboard rodando Angstrom é o computador principal, conectada aos seguintes componentes:

✗ Mini display retirado de um óculos Myvu na saída S-Video.

✗ Hub USB.

✗ Dongle Bluetooth para conexão com teclado wireless e com o iPhone para tethering.

✗ 4 baterias AA para até 3 horas contínuas de uso.

Page 31: Linux embarcado, hacking e projetos DIY

Embedded Labworks

SKY DRONE FPV

✗ Projeto de um DRONE (veículo aéreo não tripulado) com visão em primeira pessoa em alta definição!http://www.indiegogo.com/projects/sky-drone-fpv

✗ O que faz?✗ Veículo aéreo não tripulado comandado remotamente.

✗ Transmissão de vídeos em 1080p (3G/4G).

✗ Baixo-custo, grande alcance e baixa latência!

✗ Câmera 5 Megapixels.

✗ Encriptação AES-256.

✗ Aplicação roda em vários dispositivos mobile (Android, iPhone, etc).

Page 32: Linux embarcado, hacking e projetos DIY

Embedded Labworks

SKY DRONE FPV (cont.)

Page 33: Linux embarcado, hacking e projetos DIY

Embedded Labworks

SKY DRONE FPV (cont.)

Page 34: Linux embarcado, hacking e projetos DIY

Embedded Labworks

SKY DRONE FPV

✗ Beaglebone Black rodando Linux.

✗ Modem 4G conectado à USB.

✗ Câmera de 5MP conectado à USB.

✗ Dispositivo de telemetria, incluindo um receptor GPS, conectado à Beaglebone Black via interfaces de I/O.

Page 35: Linux embarcado, hacking e projetos DIY

Embedded Labworks

H2O IQ

✗ Sistema de irrigação automática de jardim.http://blog.valkyriesavage.com/blog/2013/01/18/h2o-iq/

✗ O que faz?✗ Monitora o solo e avisa quando o nível de umidade estiver muito

baixo (solo muito seco).

✗ Capaz de acionar o dispositivo de irrigação caso o dono esteja de férias ou não possa iniciar o processo de irrigação manualmente.

✗ O controle pode ser realizado através de uma aplicação móvel.

Page 36: Linux embarcado, hacking e projetos DIY

Embedded Labworks

H2O IQ (cont.)

✗ O dispositivo de monitoramento possui:✗ Painel solar no topo.

✗ Servo motor para controlar o sistema de irrigação.

✗ Módulo Xbee para se comunicar com a Raspberry Pi.

✗ Sensor de umidade.

✗ A Raspberry Pi se comunica com o dispositivo via Xbee e roda um webserver disponibilizando uma interface de acesso ao sistema para o usuário.

Page 37: Linux embarcado, hacking e projetos DIY

Embedded Labworks

RASPBERRY PI

✗ Ideia de alguns amigos do Laboratório de Computação da Universidade de Cambridge para criar um computador barato para ser usado como ferramenta de ensino.

✗ Em 2008 foi criada a Raspberry Pi Foundation para transformar este projeto em realidade.http://www.raspberrypi.org/

✗ Em 2011 foi lançada a primeira revisão da placa.

Page 38: Linux embarcado, hacking e projetos DIY

Embedded Labworks

RASPBERRY PI (35$)

✗ ARM11 720MHz (BCM2835 da Broadcom).

✗ 512M de RAM.

✗ Entrada para cartão SD/MMC.

✗ Áudio e vídeo HDMI (capaz de rodar vídeos à 1080p).

✗ USB, Ethernet, UART, GPIO, SPI, I2C, I2S e JTAG.

Page 39: Linux embarcado, hacking e projetos DIY

Embedded Labworks

DISTRIBUIÇÕES RPi

✗ Além da Raspbian, várias outras distribuições estão disponíveis para a Raspberry Pi.

✗ Pela capacidade da GPU (Graphics Processing Unit), é muito fácil transformar a Raspberry Pi em uma central de media com distribuições como a Raspbmc ou a OpenELEC.

Page 40: Linux embarcado, hacking e projetos DIY

Embedded Labworks

RASPBERRY PI MICROWAVE

✗ Um micro-ondas turbinado!http://madebynathan.com/2013/07/10/raspberry-pi-powered-microwave/

✗ O que faz?✗ Controlado por voz.

✗ Pode usar o código de barras do produto para procurar por instruções de preparo.

✗ Pode ser controlado via web.

✗ Relógio atualizado pela Internet.

Page 41: Linux embarcado, hacking e projetos DIY

Embedded Labworks

RASPBERRY PI MICROWAVE (cont.)

Page 42: Linux embarcado, hacking e projetos DIY

Embedded Labworks

RASPBERRY PI JOLT

✗ Um robô atirador de dardos de espuma!http://jordanbalagot.com/blog/2013/02/26/raspberry-jolt-my-mini-nerf-gun-robot

✗ O que faz?✗ Robô com uma câmera e uma mini arma NERF.

✗ Controlado remotamente por outro smartphone via WiFi.

✗ Recebe comandos para atirar dardos de espuma nas pessoas.

✗ Capacidade de gravar vídeos.

Page 43: Linux embarcado, hacking e projetos DIY

Embedded Labworks

RASPBERRY PI JOLT (cont.)

Page 44: Linux embarcado, hacking e projetos DIY

Embedded Labworks

RASPBERRY PI R2D2

✗ Dando vida ao R2D2!http://hackaday.com/2013/03/23/hacked-interactive-r2d2-controlled-by-raspberry-pi/

✗ O que faz?✗ Todo controlado por uma Raspberry Pi.

✗ Reconhecimento facial (biblioteca OpenCV).

✗ Comandos de voz (engine PocketSphinx).

✗ Grava e reproduz áudio.

✗ Sensores de ultrasom e movimento.

✗ Conexão Wifi.

Page 45: Linux embarcado, hacking e projetos DIY

Embedded Labworks

PARALLELLA ($99)

✗ Projeto com o objetivo de facilitar o acesso à computação paralela através de hardware aberto e custo acessível.http://www.parallella.org/

✗ Duas versões de placas, uma com 18 núcleos e outra com 66 núcleos!

✗ A versão de 66 núcleos pode chegar a 90 GFLOPS com um consumo de apenas 5W! Para se ter uma idéia, um chip Intel Core i7-930 chega à aproximadamente 60 GFLOPS.

Page 46: Linux embarcado, hacking e projetos DIY

Embedded Labworks

PARALLELLA (cont.)

Page 47: Linux embarcado, hacking e projetos DIY

Embedded Labworks

Mini2440 ($70)

✗ Kit de desenvolvimento "chinês" de ótimo custo/benefício, desenvolvido pela FriendlyARM.http://www.friendlyarm.net/

✗ ARM9 de 400MHz da Samsung (S3C2440A), com 64M de RAM é até 1G de flash.

✗ Diversas interfaces de comunicação como UART, USB e Ethernet.

✗ Sua grande vantagem é que já vem com um display!

Page 48: Linux embarcado, hacking e projetos DIY

Embedded Labworks

EMULADOR DE ATARI

✗ Emulador de Atari em um display de 3,5”!http://sergioprado.org/mini2440-emulando-atari-com-linux-embarcado/

✗ O que faz?✗ Emula qualquer jogo do Atari (emulador Stella).

✗ Distribuição construída com o Buildroot.

✗ Vídeo no display LCD de 3,5” e áudio no conector P2.

✗ Lê jogos do cartão SD.

✗ Suporta controles USB.

Page 49: Linux embarcado, hacking e projetos DIY

Embedded Labworks

EMULADOR DE ATARI (cont.)

Page 50: Linux embarcado, hacking e projetos DIY

Embedded Labworks

OUTRAS PLATAFORMAS

✗ Cubieboard:http://cubieboard.org/

✗ Wandboard:http://www.wandboard.org/

✗ Odroid-X2:http://www.hardkernel.com/

✗ CuBox-i:http://cubox-i.com/

Page 51: Linux embarcado, hacking e projetos DIY

Embedded Labworks

OUTRAS PLATAFORMAS (cont.)

✗ A13-OLinuXino:https://www.olimex.com

✗ PandaBoard:http://pandaboard.org/

✗ Hackberry:https://www.miniand.com

✗ UDOO:http://www.udoo.org/

Page 52: Linux embarcado, hacking e projetos DIY

Embedded Labworks

CONCLUSÃO

✗ Ferramentas? Você em uma fábrica em mãos!

✗ Cada vez mais, software e hardware são commodities, livres e acessíveis à qualquer um.

✗ O que tem valor hoje são suas idéias!

✗ O caminho? Contribuir, criar, compartilhar!

Page 53: Linux embarcado, hacking e projetos DIY

Embedded Labworks

PERGUNTAS?

Page 54: Linux embarcado, hacking e projetos DIY

Embedded Labworks

DESAFIO

“Qual o segredo da vida, do universo e de tudo mais?”

Page 55: Linux embarcado, hacking e projetos DIY

Embedded Labworks

Por Sergio Prado. São Paulo, Agosto de 2013® Copyright Embedded Labworks 2004-2013. All rights reserved.

OBRIGADO!

E-mail [email protected] http://e-labworks.com