domenica 8 novembre 2015
Segnale a portale in scala N di Alex LaTorre
Di seguito un breve video del bellissimo segnale a portale in scala N realizzato da Alessandro LaTorre in alpacca fotoincisa, con led a tre colori molto realistici. Il segnale è stato poi verniciato e leggermente invecchiato e sporcato. Buona visione.
venerdì 30 gennaio 2015
Rocrail e Raspberry Pi - Script per display
Nel precedente articolo abbiamo impostato le funzionalità di base per far funzionare un display LCD con la Raspberry Pi. A questo punto abbiamo bisogno di un "qualcosa" che ottenga informazioni da Rocrail e lo visualizzi correttamente sul display, Inoltre dovrà monitorare lo stato dei pulsanti ed alla pressione di uno di essi impostare le azioni di conseguenza.
Naturalmente lo script è scritto in Phyton, linguaggio multipiattaforma e di facile apprendimento. A questo punto è sufficiente scaricare lo script e copiarlo in una directory a scelta, io consiglio
Di seguito il link per scaricare lo script. Il listato è liberamente scaricabile e modificabile a patto di riportare sempre il banner iniziale e di riportare sempre la fonte se linkato in altri siti WEB. Nella stessa cartella dello script andranno copiati anche due moduli delle librerie Adafruit scaricati precedentemente e pi esattamente i due moduli con i seguenti nomi
Adafruit_CharLCDPlate.py
Adafruit_I2C.py
Il codice sorgente è disponibile su GitHub
All'interno del repository di GitHub troverete anche numerosi script per la gestione della RocPi
Una volta scaricato il tutto copiate lo script rocpilcd in /etc/init.d e aggiornate gli script di avvio con
Lo script verrà avviato in automatico al boot del sistema operativo.
Naturalmente lo script è scritto in Phyton, linguaggio multipiattaforma e di facile apprendimento. A questo punto è sufficiente scaricare lo script e copiarlo in una directory a scelta, io consiglio
\home\pi\scripts
Di seguito il link per scaricare lo script. Il listato è liberamente scaricabile e modificabile a patto di riportare sempre il banner iniziale e di riportare sempre la fonte se linkato in altri siti WEB. Nella stessa cartella dello script andranno copiati anche due moduli delle librerie Adafruit scaricati precedentemente e pi esattamente i due moduli con i seguenti nomi
Adafruit_CharLCDPlate.py
Adafruit_I2C.py
Il codice sorgente è disponibile su GitHub
RocPiLCD Repository completo
rocpilcd.py Sorgente Python
rocpilcd Script per init.d
All'interno del repository di GitHub troverete anche numerosi script per la gestione della RocPi
Una volta scaricato il tutto copiate lo script rocpilcd in /etc/init.d e aggiornate gli script di avvio con
sudo chmod 755 /etc/init.d/roccontrol
sudo update-rc.d rocpilcdl defaults
Lo script verrà avviato in automatico al boot del sistema operativo.
CONSIDERAZIONI SULLO SCRIPT
Il programma Python è in grado di leggere lo stato di tensione ai binari e stato della modalità automatica, ovviamente è possibile integrare queste informazioni con le innumerevoli messe a disposizione del server mediante lo Scripting RCP (Rocrail Client Protocol), per maggiori informazioni fare riferimento al Wrapper, contenente tutti i riferimenti sl protocollo.
Sulla shield sono presenti anche 5 pulsanti, attualmente vengono utilizzati i primi 3 per ,nell'ordine, abilitare o disabilitare la tensione ai binari, abilitare o disabilitare la modalità automatica, Freno di emergenza (EBREAK).
Ovviamente questa è una base di partenza e il tutto può essere ampliato a piacimento. Di seguito il codice sorgente ed un breve video sul risultato finale
Buon divertimento!
giovedì 29 gennaio 2015
Rocrail e Raspberry PI - Display per il funzionamento
Ora che abbiamo impostato il server Rocrail sulla nostra Raspberry Pi come facciamo a sapere lo stato del server non avendo nessun monitor collegato?
La soluzione potrebbe essere utilizzare una delle numerose shield da collegare alla porta GPIO della RPi. Un valido esempio potrebbe essere quello progettato e commercializzato dalla ditta Futura Elettronica, acquistabile a questa pagina ad un prezzo davvero contenuto. Alla stessa pagina ' disponibile il manuale come download, nel quale è disponibile comunque lo schema elettrico della shield per chi volesse realizzarlo in proprio. Il manuale è scaricabile a questo link . In foto una shield compatibile per la la Rpi.
Una volta installata fisicamente la shield occorre effettuare una serie di operazione software per rendere disponibili tutte le funzionalità.
Nativamente sulla distro Raspbian la comunicazione I2c, necessaria per dialogare con il display, è disabilitata di default, quindi la prima operazione da compiere è la sua abilitazione.
Innanzitutto aggiorniamo il repository
Aggiorniamo anche tutti i pacchetti installati
Togliere il modulo I2c dalla blacklist commentando la riga contenente i2c-bcm2708 anteponendo il simbolo di cancelletto #.
Salvare la modifica con CTRL+O e una volta confermato il nome dell file uscire da nano con CTRL+O.
A questo punto riavviare per "liberare" i moduli precedentemente abilitati.
A questo punto verifichiame se le funzionalità I2C possono essere attivate sulla nostra RocPi.Per caricare manualmente il modulo I2C digitare:
Per verificare se il modulo è stato caricato correttamente
Alla fine dell'elenco dovrebbe apparire il modulo i2c_bcm2708
Sicuri che le funzionalità possono essere caricate, scarichiamo ora il modulo dalla memoria con il comando
Ovviamente risulta scomodo ogni volta caricare manualmente il modulo ad ogni avvio.Per caricare in automatico il modulo al boot modificare l'apposito file di configurazione.
ed aggiungere una nuova riga al file che contiene i2c-dev, notare che non è necessario il riavvio per caricare il modulo. Salvare e uscire da nano come al solito.
Installiamo ora i tools I2c necessari per il buon funzionamento del sottosistema hardware
aggiunger il proprio utente al gruppo I2C
Possiamo a questo punto verificare se a livello hardware la nostra shield LCD viene vista dalla RocPi.
lanciamo il comando
Dovremmo vedere un output simile a questo, dove viene visualizzato l'indirizzo della periferica I2C.
Il display LCD verrà pilotato da un apposito script scritto in Python. Per il buon funzionamento del display è necessario scaricare le librerie di supporto sviluppate da Adafruit e messe a dispoosizione per il libero download da GitHub. Grazie al software Git preinstallato nella RocPI l'operazione di download risulta veramente semplice. Innanzitutto creare cartella di supporto LCD
Scaricare le librerie di supporto Adafruit in Phyton con esempi di programmazione.
Una volta terminata la procedura di download avremo nella cartella precedentemente creata la copia esatta del repository di Git sulla nostra RocpI
Installiamo ora le librerie per gestione del protocollo I2C con linguaggio Phyton
Le operazioni sono terminate! se vogliamo provare il display possiamo lanciare uno script di prova.
Attenzione a scrivere correttamente le lettere maiuscole e minuscole. Buon divertimento!
La soluzione potrebbe essere utilizzare una delle numerose shield da collegare alla porta GPIO della RPi. Un valido esempio potrebbe essere quello progettato e commercializzato dalla ditta Futura Elettronica, acquistabile a questa pagina ad un prezzo davvero contenuto. Alla stessa pagina ' disponibile il manuale come download, nel quale è disponibile comunque lo schema elettrico della shield per chi volesse realizzarlo in proprio. Il manuale è scaricabile a questo link . In foto una shield compatibile per la la Rpi.
Shield LCD per raspberry Pi |
Una volta installata fisicamente la shield occorre effettuare una serie di operazione software per rendere disponibili tutte le funzionalità.
Nativamente sulla distro Raspbian la comunicazione I2c, necessaria per dialogare con il display, è disabilitata di default, quindi la prima operazione da compiere è la sua abilitazione.
Innanzitutto aggiorniamo il repository
sudo apt-get update
Aggiorniamo anche tutti i pacchetti installati
sudo apt-get upgrade
Togliere il modulo I2c dalla blacklist commentando la riga contenente i2c-bcm2708 anteponendo il simbolo di cancelletto #.
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Salvare la modifica con CTRL+O e una volta confermato il nome dell file uscire da nano con CTRL+O.
A questo punto riavviare per "liberare" i moduli precedentemente abilitati.
A questo punto verifichiame se le funzionalità I2C possono essere attivate sulla nostra RocPi.Per caricare manualmente il modulo I2C digitare:
modprobe i2c-dev
Per verificare se il modulo è stato caricato correttamente
lsmod
Alla fine dell'elenco dovrebbe apparire il modulo i2c_bcm2708
Sicuri che le funzionalità possono essere caricate, scarichiamo ora il modulo dalla memoria con il comando
modprobe -r i2c-dev
Ovviamente risulta scomodo ogni volta caricare manualmente il modulo ad ogni avvio.Per caricare in automatico il modulo al boot modificare l'apposito file di configurazione.
sudo nano /etc/modules
ed aggiungere una nuova riga al file che contiene i2c-dev, notare che non è necessario il riavvio per caricare il modulo. Salvare e uscire da nano come al solito.
Installiamo ora i tools I2c necessari per il buon funzionamento del sottosistema hardware
apt-get install i2c-tools
aggiunger il proprio utente al gruppo I2C
adduser pi i2c
Possiamo a questo punto verificare se a livello hardware la nostra shield LCD viene vista dalla RocPi.
lanciamo il comando
i2cdetect -y 1 per le RasPi rev 2
i2cdetect -y 0 per le RasPi rev 1
Dovremmo vedere un output simile a questo, dove viene visualizzato l'indirizzo della periferica I2C.
Le librerie Python di supporto
mkdir /home/pi/LCD
Scaricare le librerie di supporto Adafruit in Phyton con esempi di programmazione.
git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
Una volta terminata la procedura di download avremo nella cartella precedentemente creata la copia esatta del repository di Git sulla nostra RocpI
Installiamo ora le librerie per gestione del protocollo I2C con linguaggio Phyton
sudo apt-get install python-smbus
Le operazioni sono terminate! se vogliamo provare il display possiamo lanciare uno script di prova.
cd /home/pi/LCD/Adafruit-Raspberry-Pi-Python-Code/Adafruit_CharLCDPlate
python LCDtest.py
Attenzione a scrivere correttamente le lettere maiuscole e minuscole. Buon divertimento!
Iscriviti a:
Post (Atom)