domenica 16 agosto 2020

Configurazione Audio di Raspberry Pi

Il Raspberry Pi ha fino a due modalità di uscita audio: HDMI e un jack per cuffie da 3,5 mm. Puoi passare da una modalità all'altra in qualsiasi momento.

Se il monitor ha altoparlanti integrati, l'audio può essere riprodotto tramite il cavo HDMI, ma puoi passare a un set di cuffie o altri altoparlanti collegati al jack per cuffie. Se il tuo display dichiara di avere altoparlanti, l'audio viene emesso tramite HDMI per impostazione predefinita; in caso contrario, viene emesso tramite il jack delle cuffie. Questa potrebbe non essere l'impostazione dell'output desiderata o il rilevamento automatico non è accurato, nel qual caso è possibile cambiare manualmente l'uscita. 

Modifica dell'uscita audio 

Esistono due modi per impostare l'uscita audio.

Controllo del volume sul desktop

Facendo clic con il pulsante destro del mouse sull'icona del volume sulla barra delle applicazioni del desktop viene visualizzato il selettore dell'uscita audio; ciò consente di scegliere tra le uscite audio interne. 
Consente inoltre di selezionare qualsiasi dispositivo audio esterno collegato, come schede audio USB e dispositivi audio Bluetooth. 
Viene visualizzato un segno di spunta verde sul dispositivo di uscita audio attualmente selezionato: fai clic con il pulsante sinistro del mouse sull'uscita desiderata nel menu a comparsa per modificarlo. 
Il controllo del volume e la disattivazione dell'audio funzionano sul dispositivo attualmente selezionato.


Raspi-config 

Apri raspi-config inserendo quanto segue nella riga di comando: 

sudo raspi-config 

Si aprirà la schermata di configurazione:




Seleziona "Advanced Options" (qui mostrato come Opzione 7, ma la tua potrebbe essere diversa) e premi "Enter". Ora seleziona l'opzione denominata, "Audio" (qui mostrata come A6, ma la tua potrebbe essere diversa) e premi "Enter":



Selezionare la modalità richiesta, premere "Enter" e premere il tasto freccia destra per uscire dall'elenco delle opzioni, quindi selezionare "Finish" per uscire dallo strumento di configurazione. Dopo aver terminato di modificare le impostazioni audio, è necessario riavviare il Raspberry Pi affinché le modifiche abbiano effetto utilizzando il comando da desktop oppure, da terminale 

sudo shutdown -r now

Usare un HAT DAC

L’uscita jack del Raspberry non è male, ma è sicuramente un insulto se parliamo di alta fedeltà. Per ovviare a questo ci viene in aiuto un apparecchio chiamato DAC (Digital to Analog Coverter), un dispositivo che contiene un convertitore in grado di trasformare i segnali digitali (serie di 1 e 0) in segnali analogici, come sono i segnali audio standard.
Ho provato ad utilizzare un dispositivo DAC denominato PiFi DAC+ V.2.0, un HAT (Hardware attached on top) di dimensioni standard con connettore GPIO completo da 40 pin, che si può innestare in ogni modello di Raspberry Pi con tale connettore. E’ un clone del più famoso e conosciuto HiFiBerry, cosa che lo rende supportato da più svariati sistemi software e distribuzioni.
Quste le principali caratteristiche:
  • Connettori di uscita placcati oro (2 RCA + jack 3,5mm) 
  • Componenti discreti per una migliore qualità audio, rispetto ai componenti SMD di altre schede 
  • Presenza ricevitore infrarossi sulla scheda per supporto telecomando collegato al GPIO26
Comunica con il Raspberry Pi tramite l’interfaccia I2C, e il chip che effettua la conversione vera e propria è un PCM5122, che consente di avere le seguenti prestazioni: 
  • Frequenza di campionamento massima: 384Khz 
  • Risoluzione: da 16 a 32 bit 
  • Rapporto segnale/rumore (SNR): 120db 
  • Distorsione armonica totale (THD): -93db 
  • Gamma dinamica: 112db 
Dispone inoltre di LED che ne indicano il funzionamento: uno rosso che indica lo stato normale di alimentazione, uno verde che indica lo stato di funzionamento del DAC (acceso quando in decodifica).
Per sfruttare appieno la qualità audio di questa piccola scheda, oltre naturalmente alla qualità del file sorgente, l’impianto audio al quale va collegato (amplificatore e diffusori) deve avere ottime caratteristiche, così come è consigliabile usare cavi di segnale di qualità, anche senza esagerare e pagarli più del DAC (ma magari placcati oro, per mantenere la connessione son la scheda priva di ossidazioni).

Configurazione

Da terminale digitare:

sudo nano /etc/modules

Comentare (con un #) la seguente riga se presente

snd_bcm2835

e aggiungere le seguenti righe: 

bcm2708_dmaengine 
snd_soc_pcm512x 
snd_soc_hifiberry_dacplus 
snd_soc_bcm2708_i2s 

Salvare il file. 

Ora necessita modificare il file /boot/config.txt per caricare l'albero dei dispositivi corretto. 
Digitiamo quindi, sempre da terminale: 

sudo nano /boot/config.txt 

quindi aggiungiamo in fondo al file le seguenti righe; 

dtparam=i2c_arm=on
dtparam=i2s=on
dtoverlay=hifiberry-dacplus 

creare, infine il file /etc/asound.conf 

sudo nano /etc/asound.conf 

aggiungendo le seguenti righe: 

pcm.!default  {
  type hw card 0
}
ctl.!default {
  type hw card 0
}

Riavviare Raspberry con 

sudo reboot

Poi verificare se il vostro DAC è riconosciuto dalla vostra sound card con il seguente comando da terminale

aplay -l

Dovrebbe risultare qualcosa del genere...

Card 0: sndrpihifiberry [snd_rpi_hifiberry_dacplus], device 0: HiFiBerry DAC+ HiFi pcm512x-hifi-0
Subdevices: 0/1 
Subdevice #0: subdevice #0

Ora il DAC dovrebbe comparire come opzione tra i sistemi audio utilizzabili...


... e sarà possibile effettuare lo switch tra i diversi devices.
Buon ascolto.

venerdì 6 settembre 2019

Attivare Arduino IDE per Esp 32

Esp 32 è un microcontrollore che rispetto ad Arduino presenta una serie di migliori caratteristiche di azione prima fra tutte la possibilità di avere uno sleep-mode che consente di consumare pochissima corrente e contemporaneamente di conservare dati in una partizione della memoria flash sia in sleep-mode sia anche quando il dispositivo è privo di alimentazione. Possiede anche la possibilità di connessione wifi incorporata nella board.
Come al solito è necessario programmare tale dispositivo ed inserire il programma nella memoria flash.
Esiste un IDE proprietario di Espressif (la società che produce e distribuisce Esp 32) ma è possibile anche utilizzare un IDE già molto conosciuto ed usato che è quello di Arduino.
Per utilizzare questo IDE con ESP 32 è necessario abilitarlo con le seguenti procedure

  • Aprire la finestra File>>Impostazioni dell'Arduino IDE
  • Nel campo (in basso) "URL aggiuntive per il gestore schede" incolare il seguente URL: https://dl.espressif.com/dl/package_esp32_index.json e scegliere OK
  • Selezionare il sottomenu "Schede" e il sotto-sottomenu "Gestione schede" dal menu "Strumenti" e nel campo di ricerca digitare esp32.
  • Installare il pacchetto esp32 by Espressif System.

Per verificare il corretto funzionamento dell'istallazione caricare il programma di esempio WiFi>>WiFiScan e verificarne il funzionamento.

domenica 24 febbraio 2019

Inviare mail da riga di comando con Telnet

E' possibile inviare mail da riga di comando ma occorre soddisfare alcune importanti condizioni:

  • il proprio sistema operativo (windows o linux che sia) deve avere installata la funzionalità client del protocollo Telnet;
  • l'utente che invia le mail deve avere un account di posta elettronica per cui sia possibile accedere alle impostazioni DNS del dominio associato al proprio indirizzo mail;
  • attivare un account presso servizi online che consentano di gestire mail inviate in questo modo (per esempio smtp2go.com che è la scelta che ho fatto inizialmente io; anche gmail consente di utilizzare tale servizio ma devo ancora verificare ed eventualmente ne parlerò in un prossimo post oppure in un aggiornamento di questo)
[impostazioni di smtp2go.com...]
[impostazioni DNS...]

Aprire il terminale o la command window e digitare:
telnet mail.smtp2go.com 2525
e premere invio (ogni altro server di posta che consenta connessioni via protocollo telnet può andare bene); 2525 è la porta internet che il server di smtp2go.com usa per le connessioni con questo protocollo.
Dopo la risposta del server (codice 220) presentarsi digitando:
EHLO RaspberryPI
seguirà una lunga risposta del server costituita da frasi con codice 250;
Digitare ora:
auth login
il server risponderà con la richiesta di username e password solo che lo farà. utilizzando la codifica Base 64 e quindi la risposta sarà costituita da "parole" apparentemente senza senso... (VXNlcm5hbWU6 per username, e UGFzc3dvcmQ6 per password); ad ogni richiesta sarà quindi necessario rispondere con i corretti termini (sempre codificati in Base64 => vedi qui);
il server risponderà con
235 Authentication succeeded
ed a questgo punto possiamo finalmente pensare alla nostra mail
Digitiamo:
mail from: mionome@miodomino.it (il mittente)
la risposta sarà un ok.
quindi digitare:
rcpt to: suonomedominio.it
anche qui la risposta sarà un ok ed una accettazione dei dati di mittente e  destinatario;
digitare DATA
seguirà la richiesta da parte del server di digitareil messaggio
Digitare:
Subject:  Oggetto della mail
poi andare a capo due volte e finalmente digitare il corpo del messaggio... alla fine andare a capo e digitare un punrto senza nient'altro ne prima ne dopo,
il punto isolato rappresenta la fin del messagio. digitare:
quit
per uscire da telnet,





domenica 3 febbraio 2019

Installare stampanti HP su Raspberry Pi

HP prduce Driver per stampanti e Fax specificamente per Sistemi operativi Linux.
Per stampare con stampanti HP da Raspberry Pi occorre installare i programmi cups, hplip e l'interfaccia grafica di hplip.
Da shell i comandi sono i seguenti...

sudo su
apt-get update
apt-get install hplip cups
usermod -a -G lpadmin pi

Con solo queste istallazioni sarà possibile accedere all'interfaccia web delle applicazioni aprendo un browser web e digitando:

localhost:631

ma da questa interfaccia non sempre è possibile aggiungere stampanti che permettano di stampare. Infatti dopo aver installato la stampante la stampa si blocca per un errore definito "Filter failed"
Per superare questo errore è conveniente installare l'interfaccia grafica di hplip con il seguente comando:

apt-get install hplip-gui

Dopo l'istallazione sarà possibile accedere, dalla barra delle applicazioni e dal menù preferenze>>HPLIP Toolbox, alla procedura guidata per aggiungere una stampante.
Con le stampanti di rete (come è successo a me) è conveniente cercare la stampante manualmente scegliendo il pulsante "Opzioni avenzate" inserendo direttamente l'indirizzo ip della stampante in rete.

sabato 2 febbraio 2019

Condividere file con Windows da Raspberry e viceversa

Per condividere file tra windows e Linux (Raspbian) si usa un programma chiamato Samba (SMB/CIFS sono protocolli di comunicazione tra computer linux e windows all'interno di una LAN ed il nome è stato storpiato per renderlo più famigliare SMB -> Samba; SMB = Server Message Block, CIFS = Common Internet File Sistem).
Bisogna istallarli e configurarli; questi i comandi da shell:

sudo apt-get update
sudo apt-get upgrade

per aggiornare il software del nostro Raspberry; poi:

sudo apt-get install samba samba-common-bin smbclient cifs-utils

per istallare samba e cifs.

Condividere una cartella di Raspberry PI con MS Windows


Nel nostro Raspberry creare una cartella da condividere nella home dell'utente predefinito (pi)

mkdir ~/RPIShare

NB: la tilde (~) si fa con altGr + ì oppure con "pagina giù" oppure con Alt + 126.

Infine entrare nel file di configurazione di samba per modificare le impostazioni...

sudo nano /etc/samba/smb.conf

cercare questa stringa e modificarla o de-commentarla...

workgroup = WORKGROUP

Sempre nel file di configurazione arrivare fino in fondo al testo ed aggiungere queste righe:

[PiShare]
comment=Raspberry Pi Share
path=/home/pi/RPIShare
browseable=Yes
writeable=Yes
only guest=no

Nel computer Windows che farà da client sarà necessario attivare la specifica funzionalità:
Dal menù "Impostazioni" aprire la finestra "Funzionalità di Windows" e cercare la voce "Supporto per condivisione file SMB/CIFS" e spuntare la 'sottovoce' "client SMB/CIFS". Riavviare il PC.

Ora si potrà vedere Raspberry dalle risorse di rete di un PC MSWindows creando e modificando file all'interno delle cartelle (sia all'interno delle risorse di rete del PC Windows sia all'interno della cartella RPIShare che abbiamo creato in Raspberry.

Condividere una cartella MSindows con Raspberry PI

Un po' più macchinoso effettuare la condivisione opposta.
Prima di tutto creiamo una cartella, per esempio sul desktop del PC Windows, che conterrà i file da condividere (chiamiamola WinShare). Dalle "Proprietà" della cartella diamo ad "Everyone" le autorizzazioni di controllo completo sia nella scheda "Condivisione" sia in quella "Sicurezza".

Ora sul nostro Raspberry creiamo una cartella che diventerà la destinazione della cartella Windows condivisa (chiamiamola "WindowShare") ... da shell

mkdir ~/WindowShare

Ora, sempre da shell modifichiamo come root il file /etc/fstab:

sudo nano /etc/fstab

e aggiungiamo in fondo questa riga
 
//remote_ip_address/folder /srv/mount_destination cifs vers=3.0,username=<add_your_UN>,noauto,user 0 0

Poi modifichiamo le autorizzazioni per il file /usr/sbin/mount.cifs da -rwxr-xr-x a rwsr-xr-x
   
sudo chmod 4755 /usr/sbin/mount.cifs

Possiamo effettuare il reboot del nostro Raspberry. 
A questo punto per vedere i file di window nella cartella condivisa da windows sarà necessario effettuare il mount della stessa risorsa: sempre da shell:
   
USER=<add_your_UN> mount /srv/mount_destination

Ci verrà chiesta la password dell'utente windows che abbiamo indicato nel fil di configurazione
          
Password for <add_your_UN>@//remote_ip_address/folder:  ************

... e visualizzeremo nella cartella WindowShare del Raspberry il contenuto nella cartella WShare di Windows potendo modificare (come utente Pi) i file da entrambi i lati.

Collegarsi da remoto a Raspberry

SSH è un protocollo di comunicazione che può permetterci di lavorare da riga di comando su Raspberry Pi stando comodamente seduti davanti al nostro PC senza usare doppia tastiera, mouse e monitor...
In un vecchio post ho già indicato come trasformare il nostro computer Linux in server SSH e poi come accedere allo stesso computer via Putty da PC remoto.
La differenza interessante è che SSH è già istallato su Raspbian e non c'è quindi nessun bisogno di installare alcunché.
Basta accedere alla finestra (interfaccia grafica) Preferenze>>Raspberry Pi Configuration e, dalla finestra che si apre selezionare il tab "Interfaces"; lì sarà possibile abilitare SSH.
Da PC remoto quindi avviando Putty e inserendo l'IP del nostro Raspberry si aprirà una finestra terminale che ci permetterà di dialogare direttamente con lui.
Ancora più interessante sarà accedere da remoto alla interfaccia grafica di Raspberry...
In questo caso bisogna scaricare e installare sul nostro PC il programma VNC (scaricalo da qui) e ancora una volta, con lo stesso sistema utilizzato per SSH, abilitare anche VNC.
Dopo aver avviato il programma sul nostro PC ed inserito l'indirizzo IP del Raspberry si potrà lavorare comodamente con due computer usando un solo monitor, una tastiera ed un mouse.

Loggarsi come Root su RaspberryPi/Raspbian

L'utente Root, su Sistemi Operativi Linux, è l'utente amministratore e, normalmente, all'istallazione del S.O. viene richiesto all'operatore di impostare una password per tale utente. Difficilmente viene usata ma qualche volta serve: per esempio quando si istalla software o aggiornamenti di software.
Durante l'istallazione di Raspbian invece la richiesta di impostare una password per l'utente root non viene effettuata perché, per ragioni di sicurezza non viene impostata.
Se si prova infatti a loggarsi come Super User (su) da riga di comando verrà chiesta la password e non c'è modo di effettuare l'accesso.
L'unica possibilità sarà quella di modificarla utilizzando il comando :

sudo passwd su

Verrà richiesto di digitare la password e di ridigitarla per conferma.
Alla fine il sistema comunicherà che l'operazione è andata a buon fine.