Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

5
voti

T&GV Operating system – Prima puntata

Indice

Un'idea nata per gioco

Proviamo a parlare della mitica T&GV Railroad; una linea piuttosto difficile da gestire, con curve, controcurve, salite (che viste dalla cima son tutte discese...), loops di ritorno (un volgarissimo anello), raccordi e... un TRIANGOLO !!!

Sarebbe indispensabile un disegno di layout, eccolo qui:

Tracciato_compl.jpg

Tracciato_compl.jpg


Nota bene: la stazione superiore, quella di Green Valley, è ancora ben distante dall'essere completata, potrebbe subire ancora diversi interventi di rimozione/posa dei binari, ma... va bene cosi, per adesso; quest'altra immagine è per focalizzare la parte bassa, che per la metà superiore dello schizzo sarà sempre nascosta: la stazione di Tascosa rimarrà sotto la montagna:

T-GV bassa-2.JPG

T-GV bassa-2.JPG


Motivazioni di una scelta


Le motivazioni all'origine di tutti gli “arzigogoli” che vedrete descritti sono diverse ma, prima fra tutte, ce n'era una: poco spazio sul pannello di comando: non ci stanno tutti i pulsanti, commutatori e interruttori che dovrebbero essere usati.

Allora facciamo quattro conti e vediamo come possiamo architettare le cose: quattrostazioni, no scusa, solo tre: Tascosa, Black Gulch e Green Valley; Mountain View sarà solo una fermata (come quella dei “Pomodori fritti”, ve la ricordate?), senza scambi. A Tascosa ci sono cinque deviatoi ma, a parte il #3, 1 e 5 possono essere azionati insieme, cosi come 2 e 4, quindi e come fossero tre. A Black Gulch sono tre, ma è come fossero due (1 e 3 insieme). A Green Valley ce ne sono sette, e sette devono rimanere; totale DODICI “deviatoi”: servono 24 “contatti”, segna che poi ripasso per il conto...
Tutto il tracciato può essere diviso in due parti:

l'anello “basso” con le stazioni di Tascosa e Black Gulch sarà una, e l'altra partirà dal deviatoio #3 di Tascosa per arrivare a comprendere l'intera stazione di Green Valley: servono due PWM, ciascuno necessita di due “contatti” (segnali ad onda quadra, ovviamente), uno per ciascun senso di marcia; più i precedenti fanno 28, segna, segna....

Ci sono nove tratti di binario di cui va sezionata l'alimentazione con un relé ciascuno; e per ogni relé ci servono due segnali:ON e OFF: fanno 18; con quelli di prima sono 46, scrivi bene che poi non si capisce...

Dunque, dicevamo ?

Ah, si: abbiamo il pilotaggio dei deviatoi, quello dei relé, i due PWM... si, va bene, ma come facciamo a decidere quale deviatoio deve azionarsi ? E da che parte ? E quale relé eccitarsi o diseccitarsi? E a che %uale di duty-cycle deve lavorare il PWM-1 ? E il -2 ? In quale senso di marcia? Piano, piano, che mi vien mal di testa...

E` vero: serve ancora qualcosa... intanto devo capire come fare a selezionare il deviatoio prima e dirgli da che parte girarsi poi...

beh, posso usare quel key-pad 4x4 tipo telefono “furbo” che devrebbe essere qui, nel terzo cassetto... no: qui ci sono le 6AU6 da provare, quella con lo scotch dovrebbe avere il filamento bruciato, vai col tester fra 3 e 4 … si, non “batte”....

bah! Son solo tre, non riusciremo mai più ad usarle, e sono anche già PARECCHIO usate: butta via tutto, NO, FERMA ! Ecco il tastierino: era proprio nel terzo cassetto, nascosto dal suo foglietto esplicativo; bene !

Come no,... bene un corno!, se “pigio” dei bottoni, tasti, pulsanti o come li volete chiamare, dovrò ben capire se ho schiacciato quello giusto oppure ho premuto quello vicino... come faccio ?

Ma certo ! Non ti ricordi quei display che avevi recuperato su ebay, per la serie “ora li compro poi vedrò come usarli” ?
Si, giusto, sono nel secchiello di plastica ben fasciati con il nylon a bollicine, sopra il mobile , proprio là in fondo... non muovere la sedia, che precipito !!! Eccoli qua !!

Adesso bisogna aggiungere un paio di commutatori a levetta, giusto per dirgli in che senso di marcia devono muoversi le locomotive... e poi... ce l'avevo in mente proprio ora... Boh ! mi ricorderò, prima o poi...


Andiamo nel difficile


Intanto possiamo impostare il problema con il 16F877: ha 40 pin, tolti i 4 dell'alimentazione, il MCLR e il quarzo, ne abbiamo 33, dobbiamo starci dentro, quindi... ah ! ecco cosa mancava: come imposto i PWM ? ci vogliono due potenziometri, li leggo con l' A/DC ed ecco fatto.


Allora passiamo alle:

;--------
;definizioni I/O
;
;1)x tastierino
; RB0..3 = output da PIC x scansione ciclica righe
;su interrupt da TMR0 ogni 50 msec
;LINEE CONDIVISE con output verso LCD
;tx a LCD TEMPORIZZATO
;
; RB4..7 =lettura per controllo del tasto premuto
; linee NON condivise
;
;2)x LCD
; RB0..3 = linee dati/nibble da/verso LCD; LINEE
;CONDIVISE con output scansione tasti
; RA2 = segnale x display 
; RE2 = segnale x display
; 
;3)x potenziometri e reverser : ADCON1 = xxxx0101
;RA0 = AN0:= POT-1
;RA1 = AN1:= POT-2
;RA3 = AN3:Vdd/+5V
;
;RA4 = REVERSER - 1 = FWD
;RA5 = REVERSER - 1 = REV
;RE0 = REVERSER - 2 = FWD
;RE1 = REVERSER - 2 = REV
;
;4)x pilotaggio motori :
;RD4 =Senso ORARIO/linea bassa - anello
;RD5 =Senso ANTIORARIO/linea bassa - anello
;RD6 =Senso "a salire"(ORARIO)/linea alta - rampa
;RD7 =Senso "a scendere" (ANTIORARIO)/linea alta - rampa
;
;5)x pilotaggio magneti bistabili (deviatoi e relé):
; a matrice, sia ASCISSE che ORDINATE normalmente in modo INPUT
;RC0..5   in ascisse        6 fili
;RD0..3   in ordinate       4 fili
;          totale 48 segnali
;------------------------------------------------------------



Facciamo due conti:

Port-A tutti 6 bit

Port-B tutti 8 bit

Port-C "solo" 6 bit

Port-D tutti 8 bit

Port-E tutti 3 bit

In totale andiamo ad usare 31 bit, ma quanti segnali gestiamo ?

4+4 segnali del key-pad

6 segnali del display

3 segnali AD, (uno è il riferimento a 5V, ma è indispensabile)

4 segnali per gli invertitori di marcia

4 segnali per alimentare i motori

48 segnali per deviatoi e relé

73 segnali in totale


Ahhh! ce l'ho fatta !

La matematica è un' opinione ?

Ehi, Scienziato, mi sembra che siamo scarsi in aritmetica: 31 non è uguale a 73! Cosa ne dici ?


Beh, intanto con dieci bit faccio andare il keypad che ne chiama 8 e il display (a 4bit x 2 /carattere) che ne cerca 6; sarebbe 14, ma quattro li alterno: se scrivo non leggo e viceserva, quindi: 4 riservati al keypad, 4 in time-sharing, due riservati al display, totale dieci, contento ?


Si, va bene, anche perché poi gli AD, gli invertitori di marcia e i motori... fanno 11, siamo a 21...

EHI ! Un momento, tu mi stai prendendo in giro !

Da 21 a 31 sarebbe DIECI, e tra Port-C e Port-D, sei e quattro ci siamo, ma tu mi dici che con dieci bit fai andare QUARANTOTTO SEGNALI ! Ma dai !


Ok, dici che ti prendo in giro, che non conosco l'aritimettica... scusa: l'aritmetica, ma tu hai che detto Port-C usa 6 bit e Port-D usa 4 bit, giusto ?

Giusto.

Allora fai 6 x 4 e viene 24, giusto ?

Giusto.

E quando fai 24 x 2 cosa viene ?

48, e allora ?

E allora io avevo detto che usavo 48 segnali per deviatoi e relé: 48 l'hai detto anche tu, quindi siamo a posto.


E dai: ma come fai a pilotare 48 segnali con dieci fili, aggiungi anche la massa, fa undici, ma non ci siamo.


Cominciamo col dire che la massa non la uso, poi andiamo a puntare il dito sul fatto che si tratta di “roba” bistabile, ok? Questo vuol dire che per posizionarli nella configurazione che desidero (elettrica o meccanica dipende da CHE COSA sono) mi basta un impulso; un bistabile a transistor lo fanno tutti, quindi il problema sta solo nel pilotarlo nel modo furbo per risparmiare fili, vediamo il circuito che ho usato per il relé e quello per il deviatoio, qui sotto:

Rele-bistabile.jpg

Rele-bistabile.jpg


Difficile trovare qualcosa di meno complicato, giusto ?

Comando scambio.jpg

Comando scambio.jpg


E anche qui, come difficoltà.... E adesso, invece, guardate un po' il disegno qui sotto:

Matrice-azionamenti.jpg

Matrice-azionamenti.jpg



In corrispondenza di ogni incrocio, sui due fili che lo formano collego DUE isolatori ottici, in “ANTI-PARALLELO”, questo vuol dire che se i due fili sono collegati a due pin configurati come input, non succede nulla, ma se i due pin vengono configurati come output e uno viene messo a “1” mentre l'altro rimane a “0”, verrà azionato uno solo dei due optoisolatori, l'altro resterà inerte, o no ?

Quindi, se rifacciamo i conti di prima, questa volta sarete d'accordo come nel dire che con dieci fili, configurati in una “griglia” (o “matrice”) di 6x4 riesco a pilotare, OVVIAMENTE UNO ALLA VOLTA, 48 output. Nel mio caso sarebbero 24 “oggetti” ciascuno dei quali può/deve assumere due posizioni.


... E avanza qualcosa ...


Adesso facciamo una piccola considerazione:

All'inizio avevo accennato a 33 pin collegati “al mondo”; poi siamo arrivati a gestire una settantina di segnali e avanzano due pin.

“Bene, cosa ne faccio ?” (direte voi)

“Discorro con il mondo” (dico io)

“Questo è pazzo...” (direte voi)

“Sicuro !” ... “Zitti, voi là dietro, nessuno vi ha interrogati !!!”

Ebbene, guardate un po' quali pin ho “risparmiato”: il pin 25 ed il pin 26 del PIC16F877.

Mi chiedete COSA SONO?

Sono i due pin dell'UART, e posso usarli per interfacciarmi con un PC via RS232: quello che arriva dal key pad, dai potenziometri e dagli invertitori di marcia (che sono cablati solo verso il PIC) può arrivare, se il software lo prevede, dalla seriale, quindi da un PC, quindi da Internet.

Basterebbe una buona web-cam e non sarei il primo che mette ON-LINE il proprio plastico consentendo a chi si collega di manovrare i treni; non ricordo il sito, ma era tedesco.


Allora ? Che ne dite ?


Non so se riuscirò mai a tanto; veramente; mi mancano un sacco di nozioni, ad esempio non saprei come si può aprire il proprio PC ai collegamenti di altri utenti via web (non ci ho mai pensato), ma c'è sempre tempo per imparare e, proprio sul web, magari su un forum simile a questo, potrei trovare chi può aiutarmi.


Ma nei saloon di Tascosa, dove bazzicavano Trinità e Bambino, chi si sedeva al tavolo del poker accettava la regola: “Un dollaro i gettoni piccoli... e il cielo come limite!”, sempre che poi non gli piovessero addosso un paio di scapaccioni del nostro Bud Nazionale, e allora... buonanotte !


Torniamo ai nostri problemi, vi ho mostrato come ho “moltiplicato” le capacità di output del PIC, ma manca ancora parecchio:

keypad

display

potenziometri

pwm (due)


Saranno oggetto di prossime puntate

Pensierino della sera...

Prima di terminare, qualche spunto per un mal di testa:

prendiamo in esame il triangolo che è costituito dagli scambi 2, 3 e 4 di Tascosa, si vede bene nella seconda figura: il lato orizzontale unisce gli scambi 2 e 4, gli altri due lati sono formati dalla Tratta 2 e dalla Tratta3.
Il lato orizzontale e le due Tratte sono alimentati dallo stesso PWM che alimenta Tascosa e tutto l'anello.
Il vertice formato dal deviatoio 3 ed il resto viene alimentato da un secondo PWM; le due tratte sono normalmente isolate, alimentate da due dei relè bistabili solo quando le condizioni “logiche” lo consentono.

Ecco il primo spunto: se le tratte non fossero normalmente isolate (anche con un solo PWM che alimentasse tutto) ci sarebbe un cortocircuito, lo vedete ?

Era facile, lo so, eccone un altro:
facendo sempre riferimento al disegno, tenendo presente che facciamo circolare UN SOLO TRENO e che possiamo mettere i deviatoi nelle posizioni che più ci aggradano, quali sono le condizioni per consentire l'alimentazione delle Tratte ?

Ulteriore domandina: sempre sotto le stesse condizioni logiche del punto precedente: sono alimentabili entrambe contemporaneamente ?


Vi ho stuzzicato abbastanza ? Bene, alla prossima, CIAO !!!

1

Commenti e note

Inserisci un commento

di ,

Da appassionato di trenini (senza spazio per una ferrovia), me lo leggerò con calma, ma intanto dico: FOTOOOOOOO!

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.