Mini Terminale di Roberto
Un picolo terminale da utilizzare con i PIC e non solo
Ammetto che l'idea di questo MiniTerminale è nata dopo aver visto DINO il Robot
realizzato da Guido, i pulsanti ed i LED uniti al display mi sembravano un ottimo sistema per controllare il robot, cosa di cui su Smoke
abbiamo sempre sentito la mancanza. Al contrario di Guido, che ha utilizzato gli I/O Expander I2C, ho deciso di utilizzare completamente
una porta del PIC in particolare la porta D del PIC, in realtà se ne può usare una qualsiasi o di un altro qualsiasi dispositivo, la cosa
importante è che abbia 8 bit da utilizzare.
Ho disegnato lo schema inserendo un connettore di collegamento per porterlo utlizzare direttamente su una RoboBoard, dal quale prelevo
anche l'alimentazione per il circuito, ma è facilmente modificabile per ogni esigenza.
Come si vede dallo schema ho utlizzato solo 6 bit per controllare il Display che è un 16x2 (il codice allegato si riferisce a questo tipo
di display) nella classica configurazione con 4 bit (RD4-RD7) per i dati e 2 (RD0 e RD1) per il controllo.
I 4 bit dei dati vengono utilizzati anche per il 74HCT574, che viene controllato da un altro bit (RD2), in questo modo i quattro bit
svolgono la funzione di una sorta di BUS DATI e vengono letti solamente dal Device (LCD o 74574) che riceve l'abilitazione tramite le
porte RD1 (LCD) e RD2 (74574). Nello schema vedete 3 Led ed un Buzzer, questo perch mi servivano per segnalare le sorgenti rivelate su
un Robot Explorer, ma volendo ci si può collegare un altro Led o qualsiasi altra cosa volete.
Infine il circuito relativo hai pulsanti, si basa sul controllo di RD3, l'unico ad essere configurato come input. Come si vede dal
circuito RD3 è normalmente collegato a Vcc tramite la resistenza R4, in pratica la funzione (tasto_read) che controlla i pulsanti mette a
zero in sequenza i bit da RD4 a RD7. Ogni volta che un bit viene messo a zero viene controllato lo stato di RD3, se il pulsante relativo
a tale bit è premuto RD3 va basso e un ciclo While attende che il pulsante venga rilasciato, memorizzando il valore del pulsante premuto,
che verrà poi restituito dalla funzione.
Vorrei sottolineare che non è possibile utilizzare le tre funzioni (Display, LED, pulsanti) contemporaneamente, in quanto fanno tutte uso
dei bit da RD4 a RD7. Di questa indicazione naturalmente dovete tenerne conto, solo se modificate le libreire allegate per il controllo o
utilizzate un RTOS, altrimenti non ci sono problemi.
Questo è un esempio di utilizzo del terminale, come si può vedere non ho realizzato un ciruito stampato, ma il tutto montato su una
mille fori. Utilizzo i pulsanti per controllare il Robot, prossimante vorrei poter regolare i parametri di funzionamento dirattamente dal
terminale senza dover modificare il programma. Il Display è molto commodo per visualizzare lo stato di senori e variabili durante la gara,
infine i led e il buzzer (che nella foto non c'è), come detto in precedenza li utilizzo per segnalare le sorgenti durante la gara.
:: DOWNLOAD MiniTerminale Code Example ::
|