Visualizzazione post con etichetta Raspberry Pi. Mostra tutti i post
Visualizzazione post con etichetta Raspberry Pi. Mostra tutti i post

mercoledì 13 gennaio 2021

Collegare un Encoder rotativo con switch a Raspberry Pi

 Alla ricerca di una soluzione valida per la costruzione della Radio Web, ma soprattutto per sperimentare nel senso piu' ampio del termine, mi sono imbattuto su questa libreria che gestisce tutte le fuinzionalita' del' encoder compreso lo switch a pulsante. Fa al caso mio!


L'Encoder consente di associare alla rotazione del suo asse a funzioni gestite da un programma, la funzione piu' comune e' quella di alzare o abbassare il volume, ma puo' essere anche utilizzato per spostarsi in un menu', per guidare un robot, per gestire lo spostamento della frequenza di un VFO di una radio, ecc..

La libreria che ho trovato consente di fare tutte queste cose con estrema facilita'.

La prima cosa che ho fatto e' cablare il mio Encoder con la Raspberry deputata al sacrificio di queste ultime prove.


Ho collegato  il segnale di CLOCK al PIN 18,il DATA al PIN 17 ed infine il PIN SWITCH al PIN 27, ma la disposizione dei PIN e' completamente arbitraria.

Le resistenze di pull-up che si vedono indicate nello schema qui accanto (se avete un encoder di questo tipo, sono gia' inserite nel circuito) invece non lo ho collegate, ma ho utilizzato la funzione di pull-up interna sui PIN della mia Raspberry Pi, per rendere ancora piu' semplice il circuito.



Nella foto qui accanto ho segnato i PIN che ho utilizzato nel mio circuito ed il positivo a 3,3 volts, non ho segnato il GND che e' presente in abbondanza sui PIN di Raspberry Pi.
A questo punto installiamo la libreria come indicato sulla documentazione:

Installation

  • Install the pigpio library (check pigpio documentation for alternative installation method)
  • sudo apt-get update
  • sudo apt-get install pigpio python-pigpio python3-pigpio
  • Install the pigpio_encoder library
  • pip install pigpio_encoder (consider add --user option)
  • start pigpio daemon
  • sudo pigpiod

Con l'uso della libreria bastano solo poche righe di codice per ottenere un programma funzionante che rileva attraverso gli interrupt di sistem, il movimento dell'asse dell'Encoder o la pressione dello stesso che attivera' lo switch. Viene anche tenuto conte del tempo di pressione del tasto per consentire di associare due funzioni differenti alla pressione dell'asse dell'Encoder, come vedremo con le funzioni: sw_short() e sw_long()

Questo un semplice programma di test che se fatto girare consente di assicurarsi che tutto sia montato correttamente.

from pigpio_encoder import pigpio_encoder

def rotary_callback(counter):
    print("Counter value: ", counter)

def sw_short():
    print("Switch short press")

def sw_long():
    print("Switch long press")

my_rotary = pigpio_encoder.Rotary(clk=18, dt=17, sw=27)
my_rotary.setup_rotary(min=10, max=300, scale=5, debounce=200, rotary_callback=rotary_callback)
my_rotary.setup_switch(debounce=200, long_press=True, sw_short_callback=sw_short, sw_long_callback=sw_long)

my_rotary.watch()

Qui a fianco il montaggio su una basetta di legno

Buon divertimento

TecnoGeppetto


Collegare un display I2C alla Raspberry Pi

 Molto spesso nello sviluppo dei progettini con Raspberry si rende necessario visualizzare lo stato di esecuzione dei comandi o lo stato dei pin, insomma abbiamo bisogno di "vedere" a che punto ci stiamo trovando nell'esecuzione del nostro sistema. La maniera piu' veloce ed economica e' quella di utilizzare un display 1602 con integrata l'interfaccia I2c.


Il display in questione costa circa 2 euro su Aliexpress e consente di visualizzare 2 righe di 16 caratteri totalmente gestibili dal nostro programma. L'utilizzo della interfaccia I2C velocizza la comunicazione tra Raspberry e Display e fa risparmiare un po' di cavetteria che crea solo confusione e aumenta il rischio di malfunzionamenti.

Effettuati i collegamenti come da schema, non ci resta che utilizzare una libreria per cominciare a comunicare con il Display.

Ho trovato questa libreria  che aiuta nella gestione del Display e che e' molto facile installare ed utilizzare.

Cominciamo: (da Github)

Installation

  • Install git

    sudo apt install git
    
  • Clone the repo in your pi home directory

    cd /home/pi/
    git clone https://github.com/the-raspberry-pi-guy/lcd.git
    cd lcd/
    
  • Run the automatic installation script with sudo permission

    sudo ./install.sh
    
  • After rebooting, try one of the demos

    cd /home/pi/lcd/
    ./demo_clock.py


Ecco il risultato:



Questo e' il circuito completo che ho montato per farlo diventare una Radio Web.







Ascoltare Radio in Streaming con Raspberry Pi

 Tra le altre cose, durante le vacanze di Natale nell'anno della pandemia, mi sono divertito a costruire una radio web con raspberry ed mpc - mpd. Ho scoperto infatti il progetto Music Player Daemon (MPD) un'applicazione lato server flessibile e potente per la riproduzione di musica. Attraverso plugin e librerie può riprodurre una grande varietà di file audio e anche le trasmissioni delle radio in streaming web.


Il sistema e' testuale, cioe' lo si avvia attraverso comandi via shell. E' stato sviluppato un client per il sistema, che ne rende l'utilizzo  estremamente semplice e veloce, il Client si chiama MPC lo puoi trovare qui 

Come funziona?
Molto semplicemente, basta fornire il link allo streaming della radio che ci interessa, ad mpc che automaticamente parte la riproduzione. E' possibile aggiungere una playlist di radio (una sorta di cambio canale) che possono essere selezionate in modo da poter cambiare la programmazione ogni volta si voglia.

Con il comando :

$ mpc add "link_completo_di_http_allo_streaming_audio"

si aggiunge lo streaming alla coda della playlist

$ mpc play

si avvia la riproduzione dello streaming sul device audio di default del sistema.

Per l'utilizzo si Raspberry Pi possiamo creare il sistema pulito si microSD, operazione che oggi e' molto facile e veloce!, installare mpd e mpc direttamente dal repository ufficiale con

$ sudo apt-get install mpd

Possiamo provare subito se tutto funziona ( a me e' andata cosi!):

$ mpc add http://livex.radiopopolare.it/radiopop

$ mpc play

Con questi semplici comandi (sempre che la Raspberry Pi sia collegata ad internet via rete o via WiFi, ovviamente!) dal jack audio, collegando un paio di cuffiette o gli altoparlanti amplificati, si dovrebbe il flusso audio della radio web.

Nel caso che qualcosa non funzioni, possiamo fermare il servizio mpd che parte in automatico appena scaricato con:

$ sudo /etc/init.d/mpd stop

Ci possiamo creare una copia di backup del file di configurazione 

$ sudo cp /etc/mpd.conf /etc/mpd.conf.originale

E controllare che la configurazione sia simile a questa, aprendo iol file di configurazione attraverso un editor di testo (nano):

$ sudo nano /etc/mpd.conf

quindi cercare e controllare :

audio_output {
type               “alsa”
name            “Raspberry Onboard Audio” (verra’ visualizzato sul client)
device           “hw:0,0”
mixer-device “default”
mixer-control “PCM”
mixer-index   “0”
}

Nel caso modificare ed uscire dall'editor salvando.

Per far ripartire il servizio mpd:

$ sudo /etc/init.d/mpd start

Tutto dovrebbe funzionare correttamente.


Buon divertimento 

TecnoGeppetto

venerdì 21 settembre 2018

Utilizzare Raspberry Pi come Client WiFi e server DNS

Il sistema che vado configurando e' questo:

una Raspberry Pi che collega via WiFi un Router WiFi con server dhcp che ha accesso ad internet;
la Raspberry Pi attraverso la sua presa di rete ed uno switch di rete, condivide la connessione intenet con tutta la rete della mia mansarda.
In sostanza per ottenere la navigazione internet dalla mansarda dove abito, ho dovuto fare un link con l'appartamento sottostante dove risiede la linea telefonica ed il modem ADSL.

Come spesso succede per ottenere il risultato desiderato ho dovuto fare un mix di tutorial, l'mportante comunque e' sempre riuscire ad arrivare alla meta!Vedi le tribolazioni per il settaggio della chiavetta WiFi della Raspberry utilizzata come Client in questo post  


Comportandosi come router, la Raspberry Pi dovra' assegnare gli indirizzi ip alle macchine che la connetteranno, quindi per fare questo ho dovuto configurare il programma DNSMASQ.

Iniziamo con scaricare il software con

sudo apt-get install dnsmasq

poi si deve modificare il file /etc/dnsmasq.conf

sudo nano /etc/dnsmasq.conf

Inserendo prima della fine del file queste righe di codice:

interface=eth0
listen-address=192.168.1.1,127.0.0.1
dhcp-range=192.168.1.50,192.168.1.150,12h


In questo modo il dnsmasq assegna un numero ip variabile con un lease time di 12 ore, nel range di numeri  da 50 a 150 sulla interfaccia eth0 (la rete cablata collegata allo switch)

Poi ho attivato il port forwording tra le porte, modificando questo file

sudo nano /etc/sysctl.conf

 andando a cambiare, togliendo il #, questa riga del file di configurazione.

net.ipv4.ip_forward = 1

A questo punto diventiamo root con

sudo su

ed andiamo a modificare la trabella di routing con il comando

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


per controllare che tutto sia ok

iptables -t nat -L

Dovrebbe restituire questa scritta


Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere


Adesso  lo andiamo a scrivere con questo comando:

echo 1 > /proc/sys/net/ipv4/ip_forward


questa ultima istruzione deve essere data assolutamete con i privilegi di root

Per rendere permanenti questi comandi che altrimenti si resetterebbero al riavvio,viene utilizzata la tecnica di  scrivere tutto su un file e caricarlo ad ogni riavvio in quresto modo:

cd /etc/network
iptables-save > condivisione-internet.rules
touch attiva-condivisione-internet
chmod u+x attiva-condivisione-internet
nano attiva-condivisione-internet

inseriamo questo contenuto:

iptables-restore < /etc/network/condivisione-internet.rules
echo 1 > /proc/sys/net/ipv4/ip_forward

Ora modifichiamo il file /etc/network/interfaces

nano interfaces

ed aggiungere, nella configurazione dell'ingterfaccia wlan0 questa riga di codice che al boot della macchina fa leggere alla Raspberry Pi la configurazione salvata nel file prodotto sopra :

pre-up /etc/network/attiva-condivisione-internet


Se non mi sono dimenticato nulla e non ci sono errori, al reboot la Raspberry Pi si colleghera' al suo AP configurato nel wpa_supplicant e condividera' la connessione internet tramite la sua presa di rete


Di seguito i link da cui ho fatto osmosi:
https://www.lffl.org/2016/04/guida-dnsmasq-condividere-connessione-via-ethernet.html
http://vilnet.it/argo/linux-guide-trucchi-15/news/condividere-connessione-internet-terminale-321/#




mercoledì 19 settembre 2018

TP LINK TL-WN722N V3 Installare su RaspberryPi driver mancante

della serie anche le cose apparentemente semplici ti complicano la giornata!

La sfida di questo pomeriggio e' stata quella di far funzionare una delle mie piccole Raspberry Pi con una chiavetta acquistata fresca fresca nel negozio di un mio amico in mattinata.
La nuova istallazione dovra' servire per collegare dalla mansarda dove vivo, l'AP di casa che rimane due piani sotto a circa 30 - 35 metri di distanza.
Devo portare internet a casa, sebbene la connessione dove abito sia  come quella dei Flinkstone, lentissima e mai costante(ma qui in campagna questo passa il convento!).

Mi serve un client che condivida la sua connessione wifi con gli altri apparecchi casalinghi, quindi, dopo aver fatto una serie infinita di test con la funzione WDS o client di alcuni router wifi che mi trovo nel cassetto, senza essere arrivato da nessuna parte, ho deciso di utilizzare una Raspberry Pi che, sebbene sia sottopotenziata per questo scopo, dovrebbe consentirmi di fare velocemente e bene quello che ho in testa.(Come vedremo pero' il concetto di velocemente non si applica a questo sport!!!)
 Poi in un secondo momento potrei utilizzare anche la RPI per il controllo dell'appartamento attraverso la sua Raspicam. Ma questo progetto lo svilupperemo piu' avanti.

La prima delle Raspberry Pi che ho settato per questo scopo l'ho messa in garage con la stessa funzione. il garage e' molto piu' vicino al router casalingo e quindi non ho "patito" piu' di tanto. Ho collegato la chiavetta gia' usata in mille altre occasioni e impostato il software come descritto in seguito.
Per quella della mansarda invece, devo fare una istallazione esterna perche'  non ho ricezione diretta del segnale dal router.
Di conseguenza sono andato a prendere la chiavetta wifi con il bocchettone SMA per poter collegare una antenna esterna e puntarla verso la casa sottostante.

Alla connessione del dongle pero' mi accorgo che non sono istallati ancora  i driver, sigh!

ecco quale tutorial ho seguito per installare e far funzionare la mia chiavetta. TP LINK TL-WN722N V3

Questo si e' rivelato il  Tutorial migliore

The best and easiest way to handle this problem is as following
  1. sudo wget http://www.fars-robotics.net/install-wifi -O /usr/bin/install-wifi
    • Downloads the installation file
  2. sudo chmod +x /usr/bin/install-wifi
    • makes it executable
  3. Installation process
    • sudo install-wifi -c rpi-update
      - check for driver if rpi-update is run.
    • sudo rpi-update
      - if a driver is available you can run rpi-update to update firmware.
    • sudo install-wifi -u rpi-update
      - then update the driver for the new kernel installed by rpi-update.
    • sudo reboot
      - now reboot to update the kernel with the new wifi driver.

Nel cercare mi sono anche imbattuto in questo tutorial che con una vecchia versione di Linux ha funzionato subito. :

Here is what I did to get the TP-WN722N V.2 working on Raspberry Pi. The first command we need to do is use git and get the driver. git clone https://github.com/lwfinger/rtl8188eu... The next command we need to do is install some headers. sudo apt install raspberrypi-kernel-headers Once that is installed, which will take a few minutes. When need to run the following command. sudo ln -s /usr/src/linux-headers-$(uname -r) /lib/modules/$(uname -r)/build That command will just drop you down to the next line. The next commands are going to be the following. cd rtl8188eu make all sudo make install Once you are done. Do a sudo reboot and you should be good to do.


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


martedì 29 novembre 2016

Rilevare la Temperatura interna di Raspberry Pi

In questi giorni sto mettendo le basi per la costruzione di una Stazione Meteo (l'ennesima, ma prima o poi verrà fuori qualcosa di molto buono).
Una delle impostazioni del sistema operativo Debian consente di controllare la temperatura del microprocessore.
Questa informazione è importante per poter mettere in campo delle contromisure in caso di surriscaldamenti del sistema.
Se la nostra Stazione Meteo verrà posizionata all'esterno sotto al sole, potrebbe subirne l'effetto riscaldante, soprattutto nella bella stagione, e raggiungere delle temperature tali che potrebbero danneggiare il sistema.

Con questa semplice istruzione, possiamo leggere il valore della temperatura interna e decidere per esempio di far partire la ventilazione forzata per refrigerare la scatola ed il suo contenuto.

Direttamente da shell digitare:

cat /sys/class/thermal/thermal_zone0/temp | cut -c1-2

Otterremo questo:
pi@EasyMeteo01:~ $ cat /sys/class/thermal/thermal_zone0/temp | cut -c1-2
33
pi@EasyMeteo01:~ $

Infatti nel momento in cui sto scrivendo la mia Raspberry Pi ha una temperatura interna di 33 gradi centigradi.
L'istruzione cut -c1-2  consente di leggere solamente i primi due caratteri di ciò che rende il comando, se omettiamo questa istruzione, otteniamo:
pi@EasyMeteo01:~ $ cat /sys/class/thermal/thermal_zone0/temp
33628
pi@EasyMeteo01:~ $

Numero che rappresenta la lettura della temperatura interna in millesimi di grado.

Stay Tuned
TecnoGeppetto

domenica 27 novembre 2016

Installare client VPN su distribuzione debian Lite per Raspberry Pi

L'avventura di oggi e' stata quella di installare il Client VPN su una distribuzione fresca fresca di Debian-Lite appena scaricata dal sito originale .
L'operazione è molto semplice, ma come sempre, c'è sempre qualcosa da sapere per portarla a termine con esito positivo.
La distribuzione Lite distribuita dal sito originale infatti non contiene tutti i pacchetti necessari perchè tutto funzioni subito, ma per ottenere il risultato dobbiamo installare alcuni pacchetti indispensabili.
Dopo i classici:
    1  sudo apt-get update
    2  sudo apt-get upgrade
Installiamo il programma principale OpenVpn che sarà quello che gestisce l'operazione:
    3  sudo apt-get install openvpn

Nella distribuzione completa già questa operazione e' sufficiente per far partire tutto, ma nella Lite, manca un componente essenziale, il Driver per Tun/Tap.
Per andare verso il buon fine il comando precedente deve essere sostituito da questo più completo che installa tutto il necessario ed anche qualcosa di più che ci servirà in seguito per proseguire nel progetto (git e zip)

    4  sudo apt-get install openvpn openssl module-init-tools zip dos2unix git
Poi con facciamo partire il driver necessario
    5  command modprobe tun
 
A questo punto un bel reboot che non guasta!

    6  sudo reboot
Poi ci spostiamo nella cartella che contiene le chiavi per la registrazione corretta in rete. (queste chiavi devono essere state preventivamente fornite dal server VPN, si tratta di 4 file che contengono le chiavi crittografate ed il file di configurazione di OpenVpn in questo caso le mie sono contenute in una cartella dal nome "client15"
    7  cd client15/

Con il comando successivo facciamo partire il programma OpenVpn in modo che vada a leggere il file di configurazione e con quello assuma le chiavi necessarie, con l'aggiunta del comando "&" , mandiamo l'operazione in back ground, in maniera da non occupare la finestra di terminale ed essere costretti ad aprirne un'altra.
    8  sudo openvpn --config client.ovpn &
A questo punto, se le chiavi sono state riconosciute dal sistema e tutto è  andato nel verso giusto, siamo entrati nella VPN di cui avevamo le chiavi.
Conoscendo alcuni indirizzi interniu della rete sara' facile vedere se tutto e' OK, anche soltanto pingando il server, per esempio
    9  ping 10.8.0.1

Con ifconfig  possiamo vedere tutte le caratteristiche della nostra configurzione di rete
   10 ifconfig


Questo è quello che mi risponde il comando sulla mia Raspberry Pi che sto utilizzando per gli esperimenti:
pi@EasyMeteo01:~ $ ifconfig
eth0      Link encap:Ethernet  HWaddr XXXXXXXXXXXXX
          inet addr:192.168.22.160  Bcast:192.168.22.255  Mask:255.255.255.0
          inet6 addr: fe80::cf20:4124:4cb8:cb7f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25261 errors:0 dropped:8 overruns:0 frame:0
          TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:20997554 (20.0 MiB)  TX bytes:1178247 (1.1 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.8.0.58  P-t-P:10.8.0.57  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:1000 errors:0 dropped:0 overruns:0 frame:0
          TX packets:813 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:68543 (66.9 KiB)  TX bytes:110167 (107.5 KiB)

pi@EasyMeteo01:~ $

In grassetto ho evidenziato la nuova configurazione che ho creato con l'operazione descritta sopra, il server mi ha assegnato l'IP  inet addr:10.8.0.58 

Per far partire la connessione alla accenzione del pc, possiamo aggiungere il comando sopra nel file rc.local che viene letto ad ogni boot del sistema
Quindi editiamo il file con :
   11  sudo vi /etc/rc.local

Ed aggiungiamo in fondo prima del comando  exit 0 , i comandi necessari, nel mio caso (che ho chiamato la cartella client15):

#dati per impostazione VPN
cd /home/pi/client15
sudo openvpn --config client.ovpn &

In questo modo alla prossima accensione del sistema la Raspberry Pi sarà connessa ad internet nella rete locale ed anche loggata nella rete VPN privata in automatico.

Primi passi per la costruzione di una Stazione Meteo

Preparare il sistema alla lettura dei sensori


Dopo aver installato il Client VPN  sulla nostra distribuzione Debian-Lite scelta per l'occasione, il passo successivo per ottenere una Stazione Meteo, e' quello di collegare i primi sensori alla Raspberry Pi e cominciare ad ottenere le prime letture dei dati.

Per fare questo ci sono da fare alcune operazioni hardware e software. La parte hardware la tratterò successivamente, adesso mi concentro su che cosa ho fatto per poter leggere i dati dal lato sofware.
Alla distribuzione scelta per il progetto, mancano alcune istruzioni necessarie per far funzionare il sistema, dobbiamo installare un paio di pacchetti e configurarli perchè la Raspberry Pi  si accorga del sensore che intanto ho collegato alla GPIO disponibile sulla scheda.


    1  sudo apt-get install -y python-smbus
    2  sudo apt-get install -y i2c-tools
    3  sudo raspi-config

Con il comando raspi-config abbiamo fatto partire il programma di configurazione interno di Raspberry.  Qui dobbiamo abilitare la porta I2C, che di default non e' abilitata,
Dal menù principale scegliere 8 Advanced Option,
Quindi scegliere la I2C come evidenziato in figura.

Quindi modificare manualmente con un editor di testo il file modules:
    4  sudo nano /etc/modules

Per inserire prima della fine del file questi due parametri:
i2c-bcm2708 i2c-dev

Chiudere e salvare il file.
Adesso manca ancora una operazione, dobbiamo modificareil file:
    5  sudo nano /boot/config.txt

Al quale dobbiamo aggiungere due parametri, in fondo al file scrivere:
dtparam=i2c1=on
dtparam=i2c_arm=on


Chiudere e salvare il file.

Comunicare col sensore

Adesso siamo pronti per partire e finalmente leggere i primi dati. Rebootiamo la Raspberry.
    6  sudo reboot
 
Con il comando successivo possiamo controllare se il dispositivo collegato alla porta I2C è regolarmente ricevuto dalla macchina
     7  sudo sudo i2cdetect -y 1   
(SOLO nel caso si stia usando una Raspberry Pi modello A, l'ultimo parametro dovrà essere 0 -zero-  quindi: sudo sudo i2cdetect -y 0 )

Nel caso del sensore BMP180, che ho scelto di utilizzare come sensore di temperatura e pressione, se correttamente collegato, il sistema risponderà con l'indirizzo 0x77


Preparare il Software

   Per installare il pacchetto messo a disposizione da Adafruit, che contiene una serie di esempi di utilizzo del sensore BMP180 che ho utilizzato, è necessario aggiungere una serie di pacchetti aggiuntivi non presenti nella distribuzione, quindi  digitare:
    1  sudo apt-get install git build-essential python-dev python-smbus
Poi scaricare il Software di Adafruit
    2  git clone https://github.com/adafruit/Adafruit_Python_BMP.git

Entrare nella cartella
    3  cd Adafruit_Python_BMP/

Installare il programma Adafruit, ed allo scopo Adafruit ha preparato un file auto installante che partirà col comando:
    4  sudo python setup.py install

Al termine delle operazioni automatiche, entrare nella cartella degli esempi e far partire il programma di test:
    5  cd examples/
    6  sudo python simpletest.py

Questo programma renderà a video  la lettura del sensore BMP180 collegato, formattando il testo in modo che possa essere facilmente letto dall'utente

Abbiamo finalmente ricevuto la prima lettura dei dati disponibili sul sensore scelto.

mercoledì 22 giugno 2016

Ascoltare radio in web steaming da shell

Nel mio continuo girovagare in cerca di novita' tecnologiche, ho trovato questo programma che in modo molto semplice e veloce consente di ascoltare le tue stazioni radio in streaming preferite.


Il sistema funziona da shell, non ha interfaccia grafica, ma in fondo non serve per ascoltare la radio!

Si istalla semplicemente con questo comando
 
 
sudo apt-get install mpd mpc
 
Caricato il programma sul sistema, basta aggiungere con 

mpc add "link"   

il link delle stazioni radio che piu' ci piacciono che il sistema comincera' a riprodurre lo streaming sugli altoparlanti del sistema.

Con 

mpc help

avremo la lista di tutti i comandi disponibili.
 



RPi 5,0 HDMI 800x480 con TouchScreen

La battaglia comincia:
Trovare una soluzione stabile e funzionante che consenta l'utilizzo del monitor 5 pollici HDMI per Raspberry Pi.
Una bella sfida, perche' ogni volta che mettiamo mano alla scoperta di qualche pezzo hardware un po' "diverso" dal solito, ci si scontra con la mancanza di informazioni o, peggio con una quantita' di informazioni errate, che fanno perdere un mare di tempo, prima di trovare la strada giusta.
Ma a me e' sempre piaciuto andare ad esplorare nuove strade ed evitare di rimanere legato alle solite cose sulle quali sperimentano un po' tutti, quindi eccomi qui alla ricerca.

La maggior parte delle buone informazioni sul funzionamento di hardware dedicato al meraviglioso campo della hobbistica elettronica, la fornisce Adafruit.
In questo caso pero', forse per il prezzo un po' alto del device,

Per l'istallazione ho seguito questa guida, ma per farla funzionare correttamente importante e' aggiungere queste istruzioni del file config.txt nella cartella /boot della Raspberry Pi con la distribuzione debian classica (Jessy)

hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0

Poi aggiungere  in basso al documento queste due istruzioni qui per attivare il Touch Screen

dtparam=spi=on
dtoverlay=ads7846,penirq=25,speed=10000,penirq_pull=2,xohms=150



con  questa istruzione si istalla il sistema per la calibrazione dello schermo, molto utile per associare al tocco del pennino la corretta posizione
 
 sudo apt-get install -y xinput-calibrator
 
 
Un altro link utile per rendere funzionante l'istallazione e' questo


 

 
 
 Nel caso di utilizzo solo in Terminale si puo' diminuire la memoria dedicata alla GPU
gpu_mem=32
framebuffer_ignore_alpha=1
framebuffer_swap=1
disable_overscan=1
init_uart_clock=16000000
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0
 
 

 
 

Tastiera Virtuale per Raspberry Pi TouchScreen

 Ho assemblato qualche giorno fa un sistema composto con Raspberry Pi B2 e schermo TFT Touch screen, condito con RaspiCam e, ancora nei progetti ma non montato,  di amplificatore BF e altoparlanti, batteria di alimentazione da 10Ampere, e chissa' quante altre diavolerie mi inventero'!!!

Una delle cose di cui ho sentito subito l'esigenza e' una tastiera virtuale che consentisse di operare sul sistema anche attraverso lo schermo touch.
L'operazione di installazione come sempre non e' stata delle piu' veloci, ma poi , alla fine sono riuscito ad arrivare in fondo utilizzando questa guida.














RPi WebCam Interface

Sempre alla ricerca di qualche applicazione interessante ho scoperto questa che aiuta moltissimo nella costruzione di un  sistema di monitoraggio tramite RaspiCam. Da quando lo ho scoperto, la mia stampante 3D e' costantemente sotto il suo occhio vigile, cosi posso comandarla da remoto e controllare se la stampa impostata, si svolge regolarmente anche quando non sono li di persona.

Istallare il sistema e' semplicissimo.
Partendo da una nuova immagine debian su Raspberry Pi

sudo apt-get update
sudo apt-get dist-upgrade

Poi, se l'istruzione  git  non e' ancora stata caricata nel sistema:

sudo apt-get install git

Quindi:

git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
cd RPi_Cam_Web_Interface
chmod u+x *.sh
./install.sh

A questo punto il sistema e' installato e potete gia' utilizzarlo chiamando da un browser web l'indirizzo IP della Raspberry Pi, anche dal telefonino come faccio io.



http://elinux.org/RPi-Cam-Web-Interface

sabato 18 giugno 2016

scatola Raspberry Pi + 5 TFT HDMI + Batteria

Come avrete letto in questo post, sto costruendo un sistema portatile composto da Raspberry Pi ed il suo schermo Touch Screen da 5 pollici. Nei ritagli di tempo ho iniziato a progettare la scatola e come potrete vedere dalle foto nel post a cui faccio riferimento, ho anche gia' iniziato a stampare 3D il primo prototipo.
Il passo successivo sara' quello di includere una power bank da 10.000 mA all'interno della scatola e progettare la guaina per il pennino in dotazione con lo schermo.
Tutti i disegni e le scatole che realizzo sono pubblicate su Tingiverse a questo indirizzo.

coperchio Batteria

Di seguito il filmato del rendering del coperchio disegnato per la scatola della mia costruzione di un prototipo portatile con Raspberry Pi e TFT Touch Screen da 5 pollici HDMI.
Come descritto qui

Pubblichero' tutti i disegni e le modifiche sul mio spazio su Thingiverse a questo indirizzo  per quelli di voi che vorranno costruirsene un prototipo da soli con la propria stampante 3D.

Le prossime modifiche prevedono l'inserimento di una power bank da 10.000 mA in una tasca progettata ad hoc proprio sulla superficie interna di questo coperchio.