Automazione tracciato ferroviario

Infine le regole del gioco / simulazione sono semplici:

  • Se il treno viene arrestato (pressione su sensore T di start/stop) si deve ripartire (a velocità ridotta) nello stesso verso di movimento precedente allo stop forzato dal “capotreno”.
  • Se il treno va a toccare un respingente lo si deve far ripartire con direzione opposta a quella di entrata ed attendere qualche attimo prima di rilevare il tocco affinché il treno possa muoversi dal sensore.
  • Se il treno viene visto in stazione dal sensore colore C deve fermarsi e ripartire, solo con la pressione del pulsante start/stop del “capotreno”, con lo stesso verso di percorrenza. Anche in questo caso il sensore colore dovrà attendere qualche attimo prima di riattivarsi affinché il treno esca dalla stazione.
  • Si è liberi di modificare manualmente lo stato degli scambi variando il percorso del treno.

Abbiamo implementato la logica di controllo ed il protocollo di comunicazione Bluetooth utilizzando un firmware opensource LeJos e librerie Java appositamente sviluppate per poter programmare i brick con tale linguaggio. L’IDE di sviluppo adottato è Eclipse con un apposito plugin che permette la compilazione e l’upload dei programmi direttamente nel brick NXT.

La gestione contemporanea di più motori e sensori ha richiesto lo sviluppo del programma in thread indipendenti e sincronizzati. Per ovviare al passaggio di oggetti tra le varie classi in modo da condividere parametri di configurazione o lo stato del treno, abbiamo utilizzato una tecnica di programmazione denominata Pattern Singleton.

 

Lascia un commento