RB Pratica – Swap video

Le seguenti indicazioni sono visualizzabili su questo sito per esclusivo uso personale. Il sottoscritto non si ritiene responsabile di problemi derivanti dall'utilizzo di tali indicazioni.

Torna all’elenco Raspberry

Questa immagine ha l'attributo alt vuoto; il nome del file è TT_Raspberry.jpg

Specifiche

  • All’avvio RB parte con la presentazione di un video (VIDEO_01). Il VIDEO_01 viene ripetuto in loop.
  • Al verificarsi di un evento (in questo caso la pressione di un pulsante) si interrompe il primo video e ne parte un secondo (VIDEO_02).
  • Una volta terminata la visione del VIDEO_02, riprende il VIDEO_01 dal punto in cui e’ stato interrotto

Materiale

  • Raspberry PI 3
  • Scheda da 16GB
  • Pulsante
  • Resistenza 10K
  • Cavetti per collegamenti

Sistema operativo: Raspberry PI OS FULL (Ex Raspbian)

  • Parte ‘immediatamente’
  • Per partire non ha bisogno dell’inserimento di nome-utente e password (di default pi e raspberry). La password la reimposto in rb
  • Settaggio veloce: lingua, password, network e aggiornamento sistema (che prende un po’ piu’ di tempo)

Nota 1: In futuro testare il lavoro su Raspberry PI OS LITE

Nota 2: Ho cercato di lavorare con ‘Ubuntu-MATE’ per RB: lento, problemi con VNC e non ha abilitato alcuni repository necessari. ABBANDONATO

Collegamenti con il Raspberry

Vnc-Server

Su Raspberry PI OS FULL VNC e’ preinstallato. Per attivarlo richiamare il tool di configurazione raspi-config: sudo raspi-config. Selezionare Interfacing Options dal menu, poi l’opzione VNC e infine attivarla con Yes.

Server Ssh

Non necessario, ma potrebbe essere utile. Dovrebbe essere preinstallato, in caso contrario: sudo apt-get install openssh-server.

Senza questo comando sudo /etc/init.d/ssh restart da dare a RB, SSH non funziona. Per evitare di darlo ogni volta è stato inserito in /etc/rc.local prima dell’istruzione exit 0

Crontab

Nei sistemi operativi Linux, il comando crontab consente di pianificare l’esecuzione automatica periodica di attività o script. Ogni attività schedulata è chiamata cron job.

Guida Crontab

Istruzioni
  • crontab -e: permette di aggiungere/modificare/eliminare le attivita’ schedulate
  • crontab -l: permette di verificare le attivita’ schedulate, senza poterle modificare

In verità, il comando che mi ha permesso di proseguire senza intoppi (dove viene anche specificato l’utente) è il seguente: sudo crontab -u pi -e

Eventi

Oltre a gestire eventi “temporali”, il cron job può attivare script al riavvio del server linux con l’istruzione

@reboot /PATH/NOME_SCRIPT.sh

Lo script realizzato che deve essere lanciato all’avvio è uno script scritto in PYTHON che, in alcuni casi, non partiva. La soluzione è stata quella di inserire il cron job con la seguente istruzione:

@reboot sleep 20 && python3 /home/pi/Desktop/SwapVideo/SwapVideo.py >> /dev/null 2>&1

  • Sleep di 20 secondi per permettere al sistema di caricarsi.
  • Nel file di log, in alcuni casi, ho trovato il seguente messaggio di errore: “info (No MTA installed, discarding output…“. Questo accade perchè i lavori cron, a volte, producono output e il demone tenta di inviarlo via email. Se non si ha bisogno di quell’output, il modo più semplice per risolvere il problema è scartarlo direttamente dal crontab inviando il tutto ad un device NULLO : >> /dev/null 2>&1.
  • Il file di log è il seguente: /var/log/cron.log

Visualizzazione del video

Per la visualizzazioe dei video, in un primo momento, ho utilizzato omxplayer (preinstallato su RB) richiamato da python con subprocess, ma la cosa non mi ha convinto molto.

Guida omxplayer

Una soluzione più elegante, a mio parere, è possibile utilizzando il modulo omxplayer-wrapper all’interno di python. Per la sua installazione: pip3 install omxplayer-wrapper

Guida omxplayer-wrapper

Circuito

Circuito Raspberry_GPIO

File

La cartella SwapVideo, creata sul Desktop, deve contenere i seguenti file:

  • SwapVideo.py
  • Video_01.mp4
  • Video_02.mp4

Conclusione

  • Preparare MicroSD con Raspberry PI OS FULL
  • Settare lingua, password e network
  • Aggiornare il sistema
  • Attivare VNC Server (raspi-config)
  • Per utilizzare SSH (opzionale) inserire all’interno del file /etc/rc.local l’istruzione /etc/init.d/ssh restart prima di exit 0
  • Copiare nella cartella /home/pi/Desktop/SwapVideo i file: SwapVideo.py, Video_01.mp4 e Video02.mp4 (da VNC Viewer, SSH o collegando la MicroSD al pc)
  • Inserire il cron job @reboot sleep 20 && python3 /home/pi/Desktop/SwapVideo/SwapVideo.py >> /dev/null 2>&1 dopo aver digitato sudo crontab -u pi -e
  • Realizzare il circuito.

Per i test ho realizzato un secondo script (SwapVideo_KEY.py) dove viene gestito l’evento da tastiera e non con un pulsante.