Mostrar mensagens com a etiqueta Raspberry Pi. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Raspberry Pi. Mostrar todas as mensagens

segunda-feira, 20 de dezembro de 2021

Kodi - Netflix, HBO, Disney+ e Amazon Prime Video

 

Utilização de um Raspberry Pi com LibreELEC e Kodi para ver Netflix, HBO Portugal, Disney Plus e Amazon Prime Video

Ao longo dos anos a utilização de um raspberry pi para transformar uma televisão estúpida numa televisão esperta foi uma opção muito válida.

Agora com os serviços de streaming legais e disponíveis em Portugal a sua utilização num simples Raspberry Pi eleva ainda mais a inteligência de qualquer televisão.

Mais, qualquer televisão que tenha ficado burra (porque deixou de ter suporte para as atualizações dos serviços de streaming) pode recuperar alguma inteligência.

O sistema está operacional num Raspberry Pi 4B, com o LibreELEC num cartão de 16GB (é necessário ter algum espaço, no mínimo deverá utilizar-se um cartão de 8GB).

HBO Portugal

A instalação do Add-On para a HBO Portugal é simples e encontra-se disponível no repositório oficial.

Assim, basta aceder aos Add-Ons e Instalar a partir de um repositório. Na secção de Vídeos Add-Ons é necessário procurar por hGO EU e instalar.

Após a instalação o AddOn ficou disponível mas ao abrir será necessário instalar ainda o InputStream Adaptative que instalará também o WidevineCDM (ver) e que demora algum tempo.

Na configuração do Add-On é necessário escolher o País e no caso de Portugal escolher o tipo de utilização, neste caso foi escolhido o HBO Portugal. A lista de países suportadas é extensa.

Na primeira inicialização será preciso introduzir as credenciais de acesso à HBO Portugal e começar a utilizar o Add-On que funciona muito bem.


Netflix

Há pouco tempo experimentei novamente a instalação do AddOn Netflix utilizando o LibreELEC com a última versão do Kodi e os passos dados foram substancialmente mais simples.

Acedendo por SSH é possível descarregar o ZIP do repositório CastagnaIT diretamente para o raspberry pi (também é possível transferir utilizando outras formas, por exemplo, por pen ou SAMBA):

ssh root@LibreELEC

Kodi 18 - Leia
wget https://github.com/castagnait/repository.castagnait/raw/master/repository.castagnait-1.0.1.zip
 
Kodi 19 - Matrix
wget https://github.com/castagnait/repository.castagnait/raw/matrix/repository.castagnait-1.0.0.zip

Após estes comandos podemos aceder ao Kodi e será necessário ir a Sistema e ativar Fontes Desconhecidas para ser possível utilizar o repositório CastagnaIT.

Nos Add-Ons é necessário aceder a Instalar a partir de um ZIP e escolher o ficheiro ZIP descarregado anteriormente (que deve estar na pasta home).

Depois de instalado é possível entrar no repositório CastagnaIT e instalar o Add-On Netflix que está em Video Add-Ons.

A instalação demora um pouco e depois é possível abrir o Add-On.

Mesmo que não esteja instalado o Widevine CDM o AddOn funciona deixando navegar por todo o conteúdo e apenas pedindo para ser instalado aquando da primeira reprodução de um qualquer conteúdo.

Disney+

A instalação do Add-On é similar à instalação do serviço Netflix pois necessita de ser instalado também um repositório não oficial, neste caso o SlyGuy.

ssh root@LibreELEC

wget https://k.slyguy.xyz/repository.slyguy.zip

Será agora necessário em Add Ons instalar o repositório através do ZIP descarregado e a partir daí procurar pelo Add On Disney Plus e instalar.

Depois resta efetuar login com uma conta que tenha o serviço ativo.

 

Amazon Prime Video - Portugal

A instalação do Add-On é similar à instalação do serviço Netflix pois necessita de ser instalado também um repositório não oficial, neste caso o Sandmann79 / xbmc.

ssh root@LibreELEC

Kodi 18 - Leia
wget https://github.com/Sandmann79/xbmc/releases/download/Repository/repository.sandmann79.plugins-1.0.3-leia.zip
 
Kodi 19 - Matrix
https://github.com/Sandmann79/xbmc/releases/download/Repository/repository.sandmann79-py3.plugins-1.0.0-matrix.zip

 

Será agora necessário em Add Ons instalar o repositório através do ZIP descarregado e a partir daí procurar pelo Add On Amazon Prime Video e instalar.

Depois resta efetuar login com uma conta que tenha o serviço ativo.



Para estes AddOns funcionarem será necessário ter instalado o Widevine CDM. Qualquer um deles, caso seja necessário, pedirá para se instalar o Widevine CDM e basta seguir os diferentes passos. Só é necessário instalar uma vez.

Atenção que será necessário bastante espaço para fazer as operações necessárias (>3GB) por isso convém ter um cartão com espaço e aguardar que a instalação termine (ainda é um processo demorado).


Problemas

Caso a imagem esteja desfasada do som/legendas pode ser necessário aceder às Definições do Add-on e baixar a qualidade.
No Raspberry Pi 3 B+ standard é possível utilizar a qualidade 720p sem qualquer problema. O 1080p funciona bem em animação mas não dá para ver conteúdos de imagem real de forma minimamente aceitável.
No Raspberry Pi 4B (testado nas versões de 2GB e 4GB de RAM) funcionou bem sem qualquer problema.

Referências

domingo, 21 de junho de 2020

Kodi - Youtube AddOn

A instalação do plugin Youtube no Kodi não funciona imediatamente.

Indica que é necessário instalar as chaves de API. Para tal é necessário criar um projeto na consola de developers de uma conta Google.

O processo encontra-se descrito na documentação do plugin e em diversos vídeos e tutoriais.

Criação das Chaves

É necessário aceder a uma conta Google e depois à consola de Developers:

Éé necessário criar um novo projeto:

Deve definir-se o nome do projeto:
Na Biblioteca de API é possível ver as API disponíveis, no caso de ainda não ter qualquer API é preciso acrescentar:

Da lista de API's disponíveis deve escolher-se a YouTube Data API:

E de seguida deve ativar-se:

Ao ativar será necessário criar credenciais para a sua utilização:

No assistente de criação de credenciais deve selecionar-se a API do YouTube, Other UI e User Data. No final deve clicar-se em no botão que contém a pergunta What credentials do I Need?:


Se seguida serão criadas credenciais de autenticação OAuth e é necessário definir o consentimento:

Na nova aba/janela é necessário configurar o tipo de consentimento, neste caso como External e Criar:

No passo seguinte é necessário definir algumas informações genéricas para a nossa API:

Após salvar é necessário regressar à aba/janela original:

E aqui adicionar as credenciais ao projeto, indicando um nome para o cliente OAuth 2.0 e criando o OAuth client ID:

Após a criação do OAuth Clinet ID este passo está concluído:

De seguida é preciso criar uma chave API:

Depois de criada é resta fechar a janela:

No ecrã de Credenciais é possível ver a chave API e o ID de cliente OAuth:

Para se saber o OAuth Client Secret é necessário editar o OAuth Client:

Resta guardar estas informações que correspondem
  • API Key » API Key
  • OAuth client ID » API Id
  • OAuth client secret » API Secret

Configuração do YouTube AddOn no Kodi

Existem diversas opções para configuração do AddOn YouTube no Kodi e, dependendo da forma como está a ser utilizado o Kodi, umas poderão ser mais fáceis do que outras:
  1. Configurar diretamente o AddOn no Kodi introduzindo manualmente todos os valores
  2. Ativar no AddOn: Enable API configuration page e depois configurar os valores através do browser
  3. Fechar o Kodi e editar manualmente o ficheiro userdata/addon_data/plugin.video.youtube/api_keys.json


Configuração através da página web de configuração do AddOn

Como normalmente utilizo o Kodi numa televisão com um Raspberry Pi através do LibreELEC ou OSMC, o mais simples é mesmo ativar a API configuration page e num computador copiar/colar os valores.

No Kodi é necessário aceder à configuração do AddOn YouTube e ativar: Enable API configuration page

De seguida num browser com acesso aos dados da API abrir a página:

Devem colar-se as informações guardadas anteriormente e Guardar:

De seguida deve desativar-se o acesso à página de configuração da API e poder-se-á começar a utilizar o AddOn normalmente no Kodi.

domingo, 17 de maio de 2020

Kodi - Netflix e HBO Portugal

Utilização de um Raspberry Pi com OSMC e Kodi para ver Netflix e HBO Portugal

Ao longo dos anos a utilização de um raspberry pi para transformar uma televisão estúpida numa televisão esperta foi uma opção muito válida.

Agora com os serviços de streaming legais e disponíveis em Portugal a sua utilização num simples Raspberry Pi eleva ainda mais a inteligência de qualquer televisão.

Mais, qualquer televisão que tenha ficado burra (porque deixou de ter suporte para as atualizações dos serviços de streaming) pode recuperar alguma inteligência.

O sistema está operacional num Raspberry Pi 3 B+, com o OSMC num cartão de 32GB (é necessário ter algum espaço, no mínimo deverá utilizar-se um cartão de 8GB).

Atualização: Recentemente testei o setup num Raspberry Pi 4 B e, como o OSMC ainda não tem suporte para este dispositivo, utilizei o LibreELEC num cartão de 16GB.
Assim, pude verificar que o processo para instalação do Netflix pode ser mais simples tendo funcionado sem instalar os pacotes extra como referido pelo pimylife.


HBO Portugal

A instalação do Add-On para a HBO Portugal é simples e encontra-se disponível no repositório oficial.

Assim, basta aceder aos Add-Ons e Instalar a partir de um repositório. Na secção de Vídeos Add-Ons é necessário procurar por hGO EU e instalar.

Durante a instalação será necessário instalar o WidevineCDM (ver) que demora algum tempo.

Na configuração do Add-On é necessário escolher o País e no caso de Portugal escolher o tipo de utilização, neste caso foi escolhido o HBO Portugal. A lista de países suportadas é extensa.

Na primeira inicialização será preciso introduzir as credenciais de acesso à HBO Portugal e começar a utilizar o Add-On que funciona muito bem.


Netflix

Há pouco tempo experimentei novamente a instalação do AddOn Netflix utilizando o LibreELEC com a última versão do Kodi e os passos dados foram substancialmente mais simples.

Acedendo por SSH é possível descarregar o ZIP do repositório CastagnaIT diretamente para o raspberry pi (também é possível transferir utilizando outras formas, por exemplo, por pen ou SAMBA):

ssh root@LibreELEC
wget https://github.com/castagnait/repository.castagnait/raw/master/repository.castagnait-1.0.1.zip

Após estes comandos podemos aceder ao Kodi e será necessário ir a Sistema e ativar Fontes Desconhecidas para ser possível utilizar o repositório CastagnaIT.

Nos Add-Ons é necessário aceder a Instalar a partir de um ZIP e escolher o ficheiro ZIP descarregado anteriormente (que deve estar na pasta home).

Depois de instalado é possível entrar no repositório CastagnaIT e instalar o Add-On Netflix que está em Video Add-Ons.

A instalação demora um pouco e depois é possível abrir o Add-On.

Mesmo que não esteja instalado o Widevine CDM o AddOn funciona deixando navegar por todo o conteúdo e apenas pedindo para ser instalado aquando da primeira reprodução de um qualquer conteúdo.


Para estes AddOns funcionarem será necessário ter instalado o Widevine CDM. Qualquer um deles, caso seja necessário, pedirá para se instalar o Widevine CDM e basta seguir os diferentes passos. Só é necessário instalar uma vez.

Atenção que será necessário bastante espaço para fazer as operações necessárias (>3GB) por isso convém ter um cartão com espaço e aguardar que a instalação termine (ainda é um processo demorado).


Problemas
Caso a imagem esteja desfasada do som/legendas pode ser necessário aceder às Definições do Add-on e baixar a qualidade. No Raspberry Pi 3 B+ standard é possível utilizar a qualidade 720p sem qualquer problema. O 1080p funciona bem em animação mas não dá para ver conteúdos de imagem real de forma minimamente aceitável.

Referências


domingo, 21 de maio de 2017

Scanner de rede com o Raspberry Pi

Instalar software

# apt-get update
# apt-get install sane

Testar funcionamento do scanner no servidor

Abrir shell como utilizador saned
# su saned -s /bin/sh

Mostrar os grupos do utilizador saned
$ groups
saned scanner

$ sane-find-scanner
[...]
found USB scanner (vendor=0x03f0 [HP], product=0xc111 [Deskjet 1510 series]) at libusb:001:004
[...]

$ scanimage -L
device `hpaio:/usb/Deskjet_1510_series?serial=CN39219N8W05YR' is a Hewlett-Packard Deskjet_1510_series all-in-one

NOTA: Caso os dois comandos anteriores não funcionem, teste-os como root ou com sudo. Se funcionarem convém verificar as permissões de:

# ls /dev/bus/usb/001/ -la
total 0
drwxr-xr-x  2 root root    120 Jan  1  1970 .
drwxr-xr-x  3 root root     60 Jan  1  1970 ..
crw-rw-r--  1 root root 189, 0 May 21 20:39 001
crw-rw-r--  1 root root 189, 1 May 21 20:39 002
crw-rw-r--  1 root root 189, 2 May 21 20:39 003
crw-rw-r--+ 1 root lp   189, 3 May 21 20:54 004

Adicionar o utilizador saned ao grupo lp
# adduser saned lp

Configurar servidor

Editar e ativar o daemon RUN=yes
# nano /etc/default/saned
[...]
RUN=yes

Editar  /etc/sane.d/saned.conf e acrescentar rede:
[...]
## Access list
192.168.1.0/24

E descomentar
data_portrange = 10000 - 10100

Arrancar o servidor SANE
# systemctl start saned.socket

Ativar o arranque automático do serviço aquando do arranque da máquina
# systemctl enable saned.socket

Verificar o estado do serviço
# systemctl status saned.socket
● saned.socket - saned incoming socket
   Loaded: loaded (/lib/systemd/system/saned.socket; enabled)
   Active: active (listening) 
   Listen: [::]:6566 (Stream)
 Accepted: 0; Connected: 0

Configurar o cliente

No cliente existem várias soluções. A normal será o xsane ou o simple-scan (que vem instalado por defeito no Linux Mint).

Editar o ficheiro
$ sudo nano /etc/sane.d/net.conf

E acrescentar o IP ou hostname do servidor
[...]
## saned hosts
192.168.1.103
[...]

De seguida resta iniciar a aplicação de digitalização e o scanner de rede deverá ser detetado.
Caso não seja detetado pode ser necessário adicionar o utilizador ao grupo scanner
sudo adduser utilizador scanner

Após isto é necessário terminar sessão e voltar a entrar.

Referências

[] - https://samhobbs.co.uk/2014/07/raspberry-pi-print-scanner-server
[] - https://wiki.debian.org/SaneOverNetwork

domingo, 30 de outubro de 2016

Raspberry Pi - Imagem a Preto e Branco com RCA

Nada melhor para tentar dar vida a um velho "aquário" Grundig de 35cm que não se ligava há anos e colocá-lo como display de um Raspberry Pi para entreter petizes.


Problema: A televisão apenas tem entrada SCART e a saída analógica do Raspberry Pi é RCA... Existem vários adaptadores SCART para RCA [1], mas neste processo acontecia magia...

Verificar tudo:
Rpi » RCA>SCART  » "Aquário" - Imagem a Preto e Branco...
Rpi » RCA>SCART  » TV Recente - Imagem a Cores

Conclusão, o SCART da TV velha deixou de dar a cores, mas...
Box TV » SCART » "Aquário" - Imagem a Cores

Parece que o problema reside na forma como o Raspberry Pi envia os sinais de vídeo composto (RCA) que por defeito é NTSC e o "aquário" apenas suporta PAL (daí funcionar na TV Recente). [2] e [3]

Assim, é necessário aceder ao ficheiro config.txt localizado na partição de arranque (boot) do cartão e descomentar ou adicionar a linha:
sdtv_mode=2

Os modos sdtv suportados são:  0 NTSC, 1 NTSC Japão, 2 PAL, 3 PAL Brasil.


[1] - Adaptadores SCART/RCA no Aliexpress
[2] - https://www.raspberrypi.org/forums/viewtopic.php?f=26&t=17074
[3] - http://elinux.org/R-Pi_Troubleshooting#Composite_displays_only_black_and_white_image

sábado, 22 de outubro de 2016

Servidor de Impressão Raspberry Pi

Utilização de um Raspberry Pi 2B como servidor de impressão de uma impressora HP Deskjet 1510 PSC (Print Scan Copy).

A partir de uma imagem Raspbian Jessie Lite é possível configurar todo o sistema remotamente por SSH e browser.

Há muitas informações úteis na página do projeto debian [1] permitem perceber melhor o funcionamento.

Instalação e Configuração do CUPS

sudo apt-get install cups hplip

Para configuração remota via web é necessário ativar o acesso à interface web através da alteração da configuração Listen e acrescentar os endereços que têm acesso à mesma (neste caso a rede 192.168.0.*):
sudo nano /etc/cups/cupsd.conf
(...)
ServerAlias *
Listen *:631
(...)
# Restrict access to the server...
<Location />
  Order allow,deny
  Allow 192.168.0.*
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow 192.168.0.*
</Location>

Atualização: A diretiva ServerAlias * permite aceder ao servidor CUPS através do IP ou do nome.

Por defeito o CUPS permite a autenticação a utilizadores do SystemGroup [2] e o utilizador pi não pertence a nenhum destes grupos.

Adicionar pi ao grupo lpadmin.
sudo usermod -a -G lpadmin pi

Para confirmar os grupos do utilizador:
groups pi
pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio lpadmin

Para reiniciar o serviço após alterações às configurações é necessário:
sudo systemctl restart cups.service 

A partir daqui é possível configurar uma nova impressora via browser acedendo a:
http://raspberrypi:631

Ao adicionar uma impressora é reconhecida a impressora e de seguida é necessário escolher o driver da lista muito numerosa, neste caso:
HP PSC 1510 Series, hpcups 3.14.6

É necessário ativar a partilha da impressora aquando da instalação ou então mais tarde na configuração CUPS (Share printers connected to this system)

A partir daqui qualquer máquina na rede com o CUPS (normalmente qualquer Linux com sistema de impressão, por exemplo, ubuntu, Mint, etc) vai ver a impressora sem ser necessário qualquer instalação.

Resolução de Problemas

1. Ao aceder através do nome do servidor na porta 631 dá erro Bad Request
É necessário utilizar a diretiva ServerAlias *, que permite aceder ao servidor CUPS através do IP ou do nome.

2. Quando se manda imprimir o trabalho não é enviado
Confirmar se a impressora não está parada ou com erro através da página de administração: https://raspberrypi:631/printers

3. Debug
Pode ajudar alterar a diretiva LogLevel de warn para debug de forma a ter mais detalhes nos logs:
sudo less /var/log/cups/error_log

Referências

quinta-feira, 20 de outubro de 2016

Kodi e CEC - Debug e alteração de teclas do comando

Com um Raspberry Pi a correr o OpenELEC, o KODI reconhece o CEC enviado pela televisão. Contudo, não há qualquer tecla no comando que faça voltar para atrás, o que traz alguns inconvenientes na interação com o KODI.

Uma forma para fazer isso trata-se em colocar uma reafetação de inputs do CEC de forma a verificar o que está a ser pressionado, se está bem, se há outras teclas, etc. Foi o que descobri no blog de Steven Occhipinti [0].

É necessário ter acesso à pasta ~/.kodi/userdata/keymaps/ e aí colocar o ficheiro remote.xml [1] que permite fazer o debug e reiniciar o openelec.

Por SSH (a senha de root é openelec)
ssh root@openelecIP
cd ~/.kodi/userdata/keymaps/

wget https://gist.github.com/stevenocchipinti/42f2eca2a9f04ed9e52f/raw/d9fbf3c20edbff85d71b99b47d202d8a0ab1a8d9/remote.xml
reboot

Ao arrancar, de cada vez que se pressionar uma tecla aparece uma notificação indicando que ação foi desencadeada.

No meu caso todas as teclas que funcionam estão corretas e não há qualquer tecla nova. No entanto, reparei que quando pressionava rapidamente tecla verde e tecla amarela, aparecia a ação Title.
Como esta ação não serve para muito, poderia utilizar esta forma para ativar a ação Back que permite voltar para trás e dá muito jeito na interação com o kodi.

Assim, para reafetar a ação da tecla Title, resta copiar um remote.xml original, encontrar a ação Title e trocar para Back.

Por SSH:
ssh root@openelecIP
cd ~/.kodi/userdata/keymaps/

cp /usr/share/kodi/system/keymaps/remote.xml .
nano remote.xml
(...)
      <rootmenu>PreviousMenu</rootmenu>
      <title>Back</title>

      <info>Info</info>
(...)

É possível então alterar todas as entradas da ação Title para que faça execute Back.
No nano para procurar CTRL+W e pode procurar-se por <title> e ir substituindo.

Após guardar e reiniciar, a conjugação de teclas verde/amarela passou a funcionar como o voltar para trás, permitindo voltar ao menu principal, por exemplo.


[0] - http://blog.stevenocchipinti.com/2015/04/04/configuring-a-hdmi-cec-remote-in-kodi/
[1] - remote.xml - https://gist.github.com/stevenocchipinti/42f2eca2a9f04ed9e52f

quarta-feira, 16 de dezembro de 2015

OpenELEC/Kodi autoplay de vídeos e playlists

Com o OpenELEC obtém-se rapidamente um media center completamente funcional mas com alguns ajustes é possível transformá-lo num kiosk que apresenta automaticamente um conjunto de vídeos num loop infinito.

Isto permite que sempre que seja ligado, arranque e inicie a reprodução sem qualquer intervenção humana (não é necessário rato/teclado/comando).

Assim, um sistema com uma televissão e um raspberry pi fica completamente autónomo para reprodução de vídeos de demonstração, divulgação, etc.

Criar uma playlist

A maneira mais fácil consiste em reproduzir um vídeo e depois ir adicionando novos vídeos à playlist.
Quando se tiver a playlist concluída resta guardar com um nome sugestivo, por exemplo: videos_loop

Por defeito fica guardada em /storage/.kodi/userdata/playlists/video.

Reproduzir automaticamente e ficar em loop

Para iniciar a reprodução automática de vídeos/playlists, é possível criar um ficheiro autostart.sh em /storage/.config com:
(
sleep 20 ;
kodi-send --action="PlayerControl(RepeatAll)" ;
kodi-send --action="PlayMedia(\"/storage/.kodi/userdata/playlists/video/videos_loop.m3u\")" ;
)&


É fácil perceber que inicialmente se esperam 2 segundos, depois é enviado o comando para o kodi alterar a forma de reprodução para RepeatAll e de seguida é dada a ordem de reprodução da playlist guardada.

Existem inúmeros comandos disponíveis para o kodi [1], permitindo personalizar e automatizar diversas tarefas.

A partir daqui resta ligar o raspberry pi com o OpenELEC e depois de carregar o Kodi, a playlist é iniciada e fica em loop até ser desligado.


Referências

[1] - http://kodi.wiki/view/List_of_built-in_functions

segunda-feira, 14 de dezembro de 2015

Kodi e Plex Media Server

Uma Raspberry Pi permite tornar qualquer televisão num centro multimédia de excelência a um custo extremamente acessível. Já foi visto aqui há muito tempo os diferentes "sabores" para utilização do Raspberry Pi como media center e o "sabor" aconselhado continua a ser o OpenELEC.

De facto as versões atuais do OpenELEC já trazem o Kodi (após o rebranding feito ao XBMC), mas continuam a caber num simples cartão de 512MB!!

Apesar de ser possível aceder ao Plex Media Server por DLNA, existe uma forma muito mais apelativa e que permite criar um autêntico cliente Plex no Kodi.

A solução passa pela instalação da skin Amber e do Add On PleXBMC.

1 - Instalação do PleXBMC

A instalação do PleXBMC está bem descrita [1] na página do projeto e aqui ficam as dicas.

A forma mais fácil é obter o ficheiro a partir do site [2]:
wget https://github.com/hippojay/plugin.video.plexbmc/archive/v4.0.0beta4.zip -O PleXBMC_latest.zip

Depois é necessário copiá-lo para o OpenELEC:
scp PleXBMC_latest.zip root@openelec:~

Para fazer a instalação resta aceder ao Kodi, ir aos Add Ons e instalar a partir de zip, selecionando o ficheiro copiado anteriormente.

2 - Instalação da skin Amber

Não há muito a dizer para além das instruções oficiais [3], no Kodi para ativar esta skin é necessário aceder à condiguração da Aparência, onde será necessário obter mais e escolher a Amber para descarregar e instalar.

Após este processo é perguntado se é pretendido ativar e utilizar esta skin.

Ao utilizar esta skin, no menu Settings aparece uma opção Go Plex que deverá ser utilizada para entrar em modo Plex e assim visualizar todos os conteúdos multimédia disponibilizados pelo Plex Media Server de forma muito apelativa.

Para reverter para o modo Kodi existe a opção Go Kodi.

3 - Configuração do PleXBMC para acesso ao servidor Plex

Com uma atualização do Plex Media Server deixou de ser tão transparente a configuração do cliente para quem não tenha ou não queira ter conta no plex.tv.
Assim, na configuração do servidor é necessário:
1 » definir o servidor primário com o IP do Plex Media Server;
2 » aceder a Manage MyPlex e quando aparecer se pretende definir uma conta, deve cancelar-se o processo;
3 » aceder a Select Master Server... e deverá aparecer o nome do Plex Media Server, que deverá ser selecionado.

Após tudo isto é possível aceder à opção Go Plex e navegar pela galeria de media de forma muito apelativa.

4 - Kodi 14 e a skin Amber

A versão OpenElec 5.0.8 vem com o Kodi 14.2 e a skin Amber esconde diversas opções das configurações do Kodi. Contudo, é possível alterar um ficheiro [4] para ativar novamente as Configurações. Assim, resta aceder por SSH ao OpenELEC e substituir o ficheiro ~/.kodi/addons/skin.amber/1080i/Includes.xml:
ssh root@IP_do_OpenELEC
cd ~/.kodi/addons/skin.amber/1080i
mv Includes.xml Includes.xml.old
wget http://sprunge.us/JOCj -O Includes.xml

De seguida é possível fazer o Reload da skin no Kodi para que sejam carregadas as novas opções do menu.

[1] - http://kodi.wiki/view/Add-on:PleXBMC
[2] - https://github.com/hippojay/plugin.video.plexbmc/releases
[3] - http://kodi.wiki/view/Add-on:Amber
[4] - http://forum.kodi.tv/showthread.php?tid=187051

domingo, 8 de novembro de 2015

RF24 - Utilizar o nRF24L01+ para comunicações com Raspberry Pi e Arduino

O chip nRF24L01+ permite a comunicação sem fios na faixa dos 2.4GHz de forma económica [1] (menos de 1 euro, é questão de se procurar nos diversos sites).

Com dois desses chips é possível efetuar comunicações entre dois dispositivos eletrónicos, neste caso um Raspberry Pi 2 B e um arduino uno.

A primeira questão são so drivers necessários para ambas as plataformas. Existem diversas implementações, aqui será utilizada a RF24, fornecida por TMRh20 [2].

Ligações

nRF24L01+ possui oito pinos mas apenas se utilizam os primeiros 7.

pinnRF24L01+arduino
UNO
RPi
pin
RPi
GPIO
1GNDGND25GND
2VCC3.3V173v3
3CED715GPIO22
4CSND824GPIO8
5SCKLD1323SCKL
6MOSID1119MOSI
7MISOD1221MISO

É necessário efetuar as ligações de um nRF24L01+ ao arduino UNO e de outro nRF24L01+ ao Raspberry Pi.

Instalação do Software

arduino
Abrir o arduino IDE e ativar a biblioteca RF24 (testado em 1.6.5):
Sketch > Include Library > Manage Libraries...
Pesquisar por RF24 e clicar em Install

Obter o exemplo [3] fazer o upload para o arduino e abrir a consola CTRL+SHIFT+M, introduzir T para começar a enviar pings.

Raspberry Pi
No Raspbian garantir que o sistema está atualizado:
sudo apt-get update
sudo apt-get upgrade

Ativar o SPI
sudo raspi-config
Advanced > enable the SPI kernel module

Instalar as bibliotecas RF24 do TMRH20 [4]:
wget http://tmrh20.github.io/RF24Installer/RPi/install.sh
chmod +x install.sh
./install.sh

Depois resta entrar no diretório de exemplos para o RPi e experimentar:
cd rf24libs/RF24/examples_RPi
make
sudo ./gettingstarted

Depois é necessário pressionr 0 (zero) para receber os pings do arduino.

Referências

[1] - http://www.aliexpress.com/w/wholesale-nrf24l01.html
[2] - http://tmrh20.github.io/RF24/index.html
[3] - http://tmrh20.github.io/RF24/GettingStarted_8ino-example.html
[4] - http://tmrh20.github.io/RF24/RPi.html
[5] - Projeto com comunicação entre o Raspberry Pi e o arduino (em inglês): https://www.coconauts.net/blog/2014/09/03/send-readings-from-arduino-to-raspberry-via-radio/
[6] - Referências para o arduino e o nRF24L01+ (em inglês): http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01
[7] - Projeto mais antigo para comunicação entre o Raspberry Pi e o arduino (em inglês): http://blog.the-jedi.co.uk/2013/10/07/nrf24l01-and-raspberry-pi/

domingo, 24 de fevereiro de 2013

Raspberry Pi - Ler valores do GPIO


A primeira experiência no âmbito da leitura de valores para o Raspberry Pi, é feita com base no tutorial proposto por Matthew Kirk aqui.

0. Material necessário

  • Raspberry Pi
  • Sensor Digital de temperatura DS18B20
  • Resistência 4,7 kΩ

1. Esquema para sensor de temperatura

O sensor de temperatura utilizado é um DS18B20, que permite efetuar leituras digitais (9-bits a 12-bist) do valor da temperatura (em Celsius).
Esquema do sensor de temperatura DS18B20
Neste esquema a ligação ao Raspberry Pi efetuou-se atravé do pin7 do Raspberry Pi, correspondendo ao GPIO04.
Esquema de ligações dos componentes

2. Implementação do circuito

Novamente, muito cuidado ao ligar o circuito para não danificar o Raspberry Pi.
Breadboard com o circuito implementado e conectado ao Rpi

3. Carregar módulos necessários

A leitura da temperatura deste sensor pressupõe alguns passos iniciais de configuração, pois por defeito o Raspberry Pi não carrega os módulos que permitem a "conversa" com outros componentes.
Assim, é necessário ativar estes dois módulos:
$ sudo modprobe w1-gpio
$ sudo modprobe w1_therm

Após este passo é necessário verificar qual o número de série carregado para o sensor de temperatura.
$ ls /sys/bus/w1/devices/
28-0000025d1522  w1_bus_master1

É através deste número de série (único para cada sensor) que será possível obter a informação da temperatura do sensor.

4. Obter a temperatura

Para obter a temperatura atual basta ver o conteúdo do ficheiro:
$ cat /sys/bus/w1/devices/28-0000025d1522/w1_slave 
5c 01 4b 46 7f ff 04 10 a1 : crc=a1 YES
5c 01 4b 46 7f ff 04 10 a1 t=21750

Para ficar apenas com o valor é possível:
$ tail -n 1 /sys/bus/w1/devices/28-0000025d1522/w1_slave | tail -c 6
21875

5. Integração com PHP

Em PHP é muito fácil aceder ao ficheiro anterior e obter valor pretendido:
      if (isset($_GET['temp'])&&$_GET['temp']!=''){
        exec("sudo gpio -g mode 4 in"); // Iniciar GPIO04 = pin 7
        if ($_GET['temp']=='on'){
          // Ler do ficheiro
          $filename = '/sys/bus/w1/devices/28-0000025d1522/w1_slave';
          $mode = "r";
          $file = fopen($filename, $mode);
          if ($file){
            fgets($file); // Ler primeira linha e descartar
            $buffer = fgets($file); // Ler linha da temperatura
            fclose($file);
            $temp = substr($buffer, -6); // Obter os últimos 6 caracteres com a temperatura
            echo ""+$temp/1000+"ºC
"; // Converter para as unidades corretas
          }
        }
      }


Para executar basta aceder ao URL do ficheiro PHP e adicionar a variável temp com o valor on:
http://rpi/temp.php?temp=on


domingo, 17 de fevereiro de 2013

Raspberry Pi - Controlar GPIO em PHP

Para controlar o GPIO do Raspberry Pi através do PHP é necessário efetuar algumas configurações.

1. Configuração da execução do gpio

Adicionar no final do ficheiro de sudoers para dar permissão a www-data de execução apenas do comando gpio.
$ whereis gpio
gpio: /usr/local/bin/gpio
$ sudo visudo
...
# GPIO
www-data ALL=(ALL) NOPASSWD: /usr/local/bin/gpio


Em PHP depois é possível fazer a chamadas à ferramenta gpio com sudo.

2. Exemplo de ficheiro PHP para controlar LED

Seguindo o setup eletrónico feito aqui, é possível criar o ficheiro led.php que acende e apaga o led através do PHP.

Exemplo led.php:

if (isset($_GET['led'])&&$_GET['led']!=''){
  exec("sudo gpio -g mode 7 out"); // Iniciar o GPIO07 = pino 26
  if ($_GET['led']=='on'){
    exec("sudo gpio -g write 7 1"); // Acender LED
  }else{
    exec("sudo gpio -g write 7 0"); // Apagar LED
  }
}

Para verificar basta ter uma hiperligação ou inserir o URL que passe a variável led com o valor on para acender o LED e qualquer outro para o apagar.

Para acender:
http://rpi/led.php?led=on

Para apagar:
http://rpi/led.php?led=off

WiringPi - GPIO na linha de comandos

Já foi visto um método que permite aceder ao GPIO do Rpi através de python, aqui.

Outra forma de interação com o GPIO é através do wiringPi que implementa uma ferramenta para a linha de comandos que pode ser invocada de várias formas.
Diretamente pelo utilizador, dentro de shell scripts, em PHP através de exec(), etc.

Esta ferramenta é da autoria de Gordon Henderson e para instalar basta seguir os passos daqui.
O manual da mesma encontra-se aqui ou na linha de comandos: man gpio.

1. Instalar o wiringPi

Instalar o git-clone:
$ sudo apt-get install git-clone

Obter o código:
$ git clone git://git.drogon.net/wiringPi

Instalar:
$ cd wiringPi
$ ./build

A partir daqui é possível utilizar a ferramenta wiringPi.

2. Utilizar o wiringPi

Implementando este circuito é possível através da linha de comandos efetuar o ligar e desligar do led.
Neste caso é indicado 7 para o GPIO07, ou seja, o pino 26. Depois escreve-se 1 para ligar ou 0 para desligar o led.
$ gpio -g mode 7 out
$ gpio -g write 7 1
$ gpio -g write 7 0

Raspberry Pi - webserver

A instalação de um webserver no Raspberry Pi permitirá ter um webserver com muito baixo consumo energético.
Mais para a frente será pretendido ter o webserver a controlar o Raspberry Pi através de PHP.

Normalmente utiliza-se o apache2 como webserver e o mysql-server para base de dados, mas devido às limitações do Raspberry Pi, a utilização do lighttpd webserver deverá ser mais adequada.

Também o mysql-server revela-se muito voraz em RAM... Após a sua instalação a RAM livre passou de 210MB para apenas 96MB...

Assim, ainda se procuram alternativas... 

1. Instalar lighttpd + php5

Para fazer este setup basta:
$ sudo apt-get install lighttpd php5-cgi

2. Configurar o webserver

A configuração básica necessária implica apenas ativar e configurar o suporte para PHP.

Para ativar o suporte para PHP no lighttpd:
$ sudo lighty-enable-mod fastcgi-php

Depois é necessário localizar o binário do php5-cgi para indicar na configuração do lighttpd:
$ whereis php5-cgi
php5-cgi: /usr/bin/php5-cgi ... ...

$ sudo nano /etc/lighttpd/conf-enabled/15-fastcgi-php.conf 

Confirmar se a o binário está correto:
"bin-path" => "/usr/bin/php5-cgi",

Caso esteja tudo correto, carregar as definições:
$ sudo service lighttpd force-reload

3. Testar o funcionamento

Depois de instalado e configurado resta testar. Para tal basta criar um ficheiro .php, por exemplo:
$ sudo nano /var/www/info.php
<?php
phpinfo();
?>

Abrir um browser e introduzir http://a.b.c.d/info.php
Onde a.b.c.d é o IP do Raspberry Pi.

Eletrónica e Raspberry Pi

Para além da excelente vertente relativa ao Sistema Operativo e demais software possível de correr no Raspberry Pi, existe a Eletrónica.

1. Interface Eletrónica do Rpi

O Raspberry Pi possui uma interface com esta finalidade que se designa de GPIO (General Purpose Input Output).
Esta interface possui 26 pinos que podem ser: 5V, 3V3, GND ou de Input/Output.

Consoante o modelo do Rpi existem diferentes layouts destes pinos.

Uma boa fonte de informação sobre isto está no Raspberry Pi Spy (http://www.raspberrypi-spy.co.uk/2012/06/simple-guide-to-the-rpi-gpio-header-and-pins/).

GPIO Revision 2

2. Esquema para Pisca-Pisca controlado pelo Rpi

Atenção!
Algumas das chamadas de atenção existentes em diversos lados são relativas ao cuidado no desenho e, principalmente, implementação dos circuitos de forma a não "queimar" o Raspberry Pi, pois os pinos de IO do GPIO estão ligados diretamente ao chip da CPU.
Por isso, deve verificar-se sempre o circuito que se vai implementar!

A partir do site indicado anteriormente é possível aceder a inúmeros artigos de interesse.
Um dos mais interessantes para quem se inicia nestas lides é o relativo ao led Pisca-Pisca controlado pelo Raspberry Pi, que se encontra aqui.

Aquando da implementação do circuito numa breadboard convém confirmar tudo. Assim, convém confirmar as ligações do transistor T1 (neste caso um BC547C).

3. Implementação do circuito

Breadboard com o circuito ligado ao Rpi e LED aceso
  • O LED deve ser ligado com o pino mais comprido à resistência R1 e o mais curto ao pino 1 do transistor T1.
  • A resistência R2 deverá ser ligada ao pino 2 do transistor T1.
  • O pino 3 do transistor T1 deverá ser ligado ao GND do Rpi (pino 6).
  • A resistência R1 deve ligar também ao Rpi, neste caso no pino 1 (+3V3).
  • A resistência R2 deve ligar também ao Rpi, neste caso no pino 26 (IO).


4. Python e o GPIO

Para se poder controlar o input e output dos pinos do GPIO através de código python é necessário instalar uma biblioteca, por exemplo: raspberry-gpio-python, disponível para download aqui.

Para saber qual a versão a utilizar é possível executar no terminal do Rpi:
$ python --version
Python 2.7.3

Neste caso será necessário descarregar a biblioteca para a versão 2.

Depois de descarregado o ficheiro, é necessário instalá-lo com:
$ sudo dpkg -i python-rpi.gpio_0.4.2a-1_armhf.deb

Após esta instalação é possível importar para o python a biblioteca que interage com o GPIO.

5. Código Pisca-Pisca em Python

Para testar resta agora criar um ficheiro, por exemplo led.py com o conteúdo:
import RPi.GPIO as GPIO
import time

# Use physical pin numbers
GPIO.setmode(GPIO.BOARD)
# Set up header pin 26 (GPIO7) as an input
pin=26
print "Setup Pin %i" % (pin)
GPIO.setup(pin, GPIO.OUT)

var=1
print "Start loop"
while var==1 :
  print "Set Output False"
  GPIO.output(pin, False)
  time.sleep(1)
  print "Set Output True"
  GPIO.output(pin, True)
  time.sleep(1)

Como o código tem que interagir com o GPIO, é necessário executá-lo com privilégios de root, ou seja:
$ sudo python led.py

Portátil com acesso ao Rpi por SSH e execução do código led.py


sexta-feira, 11 de janeiro de 2013

XBMC no Raspberry Pi

Uma utilização possível para o Raspberry Pi é como Media Center de uma qualquer televisão.

Para este efeito existem várias alternativas: http://wiki.xbmc.org/index.php?title=Raspberry_Pi

  • Raspbian + XBMC - permite ter um ambiente gráfico LXDE para tarefas genéricas, podendo depois carregar o XBMC. Contudo, este fica bastante lento e tem vários problemas com os conteúdos via DLNA.
  • OpenELEC - sistema media center muito rápido, mas que tem alguns problemas com os Add-ons de vídeo.
  • Raspbmc - sistema muito rápido e que teve o melhor suporte para reprodução de conteúdos.

Raspbmc - Rpi

Raspbmc implementa o XBMC  numa distribuição Linux baseada em Debian e criada especificamente para o Raspberry Pi.
No site alguns utilizadores indicam que é muito mais rápida que o OpenELEC que testei anteriormente.

Outra funcionalidade que salta à vista é o suporte para GPIO.

1. Instalação do Raspbmc

O processo de instalação tem duas fases, sendo a primeira feita numa máquina com leitor de cartões e a segunda no próprio Raspberry Pi.

Fase 1:

wget http://svn.stmlabs.com/svn/raspbmc/testing/installers/python/install.py

Introduzir o SD card e executar
sudo python install.py

Este processo descarrega 15MB da internet e formata o SD card convenientemente.

No final deve desmontar-se o SD card

Fase 2:
Introduzir o SD card no Rpi e ligar.
Após o arranque, é necessário iniciar o processo de instalação, muito simples, que descarrega à vez todos os componentes para o sistema: root, kernel, kernel modules, xbmc, etc...

Após isto tudo não reconheceu o teclado sem fios...

2. Resolução de Problemas

2.1. Problemas com a deteção do teclado

Como não se pode utilizar o sistema, é necessário aceder por SSH ao mesmo:
ssh pi@192.168.2.220
(A password por defeito é raspberry)

É possível depois carregar manualmente o módulo e ficar com o teclado funcional:
modprobe hid-logitech-dj

Mas a solução definitiva do Jan Karger proposta aqui, apesar de ter funcionado com o raspbian, continuava sem funcionar.
Após algumas pesquisas outra solução consiste em reiniciar (por SSH, sudo reboot) algumas vezes até o teclado ser detetado.

E após reiniciar duas vezes ficou sempre operacional... Explicação?...

3. Utilização

Com os problemas do teclado resolvidos não houve qualquer problema em aceder e reproduzir grande parte dos conteúdos do servidor DLNA.

Contrariamente ao que aconteceu com o OpenELEC, os Add-Ons para vídeo, nomeadamente do Youtube, Vimeo e NBA funcionam em pleno.

quarta-feira, 9 de janeiro de 2013

OpenELEC - Rpi

OpenELEC (Open Embedded Linux Entertainment Center) é uma distribuição Linux independente orientada especificamente para a criação de um media center baseado no XBMC e nas suas inúmeras funcionalidades.
Possui instalações para diferentes plataformas, incluindo o Raspberry Pi.

Instalar o OpenELEC

1. Descarregar daqui a imagem para Raspberry Pi.

2. Extrair os ficheiros
tar xvf OpenELEC-RPi.arm-devel-20121124031454-r12577.tar.bz2

3. Inserir o SD Card e verificar qual a sua designação (normalmente /dev/sdb)
ls /dev/sd*

4. Executar o instalador como root:
cd OpenELEC-RPi.arm-devel-20121124031454-r12577/
sudo ./create_sdcard /dev/sdb

5. Esperar, ejetar com segurança o SD card e experimentar.

Utilização do OpenELEC

Da curta utilização deu para perceber que o sistema dica extremamente rápido e responsivo.
Não houve qualquer problema em aceder e reproduzir grande parte dos conteúdos do servidor DLNA.

Contudo os Add-Ons para vídeo, nomeadamente do Youtube, Vimeo e NBA estavam broken e não era possível instalá-los... 

Alternativas? Raspbmc...

quarta-feira, 19 de dezembro de 2012

Raspbian - Rpi

Raspbian é um sistema operativo baseado na versão wheezy do Debian GNU/Linux e especialmente adaptado ao Raspberry Pi.

1. Instalação

1.1. Obter a imagem do Raspbian

É possível obter a imagem a partir do site do Raspberry: http://www.raspberrypi.org/downloads

1.2. Gravar a imagem Raspbian num cartão SD

Neste caso foi utilizado um cartão SDHC Samsung 8GB Categoria 6.
O processo de gravação da imagem é relativamente rápido, menos de 5 minutos.
dd bs=4M if=2012-12-16-wheezy-raspbian.img of=/dev/sdb

Tue Dec 18 16:22:03 WET 2012
462+1 records in 462+1 records out 1939865600 bytes (1.9 GB) copied, 286.539 s, 6.8 MB/s
Tue Dec 18 16:26:49 WET 2012

2. Utilização

Depois de introduzir o SD no Raspberry Pi basta arrancar o mesmo e realizar os passos de configuração inicial que permitirão definir as opções mais comuns, incluindo o arranque automático do ambiente gráfico.

2.1. Autenticação

Os dados de acesso por defeito são:
utilizador: pi
palavra-passe: raspberry

3. Resolução de Problemas

3.1. Problemas com a deteção do teclado

Apesar da na instalação o teclado Logitech K400 ter sido detetado corretamente, nos arranques normais nem sempre era detetado (75% das vezes).

A resolução do problema passa por desligar/ligar o recetor USB do Rpi.

Para uma solução permanente sem esta necessidade, basta seguir os passos do Jan Karger aqui.

Editar o ficheiro /etc/rc.local
sudo nano /etc/rc.local

E acrescentar a seguinte linha antes do exit 0
sleep 5
rmmod hid-logitch-dj
modprobe hid-logitech-dj

3.2. Problemas com o layout do teclado

Apesar de corretamente definido no sistema, no ambiente gráfico LXDE o layout não era reconhecido.
A solução passa por editar o ficheiro /etc/xdg/lxsession/LXDE/autosatart e no final acrescentar a linha:
setxkbmap -layout "pt"