domenica 1 dicembre 2013

Decoder spec per RocPro

Per chi utilizza RocPro, l'ottimo addon di RocRail che permette di programmare tutti i decoder DCC in modo grafico, spero di fare cosa gradita rendendo disponibili i file xml relativo ai decoder Khuen N045 e Khuen N025, due ottimi decoder del noto produttore tedesco.
Ricordo che per attivare RocPro è necessario effettuare una donazione di 10€ agli autori che dà diritto anche di utilizzare le connessioni con AndRoc o iRoc per interfacciare RocRail con i Tablet o cellulari Android/iOS




Per utilizzare i file non bisogna far altro che posizionarli nella cartella decspecs che si trova (per la versione Windows) nella cartella Documenti\Rocrail dell'utente corrente.
Il file può essere tuttavia copiato in qualsiasi cartella e aperto mediante il pulsante "Open"
Insieme ai decspecs allego anche il link per lo scaricamento delle immagini del decoder già in formato corretto.


Immagini 




domenica 13 ottobre 2013

Gestire un cappio di ritorno in digitale con con Arduino (parte I)

Quando per esigenze di scena o semplicemente di percorso nel nostro tracciato ferroviario si viene a creare un cappio di ritorno, il nostro sistema digitale rileverà necessariamente un corto circuito quano un rotabile lo impegnerà.
Questo succede perchè una fase (in digitale non si ragiona in poitivo-negativo) del segnale DCC vene in contatto con l'altra quando il rotabile raggiunge il deviatoio che crea il loop.

Per poter gestire questo evento straordinario bisogna innanzitutto a livello di cablaggio isolare completamente la tratta del loop dal deviatoio mediante scarpette isolanti. L'azione da svolgere è semplicemente quella di invertire le due fasi tra loro quando il rotabile è completamente nel tratto sezionato.

Esistono numerosi dispositivi che svolgono questa funzione automaticamente il più famoso è il Lenz LK-200.

In questo articolo tuttavia illustrerò un metodo per gestire i loop in maniera totalmente automatizzata mediante Arduino.

Le principali funzionalità del sistema sono:


  • Comando dello scambio motorizzato mediante servocomando.
  • Rilevazione dell'occupazione del loop mediante barriera IR
  • Possibilità di utilizzare pulsanti esterni per movimentare il deviatoio.
  • Possibilità di utilizzare il DCC per movimentare il deviatoio.
Il principio di funzionamento è semplicissimo. Quando la barriera IR viene interrotta (quindi il treno stà ancora transitando) il sistema attenda che la barriera venga liberata (quindi il treno è completamente nel loop). Dopo un ritardo impostabile il sistema predispone il deviatoio per l'uscita al loop e commuta un relè che inverte le fasi del segnale DCC.
Mediante pulsanti esterni o mediante un comando DCC è quindi possibile scegliere il verso di percorrenza nel loop.

Ecco un piccolo video per illustrare il funzionamento del sistema






lunedì 17 giugno 2013

Ancora Arduino e Xpressnet

Nel precedente post ho tentato di interfacciare Arduino con RocRail per poter utilizzare gli ingressi come ingressi di retroazione.
Si sa, l'appetito vien mangiando, quindi ho deciso di effettuare alcune prove per permettere ad Arduino di dialogare direttamente con una command station dotata di interfaccia Xpressnet. Nel mio caso la  scelta è ricaduta sul Multimaus Roco dotato di booster 10764.

Una piccola considerazione sui layer più bassi del protocollo Xpressnet. Innanzitutto il layer fisico è costituito dallo standard EIA RS485, in modalità half duplex e configurazione master-slave, quindi la trasmissione può avvenire in modo bidirezionale da e verso il master ma non contemporanamente.

Il master è costituito dal multimaus Roco collegato alla presa "master" del booster e può esserne presente uno solo in tutta la rete. Gli slave possono essere fino a 31 e collegati in parallelo sulla presa Slave.

Dal sito Lenz è possibile scaricare la piedinatura del cavo di collegamento tra i nodi, tipicamente un RJ11 per gli slave (6P/4C) a 4poli, AeB del segnale RS485 e alimenatzione 12Vcc, oppure un RJ12 per il master (6P/6C) in quanto i due pin in più servono per trasportare il segnale DCC verso il booster.


Fonte: specifiche protocollo scaricabile dal sito LENZ

Passando al layer successivo si nota che Xpressnet adotta una comunicazione a pacchetti con:

1 bit di start - 9bit di dati - 1 bit di stop - nessuna parità

con una velocità di 62,5 Kbps.

Questo è un problema con arduino e poi vedremo il perchè...


HARDWARE


Per quanto riguarda l'hardware ho realizzato il prototipo con un Arduino MEGA, in quanto innanzitutto dotato di  3 UART interne, a differenza degli altri Arduini (UNO, NANO) che ne hanno una sola, quindi è possibile sfruttare la seriale collegata al convertitore di serie come monitor di debug ed utilizzare la prima seriale per collegarci il convertitore RS232-RS485.

L'inrefaccia si realizza mediante un IC MAX485 oppure il più economico SN75176 terminando le linee A e B della RS485 con un resistore da 120Ohm e ricordandosi di collegare il negativo del bus al negativo di Arduino. (ATTENZIONE ALLA POLARITA' sulla spina RJ)




Come dicevo prima la trasmissione con Xpressnet prevede 8 bit di dati, mentre nel core di Arduino è prevista solo una trasmissione ad 8 bit. Per modificare questa limitazione ho utilizzato una modifica al core come descritto nel forum di Arduino e scaricabile da questo link
Una volta estratti i due file hardwareserial.cpp e hardwareserial.h vanno sostituti ai file omonimi in

Program%Files\Arduino\hardware\arduino\cores\arduino

A questo punto è necessario scaricare il codice sorgente dentro Aarduino e il gioco è fatto.

CLICCA  QUI PER SCARICARE IL CODICE SORGENTE
(attualmente in fase beta appena pronto lo renderò disponibile)

Nel video seguente è possibile vedere come si riesca ad intergire con un Multimaus Roco visualizzando ed attiavndo lo stop di emergenza da tutti i dispositivi e ad attivare un deviatoio mediante due pulsanti su Arduino.


Si ringrazia Nicolas Zin per lo scheletro della struttura di comunicazione Xpressnet visionabile e scaricabile dal suo repository presso Github https://github.com/nzin/xpressnet_arduino

venerdì 31 maggio 2013

Prova armamento



Sistemata l'elettronica ho iniziato le prime prove di percorribilità del plastico con convogli completi.
Non ho notato nessun particolare problema all'armamento e al movimento dei deviatoi.
Il test è stato svolto con una E444R Mehano in livrea XMPR titolare di una teoria di vetture X in grigio ardesia di 1 e seconda classe tutte Rivarossi+ vagone letto LIMA.
Buona visione.




martedì 21 maggio 2013

Il protocollo Xpressnet


Il protocollo Xpressnet fu inventato da Lenz per connettere tra loro dispositivi di gestione quali Command Station, palmari, booster moduli feedback ecc. ecc. e si basa sullo standard RS485.
Il protocollo è di pubblico dominio ed è liberamente scaricabile dal seguente link .www.lenzusa.com/1newsite1/Manuals/xpressnet.pdf‎

Visto che Arduino monta una seriale perchè non sfruttarla per dialogare con un software di gestione plastico per veicolare i segnali di feedback  (ad assobimento, a pedale oppure a reed)?

Presto fatto, con poche righe di codice e studiando attentamente il protocollo si riesce a implementare abbastanza facilmente una emulazione del gateway LI 101F Lenz, il quale monitorando costantemente gli ingressi che, nel caso di una board Arduino Uno sono 12 escludendo i due pin 0 e 1 per la seriale, riesce a comunicare a RocRail lo stato dei sensori.

RocRail mappa i sensori a partire dal 512, in quanto da 0 a 511 sono riservati ai feedback posizionali per i deviatoi.

Naturalmente 12 ingressi sono pochini, ma già con una board Mega si hanno a disposizione 54 input di Feedback, oppure utilizzando i modulini di espansione di arriva ad una configurazione performante.






giovedì 2 maggio 2013

Modulo 8 uscite per accessori elettromagnetici

Il modulo ad 8 uscite per articoli elettromagnetici si basa sempre sul chip PCF8574 utilizzato in questo caso per pilotare uno stadio di potenza formato da un transistor TIP in configurazione Darlington.
Di seguito lo schema elettrico. Per chi ne avesse bisogno sono disponibili i file Eagle anche se si tratta di una versione beta, quando avrò terminato il testing i files verranno rilasciati con licenza GPL.

Lo schema è abbastanza semplice e si può notare come integri già una CDU (Capcitor Discharge Unit) con funzione anche di protezione per le bobine dei motori


La scheda ha tre morsettiere, la prima serve naturalmente per collegare i motori, la seconda serve per il collegamento del bus, e la terza per il collegamento dell'alimentazione di attivazione dei motori.

Per dimensionare la resistenza di base Rb ho ipotizzato una corrente di collettore Ic pari a 4A, quindi ricavo il valore di Ib tramite la formula:

Ib=3*Ic/Hfe

Il TIP121 ha un  Hfe pari a 1000 quindi:

Ib=3*4/1000=0,012 A

Per calcolare Rb

Rb=(Vdd-Vbe)/Ib

Essendo il transistor in configurazione Darlington la caduta di tensione tra Base ed emettitore Vbe è pari a circa 1,4V quindi:

Rb=(5-1,4)/0,012=360 Ohm



Il PCB è sviluppato a singola faccia per semplificare la realizzazione e presenta gli inevitabili ponticelli.

Lato rame

Lato componenti


La realizzazione non presenta difficoltà particolari, montate i componenti in ordine di altezza per meglio maneggiare la scheda. Questo è il risultato finale



sabato 9 marzo 2013

Interfaccia DCC per Arduino

Come primo passo per utilizzare Arduino con il DCC si rende necessaria la realizzazione di uno shield di interfaccia per poter permettere ad Arduino di interpretare correttamente i pacchetti provenienti dal bus DCC.

La cosa è abbastanza semplice e il tutto si riduce nello schema molto semplice riportato qui sotto.

Si può notare come il bus DCC sia disaccoppiato da Arduino mediante un photocoupler il quale trasferisce il segnale sul pin 2 mediante due resistori di pull-up.

Questa interfaccia presenta anche una morsettiera a 5 poli per il collegamento dei moduli I/O mediante il DAC-BUS.

I tre jumper inseriscono o meno i resistori di bilanciamento del bus, da inserire qualora sia presente più di un modulo di espansione o in presenza di problemi di comunicazione

Per lo sviluppo del PCB ho scelto la soluzione "shield", ovverosia un fattore di forma standard con i connettori a pettine per innestare la scheda direttamente sui connettori di Arduino.

Ecco il PCB a doppia faccia

LATO SALDATURA - BOTTOM
LATO COMPONENTI - TOP
SERIGRAFIA



Il montaggio della scheda non presenta nessun tipo di difficoltà trattandosi di componenti semplici e ben distanziati tra loro. Vi consiglio prima di procedere con la saldatura di prepararvi tutti i componenti

Procedere prima con i ponticelli di passaggio tra le due facce, poi i componenti passivi (diodi - resistenze), qini lo zoccolo per l'integrato, i pettini e per ultimi i componenti più voluminosi come i morestti e il portafusibile.
Alla fine del montaggio questo è il risultato:



Qui la scheda accoppiata correttamente con Arduino. Fate attenzione al morsetto di ingresso del segnale DCC, potrebbe interferire con lo schermo della porta USB di Arduino, vi consiglio di interporre un pezzo di nastro isolante.



Per testarne il funzionamento, all'interno del pacchetto MRWWA, (ne ho parlato nell'articolo precedente) è contenuto uno sketch chiamato DCC Tester. Caricatelo in Arduino, aprite il monitor seriale e se il risultato è quello della foto siete sulla buona strada! Quelli che vedete sono i pacchetti DCC riconosciuti da Arduino.



Se volete il PDF del PCB, lista componenti e altre informazioni scrivetemi pure a stefagnani at gmail.com (sostituite at con @) sarò lieto di rispondervi!

sabato 2 marzo 2013

DCC e Arduino

Parte del fascino che ha il fermodellismo è indubbiamento legato ,oltre che al collezionismo, anche alla realizzazione e gestione del plastico. Buona parte della costruzione di un plastico è dedicata alla realizzazione dell'impianto elettrico.

Il digitale ha poi aperto nuovi orizzonti e prospettive alla gestione dell'esercizio ferroviario nei nostri "micromondi".

Esiste un progetto in rete chiamato MRWWA (Model Railroading With Arduino) che si prefigge di fornire una sorta di Framework per lo sviluppo di applicazioni basate sul protocollo di comunicazione DCC, quindi contiene tutte quelle funzioni necessarie per gestire al meglio le informazioni provenienti dal bus DCC.

Scheda Arduino UNO
 
Il punto di partenza che vorrei realizzare è semplicemente adattare una scheda Arduino che funga da decoder DCC per pilotare accessori elettromagnetici quali motori per deviatoi, relè ausiliari ecc. ecc.
Non mi addentro per ora nel comando dei rotabili mediante questo sistema per una serie di motivazioni, primo fra tutti è che ci sono già dispositivi che svolgono questa funzione egregiamente. Tuttavia è vero che ci sono in commercio anche decoder per accessori ad un costo ancora accettabile ovvero circa 35€ per comandare 4 deviatoi.

Allora quale è il senso di questo progetto?

Sostanzialmente la possbilità di gestire numerosi uscite per pilotare qualsiasi cosa dal bus DCC e la possibilità di gestire ingressi e di creare logiche programmate per interagire con le uscite.
Questo apre nuovi orizzonti per le automazioni che altrimenti sarebbero difficili da realizzare. Di seguito elenco i punti di forza di questo progetto


  • Modularità: gli I/O saranno di tipo distribuito, collegati tra loro da un bus di segnale. Il master sarà una scheds Arduino opportunamente programmata.
  • Economia: stimo un costo di circa 1 euro per uscita e circa 0,5€ per ingresso più il costo della scheda Arduino (circa 20€)
  • Versatilità: Possibilità di realizzare logiche di funzionamento anche complesse per far interagire ingressi con uscite, ad esempio una versatile gestione degli itinerari (anche con consensi esterni come nella realtà) senza ricorrere a tediose e chiuse matrici di diodi hardware. 
  • Indirizzamento: raccolgo uno stato per dirottarlo in più modi, ad esempio aquisisco lo stato di un deviatoio e gestisco più uscite indirizzate ad un sinottico, ad un modulo S88 per la retroazione, a relè per la polarizzazione del cuore ecc. ecc., il tutto con un unico contatto proveniente dal deviatoio.
Insomma le potenzialità ci sono e il progetto è già partito, buona parte del software è già stato sviluppato, sono in cantiere la realizzazione dei primi moduli per il comando di accessori elettromagnetici fino a 4A, un modulo ingressi ed un modulo pilotaggio per LED.

Modulo 8 Ingressi
Modulo 8 uscite per accessori elettromagnetici


A presto!