Il plastico modulare di Stefano

  1. Nell'articolo precedente è stato presentato un Palmare Multiloco basato su Arduino Mega per sistemi digitali DCC Xpressnet© capace di controllare tre loco con tre manopole diverse e mettendo a disposizione i comandi essenziali, ovvero cambio dell' indirizzo DCC, direzione di marcia, luci. Oltre a ciò nella prima versione il palmare ha anche la funzione di lettura delle CV.

    Il presente articolo descrive la nuova release software che aggiunge la funzionalità di scrittura delle CV.

    Come descritto nell’articolo precedente, il palmare entra nella modalità “Service mode” premendo il tasto “D”. Il display mostrerà la schermata come in figura:
    Per leggere una CV occorre ruotare la manopola dell’encoder 1 per selezionare il numero della CV da leggere e poi premere il pulsante dello stesso encoder per attivare l’operazione di lettura vera e propria.
    Il valore letto sarà visualizzato come in figura.
    Per scrivere una CV occorre ruotare la manopola dell’encoder 2 per selezionare il numero della CV da leggere e la manopola dell’encoder 3 per selezionare il valore da programmare, successivamente premere il pulsante dell’encoder 2 per attivare l’operazione di scrittura.
    Il palmare visualizzerà il valore appena scritto nella riga dedicata alla lettura.
    Premendo il tasto 'D' si torna alla schermata di controllo.


  2. Il progetto descritto di seguito riguarda un palmare per sistemi digitali che utilizzano il protocollo Lenz Xpressnet© tipico dei sistemi Roco, basato su Arduino Mega.
    L’ idea parte dall’esigenza dei poter avere sottomano il controllo di più loco, ciascuna con la classica manopola dedicata. Tutti i palmari infatti hanno un solo potenziometro o encoder, e per poter controllare più loco occorre sempre scorrere un menù o cambiare indirizzo. Questo palmare invece mette a disposizione tre manopole dedicate e 4 tasti per ogni loco per i controlli essenziali della marcia (cambio di indirizzo, velocità, stop loco, cambio direzione, luci) in maniera diretta, i comandi cioè sono sempre disponibili. E' possibile inoltre leggere le CV del decoder.
    Il progetto prevede come anticipato l’utilizzo un Arduino Mega (ho usato un clone cinese con interfaccia seriale/USB basata sul chip CH340) a causa dell’elevato numero di I/O richiesti e per eventuali espansioni future, una tastiera 4x4, un display LCD a 4 righe e 20 colonne con interfaccia I2C, tre encoder rotativi e un semplice circuito di interfaccia per il bus RS485 per connettersi al bus Xpressnet©.
    Il software è molto semplice e intuitivo, esso utilizza le librerie messe a disposizione di Philipp Gahtow sul suo sito internet http://pgahtow.deal quale rinnovo i ringraziamenti per il supporto. Lo sketch può essere facilmente modificato per aggiungere altre funzioni, inserire altri encoder etc. Le funzioni della libreria di Philipp sono di facile comprensione una volta lette le direttive del protocollo.
    Lo schema dei collegamenti è il seguente:


    Lo schema dell’interfaccia con il busRS485 si basa sul chip MAX485 (o equivalente), anch’ esso molto comune in rete, è indicato nella figura seguente:

    Il circuito fornisce l’alimentazione ad Arduino e al display sfruttando la tensione +12V messa a disposizione dal bus Xpressnet©, i pin TX/RX vanno connessi all’ interfaccia seriale 1 di Arduino, il pin EN che abilita/disabilita la trasmissione al pin 25.
    Le connessioni con la tastiera e con gli encoder sono indicate all’ interno dello sketch. 
    Il codice come anticipato è molto semplice, dopo la parte di inizializzazione, il loop principale prevede ciclicamente le seguenti operazioni:
    I tasti del tastierino 4x4 sono organizzati in modo che ogni colonna numerica è relativa a ciascuna delle tre loco controllate dal palmare, mentre le righe rispettivamente controllano l’indirizzo della loco (prime due righe), la direzione (terza riga) e le luci (quarta riga). Il tasto “A” agisce come Stop di emergenza togliendo tensione ai binari, con il tatìsto "D" si entra in Service Mode per la lettura delle CV:
    Gli encoder regolano la velocità della loco, premendo la manopola a mo’ di pulsante (tutti gli encoder hanno la funzione “push-button”) la velocità passa istantaneamente a 0.

    Allo start-up il display visualizza la scritta di benvenuto e la data/ora della compilazione del file caricato su Arduino, un modo per tener traccia della versione sw caricata. Successivamente vengono visualizzate le info delle loco controllate:


    Per ogni loco sono visualizzate le seguenti info: indirizzo, direzione, stato delle luci e velocità. Sulla parte desta sono indicati gli step attualmente in uso e in basso lo stato di alimentazione dei binari.
    Il palmare utilizza di default la modalità a 28 step, tuttavia allo start-up tenendo premuto il tasto “D” è possibile cambiare gli step, il software infatti visualizza la schermata seguente:


    Agendo sui tasti “A” e “B” si possono scegliere le seguenti modalità:

    0  – 14 step

    1  – 27 step

    2  – 28 step (default)

    3  – 128 step

    Una volta scelto il numero di step con cui operare, premendo il tasto “D” il palmare va nella modalità operativa. La scelta degli step non è memorizzata in EEPROM.
    Il palmare permette anche la lettura delle CV se connesso alle centrali dotate di tale funzione (purtroppo il Lokmaus/Multimaus non forniscono feedback). Premendo il tasto “D” si entra in Service Mode:


    Agendo sul encoder 1, si potrà scegliere la CV da leggere e premendo la manopola a mo’ di pulsante verrà visualizzato il valore della CV:
    Una volta terminate le operazioni di lettura, premendo il tasto “D” si ritorna alla modalità operativa.
    Ecco l' elenco dei componenti:
    -  Arduino Mega (per il prototipo è stato usato un clone)
    -  Display LCD 20x4 con interfaccia I2C come questo
    -  Keypad 4x4  link
    -  Encoder rotativo KY-040 link

    Per l 'interfaccia con il bus Xpressnet, i componenti da assemblare sono i seguenti:
    - Connettore RJ-12
    - circuito integratro MAX485 o equivamente
    - circuito integrato LM7805  (case TO220)
    - 2 condensatori 100uF 25V
    - 1 diodo 1N4004 o equivalente

    Queste alcune foto della realizzazione del prototipo:




    Aggiornamento 19/03/2019

    Antonino ha aggiornato il suo palmare con una comodissima funzione per la scrittura delle CV, trasformando di fatto il palamre TriLok in una completa stazione DCC! Cliccate sul link qui sotto per leggere il post corrispondente.






    A presto!
      
  3. Tempo fa un editore di nome DelPrado mise ion commercio una collana chiamata "Locomotive del mondo", composta da 100 locomotive statiche in scala N 1:160. Tra le locomtive proposte spiccano quelle italiane, tra le quali troviamo anche la E402B in livrea di origine, la cassa devo dire appare ben fatta a parte i pantografi che delgi ATR90 FS hanno ben poco, e sono terribilmente grossolani.

    L'idea è quella di fornire una degna motorizzazione a questa loco per poterla finalmente vederla sfrecciare nel mio plastico.

    Innanzitutto occorre procurarsi la cassa DePrado reperibile sul mercato dell'usato, reperibile anche all'estero.


    Aperta la confezione ho rimosso la loco dalla base espositiva mediante una vitina sul fondo, quindi ho separato la cassa dal telaio folle, sempre mediante due viti poste sul fondo. A questo punto non rimane che fresare completamente tutto l'interno mediante un minitrapano ed una fresetta, per fare in modo che il telaio alloggi perfettamente nella cassa.

    Come motorizzazione ho scelto una BR120 su base Minitrix, ma va beniussimo anche Fleishmann. Lavorando di fresa e lima per rastremare le estremità il telaio calza perfettamente nella cassa.
    Dal telaio folle Delprado vanno recuperate le fiancate dei carrelli avendo cura di non romperle nella rimozione.




    Dal telaio motorizzato separare i due carrelli, con l'occasione procedere anche ad una accurata pulizia. L'obbiettivo è quello di rimuovere le fiancate originali e predisporre la sede per l'incollaggio delle fiancate precedentemente rimosse.


    fare attenzione a posizionare correttamente le boccole, anche se al vero il carrello ha un passo leggermente diverso dall'originale ma alla vista non si nota. Prestate attenzione perchè le fiancate DelPrado vanno accorciate in quanto altrimenti interferiscono con la cassa causando spiacevoli deragliamenti dovuti ad una non corretta rotazione del carrello stesso.

    Visto il buon dettaglio ho preferito lasciare la cassa in livrea di origine così come esce dalla confezione, tuttavia i pantografi sono veramente inguardabili, per questo mi sono procurato l'ottimo kit Lineamodelriproducente una coppia di pantografi ATR90, realizzato in fotoincisione di alpacca.

    Il kit si presenta abbastanza semplice ma date le dimensioni ad alcuni potrebbe fare un pò di timore.



    Per prima cosa occorre saldare la vite dii fissaggio M1 sulla base. a seguire si assemblano i bracci inferiori e superiori del pantografo, quindi la base porta-strisciante.


     



    a questo punto il pantografo va dipinto in Rosso Segnale ed applicato lo strisciante non verniciato.






    Ed ecco il modello finito pronto per essere utilizzato, avanti con i commenti!

    Modello terminato con pantografi Lineamodel

    Fari accesi sui binari prima di rimuovere i pantografi originali





  4. Piccolo video dimostrativo di una breve sessione di circolazione in modalità automatica con Rocrail, con gestione dei segnali luminosi e degli itinerari


  5. Arduino come si sa è una piattaforma estremamente diffusa, ha il vantaggio di aver costi molto contenuti e si presta ad applicazioni più disparate; ovviamente non mancano quelle che coinvolgono il modellismo ferroviario. Ho trovato in rete un’ interessante applicazione proposta da un utente del forum RocRail per realizzare un modulo feedback veramente a basso costo e dalla minima complessità hardware e software.
    L’ idea parte dal fatto che RocRail accetta una gran quantità di centrali e fra queste c’ è anche la centrale Marklin CS2. Questa centrale ha fra le interfacce gestite anche quella dei sensori S88 e può essere connessa sia in seriale che in ethernet al PC. Nel progetto proposto, Arduino emula questa centrale connessa in seriale leggendo lo stato dei pin e inviandolo a RocRail come se fosse, appunto, una CS2. Più difficile a dirsi che a farsi 😉
    Arduino mette a disposizione circa 19 pin, sufficienti per la gestione di una media stazione nascosta ma potrebbero essere pochi per un plastico casalingo, soprattutto se concentrati in un solo punto. Per questo ho modificato il codice trovato in rete in modo da poter prevedere schede satellite collegate tramite il bus I2C, così da espandere la capacità in termini di lettura di pin. Queste schedine sono basate sul chip PCF8574, hanno 8 pin I/O e un costo che va dagli 80€cent a 1,5€. Alla fine si hanno a disposizione 14 pin di I/O direttamente sulla scheda Arduino e il bus I2C per la connessione di schedine esterne.
    Lo schema di principio è il seguente:



    Per l’esperimento ho utilizzato Arduino Nano, ovviamente la soluzione si adatta anche alle altre versioni. Come schedina satellite ho provato quella in foto che ha il vantaggio di avere i connettori I2C “entra/esci” facilitando quindi il cablaggio, ma ce ne sono altre che possono essere utilizzate, come ad esempio quelle che pilotano i display LCD.
    Ogni schedina ha tre jumper per scegliere l’ indirizzo che dovrà presentare sul bus I2C, ovviamente in caso di più schede queste dovranno avere indirizzi differenti.
    Occorre fare attenzione alla versione del chip, gli indirizzi sono differenti a seconda che si tratti di PCF8574 e PCF8574A. Le tabelle seguenti indicano gli indirizzi per i le due versioni.



    Sul numero massimo di schede ci sono alcune considerazioni elettriche da fare: il bus I2C è nato per comunicazioni all’ interno dello stesso sistema, spesso sulla stessa scheda, ma comunque per distanze ravvicinate. Infatti i driver normalmente hanno una capacità di 400pf che equivalgono a qualche metro di cavo, quindi all’ interno di 2-3 metri di cavo possiamo avere due tre schede senza problemi. Oltre è necessario che il bus sia “potenziato” con un vero e proprio booster capace di raggiungere qualche decina di metri. Allo studio ci sono soluzioni; in figura la connessione fisica del bus I2C:
     In foto le varie board connesse usate per lo sviluppo del codice. Si vede Arduino Nano montato su una scheda con terminal boards. Arduino e schede satellite sono connesse ad un rilevatore di corrente a 4 ingressi.

    Il codice è composto da una parte iniziale dove sono dichiarate le variabili di ambiente, poi la parte eseguibile dove inizialmente (setup) il programma cerca sul bus I2C se ci sono schede, una volta memorizzati gli indirizzi viene inviato lo stato iniziale dei pin a RocRail. A questo punto ciclicamente viene letto lo stato dei pin e confrontato con lo stato precedente, se questo è cambiato (dopo aver campionato tre volte lo stato a distanza di 10 mS) viene inviato un messaggio a RocRail. Il software ha poi un periodo di debouncing settabile tramite la variabile “interval” (1sec) per evitare sfarfallamenti.
    Non c’ è bisogno di installare librerie esterne o di terze parti (a parte la libreria Wired per gestire I2C che fa parte dell’ambiente standard dell’ IDE), il codice è veramente semplice e parla da sé.
    La scheda di default invia i dati con indirizzo bus 1 (modificabile cambiando il valore della variabile bus_addr), i pin residenti su Arduino sono numerati da 1 a 14 secondo la tabella seguente.

    Address
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Arduino Pin
    A1
     A2
     A3
    D12
    D9
    D8
    D7
    D6
    D5
    D4
    D3
    D2
    D10
    D11
    La sequenza dei pin può essere cambiata a piacimento variando l’ ordine dei pin nel codice alla riga:
    int sense[num_sensors] = {A1, A2, A3, 12, 9, 8, 7, 6, 5, 4, 3, 2, 10, 11};
    A seguire saranno conteggiati i pin delle schede satellite, se presenti: se ad esempio ci sono 2 schede connesse, scheda A con indirizzo 57 (dec) e scheda B con indirizzo 60, ai pin della scheda A verranno assegnati indirizzi da 15 a22 e quelli della scheda B da 23 a 30. Lo stato dei pin è normalmente alto (+5V).
    La connessione ad un sensore esterno, ad esempio un rivelatore di corrente, è semplice:

    Allo stesso modo avviene la connessione ai pin delle schede satellite.
    Il messaggio inviato a RocRail è conforme al protocollo seguito dalla centrale Marklin CS2 consultabile qui, esso è composto da 13 bytes ed ha la seguente struttura:
    Prio
    Command
    Resp.
    Hash
    DLC
    Byte0
    Byte 1
    Byte 2
    Byte 3
    Byte 4
    Byte 5
    Byte 6
    Byte 7
    2+2bit
    8 bit
    1 bit
    16 bit
    4 bit
    8 bit
    8 bit
    8 bit
    8 bit
    8 bit
    8 bit
    8 bit
    8 bit
    tx_msg0/tx_msg1
    tx_msg2
    tx_msg3
    tx_msg4
    tx_msg5
    tx_msg6
    tx_msg7
    tx_msg8
    tx_msg9
    tx_msg10
    tx_msg11
    tx_msg12





    num bytes

    bus number

    num_sensor

    sens_value


    0
    35

    59
    121
    8
    0
    1
    0
    X
    0
    X
    0
    0

    La configurazione della centrale in RocRail è anch’ essa semplice. Dalla schermata  in cui si configura la centrale:




    Occorre aggiungere una centrale del tipo MCS2 la cui configurazione è indicata in figura:


    Ricordate di selezionare il tipo di comunicazione “Serial” e baudrate 500000. Nel campo “Interface ID” va indicato un nome che poi va riferito nella configurazione dei sensori, è importante inoltre indicare correttamente la porta di comunicazione “Device” (COM per Windows, /dev/ttyXXX per i sistemi Linux) cui è connesso Arduino.

    Questo il link per scaricare l'ultima release dello sketch che include queste nuove funzioni:
    - risposta alla richiesta dello stato dei sensori "start of the day"
    - il Led 13 acceso indica la corretta connessione di schede satelliti I2C

    A presto!


  6. La flessibilità del sistema di sviluppo di Arduino ormai è arcinota, anche in campo fermodellistico con l'avvento dei sistemi digitali, le  possibilià date da queste piccole schedine sono pressochè infinite. I miei esperimenti questa volta si sono rivolti verso il bus Loconet, ormai uno standard defacto per l'interconnessione di sistemi per la gestione di un plastico di medio/grandi dimensioni.

    Il bus Loconet

    Il bus Loconet fu sviluppato inizialmente da Digitrax. Loconet è un'architettura di rete basata su CSMA/CD (Carrier Sense Multiple Access/Collision Detect), similare per funzionamento fisico alla classica Ethernet.
    Carrier Sense significa che ogni nodo connesso alla rete riesce a leggere il pacchetto in transito sulla rete stessa, ogni nodo riesce a stabilire se la rete è occupata o meno. Multiple access significa che ogni nodo può generare o ricevere pacchetti, quindi niente polling o master/slave.
    Collision Detect significa che quando due nodi tentano di strasmettere allo stesso tempo creando una collisione possono risolvere la situazione in autonomia ritrasmettendo i pacchetti.
    Loconet è ottimizzata per avere meno di una collisione ogni 300 messaggi al 100% di sfruttamento della rete, meno di quanto Ethernet permetta.
    I collegamenti al bus avvengono mediante spine e cavi RJ12  medante lo schema sottostante


    Come si può osservare i segnali trasportati dal cavo sono ridondanti e speculari. I segnali di Rail Sync trasportano il segnale DCC ognuno in opposizione di fase all'altro. per eventuali dispositivi che lo necessitassero, ad esempio i booster.In questo caso si parla di bus Loconet-B Se questo segnale non è necesario su questi pin e' possibile trasportare una tensione di alimentazione per alimentare i dispositivi, tipicamente 12VDC. In questo caso si parla di Loconet-T.


    Arduino e Loconet

    In nostro soccorso vengono in soccorso di nuovo le librerie MRWWA scaricabili e consultabili all'indirizzo  https://github.com/mrrwa, le quali contengono un intero framework per gestire al meglio la rete Loconet. L'idea è quella di realizzare una scheda ad 8 ingressi da utilizzare come feedback o altro da collegare al bus. La scelta è caduta su Arduino Nano, data la compattezza e la relativa economicità. Per maggiori informazioni consultare la scheda a questo indirizzo. https://www.arduino.cc/en/Main/ArduinoBoardNano. Volutamente questa versione non contiene nessun tipo di sensore, che dovrà essere implementato esternamente. In futuro sicuramente prevederò però una scheda con già i sensori integrati.

    Innanzitutto occorre realizzare una piccola interfaccia per poter permettere al nostro Arduino di leggere e trasmettere i segnali disponibili su bus Loconet. Di seguito lo schema elettrico della scheda.
    Da notare la presenza di un jumper per selezionare l'alimentazione da bus Loconet oppure esterna mediante i morsetti. In questo caso si raccomanda di utilizzare tensioni di alimentazione compatibili con la scheda Arduino Micro quindi da 7 a 12V DC.

    AGGIORNAMENTO:

    Ho realizzato una nuova board con una sezione di alimentazione stabilizzata per l'alimentazione d Arduino in modo da non stressare in modo anomalo il suo stabilizzatore interno.



    Di seguito il PCB, come si può notare abbastanza compatto.


    Una volta terminato il montaggio questo dovrebbe essere il risultato finale.

    ATTENZIONE 

    Giustamente mi è stato fatto notare che la il NANO in foto è inserito al contrario di come dovrebbe essere. In effetti la foto è riferita alla primissima versione del PCB quando venivano usati gli ingressi analogici. Appena possibile verrà pubblicata la foto corretta. In ogni caso se avete la board con revisione 2.0 o superiore LA PORTA USB DEL NANO DEVE ESSERE ORIENTATA VERSO IL BORDO DEL PCB.


    Si ringrazia per il testing e per la realizzazione del prototipo di interfaccia Pietro Russo e Alessandro B.
    Si ringrazia inoltre Atonino (Antogar) per lo sviluppo dello Sketch da caricare su Arduino.

    Di seguito i link per scaricare i files:

    Schema elettrico  formato EAGLE  Download VERSIONE 4.0
    PCB  formato EAGLE Download VERSIONE 4.0

    Sketch da caricare in Arduino  Download VERSIONE 4.0

    Un breve video per dimostrare il funzionamento sia su PC che collegata ad una Intellibox.


    A presto!






  7. 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.





  8. 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 


    \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!
  9. 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.


    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-bcm2708anteponendo 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 moduloi2c_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 contienei2c-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 1per le RasPi rev 2
    i2cdetect -y 0per le RasPi rev 1

    Dovremmo vedere un output simile a questo, dove viene visualizzato l'indirizzo della periferica I2C.



    Le librerie Python di supporto 


    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

    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!



  10. Ci siamo lasciati con una Raspberry Pi pronta all'utilizzo con Raspbian e Rocrail Server installati.

    La directory di installazione di Rocrail è /opt/rocrail.Alla prima installazione noterete che non è presente nessun plan.xml e nemmeno il file rocrail.ini. Questi file vengono creati in automatico all'avvio se non vengono trovati, quindi lanciamo il server per farglieli creare:


    cd /opt/rocrail 
    sudo ./rocrail

    Dovrebbe apparire l'output standard (notate anche il numero di versione e la data di build). Per terminare il server premere CTRL+C. Ricontrollate la directory e troverete i file mancanti.
    Come ogni server nel mondo Linux è preferibile lanciare l'applicazione come demone ovvero come esecuzione on background vediamo come procedere:

    Innanzitutto copiamo il demone nella cartella di systema di Linux (attenzione alle maiuscole e minuscole)

    sudo cp /home/pi/rrsources/sources/rocrail/package/rocraild /etc/init.d/
    sudo cp /home/pi/rrsources/sources/rocrail/package/rocraild.sh /opt/rocrail/

    Quindi rendiamo eseguibili i file sopra citati ed aggiorniamo la lista dei demoni da avviare al boot.


    sudo su
    chmod 755 /etc/init.d/rocraild
    chmod 755 /opt/rocrail/rocraild.sh
    update-rc.d rocraild defaults

    Se abbiamo già una cartella con il file di progetto già pronto possiamo impostare la directory di lavoro nel file "rocraild" appena copiato, basta modificare la variabile WORKING_DIR all'interno del file stesso. Il demone può essere avviato con il comando

    sudo service rocraild start

    Sostituire start con stop per fermare il demone. A questo punto avete il vostro sistema operativo. Per le configurazioni del server potrete utilizzare Rocview in esecuzione su un altro PC per accedere a in modalità grafica al file di configurazione.

    E' tutto!

Supporta le attività della nostra associazione con una piccola donazione.



I cookie rendono più facile per noi fornirti i nostri servizi. Con l'utilizzo dei nostri servizi ci autorizzi a utilizzare i cookie.
Maggiori informazioni Ok