terça-feira, 23 de abril de 2013

Faça um video-game com o Raspberry PI

tempo total de escrita desse post - 4 horas e 15 minutos (21/04/2013 -- 23/04/2013)

Salve nerdaiada !!!


A algumas semanas estava pensando o que mais poderia fazer com o Raspberry PI que está "sobrando" em casa e resolvi instalar o Raspbian, que nada mais é do que um desktop baseado no debian para rodar no RPI. 
Depois de instalado, achei ele legalzinho para se ter um "desktop" ambulante em qualquer lugar, tendo que ter apenas um teclado + mouse + TV/monitor + internet emprestado para acessar a internet de qualquer lugar, usar uma VPN para o trabalho, ou qualquer coisa do tipo sem precisar usar um PC que você não conhece, na casa de uma tia por exemplo. Eu sei, eu sei... alguns vão pensar "smartphone e tablet existem para isso seu nerd gordo", mas e se eu não QUERÊ USÁ um smartphone ou um tablet ?

Mas pensando bem, era uma ideia idiota mesmo, ter um RPI na mochila para fazer o que falei no paragrafo acima. Tenho um tablet e smartphone pra quê ? :D Ai tive uma epifania, uma ideia espetacular, uma ideia genial, uma ideia... pensando bem, foi só uma ideia mesmo... "E se eu instalar alguns EMULADORES no RPI ?"

Todos sabem o quanto eu gosto de jogar video-game e o quanto eu gostaria de jogar MAIS video-game (isso nao vem ao caso agora). Deixa abrir um colchete aqui e explicar rapidinho.

[ A 1 ano e alguma coisa atrás comprei um WII apenas para jogar super-nintendo e mega-drive emulado, mas ter mais um vide-game no rack, ocupando mais um espaço e tendo que ouvir "para que tanto cabo ? para que tanto video-game?" resolvi dar o WII para meu pai e fazer um velhinho tatuado feliz :D e assim minha vontade de jogar os video-games da minha infância tinham ido para o beleléu. ]

Mas chega de lenga-lenga e vamos ao que interessa. Achei um projeto chamado RetroPI - http://retropi.of.je/ - que nada mais é do que um projeto para unir praticamente todos os emuladores de video-games antigos em um único lugar. Pensei: perfeito para mim, vou instalar o cara e foi o que fiz nesse final de semana e resolvi compartilhar com vocês como instalar o RetroPI.


Coisas que você vai precisar para esse "projeto":

- 1 RaspberryPi
- 1 Cartão SD de pelo menos 4GB
- Teclado USB
- Joystick USB (aqueles iguais do Pristeichon)
- 1 ISO do raspbian
- Paciencia, muita paciencia.

Passo 1 - Baixando e instalando o raspbian

Os passos serão feitos no linux OK ? para instalação via Windows, consultem o post anterior de como fazer a instalação pelo Windows clicando AQUI


Bom, tive alguns problemas com a instalação do raspbian, porque pensei que era apenas jogar a ISO para dentro do cartão SD e correr para o abraço. É basicamente isso, mas tem um pulo do gato nesse processo.

Geralmente faria assim a cópia da ISO para o cartão SD


dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdd



Tentei isso 3x e o RPI não dava boot nem a pau, ai vi que no manual do DD é possivel limitar a quantidade de dados que são escritos por segundo na copia. Cheguei a segunte linha para copia da ISO sem ter problemas no boot:


dd bs=4M if=2013-02-09-wheezy-raspbian.img of=/dev/sdd




Após a cópia, coloque o cartão no RPI, dê um boot no menino e quando aparecer o menu do Raspi-config entre no item expand_rootfs para expandir a instalação do raspbian para o tamanho total do seu cartão. Feito isso, saia da tela de config. Obrigatoriamente o RPI vai rebootar e quando ele voltar vamos começar a instalação do RetroPI.

O usuario e senha padrão do Raspbian é pi / raspberry

Agora basta seguir os comandos abaixo e esperar a instalação inicial.


Passo 2 - Atualizando o raspbian e instalando o RetroPI e o EmulationStation

A primeira coisa é fazer um update nos repositorios do raspbian.


sudo apt-get update


sudo apt-get upgrade -y
O proximo passo é instalar o git e o dialog via apt-get

 sudo apt-get install -y git dialog
Aguarde a instalação dos 2 pacotes e baixe o RetroPI pelo git e inicie a instalação


git clone --depth=0 git://github.com/petrockblog/RetroPie-Setup.git
cd RetroPie-Setup
chmod +x retropie_setup.sh
sudo ./retropie_setup.sh


Na tela de instalação do retropi, existem algumas opções, vamos direto para a segunda opção - Source Based Installation - e pressione enter.

Aparecerão todos os emuladores disponiveis no retropi: AMIGA, AMIGA2 MSX, NEO-GEO, MEGA-DRIVE, MASTER SYSTEM, NES, SNES, MAME, PLAYSTATION, DOS, SCUMMVM, WOLFEINSTEN 3D, DUKE NUKEM, DOOM e mais alguns.

Eu fiz um teste em casa selecionando todos os emuladores... lembra que falei que um dos itens que precisava para a instalação era a paciencia ? Então, demorou 19 horas para compilar tudo no RPI. Então sejam inteligentes, selecionem apenas o que vocês realmente querem emular (vou refazer o meu nesse final de semana).

Iniciando a instalação abandone o RPI, porque realmente o treco demora. Quando finalizar, a instalação vai voltar para a tela inicial do setup. Agora, entre novamente na segunda opção e em seguida na quinta opção - Start EmulationStation on boot” - e pressione enter. Isso irá configurar o raspbian a entrar automaticamente no EmulationStation no boot.

Saia do menu de setup e o RetroPI está praticamente pronto para ser usado. Antes do boot, veja qual IP o RPI pegou, caso você não tenha fixado o IP nas configurações. Isso vai ser necessario para jogar as ROMS no diretorio para você começar a jogar.

Passo 3 - Considerações finais

para inciar um jogo ou fechar é auto-explicativo na tela, basicamente é tudo feito pela tecla F4 ou F6 do teclado (ou bind de teclas configuradas no joystick)

ROMS: 

Você tem que copiar as ROMs via scp/winscp para o diretorio do emulador correspondente dentro de ~/RetroPie/

Não vou colocar aqui endereço para nenhum site de ROM, google tá ai e ele é seu amigo. O que você precisa saber é que deverá colocar os ROMS em seus respectivos diretorios, descompactadas. ROM de SNES no diretorio SNES


Joystick:

Teste usando um joystick generio USB de playstation e funcionou sem problemas apos o boot do RPI. Vou testar usando também o joystick do PS3 via USB e o do XBOX360 conectado via cabo para ver se funciona. Se funcionar, atualizo o post.

para configurar o seu joystick, rode o seguinte comando:


cd RetroPie/emulators/RetroArch/tools
./retroarch-joyconfig >> ~/RetroPie/configs/all/retroarch.cfg

Siga as instruções do site do desenvolvedor, está muito bem explicado como configurar os controles - RetroPi Setup - Joystick

Se você quiser, pode comprar também um joystick original do video-game e usar um adapador para USB. No site RetroUSB tem alguns modelos que funcionam no RPI.

Links relacionados:
Raspbian - http://www.raspbian.org/
RetroPI - http://retropi.of.je/
FarnelBrasil - http://www.farnellnewark.com.br/

terça-feira, 12 de março de 2013

Raspberry PI - Instalação e configuração do XBMC


Salve nerdaiada !

Como eu prometi, aqui estou para mostrar para vocês como instalar e configurar o XBMC no Raspberry PI.

Esse post terá duas partes. A instalação + configuração do Openelec e depois a instalação de alguns addons e como adicionar seus videos no Openelec. Vou tentar fazer os 2 posts essa semana.

Antes de começar, você vai precisar de algumas coisas:

- 1 Raspberry PI (dãã !)
- 1 cartão SD de pelo menos 4GB. Uma dica: não comprem cartões da EMTEC, comprei um e é um lixo, a velocidade é muito lenta tanto para escrita como para leitura nesse cartão. Compre um kingstone ou outro de classe 10
- 1 fonte com micro-usb ou cabo micro-usb + fonte iphone/ipad
- 1 TV com HDMI + cabo HDMI
- 1 teclado USB para o primeiro setup

Vou aqui colocar o passo a passo de como instalar o openelec pelo linux,  se voce utilizar o windows ou Mac, os links estão logo abaixo.


1 - Instalando o OpenElec no Cartão SD

Primeiro, baixe a ultima versão do SO no site http://sources.openelec.tv/tmp/image/, no momento desse post, a ultima versão é a OpenELEC-RPi.arm-devel-20130310214646-r13521.tar.bz2 . Quando finalizar o download, descompacte o arquivo e entre no diretorio criado.

Verifique em qual "/DEV" o cartão SD foi reconhecido e execute o comando, levando em consideracao que o cartao foi reconhecido no /dev/sdb.


$ sudo ./create_sdcard /dev/sdb

Esse processo irá formatar e copiar os arquivos para dentro do SD, isso pode demorar uns 5 minutinhos e ao final do processo ele perguntará se deseja expandir a partição do sistema para a capacidade total do cartão. Recomendo que vocês aceitem essa opção.

Finalizado a instalação no cartão, vamos ao que interessa. Colocar o cartão no RPI e iniciar o setup básico do XBMC.

2 - Primeiro boot e configuração inicial.


Quando voce ligar o RPI, deve aparecer uma tela parecida com essa e logo em seguida ficará tudo preto, até aparecer a tela inicia do XBMC

tela de boot do oooooooopenelec lec lec lec lec lec ( tá, foi podre )

tela inicial do xbmc

A primeira coisa que vamos alterar no XBMC é a resolução da tela. Na maioria dos casos ou a tela está menor do que a sua TV ou está com a resolucao muito abaixo do que a TV suporta. mas vamos alterar essas configurações.

Primeiro passo é entrar no menu SYSTEM e logo em seguida no menu APPEAREANCE / SYSTEM / VIDEO OUTPUT / VIDEO CALIBRATION



 

Para ajudar é simples, basta com as setinhas do teclado alinhar as barras azuis com a borda da tela da sua TV. Apenas fique atento com a parte da legenda, nao alinhe com a borda da TV, senão as legendas ficarão cortadas :)

3 - Ativando o SSH para acesso remoto


Acho que não preciso explicar aqui qual a necessidade / utilidade de se ter acesso ao RPI via SSH né ? Para ativar  o SSH é simples. 

Na tela inicial do XBMC entre em PROGRAMS / OPENELEC OS / PARAMETERS. Você encontrará um item chamado SSH. Ative a opção de ENABLE e volte para a tela inicial do XBMC apertando ESC.


4 - Configuração da rede, overclock e outras coisinhas

Agora que ativamos o SSH do XMBC, podemos ter acesso as configurações avançadas do OpenElec, que só é acessivel via SSH. Para começar, vamos descobrir qual IP o RPI pegou na rede.

4.1 - Configuração de rede

Para verificar qual o ip do RPI, no menu principal entre em SYSTEM / SYSTEM INFO / NETWORK



Pronto, aí está o IP do RPI. para configurar o RPI com um IP FIXO, basta entrar em  SYSTEM / SETTINGS e entrar no item NETWORK e fixar as configuracoes manualmente.

Para acessar o RPI por ssh, abra um terminal e inicie uma conexão SSH.

O único usuário habilitado no OpenElec é o root. A senha padrão é openelec.


$ ssh root@XXX.XXX.XXX.XXX

4.2 - Overclock e outras coisinhas

É possivel fazer o overclock do RPI para se obter um melhor desempenho da placa, primcipalmente se você utilizar um video em 1080p com o audio de 5.1 canais ou superior.

O primeiro passo é remontar a partição que contem os arquivos de configuração do RPI para leitura e escrita e logo em seguida editar o aquivo config.txt

mount -o remount,rw /flash
vi /flash/config.txt

Caso você opte por fazer o overclock, aconselho a utilizarem um cartão de classe 10 para não correr o risco de corromper os dados do cartão.

Localize no arquivo a seção de Overclock. Nessa seção aparece uma tabela dos tipos de overclock que você pode fazer.


A configuração que utilizo e que até agora não apresentou problemas para mim é a seguinte:

#Medium
arm_freq=900
core_freq=333
sdram_freq=450
over_voltage=2

recomendo também a forcar o hotplug do HDMI, para que você não perca o sincronismo da porta quando desligar a TV. Isso obrigaria você a desligar e ligar novamente o RPI.

# Force HDMI 
hdmi_force_hotplug=1

Alterando os valores, salve o arquivo ( :wq! ), volte a partição /flash para somente leitura e reinicie o RPI com o comando reboot.

mount -o remount,ro /flash
reboot

E por enquanto é isso, aguardem a ultima parte da configuração do RPI + XBMC.

Referencias: 

quarta-feira, 27 de fevereiro de 2013

Raspberry PI + XBMC = Adeus TV a cabo


Salve nerdaiada !!!! [Você não está vendo errado, estou atualizando o blog hoje :) :) :)]

A algum tempo atrás resolvi que deveria fazer um media center em casa para eu tentar me livrar da incrivel qualidade da TV a cabo no Brasil, que consegue repetir o mesmo programa 3x no mesmo dia e 3x na mesma semana - dizem que é para ter flexibilidade de horario para os assinantes, mas eu chamo de sacanagem e falta de conteudo mesmo.

O primeiro "projeto" de media center em casa começou com eu utilizando o Windows Media Center para compartilhar meus videos/musicas com o meu XBOX 360. Até que funcionou bonitinho por um tempo, mas a maioria dos videos não eram nativamente compativeis com o media center + xbox, como MKV, MP4, FLAC, legendas e etc e eu tinha que perder um baita tempo convertendo o video com a legenda embutida no video.

Cansei de apanhar e resolvi ligar o PC diretamente na TV, pelo cabo HDMI, porque ai eu teria a certeza que não teria que converter nenhum arquivo para assistir os videos sentados no meu sofá com a minha senhora. usei por um tempão assim, mas tinha o incomodo de ficar com o laptop em cima do rack, ao lado da TV toda vez que ia assistir um filme, fora que tinha que desmontar toda a papagaiada quando acabava a seção cinema em casa, porque jamais que minha patroa permitiria um PC tempo integral no rack, deixando desorganizado os bibelôs dela kkkkk.

Mas ai, tive a felicidade de comprar uma TV nova no final de 2011 que tinha uma porta USB e que lia diversos tipos de arquivos diretamente pela interface. Não pensei duas vezes, comprei um HD externo e coloquei todos os meus videos nele. A felicidade foi suprema, "todos" os videos tocavam sem problema. Notaram as aspas né ? Pois bem, o inicio os videos funcionaram lindamente, mas depois de uma atualização da TV em Outubro de 2012 (Obrigado LG), videos MKV e legendas pararam de funcionar e tive que re-iniciar o processo de conversão dos videos como fazia lá em 2009/2010.

Calma que tá acabando...

Conversando com alguns amigos, tivemos varias ideias para fazer o media center. Comprar um Apple TV e colocar o XBMC, comprar uma placa Nano ITX e montar um servidor com XBMC, varias ideias desse tipo, sempre tendo como base o XBMC, mas caia sempre no problema de ter um PC ligado na tomada, ocupando espaço e gastando energia. Ai surgiu algo que não tinha pensado ainda (foi antes do hype que aconteceu na campus party BR 2013, que acabou com o estoque de RPI) :

RASPBERRY PI


Era perfeita a escolha. Funciona com linux, XBMC e o melhor, não gasta quase NADA de energia e espaço.

Comprei a placa e iniciei o setup do "brinquedo". Em duas horas, tinha montado um "media center" com um pouco mais de 150 reais (a placa la fora custa $35.00 aqui R$120.00 - Brasil né).
Pluguei meu HD externo na USB, um tecladinho USB sem fio para configurar e acessar os menus e sucesso, era só aprender como fazer as bibliotecas de video e audio no XBMC e ser feliz.


Mas com tudo, tinha que fuçar no cara, deixar com uma cara de "serviço profissional" e a primeira coisa foi comprar uma caixa de acrilico para ele e porque não, nao comprar mais um RPI para colocar na TV do quarto e acessar o conteudo remotamente do HD USB compartilhado via NFS ?

O Resultado foi esse ai embaixo:


Notem que o da direita tem um adaptador WI-FI plugado na USB, mas isso eu deixarei para o proximo post, quando vou mostrar como configurar o RPI + XBMC desde o inicio.

Pronto, Media Center funcionando a 80% do esperado, mas ainda nao estava satisfeito com duas coisas.

1 - Espaço em disco acabando,o disco de 500GB estava com 10GB livre e teria que começar a apagar o conteudo para ver coisas novas. Algo que não era o proposito, já que é um Media Center.
2 - Queria ouvir minhas musicas enquanto estava trabalhando ou lavando a louça (vida de casado) e não conseguia, porque teria que deixar ligada a TV e nem sempre a esposa gosta de um rock paulera :)

Resolvi esses dois problemas com uma paulada só: Time Capsule 3TB



Com ele consegui ter uma melhor performance de rede sem fio (5Gz), liberei o processamento do RPI que estava na sala de entregar o conteudo para o que estava no quarto, aumentando inclusive a velocidade para o RPI conectado via WI-FI e também fazer um share via DLNA em minha rede, ou seja, qualquer dispositivo que tenho em casa que tenha acesso a esse protocolo, toca videos ou musicas que estão na minha biblioteca, inclusive quando estou na garagem ou no térreo do prédio fazendo um churrasco, como aconteceu a algumas semanas \o/

E de quebra, consigo utilizar o iphone como controle remoto do RPI e consigo utilizar o Transmission como client "de arquivos da locadora da internet" para baixar os conteúdos, acessivel de qualquer lugar de onde tenho acesso a internet.


E acaba por aqui esse post. O próximo será o passo-a-passo da configuração correta do XBMC e tunning do RPI para que ele funcione redondinho.

Á... e vou cancelar minha TV a cabo ...

Links relacionados:

Raspberry PI - http://www.raspberrypi.org
Transmission - http://www.transmissionbt.com/
OpenElec - http://openelec.tv/
Farnell Brasil - http://www.farnellnewark.com.br