Robot a rilevazione di ostacoli
6.MICROCONTROLLORE
Il microcontrollore (PIC) è forse la parte fondamentale del circuito, che elabora le informazioni e coordina le operazioni da svolgere. Nel nostro caso le informazioni vengono fornite dalla combinazione in ingresso dei sensori di bordo tavolo e i sensori di rilevamento ostacoli. Il PIC tramite un driver motori (L298) coordina l’avanzamento dei motori.
Un microcontrollore o microcontroller, detto anche computer single chip è un sistema a microprocessore completo, integrato in un solo chip, progettato per ottenere la massima autosufficienza funzionale ed ottimizzare il rapporto prezzo-prestazioni per una specifica applicazione, a differenza, ad esempio, dei microprocessori impiegati nei personal computer, adatti per un uso più generale.
I microcontroller sono la forma più diffusa e più invisibile di computer. Comprendono la CPU, un certo quantitativo di memoria RAM e memoria ROM (può essere PROM, EPROM, EEPROM o FlashROM) e una serie di interfacce di I/O (input/output) standard, fra cui molto spesso bus (I²C,SPI,CAN,LIN). Le periferiche integrate sono la vera forza di questi dispositivi: si possono avere convertitori ADC e convertitori DAC multicanale, timer/counters, USART, numerose porte esterne bidirezionali bufferizzate, comparatori, PWM.
Per la realizzazione di questo progetto abbiamo utilizzato il PIC 18F452, che dispone di 40 pin disposti in pedinatura dip (dual in line package). Il PIC per funzionare deve essere alimentato a 5V con il piedino numero 1, cioè MCLR (memory clear) a +Vcc = 5V, e i piedini 13 e 14, rispettivamente OSC1 e OSC2 collegati a un quarzo da 20MHz e portati a massa tramite condensatori ceramici rispettivamente per il pin 13 da 10pF e per il pin 14 da 22pF.
I PIC della famiglia 18, rispetto ai suoi predecessori hanno 32byte di memoria e dispongono di più porte configurabili come input/output:
_ PORTA, RA0…RA5, cioè dal piedino 2 al 7;
_ PORTB, RB0…RB7, cioè dal piedino 33 al 40;
_ PORTC, RC0…RC7, cioè dal 15 al 18 e dal 23 al 26;
_ PORTD, RD0…RD7, cioè dal piedino 19 al 20, dal 21 al 23 e dal 27 al 30;
_ PORTE, RE0…RE2, cioè dal piedino 8 al 10;
_ i piedini 11 e 32 vanno collegati a Vcc;
_ i piedini 12 e 31 vanno collegati a massa (GND);
Abbiamo settato la PORTC come input, perciò i piedini numero 15, 16, 17, 18 danno al PIC un segnale a livello “alto” o “basso”(ovvero lo 0 logico o l’1 logico) secondo le soluzioni circuitali precedentemente spiegate nei fine-corsa.
I piedini 15 e 16 sono “visti” dal PIC rispettivamente come sensore ostacolo sinistro e sensore ostacolo destro.
I piedini 17 e 18 sono invece “visti” dal PIC rispettivamente come sensore bordo tavolo sinistro e sensore bordo tavolo destro.
La PORTD invece è stata settata output come segue:
_ piedino 33, ENABLEB;
_ piedino 34, IN4;
_ piedino 35, IN3;
_ piedino 36, ENABLEA;
_ piedino 37, IN2;
_ piedino 38, IN1;
Piedinatura ricavata dai datasheet
Integrato Pic18f452