Sistema di controllo a Microcontrollore PIC per le scuole l'hobbistica e piccole applicazioni di robotica.
Offerta scuole: Lotti di 25 PCB (solo circuito stampato) 100€ + IVA
Offerta scuole: Lotti di 10 esemplari montati e collaudati (con precaricato bootloader) 200€ + IVA
Costo singolo PCB utente hobbista 5€ più spese di spedizione
Costo esemplare assemblato e collaudato (con precaricato bootloader ) 25€ più spese di spedizione
Per le offerte sovrastanti scrivere a ad.noctis@gmail.com fino ad esaurimento scorte
La Micro-GT mini è la versione ridotta e economica del noto sistema di sviluppo Micro-GT PIC versatile I.D.E..
La filosofia principale cambia passando dalla "all in one" ovvero tutto a bordo al sistema distribuito su più supporti che si chiameranno mini shield.
Punto di forza sarà l'estrema economicità del sistema abbinata comunque a grande versatilità ed interfacciabilità.
Differenze con il modello superiore Micro-GT PIC versatile I.D.E.
La Micro-GT mini è un sistema di
sviluppo esattamente come la versione precedente ma il supporto PCB risulta
molto più compatto misurando solo 62x55mm contro i
164x155mm della sorella maggiore. La principale limitazione sta nell'evidente
vincolo ad utilizzare solo i pic a 28 pin con piedinatura equivalente al
16F876A, anche della serie 18 e nella mancanza dello zoccolo textool, reso
comunque inutile dalla filosofia di programmazione "incircuit" che
sarà il tema dominante di questo e dei prossimi episodi del tutorial
"Let's GO PIC". In pratica, una volta inserito il PIC in questa
minuscola scheda non sarà più necessario rimuoverlo anche nel caso si volesse
eseguire una riprogrammazione.
Vi sono due possibilità di programmazione del PIC:
Programmazione via ICSP
A vantaggio rispetto il modello superiore è la presenza, sul lato sinistro, del connettore ICSP a 6 pin che permette la compatibilità diretta con i prodotti ufficiali di casa MicroChip pickit2 e pickit3 di cui sotto vediamo le immagini e i rispettivi pinout.
|
|
PICKit 3 connector PINOUT |
Come possiamo notare le configurazioni dei connettori dei due modelli di PICKIT sono identiche e quindi compatibili, sarà quindi sufficiente inserire questo strumento nell'apposito connettore ICSP della Micro-GT mini per programmare il PIC inserito nello zoccolo.
Attenzione: I pin 2 e 6 del connettore ICSP sono collegati alla piazzole LSP3 e LSP4 visibili nella foto immediatamente sotto il connettore, questo al fine di dare la massima interfacciabilità. Solitamente il pin 6 è sconnesso anche nel PICkit, mentre il pin 2 corrisponde alla tensione di alimentazione Vdd di +5V presente nella scheda. in caso servisse, cosa non sempre vera, saldiamo li un filo che all'altro estremo potrà essere chiuso nel morsetto X2 terminale 1, che corrisponde al quarto polo a partire dal lato alto (quello dei led)
Punto di grande orgoglio è l'ampia scritta serigrafata MADE IN ITALY ed invito tutti i colleghi a non dimenticare mai di imprimerla nelle proprie realizzazioni
Rispetto al modello superiore non vi è più la necessità di usare cavetto pentafilare colorato ICSP che viene fornito in dotazione.
Programmazione tramite bootloader.
Un bootloader è una sorta di "sistema operativo" scritto appositamente per il PIC avente la funzione di consentire la programmazione LVP (programmazione a bassa tensione) del dispositivo usando anche la sua sola porta seriale.
Il sistema è diviso in due software, uno il bootloader propriamente detto e il secondo è il downloader. di entrambi esistono molteplici versioni anche open surce e customizzabili secondo le rispettive licenze di rilascio.
In questo link il downloader aggiornato testato e funzionante UserFiles/ad.noctis/downloader(2).rar.
Dai successivi
due link è possibile scaricare i bootloader specifici per le velocità di
comunicazione e frequenza del quarzo indicati:
UserFiles/ad.noctis/bootloader
16F876A 4Mhz 9600.rar
UserFiles/ad.noctis/bootloader 16F876A 20Mhz 38400.rar
Operativamente si proceda come segue:
Per poter funzionare il sistema necessita di un cavo seriale che colleghi il tratto di uscita dal convertitore da USB a RS232 con la piedinatura indica in figura:
Attenzione: Non guardate i numeri interni sul lato
frontale dei connettori, ma quelli posteriori sul lato saldature altrimenti
rischiate di costruire un cavo non funzionante.
Se non avete un cavo a 9 conduttori si può usare un cavo a 4 più calza o più
schermo. funzionerà esattamente nella stessa maniera. in questo caso le
connessioni essenziali sono:
L'aspetto finale del cavo ottenuto è noto a tutti, ma per i meno esperti ricordiamo che dobbiamo vedere un connettore maschio che andrà connesso alla Micro-GT e uno femmina che andrà connesso al convertitore USB->RS232 oppure alla porta COM del PC desktop (ove provvisto di questa porta).
La tabellina riassuntiva del cavo a 5 conduttori, lato saldature, è:
femmina |
|
maschio |
5 |
> |
1 |
2 |
> |
4 |
3 |
> |
3 |
8 |
> |
7 |
7 |
> |
8 |
Sempre a titolo di promemoria riporto anche le assegnazioni standard dei connettori Cannon DB9.
In alcuni siti, ad esempio in un sito di robotica danese, la Micro-GT mini è distribuita come "pacchetto completo" quindi il cavo è già incluso come anche il corso di utilizzo su CD rom, un servomotore, un PIC con bootloader pre caricato e alcuni programmi dimostrativi che coprono grossomodo tutte le competenze richieste al programmatore di PIC comprese le gestioni dei segnali analogici, gli interfacciamenti seriali al PC per il controllo di 14 servo, i motori stepper, i display LCD, ecc. Il medesimo pacchetto mette a disposizione anche alcuni mini shield di uso fondamentale.
Ulteriore differenza con la sorella maggiore sta nel fatto che non è montato onboard alcun pulsante per la simulazione degli input, infatti l'unico presente, e anche indispensabile per l'utilizzo del bootloader, è il pulsante di reset. Nel caso il prodotto abbia un riscontro positivo tra il pubblico verrà realizzato un mini shield che funga da pulsantiera. L'accessibilità ai punti di I/O è comunque totale e molto chiara dato che gli strip line seguono con buona approssimazione il pinout del PIC sul layout del PCB.
Punto di forza di questa scheda rispetto al modello superiore è l'interfacciabilità diretta con ben 14 servomotori per i quali i connettori streep line a tre posizioni e i morsetti a viti per l'alimentazione separata sono stati appositamente studiati.
scarica immagine ad alta risoluzione ->UserFiles/ad.noctis/Mini microGT_con_8_servo.jpg
Nella foto sono rappresentati solo 8 dei possibili 14 servomotori collegabili, al fine di non avere troppi cavi nell'immagine che avrebbero reso poco chiara l'immagine, tuttavia è facilmente intuibile che tutti gli strip line alla destra del PIC possono ospitare un servo motore secondo la piedinatura standard a tre fili, Vcc a +5V (separata dall'alimentazione della logica) al centro, il pin più vicino al pico, generalmente Blu arancio bianco o giallo a seconda della casa costruttrice corrisponde al segnale monostabile ripetuto che posiziona in maniera angolare il servomotore, mentre il pin rimanente dei tre, ovvero quello dal lato della porta di comunicazione è la massa dei motori in comune con la massa della scheda. Questo tipo di collegamento crea una sorta di protezione intrinseca del servo dalle inversioni fortuite di innesto del connettore dato che il pin di alimentazione si trova al centro e quindi in una posizione simmetrica. Esso continua ad avere la tensione corretta ma comunque il motore non si muoverà perché il pin a cui è destinato il segnale si troverà a massa.
Il quarzo potrebbe rimanere intercambiabile montandolo anziché saldato a stampato semplicemente su zoccolo a tulipano come anche i due condensatori ceramici con la nota equivalenza:
Nella foto vediamo chiaramente la soluzione per rendere intercambiabile il quarzo quando la scheda è usat come sistema di sviluppo e prove in laboratorio.
Al fine di garantire un buon contatto elettrico tra i sottili reofori dei condensatori e quarzo con i rispettivi zoccoli si consiglia di incurvarli un po' e di fare si che la loro apertura naturale li tenga pressati al metallo interno degli strip line femmina con cui si è costruita la piedinatura. chi si sente troppo incerto lasci perdere questa soluzione e saldi direttamente il quarzo da 4 Mhz sullo stampato tenendo conto che nel progetto finale la velocità di esecuzione risulterà sballata usando le vecchie delay, invece sarà verosimile usando le nuove delay aggiornante. (ricordarsi di cambiare il #define del quarzo nella prima riga dell'header define .h.
Schema elettrico.
Lo schema elettrico è molto basilare
ed essenziale, non ci sono cose misteriose o granché particolari tranne forse
la soluzione con diodo 1N4148 e doppia resistenza al piedino MCLR.
-----------------------------------------------------------------------------------------------------------------------------------------------------
Lista dei componenti:
R1 = compresa tra 220 e 1K (buona 560)
R2 = 10k pull up per il comando di reset
R3 = 1K consente applicazionedella tensione di programmazione senza cortocircuitare
RN1 = rete resistiva con comune su pin 1 e 8 vie, in alternativa 8 resistenze di valore tra 220 e 1K.
D1 = 1N4148 impedisce alla tensione di programmazione di defluire selle alimentazioni danneggiano PIC e regolatore.
P1 = pulsante di reset, normalmente aperto per stampato (tipicamente omron)
C1=C2 = Condensatori ceramici 18pF se quarzo 20Mhz, 22pF se quarzo a 4Mhz
C3=C4=C5=C6 = 10uF 35VL lettrolitici per traslatore di livello MAX232
C7 = 100 nF poliestere (filtro su alimentazione del PIC)
LD1 - LD8 = diodi LED rossi 3 mm (montare con catodi verso il PIC, quindi in giù)
power = diodo led verde 3 mm (montare con catodo verso il PIC, quindi in su)
Zoccoli 2 da 7+7 pin oppure 1 da 28 pin per il microcontrollore
zoccolo 8+8 pin per il traslatore di livello.
X1=X2=X4 = morsetti a vite a due vie per montaggio su stampato
X3 = connettore Cannon DB9 femmina per montaggio su stampato a 90 gradi.
LM7805 = regolatore di tensione positiva per alimentazione TTL della scheda
MAX232 = traslatore di livello per adattare le tensioni duali +/- 12VDC della trasmissione seriale a TTL UART PIC
PIC16F876 = microcontrollore PIC a 28 pin o equivalente pin to pin come ad esempio 18F2520 o 16F873
SV1 = strip line maschio a 6 vie meglio se lungo e 90 gradi per connessione con PICkit 2 o PICkit 3 passo integrato
Analog/digital = strip line maschio a 6 vie standard passo integrato
SV9 = strip line maschio passo 8 vie passo integrato
SV3-SV4-SV5-SV6-SV7-SV8 = strip line maschi a tre vie passo integrato
SV10-SV11-SV12-SV13-SV14-SV15-SV16-SV17 stri line maschi a tre vie passo integrato
uno strip line femmina a 40 vie per costruire i cavi flat e gli zoccoli del quarzo/condensatori rimovibili
piattina rosso nera per alimentazione del dispositivo
Fornire al morsetto X1 un tensione di alimentazione compresa tra 7 e 18 volt (sopporta i 24) X1-1 positivo, X1-2 gnd
------------------------------------------------------------------------------------------------------------------------------------------------------------
Sempre di grande utilità è il tenere sottocchio il pinout del microcontrollore PIC a 28 pin per il quale la scheda è stata sviluappata.
Tempo permettendo verrà realizzato uno shield che implementa i giusti incroci di pin in modo da poter installare un microcontrollore Atmel. per il momento non è assolutamente compatibile quindi non tentiamo l'inserimento.
La realizzazione di una scheda così compatta è bene non lasciarla nelle mani di FidoCad ma ad uno strumento un po' più potente come Eagle. E' stata infatti realizzata in dual layer su laminato di tipo FR4.
Dopo la fase di sbroglio automatico eseguito con il comando di autorouting (si vedano i miei precedenti tutorial "esercizi di Eagle") si ottiene quanto vediamo qui sotto:
I tre morsetti a vite a due vie hanno il seguente significato, elencando dall'alto:
La fase successiva della lavorazione è l'esecuzione del CAM (vedere i tutorial esercizi di Cad Eagle che ho pubblicato su grix). L'uso degli strumenti di CAM integrati su Eagle producono dei files chiamati gerber.
I gerber rappresentano le direttive di controllo che le macchine a controllo numerico attendono per la realizzazione fisica del PCB, ad esempio il fil .drd ottenuto tramite il passaggio di CAM con l'attivazione della macro excellion.cam restituisce coordinate e diametri di tutti i fori presenti nel supporto, analogamente il file .GKO restituisce i profili di fresatura alla macchina che monta gli utensili da taglio, sarebbe come dire contorni e profili del PCB.
Il risultato finale è questo:
Micro-GT mini lato componenti. (62mm x 55mm)
La fase di assemblaggio non nasconde nessuna difficoltà e può essere realizzata da un esperto in circa mezzora. Un po' lunga è la fase di saldatura dei pin dei servo, che consiglio vivamente di saldare a righe di tre verticali (come indicato nella serigrafia) quindi si avrà un utile promemoria del fatto che questi connettori sono espressamente pensati per i sevomotori. Evitate quindi, anche se è possibile farlo, di saldare la riga di strip line maschi, da otto per il PORTB (il gruppo più a destra) e da 6 per il PORTC su tre righe orizzontali. Al PORTC mancano due punti di I/O perché sono impegnati dalla porta di comunicazione seriale, si è preferito sacrificarli piuttosto che complicare notevolmente il layout del PCB.
Si ricorda che sulla porta seriale arrivano segnali bipolari a +12 e -12 Volt, quindi i condensatori elettrolitici collegati al traslatore di livello MAX232 potranno avere un voltaggio di lavoro anche di soli 35VL risultando quindi molto compatti. In fase di montaggio teniamo tutti i positivi (reofori più lunghi) orientati verso il regolatore di tensione come chiaramente indicato nella serigrafia .
Ecco un esemplare della Micro-GT mini assemblato:
Le reti resistive sono oggi componenti molto comuni ed economici, ma può succedere che qualche piccolo negozio non ne disponga a magazzino, in questo caso non esitiamo a montare otto resistenze da 1/4w di valore compreso tra i 220 Ohm e 1K, in posizione verticale, tenendo presente che quella più a sinistra avrà il reoforo in alto non tagliato ma semplicemente piegato verso le altre resistenze per poi rientarre nello stampato nel pin 1 della rete resistiva (terminale comune) saldiamo tutti i reofori verticali rimasti liberi a questo trasverso prima di tagliarli a misura.
Abbiamo costruito manualmente la nostra rete resistiva.
Come
sappiamo per questioni di compatibilità con alcuni file .hex che possiamo
trovare in internet è bene che il nostro I.D.E. (sistema di sviluppo
ovvero la Micro-GT mini) possa lavorare a più velocità, ecco perché nella foto,
e come già spiegato in precedenza, i condensatori hanno i reofori cosi
stranamente lunghi. difatti non sono saldati come anche il quarzo. Ovviamente
questa soluzione va bene solo in laboratorio e in fase di sviluppo. Se la
scheda avesse una destinazione finale come controllo di qualsivoglia cosa,
allora quarzo e condensatori ceramici vanno obbligatoriamente
ben saldati al PCB.
Muniamo adesso la nostra realizzazione di alcuni utili accessori, il primo è un cavetto flat a 8 conduttori che ha lo scopo di unire lo srip line dei LED con il PORT di cui vogliamo visualizzare lo stato.
Un secondo cavo, analogo ma a soli 6 conduttori dovrà essere costruito per essere inserito sul connettore indicato con analog/digital, avente appunto lo scopo di consentire il collegamento del PORTA con segnali TTL provenienti dall'esterno oppure con segnali analogici. La simulazione di tali segnali anlogici potrà avvenire ad esempio collegando fino a 6 potenziometri da 10K ohm aventi il cursore collegato a uno di questi pin, mentre i due laterali ai morsetti X2-1 (ovvero a +5V) e l'altro a X2-2, ovvero alla massa del circuito.
Alcuni programmi di test.
Questo decimo episodio di Let's GO PICe' il primo basato sulla piattaforma ridotta Micro-GT mini e apre un nuovo filone di esempi di programmazione e metodologie particolarmente adatte agli ambienti didattici, hobbistici o per l'auto apprendimento. Come per i precedenti episodi saranno presentati dei capitoli per specifici argomenti, quindi quanto si presenta ora e' da considerarsi solo appendice al lancio del nuovo Hardware G-Tronic Robotics. In sostanza verranno messi qui dei compilanti senza curarsi minimamente della fase di creazione del sorgente dato che questa si da o per gia' acquisita dalla lettura dei precedenti capitoli oppure verra' presentata e approfondita in capitoli successivi.
Quello che interessa ora e' testare bene l'Hardware.
Esempio 1: Bargraph su segnale analogico.
Si vuole accendere i led connessi al PORTB in funzione del valore analogico presente nel primo canale del PORTA del PIC 16F876A. Il range 0->5V viene quindi diviso in 8 livelli e il segnale analogico che simula ad esempio il volume di un liquido dentro a una cisterna o una luminosita' ambientale o anche una temperatura, e' simulato tramite l'azione manuale su un potenziometro.
scarica il file hex ->ADCsoglia.zip
scarica il downloader ->downloader.zip
Nella foto vediamo il corretto collegamento della scheda per il funzionamento di questo programma di test. il potenziometro da 10K ha il cursore (filo bianco centrale) collegato tramite uno strip line, ad una posizione, al connettore ANALOG/DIGITAL nel primo pin dal lato morsetti, risulterà connesso a RA0 ovvero al primo canale analogico. I fili rosso e neri lato potenziometro sono collegati rispettando i colori a 5Vcc della scheda (morsetto X2-1) e massa della scheda (morsetto X2-2). Ruotando il cursore del potenziometro si simula un segnale analogico compreso tra 0 e 5V.
Una serie di comparatori software accenderanno i led connessi al PORTB, ad esempio a rampa.
ATTENZIONE: in alcuni casi si potrebbe verificare che il LED 4 (il primo spento della foto) non si accenda. Non si tratat di un problema hardware ma software da ricercarsi non nel sorgente "C" ma bensì nello specifico bootloader utilizzato che potrebbe tenere impegnato RB3 del 16F876A dato che questo, come si può notare guardando la piedinatura riportata poco sopra, è abbinato al segnale di programmazione PGM. Caricando il medesimo programma in un PIC privo di bootloader tramite il pickit o la Micro-GT pic versatile IDE, il problema sparisce.
Esempio 2: controllo di un servomotore da segnale analogico.
Il secondo esempio proposto è il controllo di un servomotore da modellismo. Come nell'esempio precedente non ci addentreremo nel sorgente, dato che sarà argomento di un episodio del tutorial "Let's GO PIC" e ci serve in questo momento solo dimostrare la funzionalità della nuova piattaforma Micro-Gt mini.
Un servomotore collegato a RB0 deve essere controllato dalla posizione analogica imposta da un potenziometro da 10 k collegato a RA0.
scarica il file .hex che gestisce il servomotore ->mini1servo.zip
l'assemblaggio corretto è visibile nella foto sottostante:
Chi fosse interessato ad avere la Micro-GT mini, solo circuito stampato oppure già assemblata e collaudata con bootloader mi può contattare sulla mail di grix oppure all'indirizzo ad.noctis@gmail.com
E' possibile avere anche piccole serie del circuito stampato ad esempio per le scuole e centri di formazione.
auguro a tutti buon divertimento.
Marco Gottardo as ad.noctis
This opera is licensed under a Creative
Commons Attribution-NonCommercial-ShareAlike 2.5 Italy License.
Sul link seguente troverai le condizioni per concorrere alla vicinta el circuito stampato della Micro-GT presentata in questo articolo.
Leggi attentamente le condizioni per partecipare e riceverai via posta il tuo esemplare.
http://www.gtronic.it/energiaingioco/it/scienza/vinci_Micro-GT.html
Per gli utenti che volessero recarsi in visita a Padova, visitate il sito di jenny tramite il link sottostante.