creare programma per la gestione di treni digitali

L'angolo degli smanettoni .Discussioni inerenti lo sviluppo di nuovi progetti DCC o l'hack di sistemi commerciali.

Moderatore: Seba55

Messaggio
Autore
snake88m
LocoDigitale
Messaggi: 28
Iscritto il: giovedì 30 ottobre 2008, 21:17

creare programma per la gestione di treni digitali

#1 Messaggio da snake88m »

ciao a tutti sono nuovo del forum e questo è il mio primo post
Premetto che non sono un grandissimo appassionato di treni (anche se un pò mi affascinano), ma un programmatore in cerca di nuovi stimoli.

Quello che vorrei fare è comprare delle locomotive digitali e pilotarle facendogli fare cose diverse una dall'altra. Da quello che ho capito il digitale permette di inviare degli impulsi tramite delle apposite apparecchiature sui binari, questi impulsi verranno poi captati dalle varie locomotive che immagazzinano bit per bit ogni impulso ricevuto e alla fine tramite un decoder fanno fare alla locomotiva l'operazione richiesta (aumentare/diminuire la velocità , accendere le luci, ecc.....).
Da quello che ho capito per inviare gli impulsi sui binari si usano delle apposite apparecchiature, dove io decido con una console con quale locomotiva comunicare e quale operazione fargli fare, a questo punto il segnale digitale viene mischiato con quello analogico della corrente e inviato sui binari.

Quello che vorrei fare io è creare una scheda che dovrà  gestire tutto il plastico. questa scheda sarà  composta da un pic (il bx-24) che programmerò io. Il pic dovrà  comunicare con il computer tramite porta seriale e sul computer sarà  presente un programma (sempre fatto da me) che visualizzerà  lo stato dei treni, la loro posizione (rilevata tramite dei sensori), si potrà  decidere quali luci del plastico accendere,ecc.... Quando io invio un comando dal computer, tramite la porta seriale questo comando verrà  trasmesso al pic. Per amministrare le varie luci e i sensori non credo ci siano grandi problemi, ma la cosa che non riesco a capire (anche perchè in rete non si trovano molte informazioni da questo punto di vista tecnico) è come fare a inviare i segnali digitali sui binari (cioè devono essere inviati su un binario, su tutti e due o altro?), i segnali digitali li posso inviare tranquillamente a 5 volt o è troppo poco?, ma sopratutto la domanda principale è: in che formato devo inviare gli impulsi (cioè quanti bit di controllo ci devono essere all'inizio e alla fine?, da quanti bit deve essere composto l'indirizzo della locomotiva, e quali bit devo inviare per dargli dei comandi come per esempio quello di aumentare la velocità  o di accendere o spegnere le luci?)

Scusate per il messaggio chilometrico, ma prima di comprare tutto il materiale voglio capire se il mio progetto è fattibile o no

grazie in anticipo per le risposte :D

ciao luca

mario54i
PlasticoDigitale
Messaggi: 409
Iscritto il: sabato 18 giugno 2005, 20:23

#2 Messaggio da mario54i »

Certo che e' fattibile, anzi e'gia'stato fatto ed e'disponibile commercialmente, ma per uno che e' capace il divertimento e' farselo.
Le informazioni sui protocolli si trovano su www.nmra.org
I dati non sono sovrapposti all'alimentazione, e' l'alimentazione stessa che porta i dati, o vedendola al contrario, sono i dati che portano l'energia alle macchine.
tienici informati
ciao

Buddace
Site Admin
Messaggi: 16386
Iscritto il: lunedì 2 febbraio 2004, 17:25
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: TMWDCC TBX zDCC Lokmaus2 HornbySelect Arnold Intellibox Claudia_CommandStation
Località: Torino
Contatta:

#3 Messaggio da Buddace »

ciao a tutti sono nuovo del forum e questo è il mio primo post
Premetto che non sono un grandissimo appassionato di treni (anche se un pò mi affascinano), ma un programmatore in cerca di nuovi stimoli.
Un altro :D NOn voglio sminuire le tue intenzioni o minimizzare il tuo entusiasmo....ma periodicamente vengono fuori appasionati con le tue stesse iddee che poi si perdono nei meandri del tempo :D
Quello che vuoi fare è statto fatto sia a livello commerciale come dice mario si a livello DIY anche senza centrale digitale connessa al pc ;)
per il resto vai su www.dccworld.it
Fondatore e amministratore di DCCWorld

http://www.DCCWorld.com - il sito dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.

snake88m
LocoDigitale
Messaggi: 28
Iscritto il: giovedì 30 ottobre 2008, 21:17

#4 Messaggio da snake88m »

mario54i grazie per la risposta, ma sul sito che mi hai linkato www.nmra.org non ho trovato nessuna informazione relativa ai protocolli da usare (ho magari ho fatto una ricerca usando le parole sbagliate) :o

cmq...
Un altro NOn voglio sminuire le tue intenzioni o minimizzare il tuo entusiasmo....ma periodicamente vengono fuori appasionati con le tue stesse iddee che poi si perdono nei meandri del tempo
Quello che vuoi fare è statto fatto sia a livello commerciale come dice mario si a livello DIY anche senza centrale digitale connessa al pc
è vero ... magari hai ragione te che rinuncero se vedrò che il progetto risultera troppo difficile :D, ma come avevo detto prima non sono un appassionato di modellismo ferroviario e tanto per intenderci il mio plastico sarà  composto da qualche asse di legno sovrapposta :D :D, il mio divertimento più che altro consisterà  nel creare un programma sul pc in grafica dinamica (forse usando la DirectX tramite le librerie di XNA) che possa comunicare tramite porta seriale con un pic (in questo caso il bx-24 programmabile in un linguaggio simile al basic) il quale gli invierà  info riguardanti treni e sensori (una cosa che vorrei fare è per esempio dotare ogni stazione di 5 o 6 sensori in modo che il pic possa inviare le info al pc relative alla posizione abbastanza precisa del treno e sul pc simulare l'immagine del treno che entra in stazione e, se ci riuscirò far inviare al pc le info relative alla velocità  di ogni treno e riprodurle a video tramite delle lancette grafiche ... sempre che la cosa non risulti troppo difficile :D )
Quello che intendo dire è che tutto quello che voglio fare sarà  per la maggior parte collegato alla programmazione (di cui sono appassionato da molti anni), o al massimo all'elettronica(che ne so qualcosina a livello digitale, ma non molto di più), quindi se dovessi comprare qualcosa fatto a livello commerciale o da qualcun altro che non usasse neanche il pc non ci troverei assolutamente nulla di interessante. Il fatto che io ho scelto di usare i treni è solo perchè vorrei provare a creare un programma che gestisce qualcosa che si muove (cosa che non ho mai fatto prima d'ora), solo che ora sto cercando di capire se la mia idea è realizzabile.

Cmq i miei dubbi che vorrei capire sono:

- capire quale protocollo usare per inviare i dati ai decoder dei vari treni
- capire se tutti i decoder usano lo stesso protocollo (in modo da sapermi regolare su quali decoder comprare)
- capire quali tensioni devo usare per inviare i dati (cosa che non ho assolutamente capito)

cmq grazie a tutti delle risposte :D

ciao luca

giorgio_italy
PlasticoDigitale
Messaggi: 627
Iscritto il: mercoledì 27 febbraio 2008, 13:40
Scala: N
Ho il plastico: Si
La mia centrale digitale.: Roco Multimaus + XnTcp e Sprog II con JMRI + AutoDispatcher su Mac
Contatta:

Re: creare programma per la gestione di treni digitali

#5 Messaggio da giorgio_italy »

snake88m ha scritto:snip -
Premetto che non sono un grandissimo appassionato di treni (anche se un pò mi affascinano), ma un programmatore in cerca di nuovi stimoli.
- snip
Caro Luca, se sei interessato principalmente alla programmazione, esistono alcuni progetti Open Source a cui puoi collaborare o da cui puoi partire per la tua realizzazione senza dover iniziare da zero.

Quelli di cui sono a conoscenza sono:

JMRI - http://jmri.sourceforge.net/
Sviluppato in Java e pertanto portabile su varie piattaforme. Permette anche l'utilizzo di Jython (versione Java di Python), per aggiungere nuove funzioni/personalizzazioni senza intaccare il sorgente originale. Supporta prodotti DCC di un gran numero di fornitori. Gli sviluppatori sono per lo più statunitensi.

Rocrail - http://wiki.rocrail.net/
Sviluppato in C, gira su Windows e Linux. Supporta sia DCC che Mà¤rklin e provvede un buon grado di automazione. Gli sviluppatori sono per lo più nordeuropei.

SRCP - http://srcpd.sourceforge.net/
Più che di un progetto, si tratta di un protocollo di comunicazione per il quale sono stati realizzati diversi progetti Open Source da sviluppatori per lo più tedeschi.

Per quanto riguarda l'hardware ti consiglio di guardare le realizzazioni del club inglese MERG - http://www.merg.org.uk/ - quelle dello spagnolo Paco - http://www.tinet.org/~fmco/ - nonchè quelle pubblicate proprio su DCCWorld!

ciao
Giorgio

mario54i
PlasticoDigitale
Messaggi: 409
Iscritto il: sabato 18 giugno 2005, 20:23

#6 Messaggio da mario54i »

Gli standard relativi al DCC sono in
http://www.nmra.org/standards/DCC/stand ... CStds.html
ciao

MikyR1100R
PlasticoDigitale
Messaggi: 555
Iscritto il: venerdì 7 settembre 2007, 21:52

#7 Messaggio da MikyR1100R »

Mi allaccio qui :

http://sourceforge.net/project/showfile ... e_id=59374


Cosa devo scaricare per la completa gestione del plastico?e cosa installo per primo?

snake88m
LocoDigitale
Messaggi: 28
Iscritto il: giovedì 30 ottobre 2008, 21:17

#8 Messaggio da snake88m »

grazie mario54i per la risposta :)

ora sto incominciando a capire un pò di più come funziona il protocollo dcc nmra, solo che avrei una domanda da farvi:
quando voglio comunicare con una determinata locomotiva devo inviare sui binari un pacchetto di impulsi come segue:

111111111111 0 0AAAAAAA 0 01DCSSSS 0 EEEEEEEE 1

dove:
111111111111 = preambolo,
0 = bit di start
0AAAAAAA = indirizzo del decoder della locomotiva con cui voglio comunicare
0 = bit separatore
01DCSSSS = istruzioni sull'operazione che voglio far fare alla locomotiva
0 = bit separatore
EEEEEEEE = byte relativo all'errore (non ho ancora guardato come funziona)
1 = bit di stop

la mia domanda è relativa al byte delle operazioni da far fare alla locomotiva, ovvero il 01DCSSSS, infatti stando a questo documento preso dal sito nella nmra.org i 4 bit siglati come "SSSS" sono relativi allo step della velocità  della locomotiva, il bit C seve per accendere ho spegnere la luce davanti del treno (ma non ne sono sicuro), il bit D serve per impostare la direzione e i bit segnati come '01' indicano che i dati sono relativi alla velocità  e alla direzione del treno. Però sul documento non c'è scritto nulla sul come interagire con le altre funzioni di ogni locomotiva cioè, da quello che ho capito (almeno credo dato il fatto che una locomotiva da modellismo non l'ho ancora vista :D ) ogni locomotiva ha delle funzioni particolari che possono variare da modello a modello (come per esempio le luci di dietro, le porte che si aprono, la sirena che suona, il fumo che esce dal camino, ecc...), la mia domanda è: dove posso trovare uno schema o un documento che mi illustri come fare a comunicare alla locomotiva queste funzioni? oppure c'è un altro modo per fare ciò?

grazie a tutti per la pazienza :D

luca

cicocri
PlasticoDigitale
Messaggi: 805
Iscritto il: lunedì 2 febbraio 2004, 22:37
Scala: N
Ho il plastico: Si
La mia centrale digitale.: Analogico e Digitale
Località: Forli
Contatta:

#9 Messaggio da cicocri »

Leggo questa notizia proprio mentre parlo con Ellerre, altra persona che ha fatto qualche cosina per i DCC e che farà  qualche altra cosina ma su microprocessore....
Non possiamo che augurarti.... buona fortuna... e non perderti d'animo...
PROTETTO DA
Immagine
Firma:
Non trovare difetti.... Trova rimedi e provvedi....Se puoi

a132662
TrenoDigitale
Messaggi: 70
Iscritto il: giovedì 12 aprile 2007, 12:52
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: Analogico
Località: bergamo
Contatta:

#10 Messaggio da a132662 »

Non per dirti le cose che ti Hanno già  detto, ma guardati sto sito,
trovi un manuale con tutti i codici, la loro struttura e quant' altro
con spiegazione dettagliata del protocollo.
Ricordati che gli ambienti sono 2 ....
I binari ( alternata a 18 V con sovraposta una specie di convogliata)
e il giro dei Feedback in RS485 ) il protocollo vale per entrambi gli ambienti.

http://www.lenz.com/

Sul sito che ci ospita trovi tutta la parte introduttiva.
Ma la spiegazione completa alla sequenza del pacchetto la trovi sul sito proposto
ciao
B2M - Sensori All' Infrarosso

www.b2mtreni.it

Buddace
Site Admin
Messaggi: 16386
Iscritto il: lunedì 2 febbraio 2004, 17:25
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: TMWDCC TBX zDCC Lokmaus2 HornbySelect Arnold Intellibox Claudia_CommandStation
Località: Torino
Contatta:

#11 Messaggio da Buddace »

Fondatore e amministratore di DCCWorld

http://www.DCCWorld.com - il sito dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.

snake88m
LocoDigitale
Messaggi: 28
Iscritto il: giovedì 30 ottobre 2008, 21:17

#12 Messaggio da snake88m »

ciao grazie a tutti per le risposte ....
a132662 sono andato sul sito che mi hai proposto: http://www.lenz.com/ e trovato un gran numero di info molto tecniche su molti prodotti, ma nulla che avesse a che fare con il protocollo dcc nmra :D , (però può darsi che come nel caso del sito della nmra.org non sia riuscito a trovare il link giusto e mi sia sfuggita la pagina relativa al protocollo :roll: .... )

cmq a parte ciò ho fatto un pò di ricerche e ho trovato questi link che spiegano abbastanza bene (stranamente sono anche in italiano ) come è composto un pacchetto nmra:

http://digilander.libero.it/ttales70/id ... DocDCC.htm
http://digilander.libero.it/ttales70/id ... ocDCC1.htm
http://digilander.libero.it/ttales70/id ... ocDCC2.htm

che unito a questo documento:
http://www.nmra.org/standards/DCC/stand ... CStds.html

mi stanno facendo capire abbastanza bene come funziona questo protocollo.

Ho postato i link nel caso possano risultare utili a qualcunaltro .....

però ho da porre una domanda relativa ai CV (variabili di configurazione), da quello che ho capito su ogni decoder sono presenti delle CV che non sono altro che delle celle di memoria che possono tenere memorizzate dei valori, ma non ho ben capito qual'è il loro scopo... cioè che genere di valori devono tenere memorizzati? e poi mi sembra strano che dei decoder per locomotive siano dotati di una memoria statica che mantiene i dati in memoria anche a corrente staccata , oppure sono dotati di una piccola batteria che mantiene i dati in RAM e quando la togli i CV si resettano?

Grazie anche a Buddace per la risposta ... il testo che mi hai linkato è abbastanza complicato ma sembra utile ... non appena ho un pò di tempo mi metto a tavolino e provo a tradurlo un pò ....

Luca

Buddace
Site Admin
Messaggi: 16386
Iscritto il: lunedì 2 febbraio 2004, 17:25
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: TMWDCC TBX zDCC Lokmaus2 HornbySelect Arnold Intellibox Claudia_CommandStation
Località: Torino
Contatta:

#13 Messaggio da Buddace »

cmq a parte ciò ho fatto un pò di ricerche e ho trovato questi link che spiegano abbastanza bene (stranamente sono anche in italiano ) come è composto un pacchetto nmra:

http://digilander.libero.it/ttales70/id ... DocDCC.htm
http://digilander.libero.it/ttales70/id ... ocDCC1.htm
http://digilander.libero.it/ttales70/id ... ocDCC2.htm
Ma accidenti, prima di lanciarci nella crociata di turno lo leggiamo il sito:
http://www.dccworld.it/index.php?page=d ... niche.html
Fondatore e amministratore di DCCWorld

http://www.DCCWorld.com - il sito dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.

a132662
TrenoDigitale
Messaggi: 70
Iscritto il: giovedì 12 aprile 2007, 12:52
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: Analogico
Località: bergamo
Contatta:

#14 Messaggio da a132662 »

Visto che vuoi fare l' informatico

http://www.lenz.com/manuals/index.htm

e poi cercare nell' elenco:
-- >>> ExpressNet tecnical description end protocol <<< ------
( manuale di 80 pagine per informatici )

forse funziona anche il link
http://www.lenz.com/manuals/xpressnet/xpressnet.pdf

Ciao
B2M - Sensori All' Infrarosso

www.b2mtreni.it

xavierx66
LocoDigitale
Messaggi: 29
Iscritto il: lunedì 14 aprile 2008, 6:27

#15 Messaggio da xavierx66 »

Dai un'occhiata anche a questi qua,può servirti come spunto.

http://www.pricom.com/Trains/TrainController.shtml


Ciao

Rispondi