domenica 5 novembre 2017

Rendere disponibile la Raspicam nella cartella /dev come una webcam

Come rendere disponibile tra i /dev la Raspicam in debian ed utilizzare la Raspicam come una normale webcam.

Con questo semplice comando si rende disponibile la Raspicam nella cartella device come videoX
questa operazione al reboot viene cancellata,
quindi deve essere inserita in rc.local per essere resa permanente
Codice:sudo modprobe bcm2835-v4l2


domenica 23 luglio 2017

Una semplice applicazione per il DFPlayer

Mia mamma ha compiuto da poco 80 anni e i lati peggiori del suo carattere si  sono acutizzati con l'eta', ha sempre avuto il vizio di togliere di mezzo tutti i cavi ed i fili di collegamento di tutti gli elettrodomesticio casalinghi, il filo della TV,  il cavo di alimentazione della radio, i telecomendi, ecc.... sono sempre stati oggetto di attenzioni da parte sua, che con rigorosita' svizzera, ha sempre tolto e riposto in sconosciuti anfratti della casa, perdendone le tracce inesorabilmente.

Non siamo mai stati capaci di ritrovare la maggior parte dei malaugurati cavetti che sono passati dalle sue grinfie.
Adesso che continua a vivere da sola, questo suo accanimento, fa si' che sia quasi impossibile accendere la TV od ascoltare la radio a casa sua.

Poiche' pero' un po' di musica e' salutare e rasserena l'animo, abbiamo pensato , con mia sorella, di trovare un lettore mp3 molto semplice che consentisse di ascoltare la musica, ma che fosse a "prova di mamma", quindi senza fronzoli, telecomendi o fili da poter scollegare.
Fatte le opportune ricerche, non s' saltato fuori nulla, poiche' la stragrande maggioranza e' dotata di optionals ed add-on.
Ho deciso quindi di construirne uno da solo. Avevo gia' da qualche tempo una schedina DFPlayer in un cassetto, e questa sembrava proprio l'occasione giusta per utilizzarla.
schema 1
schema 2

Qui a lato la piedinatura della scheda DFPlayer della DFrobot, che e' un mp3 player che puo' contenere su scheda microSD fino a 3000 brani musicali, archiviati in cartelle che ne contengano al massimo 255 ognuna.
Come si vede dallo schema a fianco e' molto semplice ed intuitivo far funzionare la scheda, basta collegarla alla alimentazione di +5volt (VCC) e collegare un altoparlantino tra SPK_1 e SPK_2.
Come riportato negli schemi di esempio, si puo' utilizzare la scheda da sola o in compagnia di un microicontrollore, che la comandera' attraverso un collegamento seriale, collegando i pin RX e TX.
Se invece vogliamo utilizzarla in un sistema minimale, la DFPlayer puo' essere utilizzata da sola solamente collegando dei pulsanti in due configurazioni tipo, (vedi schema 1 e schema 2)
Il primo attraverso alcune resistenze di valore predefinito, consente la selezione di alcuni brani direttamente con la pressione di un pulsante, il secondo invece ha solo i comandi esseziali : volume + e -
Questa infatti e' la configurazione che ho scelto per la mia "Music box"
Infatti basta collegare due pulsanti tra GND e IO1 e IO2 che riusciamo a fare la gestione del Volume ed il Pre/Next dei brani.
Ecco cosi costruito il Nonna Music Box che regaleremo alla ottuagenaria alla prossima ricorrenza.

Orange Pi 2G IOT setup

Do po aver ricevuto la prima scheda Orange Pi Zero, mi sono deciso ad acquistare anche il modello 2G IOT che sembra una scheda fatta apposta per la gestione dei sensori e la costruzione di device linux embedded molto piccoli e potenti.
 La scheda mi e' appena arrivata ed ho dovuto iniziare subito la lotta per farle digerire la microSD del sistema operativo.

Si, sembra proprio che la Orange PI 2G IOT sia molto piu' schizzinosa della sua sorellina maggiore, la Zero, nella accettazione delle microSD dove gira il sistema operativo. Infatti la medesima SD utilizzata per per la Zero, anhce dopo aver sostituito il SO con quello regolarmente scaricato dal sito ufficiale, non intende funzionare. Il fatto pero' che inserendola nella Zero invece, funzionasse perfettamente, mi ha fatto perdere diversi pomeriggi, prima di tentare la strada della sostituzione del supporto.
Comunque, dopo aver pèrovato con ben tre schede diverse, adesso ho trovato quella che va d'accordo con la versione 2G IOT, una mmicroSD da 8 GB della Verbatim classe 10,  sembra essere di suo gradimento.
Non sono state accettate invece ne' una Kingston da 8 GB classe 10, ne' una da 8GB classe 4.
Anche nel caso della Orange PI 2G IOT la documentazione fornita dal costruttore e' completa e dettagliata e consente con facilita' (SD permettendo) di costruire un sistema funzionante in meno di 10 minuti (magari non proprio la prima volta ! )
Ho scaricato la versione Armbian del sistema operativo ottimizzato per la scheda in oggetto, ed attraverso il collegamento con convertitore seriale, ho predisposto la connessione col pc, per il primo login nel sistema, come ben spiegato nel manuale delle istruzioni fornito dal costruttore.
Si accede al sistema con utente : root   e
password : 1234
E' consigliato modificare la password al primo accesso

Queste sono le caratteristiche principali della scheda:
  • 1GHz ARM Cortex-A5 32-bit processor
  • Vivante GC860 graphics processor 
  • 256MB RAM
  • 512MB of onboard NAND storage
  • External storage is supported by a microSD slot
  • A USB 2.0 port
  • MicroUSB OTG port
  • Audio jack
  • Microphone, and optional speaker.
  • Camera connector 
  • 40-pin GPIO connector
  • Power Supply – 5V via micro USB port; optional battery

Orange Pi, facciamo amicizia!

Da qualche giorno mi e' arrivata la prima scheda Orange Pi ed ho cominciato subito a farci amicizia; naturalmente non si trovano in giro troppe informazioni, come nel caso di Raspberry Pi che ormai e' sul mercato da diversi anni, ma gia' con le prime informazioni che fornisce il costruttore, ed alcuni schemi dei Pin che sono stati ricavati da un appassionato come me, si riesce a combinare qualcosa.

Infatti la documentazione che il costruttore fornisce con la scheda e' piuttosto dettagliata e precisa nel fornire le indicazioni su come installare il sistema operativo, ma non  lo e' altrettanto nella descrizione dei Pin (forse perche' le altre informazioni sono analoghe a quelle necessarie per la scheda principale, piu' costosa e piu' curata, mentre i Pin della scheda Zero sono differenti rispetto all'altra).


Orange Pi

https://oshlab.com/orange-pi-zero-pinout/

Pandora in streaming su Orange Pi

Ho costruito una semplice riproduttore mp3 per mia madre, progettando anche la sua forma e stampando la stessa con la il staglio laser.
Avendo quindi la scatola gia' fatta ho pensato di costruire anche un sistema per me, un po' piu' complicato, ma che potesse consentirmi di sentire tutta la musica che voglio.
Mi sono ricordato che qualche anno fa avevo fatto dei test con Raspberry e Pandora, ed ho ripreso il progettino per calzarlo nella nuova casetta in legno appena progettata.

Partiamo dallo scaricare il sistema operativo necessario per far funzionare il nostro mostriciattolo prelevando il file da qui
Ho scelto questo sistema operativo sviluppato proprio per la Orange Pi, perche' appena lo ho istallato mi e' rimasto subito simpatico per la sua semplicita' di utilizzo per le cose di base che devono essere fatte per mettere su un progettino come questo.

Scaricato e scompattato il file del sistema operativo, e dopo aver preparato la SD formattandola fat32, sono passato alla creazione del disco da linux con:

sudo umount /dev/sdc*    (nel mio caso questo e' il percoso della microSD

sudo dd  if=/tutto_il_percorso_fino_al_file/Armbian_5.30_Orangepizero_Ubuntu_xenial_default_3.4.113.img of=/dev/sdc   (nel mio caso)

Istallata la microSd nella scheda, collegato il cavo di rete al router, .... via al primo accesso

 root   ed  1234  sono utente e password della prima accenzione

La prima volta che viene collegato questo sistema operativo ti costringe a cambiare la password ed a creare un nuovo utente, in maniera del tutto automatica.
Fatte queste operazioni e dato il primo reboot (che servira' al sistema operativo di assestarsi e compiere tutte le operazioni necessarie, come l'espansione del disco fino alla capacita' della scheda Sd scelta ecc..) si puo' finalmente cominciare .

sudo apt update (per aggiornare)

sudo apt upgrade

poi ci solleghiamo via wifi utilizzando il programma di interfaccia predisposto dalla distribuzione:

 sudo nmtui-connect

qui scegliere il proprio router e impostare la password

adesso si naviga anche in wifi!

istalliamo pianobar con
sudo apt-get install pianobar

appena terminato l'iter della istallazione il sistema gia' dovrebbe funzionare, bastera' chiamare  pianobar  e dare le credenziali di accesso al sistema di pandora, che dovete esservi gia' procurate facendo il signup sul sito.

Dall'italia non e' possibile collegarsi direttamente perche' per motivi di copyright, ill servizio e' dispopnibile solo in madrepatria (usa). Noi possiamo ovviare a questa storia di vil denaro! semplicemente modificando il DNS, con linux basta modificare il contenuto del file

 /etc/resolv.conf

inserendo i nuovi numeri di un server DNS che rende libero questo servizio:

Qui il contenuto del file  /etc/resolv.conf   dopo la modifica (oggi funziona ma potrebbero modificare gli indirizzi, mi e' gia' successo nel corso degli anni, vedi il precedente articolo)


# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver  107.170.15.247
nameserver 77.88.8.8
search lan

**************aggiornamento del 22 febbraio 2020

gli indirizzi sopra non funzionano piu', quando oggi ho ripreso la mia creatura per riaccenderla, la brutta notizia : non parte nulla.
Quindi mi sono messo in cerca di una soluzione: eccola

Primary:64.145.73.5
Secondary:209.107.219.5

Il file resolv.conf ad ogni reboot si modifica con le istruzioni che il sistema riceve dal DHCP, quindi questa operazione deve essere fatta tutte le volte che si accede a pianobar perche' si possa essere sicurti che tutto funzioni, io mi sono messo il file in una cartella nella home, ed ho costruito un file bash che ne copia il contenuto nella cartella corretta ad ogni chiamata di pianobar.

Piu' chiaramente ho costruito un file in una cartella chiamata radio

cd
mkdir radio 
vi /home/pi/radio/resolv_pandora.conf

qui ho copiato il contenuto di resolv.conf con i numeri del server DNS corretto

poi ho costruito il file  startpandora.sh

con :

cd
vi startpandora.sh

copiandoci dentro questo:
#!/bin/bash
sudo cp /home/pi/radio/resolv_pandora.conf /etc/resolv.conf 
exec pianobar


in questo modo ogni volta che chiamo ./startpandora.sh il sistema in automatico copia il file nella cartella di sistema sovrascrivendo l'altro creato dal sistema in fase di boot, e poi faccio partire pianobar.

Perche il programma funzioni correttamente si deve costruire un file di configurazione che il pianobar si va a leggere tutte le volte che parte.

cd
mkdir .config
mkdir .config/pianobar
cd .config/pianobar
vi config

Come spiega questa guida, questo e' il contenuto che deve essere copiato dentro config:

# This is an example configuration file for pianobar. You may remove the # from
# lines you need and copy/move this file to ~/.config/pianobar/config
# See manpage for a description of the config keys
#
# User
user = your@user.name
password = password
# or
#password_command = gpg --decrypt ~/password

# Proxy (for those who are not living in the USA)
#control_proxy = http://127.0.0.1:9090/

# Keybindings
act_help = ?
act_songlove = +
act_songban = -
act_stationaddmusic = a
act_stationcreate = c
act_stationdelete = d
act_songexplain = e
act_stationaddbygenre = g
act_songinfo = i
act_addshared = j
act_songmove = m
act_songnext = n
act_songpause = p
act_quit = q
act_stationrename = r
act_stationchange = s
act_songtired = t
act_upcoming = u
act_stationselectquickmix = x
act_voldown = (
act_volup = )

# Misc
#audio_quality = low
autostart_station = 123456
event_command = /home/pi/.config/pianobar/scripts/eventcmd.sh
fifo = /home/pi/.config/pianobar/ctl
#sort = quickmix_10_name_az
#love_icon = [+]
#ban_icon = [-]
#volume = 0

# Format strings
#format_nowplaying_song = [32m%t [0m by [34m%a [0m on %l [31m%r [0m%@%s
#format_nowplaying_station = Station [35m%n [0m
#format_list_song = %i) %a - %t%r

# high-quality audio (192k mp3, for Pandora One subscribers only!)
#audio_quality = high
#rpc_host = internal-tuner.pandora.com
#partner_user = pandora one
#partner_password = TVCKIBGS9AO9TSYLNNFUML0743LH82D
#device = D01
#encrypt_password = 2%3WCL*JU$MP]4
#decrypt_password = U#IO$RZPAB%VX2
tls_fingerprint = B0A1EB460B1B6F33A1B6CB500C6523CB2E6EC946




Naturalmente e' da personalizzare con il proprio account e la propria password di Pandora

Questo file come potete leggere, chiama un file bash eventcmd.sh che gestira' i comandi fisici (i pulsanti che saranno necessari per gestire il sistema )


Prima di tutto va costruito il file dove pianobar andra' a leggere i comandi esterni con il comando:

mkfifo /home/pi/.config/pianobar/ctl

Questo comando crea un file  ( ctl ) dentro cui transiteranno i comandi collegati ai pulsanti della radio  web che stiamo costruendo. Il comando consente a due processi di scambiarsi informazioni, prima uno scrive e poi l'altro legge, e si preoccupa di evitare che un comando non venga letto mettendo in attesa la scrittura del successivo comando fino alla lettura del precedente.

Il progetto originale ha una cartella pubblica su github che contiene i vari script e programmi in python per la gestione dei pulsanti, quindi a questo punto ce lo copiamo suil nostro sistema per prendere quanto necessario :

cd /home/pi/.config/pianobar
git clone git://github.com/AyMac/Pandoras-Box.git

cosi facendo ci siamo costruiti la nostra cartella Pandora-Box dentro pianobar, a noi servono i file contenuti nella cartella script che va copiata dentro pandora