Objectivo do Projecto: Mostrar conteúdo informativo ( Vídeos - Slides - Imagens ) em monitores LCD (Entrada VGA ou HDMI) com um Raspberry Pi controlado remotamente - SSH

 

Motivação:         

A Associação de Estudantes existe já desde 1936, trabalhando em prol dos Estudantes e dos seus interesses. Sendo que a comunidade IST tem 11589 alunos (ano de 2015) é difícil chegar a todos e cada um. Por este motivo foi necessário desenvolver uma solução que pudesse mostrar à comunidade académica todo o conteúdo que temos vindo a desenvolver.

 

   Uma das maneiras de chegar mais facilmente aos alunos será através de Televisores espalhados pelo campus, com informação actualizada e desenvolvimentos concretizados pela AE.

    Desta forma poderemos estar mais perto dos nossos estudantes e eles de nós.

 

Esta será a primeira televisão a ser activada:

 

2015-11-19 12.37.32.jpg1.jpg

 

Tópicos Abordados:

  •     Instalação do OS raspbian no Rpi;
  •     Montagem do Sistema;
  •     Criação de Script para:
    •   Instalação de Youtube-dl
    •   Instalação de Vncserver;
    •   Iniciar reprodução de um ciclo de Vídeos ao iniciar;
  •     Sincronizar conteúdo entre PC e o Rpi;
  •     Como ver vídeos do youtube através do Youtube-dl

 

NOTA: Tutorial direccionado para sistemas Linux!


Como desenvolver este projecto?


O que é preciso:

  1. - Teclado USB;
  2. - Rato USB;
  3. - Raspberry pi;
  4. - Cartão de memória - Recomendado 4GB ou mais;
  5. - Cabo micro usb para USB;
  6. - Carregador de tomada USB;
  7. - Cabo de Ethernet;
  8. - Router com ligação à Internet;
  9. - PC com ligação à Internet
  10. - Cabo HDMI ou Cabo conversor HDMI-VGA
  11. - Televisão com entrada HDMI  ou entrada VGA
  12. - Caixa : Opcional mas Recomendado

 

Descrição de componentes.jpg

 

Tabela dos componentes e respectivas referências Farnel:

 

ComponenteTítulo FarnelReferência Farnel
Caixa RpiMULTICOMP  MC-RP002-WHT  ENCLOSURE, WHITE, RPI 2 MODEL B / B+2445370
Raspberry PiRASPBERRYPI-2-MODB-1GBRASPBERRYPI-2-MODB-1GB SBC 2461029
Carregador 230V para USBFTDI  VA-PSU-EU1VA-PSU-EU1 PSU USB EU MODEL 5V/1A 2355194
Cabo USBCABLE, USB A TO MICRO B,2355195
Adaptador HDMI-VGAELEMENT14 PIVIEW ADAPTOR, HDMI TO VGA,2133899
Cartão de Memória – Micro SD – 8GBSAMSUNG MBMS8GVCGDAW-CK001 MEMORY, MICRO-SD, 8GB CLASS10 (BULK)2471120
Rato USBCHERRY  M-5450M-5450 MOUSE SCROLL USB/PS/2 BLACK 1279053
Teclado USBBLAZE BL-K1208 KEYBOARD, USB MULTIMEDIA, UK1889759
Cabo HDMIROLINE  11.04.573311.04.5733 AUDIO/VIDEO CABLE HDMI A PLUG 3M BLK 2499351

 

 

Vamos começar!

 

Para o 1º passo precisas apenas de:

  • Um computador com acesso à Internet;
  • Cartão Micro SD com respectivo adaptador ligado ao PC;

 

 

 

1º Passo -Download e Instalação do Sistema Operativo Raspbian no cartão SD

 


Para tal, é necessário fazer download do Raspbian mais recente.
Este encontra-se no site oficial do Raspberry pi no formato ISO:

 

Depois de concluído o download, para o instalar no Cartão SD é necessário usar um de dois programas:

 

 

    1. Devices: Selecciona o teu Cartão SD
    2. Selecciona "Create a bootable disk" "- ISO image" - clica no botão com o símbolo de CD
    3. Selecciona a directoria do ficheiro Raspbian
    4. Todas as outras opções podem ficar como predefinidas pelo programa

 

ATENÇÃO: Todo o conteúdo no cartão SD será apagado ao instalar o raspbian!

 

Assim que concluído, insere o Cartão SD no Raspberry PI


2015-11-19 13.50.41.jpg

 

Primeiro passo concluído!

 

2º Passo - Montagem do sistema

 

 

Neste passo vais precisar de:

  •     Raspberry pi;
  •     Cartão SD com a imagem do Raspbian instalada;
  •     Ecrã;
  •     Cabo HDMI ou conversor VGA (dependendo do ecrã);
  •     Rato USB;
  •     Teclado USB;

 

Ao ligares o sistema é suposto observar o ambiente de trabalho:

 

2015-11-20 15.23.59.jpg

 

 

NOTA: Caso isto não se verifique, volta a inserir o Cartão SD no computador e modifica o ficheiro "config.txt", tirando o "#" na opção HDMI_FORCE(...)

 

 

3º Passo - Vamos lá programar!

 

 


O que é suposto o Rpi fazer? E como?

 

Objectivos: 

      • Actualizar o sistema e instalar os programas em falta;
      • Fazer loop de um vídeo no Rpi, e ser capaz de o modificar por SSH  ( à distância, via internet)


Para facilitar a instalação de todos os programas no rPI desenvolveu-se um script em bash, que executa diversas tarefas:

 

    • Instala a versão mais actualizada do raspbian;
    • Instala os programas:
      •           Youtube-dl (Permite fazer download e ver streams do youtube);
      •           vncserver (Permite um controlo remoto com interface gráfica);
    • Introduz um comando no Crontab (Objectivo - Manter um vídeo sempre a reproduzir);
    • Raspi-Config (Para dar permitir acesso por SSH ao Rpi)

 

Para criar este Script,criem um ficheiro com nome "auto.sh" e os comandos a inserir no mesmo serão:

 

#!/bin/bash


sudo apt-get install upgrade -y; #upgrade do sistema

 

sudo apt-get install update -y; #update do mesmo

 

sudo apt-get install tightvncserver -y; #instala o serviço de controlo remoto com interface gráfica

 

Sudo apt-get youtube-dl -y; #instala programa que permite ver videos do youtube

 

sudo apt-get clean;  #remove quaisquer ficheiros temporários criados

sudo apt-get autoremove; #idêntico ao acima

 

 

#escreve comando para o crontab para iniciar o script "loop.sh" ao reiniciar:

#este loop.sh é um script que quando iniciado irá buscar o vídeo pretendido e irá repeti-lo

touch

crontab -e;

echo @reboot sh /home/pi/AEISTV/loop.sh

 

sudo raspi-config; #abre menu onde se activa o SSH

 

Se tudo correr como planeado, estaremos agora no menu de configuração "raspi-config", com o intuito de permitir uma ligação por SSH ao Rpi.

 

Navegue até à opção SSH e active-a.

 

Estamos agora aptos a ligar-nos ao Rpi por SSH e através do VNC (Controlo remoto com interface gráfica)!




4º Passo - Colocar o vídeo em loop constante


Através do script auto.sh é possível verificar que este executa sempre que inicia (@reboot) o script "loop.sh"


Como explicado no script acima, o loop.sh é um script que quando iniciado irá buscar o vídeo pretendido e irá repeti-lo. Para tal é preciso criar um ficheiro, com nome por exemplo "loop.sh" e dar-lhe os seguintes comandos:


#!/bin/sh

 

SERVICE='omxplayer'

while true; do

if ps ax | grep -v grep | grep $SERVICE > /dev/null

then

echo "running" # >> /dev/null

else

for number in 1 2 3 4

      do

omxplayer  /home/nunos/Área\ de\ Trabalho/Rpi/Share/ae_%number.flv &

      done

fi

done



Sempre que o serviço omxplayer estiver activo (neste caso é contínuo) escreve no terminal "running" e corre os videos "ae_%number.flv" representando o nome do vídeo e onde %number varia de 1 a 4.

Desta forma é possível reproduzir um conjunto de 4 vídeos de seguida e fazer loop dos mesmos.


No nosso caso é possível observar o final da configuração. De seguida é feito o reboot e são lançados automaticamente os vídeos do Arraial 2014:

 








Passos Adicionais

 

 

5º Passo - Sincronizar conteúdo com o Rpi por SSH


Para que os conteúdos possam ser dinâmicos e serem modificados mais facilmente, usou-se a ferramenta "rsync" existente no UBUNTU por predefinição.


Método de utilização:


Abrir terminal e executar:

 

#A partir do pc, copia pasta  do pi /Dropbox-uploader para pasta Imagens/ no PC

rsync -avz -e ssh pi@192.168.5.149:Dropbox-Uploader/ Imagens/

 

#Copia pasta Imagens do PC para Dropboxuploader

rsync -avz Imagens/ -e ssh pi@192.168.1.109:Dropbox-Uploader/

 

-avz    - Método de compressão do conteúdo a enviar

-e        - Usado para ligar a um outro dispositivo por ssh

 

 

6º Passo (adicional) - Script para executar streams do youtube

 

Foi também desenvolvido um script tendo em conta um futuro desenvolvimento do sistema que permite ver vídeos e streamming do youtube.

 

Para a criação deste, à imagem dos anteriores, é necessário criar um ficheiro com nome ex: "ytstream.sh" e inserir as seguintes linhas de código:

 

                                                        #!/bin/sh

read -p  "Youtube link:" link  #pede para inserir o link com o vídeo/stream do Youtube

sleep 1

youtube-dl -F $link

echo  "Select number:"        #pede para selecionar o tipo de streaming pretendido  

read number                            

sleep 1

omxplayer -o hdmi $(youtube-dl -g -f $number $link)  #executa o omxplayer

exit 0

 

E para permitir novamente a execução do script, é necessário recorrer ao terminal, na directoria onde foi criado o ficheiro e inserir:

 

chmod +x ytstream.sh #para permitir a sua execução

 

Para executar o script, abre o terminal na directoria do ficheiro e escreve "./ytstream.sh"

 

 

Estamos agora aptos a inserir o Raspberry Pi na primeira televisão da Associação de Estudantes