Primi passi con i PIC sul sistema
Micro-GT mini.
Per contatti scrivere a
ad.noctis@gmail.com
La Micro-GT mini è una piattaforma in rapida diffusione destinata a diventare uno standard per la didattica in Italia e all’estero.
Concettualmente si tratta di un sistema semplice e di immediata comprensione.
Per poter accendere e rendere utilizzabile un microcontrollore PIC servono tre cose fondamentali:
1. Il circuito di alimentazione
2. Il circuito di clock
3. Il circuito di reset.
Nella sostanza la Micro-GT mini mette a disposizione queste principali caratteristiche più quelle normalmente sono impiegate nello sviluppo di progetti a microcontrollore, ovvero l’accesso ai punti di input/output, che d’ora in poi chiameremo I/O, e le periferiche integrate nel chip che costituiscono la differenza tra questa famiglia di integrati e un classico microprocessore.
Spesso la sigla MCU sostituirà il termine microcontrollore.
L’estensione della sigla significa Micro controller unit.
Esistono molti tipi di PIC (programable interface controller, o anche periferal integrated controller) sono distribuiti dalla casa Microchip e sono suddivisi in famiglie.
Benché il loro linguaggio fosse inizialmente l’assembly è oggi decisamente sconsigliato e si cerca di orientare i nuovi tecnici verso piattaforme più evolute e anche più spendibili in altri ambiti, ad esempio su linguaggi basati sull’ANSI C.
La Micro-GT mini è la piattaforma distribuita a G-Tronic Robotics, piccola azienda radica a Venezia, fondata nel 1995 dall’ing. Marco Gottardo dal cui cognome sono state estrapolate le lettere “GT” che ne costituiscono il logo e il marchio.
La scheda mette a disposizione, oltre ai tre elementi fondamentali utili alla sola accensione, mette a disposizione una porta seriale per la comunicazione con il computer che funge da sistema di programmazione qualora venisse usato un bootloader, oppure delle interfacce di controllo, ad esempio quella ,mostrata sotto, liberamente scaricabile dal sito della G-Tronic:
Un’altra interfaccia software molto utile è quella sviluppata dall’ing. Alejandro Gatto del team G-Tronic.
Cliccando con il mouse sui LED virtuali si ottiene la risposta dei LED nella scheda hardware.
Le librerie per il funzionamento della seriale sono presenti nel sito, e liberamente scaricabili, al link:
http://www.gtronic.it/community/Librerie_Micro-GT.html
il Layout della Micro-GT mini è il seguente:
Come si nota facilmente sono disponibili tutti i pin del Microcontrollore.
· Canali analogici (usabili anche come digitali) in alto a sinistra. PORT A
· PORT B sul lato sotto a destra (vicino a D1) usabili sia come input che output.
· PORTC C sul lato sotto a sinistra, esclusi RC7 e RC6 perché impegnati per la porta seriale.
· Connettore ICSP per la programmazione dei PIC inseribili nello zoccolo, compatibile PICKIT2/3.
· 8 LED sul lato superiore, per indicare lo stato delle uscite a cui li colleghiamo
· Pulsante di reset, valido anche per abilitare il bootloader che permette di sovrascrivere via seriale il programma contenuto nella flasch EEPROM.
· 6 morsetti a due vie con funzione indicata nel disegno. L’ultimo morsetto serve a separare l’alimentazione di potenza qualora si pilotassero carichi gravosi, ad esempio tutti i 14 possibili servomotori.
Le tre file di pin header maschi, allineati con ogni PORT, sono pensati per poter alloggiare in maniera diretta i servomotori, infatti la fila centrale risulterà collegata alla tensione +Vcc, fornibile dal morsetto dedicato, mentre la fila più esterna, la più lontana dal PIC, è collegata a massa.
Questa configurazione dei pin permette in maniera molto agevole di collegare le resistenze di pullUP o pullDown a seconda da cosa sia richiesto dal progetto.
Il collegamento avverrà tramite dei pin header femmina a cui saranno saldate le resistenza da 10k come viene mostrato nella successiva foto:
Si tratta di un sistema open hardware, orientato alla didattica, ridotto alle funzionalità essenziali allo scopo di massimizzare il rapporto efficienza didattica/costo. Gli schemi elettrici come anche la documentazione necessaria sono liberamente scaricabili dalla rete.
La compatibilità diretta con gli MCU a 8 bit di casa Microchip è quasi certa per tutta i modelli a 28 pin purché alimentabili a 5V. l'alloggiamento del PIC16F876A e assimilabili, e la famiglia potenziata 18F2550 è diretta garantendo l'interscambiabilità nello zoccolo con accorgimenti minimi.
Alcune prove sono state fatte a cura del personale della G-Tronic allo scopo di alloggiare PIC della famiglia PIC32, di tipo DIL a 28 pin. Tali prove sono andate a buon fine ma la modifica al supporto richiede sostanziali interventi di taglio piste e principalmente nella sezione di alimentazione che per questi PIC è rigorosamente a 3,3V. Pena la distruzione del dispositivo.
Community Micro-GT
Da marzo 2014 è stata istituita una community in cui gli utenti della piattaforma caricano le loro esperienze hardware e software che divengono così di pubblico dominio.
Le librerie presenti fino a maggio 2014, caricate da utenti diversi, permettono di implementare in maniera immediata le seguenti funzioni:
Librerie Micro-GT |
e-mail |
rank & data |
ad.noctis@gmail.com |
19 Marzo 2014 |
|
|
08 Agosto 2011 |
|
ad.noctis@gmail.com |
27 Febbraio 2014 |
|
ad.noctis@gmail.com |
27 Febbraio 2014 |
|
ad.noctis@gmail.com |
27 Febbraio 2014 |
|
ad.noctis@gmail.com |
27 Febbraio 2014 |
|
ad.noctis@gmail.com |
27 Febbraio 2014 |
|
ad.noctis@gmail.com |
27 Febbraio 2014 |
|
ad.noctis@gmail.com |
27 Febbraio 2014 |
|
ad.noctis@gmail.com |
27 Febbraio 2014 |
|
ad.noctis@gmail.com |
6 Marzo 2014 |
|
ad.noctis@gmail.com |
6 Marzo 2014 |
|
ad.noctis@gmail.com |
6 Marzo 2014 |
|
ad.noctis@gmail.com |
19 Marzo 2014 |
Alla community, stanno aderendo non solo studenti di livelli più variegati, ma anche numerosi professionisti operanti nel settore dei controlli a microprocessore.
Si stima che il sistema, ridotto al vero essenziale, ma comunque in grado di funzionare acquisendo il programma e ponendolo in esecuzione può avere un costo attorno ai dieci euro.
Controllo dei
servomotori.
L’interfacciamento dei servomotori è diretto e per questi è stato predisposto un canale di alimentazione separata allo scopo di non sovraccaricare il regolatore di tensione interno.
Va tenuto presente che i 14 servo motori, contemporaneamente in piena coppia, potrebbero assorbire anche 3,5 ampere.
osserviamo che l'alimentazione per la logica è in un canale bene separato da quello della potenza.
Osservando il PCb si nota che tutti i pin centrali sono interconnessi tra loro e al filo rosso di ogni servomotore che andremo a connettere alla Micro-GT mini, mentre tutti quelli più lontani dal PIC (quelli più in basso sono collegati alla massa, quindi si ha una sorta di protezione dall'inversione di inserimento dato che la tensione positiva si trova sempre in posizione centrale).
Il filo nella foto indicato in bianco potrà essere, in funzione del modello e della casa costruttrice, blu o giallo, ma in ogni caso indica il terminale in cui si deve portare il segnale rettangolare che rappresenta il comando di posizionamento del servomotore.
Il lato del filo bianco è quello che si trova più vicino al microcontrollore nel layout della Micro-GT mini..
Ricordiamo brevemente che il servo andrà pilotato con un segnale monostabile, ripetuto circa 50 o 60 volte al secondo, il cui duty cycle non sarà misurato in percentuale come avviene con un normale PWM, ma in millisecondi.
Tipicamente tenendo l'uscita del PIC attiva per un tempo compreso tra 1,5 e 2,5 ms si ottiene l'escursione dal minimo al massimo dell'angolo dell'asse del servomotore.
Dato che questo segnale ha molte affinità con un PWM con frequenza 50Hz, in molti casi l'applicazione di questo risulterà funzionante per il servomotore.
In ogni cosa, se il filo di comando (azzurro o bianco o giallo) non riceve un refresch entro 200 ms il motore si spegne per riaccendersi quando la situazione di comando si riporta alla normalità.
E' evidente che il morsetto X4-1 della Micro-Gt mini va collegato al morsetto X2-1 dell'alimentatore, mentre il morsetto X4-2 della Micro-GT (massa) va collegato al morsetto X2-2 dell'alimentatore (massa).
Dato che la Micro-GT mini ha presente un regolatore di tensione LM7805, che notoriamente causa una caduta dovuta al dropout di circa 2 volt, bisognerà alimentare il morsetto X2-1 con un positivo ad almeno 7volt e il morsetto X2-2 con la massa di questo secondo alimentatore. Le due masse saranno poi internamente collegate. Esempio di collegamento di 8 dei 14 possibili servomotori.
Mini shield
disponibili
Vediamo, senza entrare troppo nel dettaglia, alcune delle interfacce disponibili per la Micro-GT mini.
PWM power inverter.
Consente il controllo della direzione e della velocità senza perdita di coppia di potenti motoriduttori DC fino anche a 20 ampere. La configurazione del ponte H non permette manovre distruttive.
I segnali generati dal Microcontrollore possono essere di tipo costante o di tipo PWM.
Il segnale PWM può essere generato in maniera autonoma da questa scheda sgravando il microcontrollore dal doversi generare l’onda. Nel caso che l’applicazione imponesse il controllo in retroazione del duty cycle del PWM è possibile intervenire direttamente con i pin del micro sul gate del mosfet di potenza.
Un sistema ben congeniato di pin header permette il sezionamento del circuito in vari punti in modo da poter agevolmente isolare delle sezioni o interconnetterle tra di loro operando su alcuni jumper.
La sezione PWM hardware è pre tarata a 22Khz perché si stima essere un valore di buon compromesso al variare dei motoriduttori DC normalmente trovabili in commercio.
Questa scheda non ha alcun timore a controllare motori di anche 36 V dc con correnti di indotto che possono arrivare fino a 20 A.
Il regolatore L200 serve per garantire una alimentazione robustamente stabilizzata anche se vi sono sbalzi gravosi a causa dell’ambiente “industriale” in cui potrebbe trovarsi a lavorare. I diodi di ricircolo sono integrati.
Il circuito stampato è questo:
Un’applicazione di interfacciamento con la Micro-GT mini.
Minishield universal
display.
Si tratta di un display a sette segmenti pensato per poter ospitare digit sia a anodo che catodo comune.
Sono disponibili le sette linee di controllo dei segmenti, le quattro dei punti decimali e altre quattro per ognuna delle due tipologie anodo o catodo comune dei display montati.
Dallo schema si vede facilmente che il funzionamento sarà possibile solo per anodo o catodo comune in tempi distinti dato che usano un bus comune.
Il controllo è di tipo a multiplexer.
Vista posteriore del display universale per evidenziare i cablaggi e la posizione del morsetto di alimentazione.
Mini shield 8
ingressi opto isolati.
Quando si lavora in ambiente disturbato è d’obbligo l’optisolamento. La questione è molto più ampia ma ecco la soluzione.
Esistono
versioni di opto accoppiatori a più canali ma per questioni di semplicità
realizzativa e di reperibilità si è deciso di realizzare questo minishield con
il 4N26. Come possiamo vedere alcuni pin non sono collegati.
Minishiel uscite di potenza
Questo semplice mini shield permette il collegamento di 4 carichi DC di potenza fino a 5Acontinui (8A impulsivi)
Esempi applicativi sono il controllo diretto di Elettrovalvole, bobine di teleruttori, motori DC di media taglia come ad esempio i motoriduttori per gli alzacristalli dell'automobile.
Lo schema si basa su 4 transistor di tipo darlinghton posti in zona di lavoro saturazione o interdizione in funzione della presenza o meno del segnale TTL nei circuiti di base.
Dato l'elevato guadagno la saturazione avviene con 10 mA in base e quindi con un valore resistivo di circa 220 ohm.
I TIP122 hanno una velocità di commutazione più che sufficiente per seguire un segnale PWM senza alcun problema sopra i 20Khz.
Minishield 8 relay 20
A.
Questa interfaccia di grande potenza potrà essere collegata per 8 canali indipendenti oppure per quattro con la possibilità dell’inversione di marcia dei motori DC.
Esempio di collegamento di 8 motori DC fino a 20 ampere ciascuno.
Collegamento di 4 motori di potenza fino a 20 ampere ciascuno.
In entrambe le configurazioni sovrastanti è possibile fare chiudere il riferimento alla massa, ad esempio i morsetti X2,2 - X3 ,2 – X, ecc ecc, tramite un potente mosfet di cui è disponibile un minishield allo scopo di controllare anche la velocità dei motori.
Questa possibilità è valida anche per la configurazione precedente, senza inversione di marcia.
Vediamo alcuni degli schemi elettrici in modo da approfondire il funzionamento.
Nel prossimo schema vediamo una potente applicazione su un robot semovente tipo ROVER.
L’alimentatore Modello G-Tronic LM350 impiegato è il sottostante.
Minishield 4 canali
mosfet.
I motori in DC possono essere controllati in velocità tramite un segnale PWM generato dal MCU a bordo della Micro-GT mini. È possibile aprire e chiudere la linea in cui è inserito il motore usando un potente moseft operate a una frequenza di circa 22khz. Questa frequenza al giorno d’oggi non è un problema per qualunque mosfet. L’interfaccia per la Micro-GT mini è mostrata sotto.
Minishield power
inverter
Foto di interfacciamento della Micro-GT mini con un minishield power inverter.
Minishield Vu-meter
stereo
Trasforma la Micro-GT mini un Vu-Meter stereo, separando completamente la fonte del segnale dalla scheda a microprocessore. Vengono impegnati due canali analogici.
Sono presenti su youtube alcuni video che dimostrano il funzionamento. L’accesso ai video è più agevole tramite la community Micro-GT.
Ottimo esercizio scolastico sia dal punto di vista dell’assemblaggio elettronico che dal punto di vista firmware. L’uso dei canali analogici è agevolato dalla presenza delle librerie “ADC” scaricabili gratuitamente dalla community Micro-GT.
Minishield input per Micro-GT mini.
Questo piccolo minishield permette tramite due deviatori di cambiare la funzionalità dei pulsanti, da NC a NA senza effettivamente cambiare l’hardware di questi.
Saranno le resistenze che in funzione della posizione dei deviatori
cambieranno configurazione da pull up a pull down imponendo il cambio di
funzione da normal 1 -> pressed 0 a normal 0 -> pressed 1
La massa del LM7805 va collegata al morsetto di
massa della Micro-GT mini.
Mini shield espansione I/O semplice
Lo schema elettrico è disponibile per il download nella community Micro-GT.
Mini shield acquisizione termocoppie
Minishield inverter smd
Questo minuscolo inverter è in grado di generare 220Vac alternati a partire da una fonte continua, ad esempio la batteria dell’automobile.
I potentissimi mosfet utilizzati sono in grado di gestire circa 1Kwatt su carico resistivo.
Il PCB è di pochi centimetri quadrati.
Lo schema elettrico è semplice ed essenziale.
Un segnale di consenso TTL rende questo inverter controllabile tramite la Micro-GT mini o qualche altro sistema a microprocessore.
Il sistema è stato ben collaudato e già fornito a un cliente di Roma.
Applicazioni: Lampade di emergenza, controllo piccoli carichi alternati in camper, automobile o natante, piccole applicazioni fotovoltaiche.
Vedi il film del collaudo su youtube in cui si pilota un trapano a partire da 12V DC:
https://www.youtube.com/watch?v=9TGsNWU15uA
PIC18F2550 alloggiato sulla Micro-GT mini
La piedinatura del PIC18F2550, e non solo questo.
È compatibile con quella del PIC16F876A, quindi può trovare alloggio
direttamente nello stampato della Micro-GT mini con il vantaggio che diventa
disponibile la porta USB.
La porta COM rimane disponibile. Nella foto
vediamo una applicazione con il 18F2550.
È necessario inserire un condensatore tra il pin
4 e la massa altrimenti il regolatore di tensione interno della periferica USB
perde il riferimento danneggiando la periferica. Il valore è 470nF al poliestere.
Nella foto è quello azzurro vicino al PIC.
Il filo nero che vediamo arrivare da fuori campo
è un cavo USB ricavato da un mouse fuori servizio.
Il programma per fare funzionare la porta
USB è stato caricato nella community
Micro-GT.
Introduzione rapida alla programmazione dei PIC.
Esistono molti modi per programmare i PIC. Potremo
scegliere quello più adatto alla proprie conoscenze. È possibile programmare in
Pascal, in C, in assembly e perfino in ladder che è il linguaggio dei PLC.
Per chi inizia è consigliato l’uso del linguaggio C.
Esistono molte varianti del C per
microcontrollori, ma è meglio usare
quello adottato dalla casa costruttrice Microchip.
Scarichiamo dal sito la versione XC8 oppure la
versione Hitech C.
Le versioni dovranno essere adatte ai PIC di tipo
midrange, di cui fa parte il modello 876 A e 877 A.
Il linguaggio di programmazione è gestito da uno
strumento software detto compilatore.
Il compilatore viene integrato in un altro strumento
software detto IDE (ambiente di sviluppo integrato).
L’IDE ufficiale della Microchip è MPLAB disponibile
nel sito web www.microchip.com
La versione attuale è la MPLAB X, sviluppata in java,
che può funzionare su Windows, su Linux e su Mac OS.
L’ambiente di sviluppo sarà familiare a chi ha già
programmato, in altri ambiti, usando eclipse.
|
Il file di
istallazione da scaricare dal sito della MicroChip, nell’estate 2013, ha una
dimensione di 335 MB. Eseguito il
setup compariranno sul desktop 3 icone. |
|
Esegue MPLAB
X. Uno strumento software ci guida nella creazione di un nuovo progetto.
Mette a disposizione l’editor comune, basato su eclipse, per il compilatore
che intendiamo usare. Comunica con il PIC. |
|
L’Integrated
Programming Environment (IPE) è uno strumento creato per inserire il
programma (file .hex) nella memoria del PIC quando non si vuole usare quello
integrato in MPLAB X. |
|
Il driver
switcher permette di fare funzionare gli strumenti hardware su più
piattaforme, adattando i driver al sistema operativo su cui vogliamo usarli e
eseguendo la migrazione tra la versione 8.xx (vecchia) e quella nuova MPLAB
X. |
È possibile continuare a usare sia i programmi
realizzati che il precedente compilatore Hitech senza aumentare le difficoltà
tecniche.
È possibile importare un vecchio progetto MPLAB V8.xx
oppure usare i suoi file principali per creare un nuovo progetto MPLAB X. In
ogni caso potremmo usare il compilatore Hitech istallato nella versione
precedente.
Chi non ha interesse ad usare il vecchio compilatore
potrà iniziare ad usare l’XC8.
Creazione di un nuovo progetto.
Predisponiamo l’ambiente facendo alcuni passi
preparatori.
1) Dentro alla cartella
documenti creiamo la cartella “Pic_project”.
2) Dentro alla cartella
Pic_project copiamo i file contenuti nell’archivio “scheletroX” scaricabile dalla community Micro-GT.
3) Verifichiamo che
dentro alla cartella scheletroX, contenuta in Pic_project, ci siano i seguenti
files:
Ora possiamo eseguire
MPLAB X.
La prima esecuzione
potrebbe sembrare un po lunga perché l’IDE si deve creare l’ambiente di
funzionamento.
Una volta che si è
avviato, compare l’ambiente di lavoro. Lo scopo di questa pubblicazione è
quello di portarci subito ad essere operativi quindi non descrivo ad una a una
le voci la solo le azioni da compiere.
Creazione progetto.
Dal menù “file” cliccare su “new project”.
Poi agire su “Standalone project” come in figura.
Solo se abbiamo già un progetto della versione precedente usiamo la seconda
voce. Poi clicchiamo su “Next”, per
accedere ai 7 passi necessari alla creazione.
Passo 1, selezione del PIC.
Per utilizzare la Micro-GT IDE si consiglia di selezionare il chip in
figura:
IL passo numero 3 potrebbe venire automaticamente saltato. I files header
verranno aggiunti a mano.
Al passo 4 si seleziona il dispositivo di programmazione. Anche se la
Micro-GT IDE integra un programmer selezioniamo PICKIT3.
Il passo 5 potrebbe venire saltato automaticamente, specie se utilizzerete
la Micro-GT. Non ci preoccupiamo ed proseguiamo al passo 6 nel quale
selezioniamo il compilatore.
Potremmo vedere una situazione diversa da quella mostrata in funzione dei
compilatori installati. Se un compilatore non è ancora stato istallato
comparirà l’avviso (None found).
Selezioniamo HI-TECH PICC (v9.83) e proseguiamo cliccando su next.
Va posta un po’ di attenzione al passo 7 in cui dovremmo assicurarci,
agendo sul tasto “Browser” di trovarci nella cartella corretta. (vedi l’esempio).
È buona norma assegnare al progetto lo stesso nome del file principale che
in questo caso sarà scheletro.c come
abbiamo già predisposto.
Agiamo su “Finish” per concludere la creazione del progetto.
L’ambiente è predisposto ma non possiamo ancora cominciare a programmare
perché i files non sono inclusi nelle cartelle del progetto, azione che ora faremo
a mano.
Bibliografia
Il libro di testo consigliato per la didattica a livello scolastico è disponibile in Amazon
Versione ridotta del testo specificatamente creata per le scuole: edizioni Amazon 2013, scritto da ing. Marco Gottardo. ISBN: 9781492851523 Copyright: Marco Gottardo
(Licenza di copyright standard) Edizione: Educational
edition Editore: ing.Marco
Gottardo Pubblicato: 10 Novembre
2013 Lingua:Inglese scolastico Pagine: 300 Rilegatura:Copertina morbida con
rilegatura termica Product Details
Inchiostro
contenuto: Bianco e nero |
Contiene MPLAB X e hitech C |
La versione completa del testo è disponibile su www.lulu.com con circa 200 pagine in più in cui si presentano 3 progetti completi.
Il titolo del testo è “Let’s GO PIC!!!”. Sotto vediamo la copertina.
Altre pubblicazioni: su www.lulu.com
Vedi anche la pagina:
http://www.gtronic.it/libri.htm
Clicca le copertine
per vedere i prodotti online.
Clicca le copertine
per vedere i prodotti online.
Clicca le copertine
per vedere i prodotti online.
Clicca le copertine
per vedere i prodotti online.
Selezione completa
delle pubblicazioni di Marco Gottardo su questo link:
http://www.lulu.com/shop/search.ep?type=&keyWords=gottardo+marco&x=0&y=0&sitesearch=lulu.com&q=&pn=1
Orologi didattici a microcontrollore.
Uno dei prodotti più venduti della linea G-Tronic è questo semplice orologio Ore-minuti.
Montava originariamente il PIC16F84 ma potrebbe funzionare anche con il più recente e economico 16F629.
La versione attuale è stata aggiornata al 16F1827, senza nessuna modifica dell’hardware.
Le performance sono estremamente migliorate.
L’articolo che contiene il firmware liberamente scaricabile si trova nella community e il link diretto è questo:
http://www.gtronic.it/community/Orologio%20UP%20V2.0/Orologio%20a%20Up%20V2.htm
Quattro tasti di regolazione h+.h-,m+,m-
Un cavetto flat collega il display con quattro digit a catodo comune.
Per gentile concessione dell'autore.