Buongiorno a tutti,
All'ultimo Arluno ho visto parecchi interessati a questa soluzione che ho portato per fare qualche lavoretto. Bene, complice l'isolamento per il coronavirus e una giornata libera... ho deciso di scrivere due righe per condividere con gli eventuali interessati questa soluzione.
Innanzi tutto, parto con la pagina ufficiale del progetto, del quale non ho alcun diritto nè tantomeno ho contribuito allo sviluppo. Tutti i meriti e i crediti vanno a Gregg E. Berman:
https://github.com/DccPlusPlus/BaseStat ... -Plus-PlusFatta questa doverosa premessa.... cos'è DCC++ ? E' semplicemente una centralina DCC, la quale può essere controllata da innumerevoli terminali: un pc, uno smartphone, un controller artigianale, collegata via usb, ethernet o wifi...
Inoltre può essere espanso per supportare S88, Loconet, e altri tipi di interfaccia si possono aggiungere booster, ecc ecc... ma io mi sono fermato al solo movimento dei treni comandato tramite smartphone (o pc). Riguardo questo punto, tutto dipende dal lavoro fatto (e in corso) da parte di vari interessati/informatici/smanettoni sul web.
Una alternativa potrebbe essere un clone della Z21 che si trova qui:
http://pgahtow.de/wiki/index.php?title=HauptseiteChe, come si vede, supporta nativamente vari bus di comunicazione, ma necessita di circuiteria aggiuntiva. Questa non l'ho mai provata.
Partiamo dalle basi. A livello di hardware, servono due cose, entrambe molto economiche:
- Arduino UNO
Allegato:
1217-arduino-uno-smd.jpg [ 109.34 KiB | Osservato 5197 volte ]
- Arduino Motor Shield (basata su L298P)
Allegato:
9094-a000079_front_1_-0-1-1000x667.jpg [ 220.17 KiB | Osservato 5197 volte ]
Entrambe le potete trovare tranquillamente su Amazon... ma se volete risparmiare (e avete un po' di pazienza per la spedizione), potete ordinare dei cloni cinesi equivalenti su aliexpress (o simili) ad una frazione del prezzo. In quest'ultimo caso, ve la cavate con circa 10€ totali.
Quello che rimane da fare, ora è... semplicemente seguire le istruzioni del sito passo passo. Le rifaccio in italiano per chi avesse difficoltà con l'inglese.
- Prima di tutto, va scaricata e installata la IDE di Arduino, ovvero il programma che consente di scrivere programmi (sketch) per Arduino, caricarli su Arduino... insomma, per poter usare questa piattaforma. Ecco il link ufficiale:
https://www.arduino.cc/en/Main/Software- Fatto questo e collegato il nostro Arduino al pc tramite USB, ci servirà uno sketch da caricargli sopra, disponibile sul sito DCC++ su github, linkato a inizio post. E qui casca un (mezzo) asino. Lo sketch originale ha un piccolo bug in cui sono incappato (come altri) che, con alcuni decoder, non permette a questi di entrare in "modalità lettura", rendendo impossibile la lettura delle CV (nessun problema in scrittura o nell'uso). Il bug è stato risolto su un forum americano, attualmente basta sostituire un file. In questi sketch:
https://drive.google.com/open?id=1Lj_a8 ... VX63Y97qmME' già tutto fatto, sono pronti all'uso.
Ora, all'interno del file compresso, navigate in BaseStation-master -> DCCpp-Uno. All'interno di quest'ultima cartella, aprite DCCpp_Uno.ino .
Si aprirà la IDE di arduino insieme allo sketch e a vari altri file (header e sorgenti c++). Non dobbiamo fare nulla con questi file, se non compilarli e inviarli ad Arduino, l'operazione è più semplice di quanto si pensi.
Andate prima di tutto in Strumenti -> Scheda e selezionate Arduino Uno.
Sempre in Strumenti, andate su Porta e selezionate la porta a cui è connesso Arduino (è una porta COM virtuale, solitamente ne visualizza una sola, ed è quella giusta).
Ora andate sul menù Sketch e premete Verifica/Compila. Attendete la fine dell'operazione. Se tutto è andato bene, in basso, sulla barra blu, vi dovrebbe apparire "Compilazione Completata".
Ora, sempre dal menù Sketch, premete su Carica.
Quando ha completato il caricamento, se non si sono verificati errori, Arduino è pronto. Possiamo staccarlo dal pc, per il momento.
Rimane da sistemare la parte hardware. Affinchè tutto funzioni, bisogna fare due collegamenti (o uno solo, dipende se usiamo arduino uno o arduino mega) alla motor shield. Dato che un'immagine vale più di mille parole, vi lascio questo PDF ufficiale:
https://github.com/DccPlusPlus/Document ... ppings.pdfFatti questi collegamenti, collegate la motor shield sopra arduino, facendo attenzione ad infilare correttamente tutti i pin. Questo è il risultato:
Allegato:
IMG_20200317_135304.jpg [ 4.6 MiB | Osservato 5197 volte ]
La porta USB servirà ad alimentare Arduino e alla comunicazione dati tra Arduino e il PC, non c'è altro da dire a riguardo.
La morsettiera (verde nel mio caso), merita una descrizione a parte. C'è in totale spazio per 6 fili.
I primi due a destra, marchiati VIN e GND, servono a collegare un alimentatore esterno, la cui corrente andrà ad alimentare le rotaie e a muovere i nostri treni. Deve essere un alimentatore in corrente continua con un amperaggio decente (consiglio minimo 1A) e una tensione, consiglio, compresa tra 12V e 18V.
Ad alcuni i 18V potranno sembrare eccessivi, ma tenete conto che L298 ha una caduta di tensione pari a circa 2V, che aumenta all'aumentare della corrente che deve erogare. Con i 12V (10V reali, quindi) non ho visto problemi di sorta, ma nei miei test avevo massimo due treni sul tracciato e lo stesso era piuttosto breve. Per sicurezza sceglierei un alimentatore da 15-16V per un setup ""definitivo"".
Io utilizzo questo:
Allegato:
IMG_20200317_135911.jpg [ 4.61 MiB | Osservato 5197 volte ]
Ma sto cercando un buon alimentatore da almeno 15V
Ai due attacchi marchiati con A+ e A- vanno collegati i fili che andranno ai binari di circolazione dei convogli.
Ai due attacchi B+ e B- va collegato il binario di programmazione.
Nel mio piccolo, essendo la piattaforma nata per test, ho collegato i quattro fili ad uno switch a due poli, tramite il quale posso scegliere tra "circolazione" e "programmazione".
Allegato:
IMG_20200317_141117.jpg [ 5.76 MiB | Osservato 5197 volte ]
I fili gialli in foto, vanno ai binari.
Ora, manca la parte software, ovvero "come comando la centralina e i miei treni?"
Bene, il candidato si chiama JMRI, un software gratuito che trovate qui:
https://www.jmri.org/Non sto a scrivere istruzioni dettagliate, dato che ci sono già, con tanto di immagini, qui:
https://www.jmri.org/install/WindowsNew.shtmlAh, richiede Java. Se non lo avete già installato, dovrebbe installarlo lui in automatico.
Ora, collegate la centralina DCC++ tramite USB al pc e collegate l'alimentatore alla motor shield.
Cercate sul vostro pc l'applicazione DecoderPro e avviatela.
Si aprirà una finestrella dalla quale potrete scegliere di creare un nuovo profilo o usare quello già esistente (comunque vuoto). Fate come preferite e cliccate OK.
Allegato:
Screenshot (14)_LI.jpg [ 1.54 MiB | Osservato 5197 volte ]
Partirà una procedura guidata.
- Alla prima schermata, cliccate su Next.
- Alla seconda, scegliete la lingua preferita dal menù a tendina, e cliccate su Next.
- Alla terza... un attimo di calma che è importante. Le scelte da fare per connettere correttamente DCC++ sono:
System manufacturer: DCC++
System connection: DCC++ Serial Port
Allegato:
Screenshot (16).png [ 24.76 KiB | Osservato 5197 volte ]
Dopo aver selezionato DCC++ Serial Port, vi appariranno altre impostazioni. L'unica da modificare sarà "Serial Port". Se tutto è andato bene, vi apparirà, nel menù a tendina, una sola opzione, nel
mio caso COM3 (nel vostro caso, il numero potrebbe essere diverso).
Allegato:
Screenshot (15).png [ 24.39 KiB | Osservato 5197 volte ]
Fatte queste selezioni, cliccate su Next e poi su Finish.
Finalmente si aprirà la schermata principale di DecoderPro:
Allegato:
Screenshot (17)_LI.jpg [ 1.79 MiB | Osservato 5197 volte ]
Nella parte bassa della finestra, vediamo due righe scritte in verde che ho cerchiato in rosso, la conferma che JMRI è collegato alla centrale DCC++
Nella parte superiore, in mezzo, vediamo un tasto di colore giallo con la scritta "Unknown", cerchiato in verde.
Questo è il tasto che serve a dare (o togliere) corrente al plastico.
Premiamolo una volta. Diventerà rosso con la scritta "OFF"
Allegato:
Screenshot (18).png [ 82 KiB | Osservato 5197 volte ]
In questa condizione, ovviamente, il plastico non avrà corrente. Premiamolo un'altra volta.
Allegato:
Screenshot (19).png [ 82.08 KiB | Osservato 5197 volte ]
Il tasto diventerà verde con la scritta "ON" e i quattro led sulla motor shield si accenderanno:
Allegato:
IMG_20200317_143300.jpg [ 4.54 MiB | Osservato 5197 volte ]
Questo significa che c'è corrente sui binari: fino a qui, tutto funziona.
Per togliere corrente, basta premere di nuovo sullo stesso pulsante.
Aggiungere Rotabili DCC.
L'operazione di aggiunta rotabili è semplice e quasi completamente automatica.
- Diamo corrente al sistema e posizioniamo una loco DCC sul binario di programmazione
- Dalla schermata principale di JMRI, clicchiamo sul pulsante "nuova loco", con un + di colore azzurro.
Allegato:
Screenshot (20)_LI.jpg [ 1.79 MiB | Osservato 5197 volte ]
- Si aprirà una nuova schermata denominata "crea nuova loco".
Allegato:
Screenshot (21).png [ 22.14 KiB | Osservato 5197 volte ]
- Selezionate il vostro decoder tra quelli proposti oppure cliccate su "leggi tipo dal decoder" per farlo selezionare in automatico. Il programma leggerà alcune CV e, in base al valore di queste, individuerà il decoder installato o restringerà la scelta. Qui un esempio con una loco equipaggiata con un decoder Zimo Sound
Allegato:
Screenshot (29).png [ 43.31 KiB | Osservato 5197 volte ]
In questo caso, il decoder è quello evidenziato MX658N18 con firmware versione 37 o superiore.
Se il vostro decoder non fosse presente, o se volete un elenco "standard", scegliete la cartella NMRA, all'interno della quale ci sono le definizioni standard delle varie CV, oppure il solo elenco di CV.
- Nella parte destra, dove c'è scritto ID Roster, scriviamo un nome da assegnare alla nostra loco. Può essere uno qualunque, sta a voi. Vi consiglio un qualcosa di riconoscibile.
Allegato:
Screenshot (30).png [ 45.95 KiB | Osservato 5197 volte ]
Qui potete vedere l'indirizzo attuale della loco. Potete anche cambiarlo già da qui, oppure farlo dopo. Facciamolo dopo.
- Cliccate su "Salva" in basso a destra e successivamente su "Apri Programmatore Avanzato". Si aprirà la seguente schermata:
Allegato:
Screenshot (31).png [ 41.1 KiB | Osservato 5197 volte ]
Che merita una spiegazione tutta sua.
Il
Programmatore Avanzato è una finestra in cui potremo leggere e scrivere tutte le CV del nostro decoder. Possiamo farlo "all'antica", ovvero andando nell'elenco delle CV e scrivendo, esempio a caso, il valore di 8 nella CV 4, oppure possiamo sfruttare le maschere preconfezionate per facilitare il compito, basta selezionare la tab (o linguetta, se preferite) adatta in questa schermata.
Partiamo dalla tab in foto poco sopra. Questa è un po' particolare, in quanto non modificherà alcuna CV, bensì serve ad inserire i dati della nostra loco nel database loco di JMRI (chiamato Roster).
Potete immettere i dati che preferite (oppure nessuno, sta a voi).
Passiamo ora dalla tab attuale (chiamata "Voce Roster") a quella successiva, semplicemente cliccandoci sopra, chiamata "Basic".
Allegato:
Screenshot (32).png [ 45.17 KiB | Osservato 5197 volte ]
In questa tab possiamo gestire i dati base del nostro decoder, come l'indirizzo (corto o esteso), la direzione di marcia della loco, gli step di velocità...
Come vedete non c'è traccia del numero di CV relativo a quelle voci. Ci penserà il programma a scrivere il giusto valore nella giusta CV.
Particolare attenzione va posta i valori con sfondo giallo. Il giallo sta a indicare che quelli sono i dati e i valori memorizzati nel database, ma non è detto che siano anche quelli memorizzati nel decoder. Come facciamo ad esserne sicuri? Beh, basta leggerli!
Clicchiamo sul tasto "Leggi pagina completa" in basso. Il software inizierà a leggere varie CV dalla loco per ricavarne i relativi valori. Nella barra di stato in fondo alla finestra si vedranno le CV attualmente in lettura e i relativi valori verranno evidenziati in rosso.
Alla fine della lettura, i valori con lo sfondo giallo avranno sfondo bianco: sono ora i valori reali memorizzati nel decoder.
Proviamo a modificare un valore di una CV, ad esempio l'indirizzo (corto) della loco.
La procedura è semplice: scriviamo il nuovo indirizzo in "indirizzo attivo" e clicchiamo su "Scrivi modifiche sulla pagina".
Questo tasto scrive sul decoder esclusivamente i valori che sono stati modificati sulla pagina/tab, ignorando quelli che non sono stati toccati. Molto pratico in quelle tab che contengono parecchi valori.
Allegato:
Screenshot (33).png [ 46.89 KiB | Osservato 5197 volte ]
Ora la nostra loco ha un nuovo indirizzo.
Tutte le altre pagine/tab hanno un funzionamento identico, basta selezionarle ed esplorarle un po'. Non entrerò nel dettaglio perchè, a parte alcune che sono più o meno standard, le altre variano molto da decoder a decoder. Ricordatevi sempre che i valori a sfondo giallo possono non essere veritieri. Nel caso, cliccate sempre su "Leggi pagina completa".
L'unica pagina/tab su cui voglio spendere qualche parola è la tab chiamata "CV". Questa c'è per ogni decoder ed è semplicemente un elenco di CV con i relativi valori (a sfondo giallo
). Se volete fare modifiche vecchio stile, è la pagina che fa per voi.
Tutto molto bello... ma come si fa a far muovere la loco? Ci siamo quasi!
Allora, andate su File -> Salva per salvare la nostra loco nel database e chiudete questa finestra.
Vi troverete nella finestra principale di JMRI, che visualizza il nostro "Roster" attuale, al momento composto da una sola loco:
Allegato:
Screenshot (37).png [ 36.55 KiB | Osservato 5197 volte ]
Spostiamo la nostra loco su un binario di circolazione e diamo corrente come già sappiamo fare. Selezioniamo con un click la loco dal Roster, dopodichè clicchiamo su "Palmare" (traduzione che lascia il tempo che trova) in basso a destra.
Si aprirà questa finestrella:
Allegato:
Screenshot (38).png [ 35.11 KiB | Osservato 5197 volte ]
Suddivisa in tre pannelli: Pannello trazione a sinistra, pannello funzioni in centro, pannello indirizzi in basso.
Il pannello indirizzi a mio modo di vedere ha poco senso. Si, serve a cambiare indirizzo della loco controllata, ma da pc posso tranquillamente aprire una seconda finestra "palmare" per controllare l'altra loco. Posso aprirne tre, quattro, cinque... Non vedo l'esigenza di cambiare l'indirizzo, ma comunque si può fare: cliccate su "Rilasciare" e selezionate la nuova loco dall'elenco a tendina o scrivendo l'indirizzo e cliccando su imposta.
Gli altri due pannelli sono più interessanti.
Quello a sinistra serve a far muovere la loco. Scegliete una direzione e muovete lo slider. La loco si metterà in movimento.
Potete personalizzarla cliccando con il tasto destro sull'iconcina di java in alto a sinistra del pannello.
Il pannello funzioni... fa quello che immaginate, gestisce le varie funzioni accessorie del decoder.
Due accorgimenti: di default visualizza 16 funzioni (più le luci). Ulteriori funzioni sono accessibili premendo il tasto *
Ogni tasto e il pannello stesso possono essere personalizzati. Cliccate col destro su un tasto per modificare quel particolare tasto (comportamento, nome, immagine, ecc ecc).
Se fate personalizzazioni, ricordate di salvarle nel Roster andando su File -> Salva Palmare Corrente.
Bene, per oggi è tutto. E' davvero tantissima roba, me ne rendo conto, ma la roba da dire era davvero tanta.
In alcuni passaggi sono stato un po' sbrigativo, perdonatemi, ma se dovessi vagare tra le mille impostazioni e personalizzazioni di JMRI, non finirei più. Comunque, se avete dubbi o se avete bisogno di qualche approfondimento, proverò ad accontentarvi (sono tutt'altro che esperto di JMRI, sto imparando ad usarlo per bene anche io=).
Come al solito, spero di aver fatto cosa gradita e utile