TUTORIAL MICROROBOTICA Introduzione: Questo tutorial cercherà di spiegare come costruire un microrobot elementare. E’ stato realizzato per tutte quelle persone alle prime armi che desiderano costruire un microrobot senza avere delle conoscenze in materia. Verrà spiegato come costruire i vari componenti di supporto ed il microrobot stesso, successivamente verrà spiegato come programmarlo ed ampliarlo o modificarlo. Tutti i componenti necessari per il lavoro e le apparecchiature verranno elencate durante la spiegazione degli argomenti. Per i programmi necessari alla realizzazione verrà fornito il link per il download o, dove possibile, direttamente l’eseguibile. Verrà spiegato anche il settaggio dei parametri ed il loro utilizzo. A questo indirizzo (www.ivotek.it/forum) potete trovare il forum, creato per eventuali precisazioni o chiarimenti nei discorsi affrontati. Grazie a questo forum sarà possibile interagire con l’opera suggerendo delle soluzioni o comunicando dei problemi riscontrati. Oltre al sito ed al forum www.ivotek.it/forum è possibile contattarmi agli indirizzi: [email protected], [email protected]. L'ultima versione aggiornata di questo documento la trovate all'indirizzo www.ivotek.it. Il presente tutorial non può essere venduto senza l'autorizzazione specifica del produttore, è consentita la sola divulgazione no profit. Versione 1.0 LEZIONE 1 Un microrobot, a grandi linee, è un apparecchio elettronico con la facoltà di “pensare” da solo e quindi di muoversi senza l’aiuto dell’uomo. Da solo deve capire com’è l’ambiente che lo circonda e quindi “decidere” cosa fare. Per “pensare” da solo ha bisogno di un piccolo cervello chiamato microcontrollore. Oltre al cervello ha bisogno di dispositivi che lo mettano in contatto con l’esterno, esempio: le braccia, le gambe gli occhi etc ovvero i sensori e gli attuatori. Inizieremo con la descrizione del cervello, da ora in poi chiamato microcontrollore. Il microcontrollore che verrà utilizzato è il PIC 16F84 oppure il PIC 16F84A. Se non trovate in commercio il 16F84 perchè obsoleto, potete usare il 16F628 oppure il 18F1220 -18pin(in questo caso bisogna cmabiare condensatori e quarzo). ATTENZIONE: sostituendo il 16f84 con gli altri integrati non sarà possibile usare il programma MontyPlus, pertanto il Poor dovrà essere programmato con i normali linguaggi di programmazione. Per facilitare la scrittura del tutorial il PIC di riferimento menzionato sarà il 16F84 ma le stesse regole valgono anche per gli altri microcontrollori citati poco sopra. Il microcontrollore PIC 16F84 è prodotto dalla microchip®, non è molto costoso ed è adatto per il nostro scopo. Il PIC 16F84 va visto come un computer di casa ma molto piccolo e con meno capacità quindi di un mini computer a nostra disposizione. Questo computer ci viene venduto senza niente dentro, nessun sistema operativo nessun programma niente di niente, dobbiamo pensarci noi a mettere dentro il tutto, altrimenti non funzionerà mai. Per fare un paragone con il cervello, noi compriamo un cervello nuovo ma vuoto e dobbiamo inserire al suo interno il modo di “ragionare” e “pensare” o gli dobbiamo dire come reagire in certe situazioni. Per fare ciò dobbiamo creare un programma e poi inserirlo al suo interno. Come fare i programmi lo vedremo più avanti, come inserire il programma all’interno viene spiegato qui di seguito. Per inserire il programma nel microcontrollore c’è bisogno di una scheda elettronica chiamata “programmatore”. Di programmatori per i microcontrollori ce ne sono un infinità noi ne dobbiamo avere uno specifico per il PIC 16F84. In rete ed in commercio ne troverete molti (vedi ludipippo o cerca nei motori di ricerca “programmatore per pic”), con caratteristiche e dimensioni differenti dai vari modelli ed anche con prezzi più o meno convenienti, noi ne costruiremo uno. La costruzione del programmatore è a solo scopo didattico, se non avete una porta parallela e, quindi, dovete comprare un adattatore usb/parallela o seriale/ parallela, vi conviene comprare direttamente un programmatore, la spesa sarà la stessa. LEZIONE 2 Per costruire il nostro programmatore abbiamo bisogno di un saldatore con punta fine (va bene una qualunque marca e modello anche il meno costoso), un po’ di stagno con un diametro di 1 millimetro ed una spugnetta sempre imbevuta di acqua per non rovinare subito il saldatore. Se volete potete comprare (ma non è indispensabile) un apparecchio chiamato terza mano ed un succhiastagno. Comprato tutto l’occorrente citato sopra, si passa allo schema elettrico. Lo schema elettrico non è altro che un disegno tecnico con su scritto cosa dobbiamo costruire e come deve essere costruito. La complessità dello schema elettrico riportato sopra non deve spaventarvi perché lo vedremo pezzo per pezzo cercando di capire cosa sono quei simboli strani e come vanno interpretati. Inizieremo con la parte “alimentatore stabilizzatore”. Oltre allo schema elettrico viene fornita anche la lista componenti, ovvero la lista dei nomi e dei valori dei singoli componenti, qualche schema inserisce i valori affianco al disegno del componente stesso. I componenti sotto elencati si possono trovare in qualunque negozio di elettronica. R1= D1= D2= D3= D4= D5= D6= D7= D8= C1= C2= C3= U1= U2= 330 Ohm 1N4007 1N4007 1N4007 1N4007 1N4007 1N4007 1N4007 Diodo led rosso da 3mm 100microF 100nanoF 100nanoF LM7812 LM7805 Connettore femmina per spinotto trasformatore da superficie Premessa: Ogni apparecchiatura elettronica deve essere alimentata, ovvero gli dobbiamo fornire dell’energia, esempio: una radio ha bisogno o di batterie o di corrente di rete per funzionare lo stesso vale per il televisore od il cellulare. Anche il programmatore ha bisogno di alimentazione, potevamo mettere delle batterie ma si sarebbero scaricate subito e quindi utilizziamo un “alimentatore stabilizzatore”. Ora vi spiego a cosa serve e come funziona: L’alimentazione che preleviamo da casa (per intenderci quella presente nella presa 220 Volt) è troppo alta per i nostri scopi quindi la dobbiamo abbassare per evitare di bruciare tutti i componenti del programmatore. Il programmatore funziona con una tensione di 14 Volt, quindi dobbiamo abbassare i 220 Volt a 14 Volt. Per fare questo utilizziamo un trasformatore molto facile da reperire in commercio o comunque di utilizzo comune (Quello in foto è di 12V 500mA). Il trasformatore abbassa la tensione (o il voltaggio espresso anche con la lettera V), ma ancora non può essere applicata al nostro programmatore. La tensione presente nella presa è alternata ovvero come nella foto. LEZIONE 3 Tutti i componenti nella lista li inseriremo in una “scheda mille fori” (anche questa si può acquistare nei negozi di elettronica). La scheda mille fori è adatta al nostro scopo e per i principianti è una buona scuola sia per saldare che per creare dei circuiti elettronici. Ne esistono varie misure 10X16 oppure 7X10, non importa se sono poco più piccole o poco più grandi. Vediamo il primo pezzo dello schema: Partendo da sinistra vediamo il primo componente. Questo componente non è altro che uno spinotto femmina (connettore) per inserire lo spinotto (maschio) del trasformatore che abbiamo precedentemente comprato. Quando comprate il connettore portate con voi il trasformatore perché esistono vari tipo di connettori con diverse misure. Utilizzeremo la scheda mille fori da 10 centimetri per 16 centimetri. Andava bene anche quella più piccola ma per le persone poco esperte è meglio utilizzare una basetta più grande. Per montare il connettore nella basetta millefori doppiamo operare come segue: Allargare i buchi della basetta mille fori con un cacciavite o con una punta di trapano piccola e poi inserirlo come nella foto. Per tensione alternata si intende una tensione che parte da zero volt e man mano che il tempo passa aumenta fino ad un suo massimo per poi riscendere fino allo zero. Dallo zero poi continua e scende sotto lo zero per un suo minimo e poi risale verso lo zero. La tensione continua (per intenderci quella delle batterie o degli alimentatori stabilizzati) rimane costante nel tempo, non varia come la corrente alternata. (vedi sotto) Questo tipo di corrente è quella che serve a noi, quindi il nostro alimentatore stabilizzato ci trasformerà la corrente alternata in continua e la renderà stabile nel tempo. LEZIONE 4 Grazie al connettore montato in precedenza possiamo portare la corrente alternata all’ingresso del nostro circuito ed applicarla al pezzo del circuito successivo. Questi componenti si chiamano diodi, nella foto ce ne sono 4. Di diodi ne esistono vari modelli e servono a varie cose, noi vedremo solo i modelli che ci interessano per il programmatore. Il modello che utilizzeremo è il 1N4007. Se non trovate lo stesso modello vanno bene anche i seguenti: 1N4003 – 1N4004, se poi avete dei dubbi potete chiedere un equivalente al vostro negoziante sicuramente vi saprà dare una mano. Il diodo si presenta come un cilindro nero con due pezzi di filo che escono dal suo interno uno si chiama ANODO (A) e l’altro si chiama CATODO (K). Si può notare subito il catodo dalla barra bianca a destra, posta sul contenitore del diodo (foto in basso). I diodi sono collegati a “ponte”, questo tipo di collegamento serve per una trasformazione intermedia tra tensione alternata e tensione continua. In ingresso noi abbiamo una forma d’onda alternata (vista in precedenza) ed in uscita abbiamo una forma simile a quella in figura. Il ponte di diodi non fa altro che trasportare la parte negativa delle semionde nella parte positiva. Esempio: Quindi avremo questo: Ora dobbiamo montare i diodi sulla basetta e fare i nostri primi collegamenti. Pieghiamo ad “U” il primo diodo e inseriamolo nella basetta mille fori come in figura. Fate molta attenzione alla riga bianca del diodo. Giriamo la basetta mille fori e saldiamo i due filetti che sporgono nel seguente modo: Fate riscaldare il saldatore in modo che arrivi alla temperatura ottimale (5 - 8 minuti di attesa) Bagnate la spugnetta con un poco di acqua. Prendete lo stagno e scioglietene un poco sulla punta del saldatore tanto per renderla argentata e per vedere se è pronto. Ora pulite la punta del saldatore con la spugnetta imbevuta d’acqua. Nella punta del saldatore si sarà formata una piccola parte dove lo stagno si scioglierà più facilmente. Questa zona è da ricordare perché ci servirà durante il lavoro. Andiamo avanti e posizionate il saldatore tra il filo che fuoriesce dalla basetta mille fori e la piazzola, come in figura. Ora avvicinate lo stagno e scioglietene un pochino tra la piazzola, il filo ed il saldatore (nella zona dove lo stagno si scioglie più facilmente). Cercate di toccare tutti e tre i componenti, se non ci riuscite avvicinatelo al saldatore. Sciolto lo stagno fate scivolare la punta del saldatore verso l’alto e poi allontanatela, dovreste avere un bel cono. E’ molto importante rimanere poco tempo con il saldatore sui componenti e sulle piazzole, questo per evitare di bruciare determinati componenti o di staccare la piazzola dalla basetta. Pulite costantemente il saldatore soprattutto se ci sono dei residui di stagno, solo così otterrete delle saldature perfette. Non demoralizzatevi se le prime saldature non saranno lucide e ben fatte è solo una questione di tempo, provando e riprovando riuscirete a farle perfette. Dopo aver saldato tutti e due i piedini del diodo tagliate i reofori in eccesso con delle tronchesine o con delle tronchesine per unghie come in foto. Conservate in una bustina i reofori tagliati perché ci potrebbero servire in futuro. Inserite gli altri 3 diodi come avete fatto con il primo e saldateli nello stesso modo. Ricordatevi di fare attenzione alla riga bianca. Lasciate tra un diodo ed un altro due piazzole di distanza, solo per rendere le cose più facili in futuro. Dovreste avere una basetta come in figura. LEZIONE 5 Per collegare i vari componenti tra di loro utilizziamo del filo rigido che possiamo comprare sempre nei negozi di elettronica. Il filo che ho utilizzato io è 1 metro di cavo UTP rigido, viene usato per le reti lan, ma va benissimo un qualsiasi cavo rigido, tipo il doppino telefonico o cavi simili. Ritorniamo allo schema e vediamo in modo approfondito come sono collegati i diodi tra di loro. La parte in rosso rappresenta un filo che unisce anodo del diodo 1 con il catodo del diodo 2. I pallini all’inizio ed alla fine della linea stanno ad indicare che il filo (rosso) è saldato con l’anodo del diodo 1 ed il catodo del diodo 2. Vediamo un altro esempio: Questa volta il filo è saldato sull’anodo del diodo 2 e 3, in più c’è un pezzo di filo che fa parte dell’uscita (lo vedremo meglio più avanti). Notate che nel punto cerchiato in blu non c’è il “punto nero”, sta a significare che li i due fili non si toccano ma passano uno sopra all’altro. Adesso che abbiamo queste nozioni passiamo alle saldature: 1) Spelate un po’ di cavo rigido 2) Preparate il saldatore e lo stagno 3) Imbevete di acqua la spugnetta 4) Dopo pochi minuti controllate se il saldatore è pronto sciogliendo un po’ di stagno sulla punta 5) Pulite la punta con la spugnetta 6) Iniziate a saldare Prendete la basetta ed un pezzo di filo per il collegamento, sciogliete lo stagno che si trova nella piazzola dell’ anodo di D1 ed appoggiatevi il pezzo di filo. Poi togliete il saldatore ed aspettate che lo stagno si raffreddi. Se lo stagno non dovesse coprire tutto il filo potete aggiungerne dell’altro ma non eccedete. Dovreste avere una basetta simile a quella in figura. Poi piegate il filo per arrivare al catodo di D2 e saldatelo come avete fatto prima. Tagliate il filo in eccesso. Fate lo stesso con gli altri collegamenti per avere alla fine un circuito come quello in foto. Attenzione a non far toccare i fili tra di loro e cercate di fare i collegamenti in modo pulito e preciso (anche se all’inizio sarà molto difficile) LEZIONE 6 Adesso è arrivato il momento di vedere un altro componente, il condensatore. Il suo valore è di 100 micro Farad 25V (va bene anche 18V -16V). Il condensatore serve a “riempire i buchi” della forma d’onda che esce dal ponte di diodi. La forma d’onda che esce dal ponte di diodi ha dei spazzi vuoti (quelli segnati in blu) che vanno riempiti per ottenere una tensione continua. Il condensatore va visto come una batteria che accumula tensione per poi rilasciarla quando è assente. In questo modo si può ottenere la corrente continua di cui abbiamo bisogno. Il condensatore si presenta come un cilindro con due reofori, il positivo ed il negativo. Il negativo ha il reoforo più corto e sul contenitore è presente il segno – (meno), nello schema invece è ben evidenziato. Il condensatore va montato affianco al ponte di diodi con il negativo verso l’alto, come in foto. I collegamenti vanno effettuati come in foto, fate attenzione ad usare il cavo con la guaina per il negativo, questo serve ad evitare che si tocchino tra loro i fili. Mentre saldate vi può essere utile usare la terza mano ma non è indispensabile. Adesso passiamo allo stabilizzatore U1 (LM7812) ed ai 3 diodi (D5 D6 D7). U1: Piedino 1 ingresso (18V circa). Pedino 2 Meno (massa). Piedino 3 Uscita (12V) Questo componente serve a tenere stabile la tensione sui 12V. Il componente si chiama 7812 perché rende stabile i 12V. L’altro stabilizzatore si chiama 7805 perché rende stabile i 5 V. Supponiamo di avere nel piedino 1 del LM7812 una tensione di 18V in uscita avremo una tensione di 12V. Per funzionare correttamente ed avere 12V stabili, Il piedino 2 va collegato alla massa (negativo del condensatore C1). Nello schema il piedino 2 è collegato a 3 diodi e poi alla massa, questo stratagemma ci permette di portare la tensione da 12V a 13,8V. Perché ? Per programmare il PIC 16F84 abbiamo bisogno di una tensione stabilizzata di 13,8V (a volte 14V) e non di 12V. Come si ottengono i 13,8V ? Per ottenere i 13,8V sono stati aggiunti 3 diodi uno di seguito all’altro. Ogni diodo per lavorare ha bisogno di 0,6V che moltiplicati per 3 da 1,8V,in questo modo si crea una “massa virtuale” più bassa di 1,8V, questo voltaggio poi va sommato ai 12V dello stabilizzatore e così otteniamo i 13,8V. LM 7812 va montato con la parte metallica verso l’alto ed a fianco del condensatore. Sotto vanno montati i3 diodi, ricordate di fare attenzione alla riga bianca che indica il catodo del diodo. Il primo diodo a sinistra (quello inclinato) ha il catodo verso il basso, il secondo verso l’alto ed il terzo di nuovo verso il basso. NB: Il terzo diodo è leggermente inclinato solo per risparmiare spazio. Fate molta attenzione ad i collegamenti questa volta sono molto ingarbugliati. Prendete sempre come punto di riferimento lo schema. Al piedino 3 (l’uscita) è presente ancora un condensatore da 100 nano Farad. Il condensatore serve a togliere eventuali disturbi residui sulla forma d’onda per ottenere un segnale più continuo possibile. Ne potrete trovare di diverse forme, l’importante e che sia di 100 nano Farad. Saldiamo anche questo ed il primo stabilizzatore è terminato. LEZIONE 7 Passiamo al secondo stabilizzatore (U2). Come vedete l’integrato LM7805 non fa altro che trasformare la tensione da 12V a 5V, anche qui all’uscita, (piedino 3) ritroviamo il condensatore da 100 nano Farad. La differenza tra entrata (12V) e l’ uscita (5V) è molto alta e questo comporta un aumento della temperatura dello stabilizzatore, quindi va montata un aletta di raffreddamento. All’uscita dell’integrato LM7805 è presente una resistenza da 330Ω ed un diodo led rosso. Il diodo led rosso va visto come una lampadina di colore rosso e come un diodo ha la sua polarità. Il questo caso il catodo è il reoforo più corto e l’anodo il più lungo. Questo led è una “spia” che ci avverte della presenza o meno della tensione. La resistenza posizionata prima del diodo led serve a diminuire la tensione da 5V a circa 2V, questo per evitare di bruciarlo. Assicuratevi che il lato più lungo del led sia collegato verso la resistenza. Terminato di montare i componenti diamo alimentazione, il diodo led si dovrà accendere. Se il diodo led non si accenderà, vuol dire che è stato commesso qualche errore. In caso di errori fate come segue: Controllare che i fili o le saldature non si tocchino tra loro e che i componenti siano stati montati correttamente. LEZIONE 8 Prima di andare avanti analizziamo il circuito che abbiamo appena fatto. Come vedete, dallo schema al cablaggio (al montaggio) c’è una bella differenza, infatti la posizione dei componenti sullo schema non è uguale allo schema di cablaggio. I componenti nella basetta devono essere posizionati in modo da facilitare i collegamenti tra di loro e cercando di occupare meno spazio possibile. I reofori che avete tagliato (vedi diodi e resistenze) possono essere riutilizzati per i collegamenti tra i componenti. Facciamo una piccola parentesi anche sui componenti ed i loro valori. La resistenza che abbiamo montato è di 330Ω, ma come facciamo ad esserne sicuri? Con il codice dei colori: Se prendiamo una resistenza vedremo che ci sono delle barrette colorate, quelle barrette indicano il valore. Qui di seguito vi riporto la tabella dei colori: NERO 0 MARRONE 1 ROSSO 2 ARANCIONE 3 GIALLO 4 VERDE 5 BLU 6 VIOLA 7 GRIGIO 8 BIANCO 9 Adesso prendiamo la resistenza e mettiamola orizzontalmente e vedremo che l’ultimo colore e più distante dagli altri (il quarto). Il primo colore indica il primo numero del valore, in questo caso il marrone indica il numero 1 (vedi tabella), il secondo colore indica il secondo numero del valore ed il terzo il fattore di moltiplicazione. Esempio: La resistenza in foto ha questi valori: Marrone 1 Nero 0 Arancione 3 Quindi il valore della resistenza è 10 con l’aggiunta di 3 zeri = 10000Ω Facciamo un altro esempio: Arancione Arancione Marrone 3 3 1 Quindi avremo 33 più 1 zero = 330Ω Altro esempio: Rosso 2 Rosso 2 Nero 0 Quindi avremo 22 più zero zeri = 22Ω Potremo trovare valori tipo: Marrone – Nero – Arancione, che equivalgono al valore 10000Ω e che verranno espressi con il valore 10KΩ, questo perché 10000Ω sono 10 KiloΩ. Un po’ come la pasta 1000 grami sono 1Kilo grammo, quindi 10000 grammi sono 10 Kgrami. Il quarto colore vi dice la tolleranza ovvero di quanto può oscillare il valore della resistenza. Il colore “oro” indica un 5% di tolleranza cioè il valore può variare, rispetto a quello disegnato sulla resistenza, del 5% in più o in meno. Per i condensatori il discorso cambia, il valore è scritto direttamente con i numeri. Esempio: 104 equivale a 100000nF (nano Farad), che equivale a 100pF (pico Farad). Se non sono specificati i zeri cioè sul condensatore c’è scritto 27 il valore è espresso in pico Farad (27pF). Il prossimo circuito serve per programmare il microcontrollore. Questo circuito è stato espressamente progettato per il 16F84 (o per il 16F628), quindi non va bene per tutti i microcontrollori. La lista componenti è la seguente: R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 C1 C2 C3 C4 D1 D2 = = = = = = = = = = = = = = = = = = = = 100Ω 100Ω 100Ω 100Ω 100Ω 10KΩ 10KΩ 10KΩ 10KΩ 100Ω 1KΩ 4,7KΩ 100Ω 10KΩ 27pF 27pF 100nF 100nF 1N4148 1N4148 DL1 TR1 Q1 U3 IC1 J1 = = = = = = Diodo led rosso da 3mm C558 Quarzo da 4Mhz 7407 (chiedete al negoziante un 7407) Zoccoletto 18 pin (per 16F84) Connettore (leggere testo) Il primo pezzo che descriviamo è il seguente: Il componente IC1 non è altro che uno zoccoletto da 18 pin (18 piedini), lo zoccoletto è il contenitore del 16F84. Al suo interno ci sono dei numeri che rappresentano il numero dei piedini dell’integrato che lo deve contenere, vediamo come si contano i piedini. Posizioniamo l’integrato che deve essere inserito nello zoccoletto in modo da avere la tacca ad U verso sinistra (quella segnata in blu). Adesso partendo dal basso a sinistra cominciamo a contare i piedini in senso antiorario. Questo ragionamento va usato per qualsiasi integrato rettangolare, da quelli piccoli a 8 pin a quelli più grossi a 18 pin, 28 Pin etc. Grazie a questo zoccoletto noi possiamo inserire il 16F84 nel circuito, programmarlo e poi spostarlo nel microrobot. I tre componenti Q1,C1,C2 sono l’oscillatore del pic. Il microcontrollore esegue le istruzioni, che noi gli diamo, in sequenza ovvero una dopo l’altra, queste operazioni le esegue con una cadenza (con un ritmo) dato dall’oscillatore. L’oscillatore non fa altro che dare il comando per eseguire l’istruzione e quindi anche la velocità di esecuzione del programma. In questo caso il quarzo è da 4Mhz (megaherz), ciò vuol dire che esegue 4 milioni di operazioni in un secondo. Il pic 16F84 può arrivare al massimo a 10Mhz cioè 10 milioni di operazioni al secondo. Fate attenzione ad i collegamenti dei componenti, riguardateli quando avete finito e confrontateli con lo schema. LEZIONE 9 Oltre all’oscillatore, il pic 16F84, ha bisogno dell’alimentazione per funzionare, il positivo (+5V) è collegato al piedino 14, il negativo (zero V) è collegato al piedino 5. Il condensatore C3 collegato tra il piedino 14 e 5 serve solo come filtro, ha la stessa funzione del condensatore C3 dello schema alimentatore visto in precedenza. Mi raccomando fate molta attenzione quando saldate, i collegamenti sono molto vicini ed è facile che si tocchino tra di loro. Cercate di non avere fretta prendete il tempo che vi serve perché questo circuito lo userete spesso e quindi non deve dare problemi. Ora passiamo al piedino 4. Questo piedino serve a cambiare “stato” al pic, quando questo piedino è alimentato a 5V il pic esegue le istruzioni al suo interno quindi funziona normalmente. Cambiando l’alimentazione e portandola a 13,8V (o 14V) il pic si mette in ascolto sui piedino 12 e 13 per caricare il nuovo programma. Per cambiare alimentazione da 5V a 13,8V si utilizza il circuito seguente. Alimentando il programmatore la tensione di 5V arriva al piedino 4 come è evidenziato dalla linea rossa. Come vedete la tensione di 5V attraversa la resistenza R12 ed il diodo D1 per poi arrivare al piedino 4. Qui vediamo un altro modo di utilizzo del diodo con una funzione differente. Il diodo D1 collegato “direttamente” cioè con la tensione sul anodo maggiore della tensione sul catodo permette di far scorrere la tensione e la corrente attraverso di esso. Collegato “inversamente”, cioè con una tensione sul anodo minore rispetto al catodo (vedi D2), la tensione e la corrente viene fermata, infatti non arriva alla resistenza R10 ed R11. Il collegamento che riguarda la resistenza R13 lo vedremo più avanti. Il transistor TR1 viene usato come interruttore, vediamo come. Quando diamo alimentazione al circuito la tensione di 13,8V viene applicata all’emettitore del transistor (il piedino con la freccetta) e tramite le resistenze R8 R9 alla base, come si vede dal colore viola. In questo modo il transistor PNP rimane interdetto ovvero non fa passare la corrente verso il collettore (piedino collegato alla resistenza R10). Portando la base del transistor a zero (colore verde), il transistor farà passare la corrente dall’’emettitore al collettore (colore viola). In questo modo il diodo led si accenderà ed arriveranno i 13,8 V al piedino 4 del pic ed al diodo led DL1 facendolo accendere. Ora vediamo lo schema pratico: Posizionate i componenti come in foto ed effettuate i collegamenti come abbiamo fatto fino ad ora. Assicuratevi che siano uguali alla foto in figura. Il circuito seguente è solo un adattatore tra il nostro computer ed il programmatore, vediamo come funziona: Il connettore J1 è la porta seriale che ci permette di prelevare le informazioni dal nostro PC. Da questa porta escono dei segnali che vengono applicati, tramite le resistenze R1-R2-R3-R4-R5, all’integrato 7407. All’interno del 7407 ci sono 6 buffer (quei triangolino chiamati U3A, U3B, U3C etc.),i numeri che vedete sono i piedini dell’integrato. Grazie a questi buffer possiamo adattare i segnali della porta parallela al circuito programmatore. Supponiamo che la nostra porta parallela non fornisca dei segnali a 5V ma a 3,4V oppure 4,5V, dopo i buffer questi segnali saranno tutti a 5V. Il piedino 5 del connettore J1 serve a cambiare “stato” al PIC, con una tensione di 5V si programma il PIC e con una tensione di zero volt il PIC è in esecuzione (l’abbiamo visto in precedenza). Il piedino 2 e 3 servono rispettivamente alla trasmissione del clock ed al programma da scaricare. Il programma non può essere scaricato all’interno del PIC senza il segnale di clock. Il clock segna la cadenza in cui le istruzioni devono essere inserite. Esempio: CLOCK Istruzione CLOCK Istruzione CLOCK Istruzione CLOCK Istruzione Il piedino 10 serve per leggere il programma inserito nel PIC ed il piedino 4 per resettare il PIC. PS: Nel circuito non è rappresentato ma il piedino 14 del 7407 è collegato a 5V ed il piedino 7 a zero volt. LEZIONE 10 Passiamo ora al cablaggio. Questa parte è molto ingarbugliata e difficile quindi state attenti alle saldature e non avete fretta. Posizionate i componenti come in foto. Fate attenzione perché sono molto vicini, notate la resistenza in alto ha un pedino piegato per evitare di toccare le piste nell’altro lato. Ora vediamo i collegamenti. Non sono tutti, gli altri li troverete nelle foto successive. I collegamenti li faremo passo passo perché si sovrappongono sugli altri. Inserite i collegamenti evidenziati in rosso, fate attenzione ad inserire la guaina come nelle foto. Ecco gli altri collegamenti al PIC. Nel montaggio ho notato degli errori, sono i seguenti. Il piedino 7 del 7407 NON va collegato come nelle foto precedenti ma come la seguente cioè a massa tramite un cavo con guaina. Il piedino 14 del PIC non va collegato come nelle foto precedenti ma come nella seguente, bisogna aggiungere anche il ponticello segnato in rosso. CORRETTA Anche l’alimentazione delle 2 resistenza R6 ed R7 è errata ERRATA CORRETTA LEZIONE 11 Ora colleghiamo l’ultimo pezzo ovvero il connettore J1. Ho preferito togliere il connettore J1 (la porta parallela) perché è molto difficile da saldare sulla mille fori e per questo collegheremo il cavo direttamente sulla mille fori. Procuratevi un metro di cavo con all’interno 6 fili oppure 6 fili separati, ed una parallela maschio. Questi componenti li potete trovare nei negozi di elettronica o smontarli da un vecchio cavo di una stampante. Colleghiamo i cavi alla parallela maschio nel seguente modo: PIN PIN PIN PIN PIN 2 3 4 5 10 VERDE GIALLO MARRONE GRIGIO ROSA Se i colori sono differenti non importa, basta rispettarli quando li colleghiamo alla basetta. Per contare i piedini del connettore maschio, prendete il connettore e giratelo, partendo da destra contate i piedini come in foto. Il numero dei piedini è scritto anche sulla plastica. Adesso colleghiamo i piedini 19-20-21-22-23-24-25 tutti insieme (con il filo rigido che abbiamo usato per i collegamenti della basetta) e successivamente al fili di colore bianco. Adesso chiudiamo il connettore fissando bene il cavo. Ora colleghiamo i fili alla basetta nel seguente modo: GIALLO VERDE ROSA GRIGIO MARRONE BIANCO R1 R2 R3 R4 R5 MASSA Ed ora fissiamo il cavo alla basetta con una fascetta o con un pezzo di fili o filo di ferro. Fatto ciò tagliate la basetta in eccesso ed il programmatore è terminato. LEZIONE 12 Adesso dobbiamo provare il programmatore. Per provarlo abbiamo bisogno del programma ICPROG®. Questo programma lo potete trovare facilmente in rete tramite i motori di ricerca oppure andando all’indirizzo www.icprog.com od inviandomi un e-mail all’indirizzo [email protected]. Una volta scaricato lo dobbiamo installare e configurare, l’installazione dipende dal sistema operativo che si possiede. PER WINDOWS 98: Far partire il programma e seguire passo passo le istruzioni. Premere F3, vi troverete una finestra come quella sottostante, settate i parametri come in figura e premete OK. Andare nel menù SETTAGGI e selezionare la voce OPZIONI, si aprirà la finestra sottostante, andare nella scheda PROGRAMMAZIONE e togliere i flag come nella figura. Passare poi alla scheda MISC e settare i parametri come in figura. Fare click su OK ed il programma è pronto per l'uso. Una volta caricato il programma assicurarsi che il microcontrollore selezionato, nel menù a tendina, in alto a destra sia PIC 16F84 oppure PIC 16F84A od 16F628. PER WINDOWS XP Successivamente avviato il programma ICPROG, premere F3, apparirà una finestra uguale a quella sottostante, settare i parametri come quelli della figura. Andare nel menù SETTAGGI e selezionare la voce OPZIONI, si aprirà la finestra sottostante, andare nella scheda PROGRAMMAZIONE e togliere i flag come nella figura. Passare poi alla scheda MISC e settare i parametri come in figura. Andare nella cartella dov' è contenuto il programma e fare un click destro e scegliere la voce PROPRIETA', si aprirà la finestra delle proprietà, settare i parametri come nella figura sottostante. Fare click su OK ed il programma è pronto per l'uso. Una volta caricato il programma assicurarsi che il microcontrollore selezionato, nel menù a tendina, in alto a destra sia PIC 16F84. LEZIONE 13 Copiate la sequenza di caratteri qui di seguito: :020000040000FA :020000000528D1 :06000A008316860104309C :10001000850083128601051D10280E2806140B2862 :0400200006100B2893 :00000001FF Aprite il blocco note e incollate il tutto. Chiudete e rinominate il FILE con il nome Diodoled.hex. Attenzione all’estensione deve essere per forza .HEX Ora colleghiamo il nostro programmatore alla porta parallela del computer ed inseriamo solo l’integrato 7407, il PIC per il momento non lo dobbiamo inserire. Colleghiamo l’alimentatore al connettore e verifichiamo che il diodo vicino allo stabilizzatore 7805 sia acceso (questo diodo ci dice se c’è alimentazione). Adesso avviamo ICPROG e dovremmo avere il diodo led vicino al transistor spento (questo diodo ci dice quando sta programmando). Andate su FILE --- APRI e selezionate il FILE Diodoled.hex. Premete F5 ed alla finestra che appare rispondete di si. Il programma verrà inserito nel PIC, nel frattempo il diodo led (vicino al transistor) si dovrebbe accendere per poi spegnersi quando ha finito. SE IL CIRCUITO NON FUNZIONA: Prendiamo il tester e verifichiamo se ci sono tutte le tensioni giuste. Posizioniamo il puntale nero dove si trova il pallino blu ed il puntale rosso dove si trovano i pallini rossi. A = 5Volt B = 5Volt – 13,8Volt quando si accende il diodo led C = 13,8Volt D = 0Volt – 13,8Volt quando si accende il diodo led E = 5Volt F = 13,8Volt (piedino del condensatore) Manca la tensione al punto F Controllate i collegamenti e le saldature. Controllate il ponte di diodi ed il condensatore se sono collegati correttamente. Controllate i tre diodi sotto il condensatore se sono collegati correttamente. Controllate se al piedino 1 del 7812 avete una tensione di 14 o più volt. Se tutti i controlli sopra citati sono corretti il 7812 è rotto e va sostituito. Manca la tensione al punto E Controllate i collegamenti e le saldature. Controllate se è presente la tensione al piedino 1 del 7805, se non è presente vedete il punto F. Se tutti i controlli sopra citati sono corretti il 7805 è rotto e va sostituito. Mancano la tensione al punto A Se è presente la tensione nel punto E controllate i collegamenti e le saldature. Se non è presente la tensione nel punto E controllate il punto E. Mancano la tensione al punto B Controllate i collegamenti e le saldature. MANCANO 5Volt: Se sono presenti le tensioni nel punto C e D il diodo vicino alla resistenza 4,7K può essere rotto. Se non sono presenti le tensioni nel punto C e D controllare i punti C e D MANCANO 13,8Volt: Se sono presenti le tensioni nel punto C e D il diodo vicino alla resistenza 1K può essere rotto. Se non sono presenti le tensioni nel punto C e D controllare i punti C e D. Mancano la tensione al punto C Controllate i collegamenti e le saldature. Controllare se è presente la tensione nel punto F, se manca controllare il punto F. Mancano la tensione al punto D Controllate i collegamenti e le saldature. MANCANO 0Volt (c’è una qualsiasi tensione): Controllare la tensione sulla base del transistor, devono esserci 13,8Volt, se non ci sono controllare se l’integrato 7407 è collegato bene e se è presente la tensione sul punto A. Se è presente la tensione sulla base il transistor può essere rotto. MANCANO 13,8Volt: Controllare il punto C. Controllare che la tensione sulla base del transistor sia zero, se è presente una qualunque tensione controllare se l’integrato 7407 è collegato bene e se è presente la tensione sul punto A. Altri accorgimenti. Controllare se ci sono dei falsi contatti ovvero delle saldature riuscite male (muovete il filo per vedere se si stacca). Controllate se lo schema elettrico corrisponde allo schema di cablaggio, potrei aver sbagliato. Controllate se ci sono delle sbavature delle saldature e quindi ci sono dei contatti involontari. Fate attenzione ai fili con la guaina,la guaina si potrebbe sciogliere e toccare il filo sottostante. LEZIONE 14 Per il momento accantoniamo il programmatore per passare alla costruzione del microrobot. Iniziamo con la struttura ovvero la parte rigida che deve sorreggere le basette ed i meccanismi. Possiamo utilizzare qualsiasi cosa ci venga in mente, dei CD usati, un pezzo di compensato, del plexiglas o un coperchio di un contenitore in plastica, addirittura le stesse basette millefiori utilizzate per i circuiti. In questo caso utilizziamo un pezzo di compensato da 3mm di spessore. Lo tagliamo formando un rettangolo di 9cm X 11cm. Ora procuriamoci 2 servi per modellismo, si possono trovare nei negozi di modellismo od all’interno di aerei o auto radiocomandate. Vanno benissimo i servi definiti “standard” ovvero i meno costosi, non importa la marca od il modello l’importante e che siano dei servi. Il servo è uno dei pezzi più costosi (rispetto agli altri) del microrobot. Il servo è un motorino con dei riduttori interni. I riduttori sono degli ingranaggi che servono a trasformare la velocità del motorino in forza di trazione. Con i riduttori si rallenta la velocità del motore ma si permette allo stesso di aumentare la forza. Per utilizzare i servi con il microrobot li dobbiamo modificare nel seguente modo: Svitate le 4 viti che trovate sotto il servo in modo da aprire il coperchio. Troverete una scheda, dissaldate i cavi che escono, i cavi collegati al motore ed i cavi del potenziometro che troverete sotto. Ora saldata il filo di colore rosso ed il filo di colore nero al motorino come in foto, il filo giallo non ci serve quindi rimarrà scollegato. Adesso passiamo alla modifica degli ingranaggi o riduttori. Giriamo il contenitore ed apriamo l’altro coperchio. Fate attenzione quando aprite il coperchio cercate di vedere la posizione dei servi e di ricordarla. Troverete su un ingranaggio un fermo corsa simile a quello cerchiato in foto. Con un taglierino dovete rimuoverlo (foto a fianco). Ora togliete il potenziometro che si trovava sotto la scheda, fate attenzione perché a volte è fermato da un dado posto sotto gli ingranaggi. Ora richiudete il tutto e girate il perno che fuoriesce (quello con la vite), dovrà girare di 360 gradi senza problemi. LEZIONE 15 Poggiamo i servi allineati al compensato e segniamo la loro larghezza con una matita. Foriamo il compensato in modo da formare due fessure. Queste fessure ci serviranno per fissare i servi al compensato tramite delle fascette. I servi si possono fissare anche con della colla calda o del bostick, va bene anche il silicone. Adesso pratichiamo 6 fori da 3mm sul compensato. Per i primi 2 fori le misure sono 1,5 cm dai bori laterali ed 1 cm dal bordo inferiore, i secondi fori sono invece a 5 cm dal bordo inferiore e 1,5 cm dai bordi laterali. Ora pratichiamo altri due fori davanti i servi sempre ad 1,5 cm dal bordo sinistro e dal bordo destro tra il bordo superiore del compensato ed il servo. Questi fori ci serviranno per inserire le barrette filettata da 3mm che sorreggeranno le schede del microrobot. LEZIONE 16 Procuriamoci una barretta filettata da 3mm e circa 30 dadi per la stessa. La potete trovare in ferramenta, di solito sono lunghe 1 metro. Se non la trovate da 3mm va bene anche da 4mm dovrete però allargare i buchi fatti i precedenza. Inserite due bulloni e tagliate la barretta filettata alla distanza di 11 cm, come in foto. Tagliando la barretta filettata la filettatura si rovinerà, per rifarla basta svitare i 2 bulloni che abbiamo messo in precedenza. Tagliatene altri 5 pezzi nello stesso modo e della stessa lunghezza, in totale devono essere 6. Avvitate un dado per circa 2mm nelle 6 barre appena tagliate. Inserite le barre nei fori del compensato come in foto. Ora inserite i dadi nella parte opposta e fissate le barrette. Potete inserire anche delle rondelle tra dado e compensato. Non stringete troppo, il compensato è molto morbido e si potrebbe rompere. Per fissare al meglio i dadi ed evitare che si allentino potete incollarli con dell’attak. LEZIONE 17 Passiamo alle ruote. Le ruote le potete fare con del compensato o comprare nei negozi di modellismo o staccare da una vecchia macchinetta che non utilizzate più. Per fare delle ruote in legno dovete tagliare un cerchio di compensato che abbia un diametro di 6 cm o di 5,5 cm. Si può tagliare con una sega a tazza o con un archetto da traforo. Adesso incollate (od avvitate) le squadrette che vi anno fornito insieme ai servi. Le squadrette sono quei pezzi di plastica a forma di croce o rotonde. Per evitare che le ruote scivolino potete tagliare ed applicate tutto intorno un elastico come in foto. Un altro modo per creare le ruote è quello di utilizzare i CD usati, anche qui dovrete incollare (od avvitare) le squadrette fornite con i servi. Si possono comprare gia pronte in gomma od in spugna ma anche in questo caso le squadrette vanno incollate come nei precedenti casi. Avvitiamo le ruote appena fatte ai servi del microrobot. Ora dovremmo applicare il terzo ruotino, lo faremo con un tappo di bottiglia e la barra filettata da 3 mm che abbiamo utilizzato in precedenza. Tagliate 7 cm circa di barra Filettata e piegatela a 90 gradi a circa 3 cm. Nell’estremità piegata, inserite 2 dadi, il tappo di bottiglia e di nuovo 2 dado come in foto. Potete utilizzare anche delle rondelle in gomma od in plastica o dei vecchi ingranaggi in plastica, in sintesi tutto ciò che è rotondo. Fissate la barra Filettata spostata a destra, per avere il tappo proprio al centro del microrobot. La cosa importante da ricordare è che la struttura del microrobot deve essere parallela al terreno, quindi non deve avere il “muso” più alto della “coda” o viceversa. LEZIONE 18 Passiamo allo schema elettrico del microrobot. LISTA COMPONENTI. R1 C1 C2 Q1 U1 IC1 IC2 J1 J2 P1 = = = = = = = = = = 100KΩ 27PF 27PF 4Mhz LM7805 PIC 16F84 (16F84A) L293B (L293D) Morsetto 2 viti Morsetto 4 viti oppure 2 da 2 viti Pulsante Il circuito che vedete è il microcontrollore, con i componenti di funzionamento e la parte relativa al pilotaggio dei motori. La tensione, che prenderemo dalle batterie, viene stabilizzata con un LM 7805 per evitare di bruciare il PIC (anche se funziona con tensioni più elevate). Il PIC ha soltanto i circuiti necessari per il funzionamento, il quarzo ed i condensatori per la frequenza di clock, l’alimentazione positiva ed il GND (cioè la massa). E’ presente anche un pulsante di reset, questo pulsante ci permette di far ripartire il programma senza dover spegnere il microrobot tramite l’interruttore. Prendete una basetta mille fori da 7cm X 10 cm e praticate 4 fori di 4mm alla stessa distanza delle barre filettate montate sul microrobot. Avvitate 6 dadi (uno per ogni barra) e fermatevi a circa 1 cm dalla fine, ci serviranno come base per la basetta. Passiamo al montaggio. Come vedete dalla foto, il PIC è montato al centro della basetta, spostato leggermente a destra. La parte sinistra della basetta ci servirà per posizionare le batterie, prendete come punto di riferimento i buchi per le barre Filettate. LEZIONE 19 Andiamo avanti con gli altri componenti. In questa foto si vedono molti particolari: L’interruttore utilizzato in realtà è un deviatore, non fa molta differenza. In commercio ne esistono molti e differenti, uno vale l’altro. Il pulsante io l’ho fatto con un filo di rame attorcigliato, ma se volete lo potete comprare in un qualunque negozio di elettronica. Si può vedere anche il morsetto per una pila da 9V che ci servirà per il pacco batterie. Il morsetto J1 non l’ho messo, ho saldato i fili direttamente sulla basetta, ma se volete lo potete montare, in commercio ne esistono di vari modelli e grandezze. Girando la basetta si può notare che, dei collegamenti sono molto lunghi. Sono volutamente lunghi, perché in seguito ci servirà dello spazio. LEZIONE 20 Ora vediamo il circuito di potenza, che ci permette di pilotare i motorini dei servi. Il circuito è formato dall’ integrato L293 (io ho utilizzato il B ma credo che il D vada bene lo stesso). La corrente che esce dal PIC non è abbastanza alta per pilotare i servi( o dei motorini), quindi dobbiamo amplificarla con un circuito chiamato amplificatore di potenza. Questo integrato ha al suo interno 4 amplificatori di potenza, ne useremo due per ogni servo. Ho voluto utilizzare un integrato per risparmiare spazio a discapito dell’economia. Si potevano utilizzare dei transistor ma la spiegazione sarebbe stata troppo complicata ed anche il montaggio sarebbe stato molto difficoltoso. Posizioniamo lo zoccoletto dell’integrato come in foto. Colleghiamo con del filo di rame lo zoccoletto del L293 con l’alimentazione. Poi passiamo al collegamento dei motori del L293 con il PIC, prima il motore destro e poi il sinistro. Prendete sempre come punto di riferimento lo schema elettrico. Montate i morsetti per avvitare i cavi dei servi, se volete potete saldare i fili direttamente sulla mille fori oppure mettere dei spinotti come quelli in foto. , I collegamenti dovranno essere simili a quelli in foto. LEZIONE 21 La basetta finale deve assomigliare alla foto sottostante. Il rettangolo nero che vedete a destra è un pezzo di felcro adesivo per abiti. Ci servirà per tenere fermo il pacco batterie e rimuoverlo quando dovremo programmare il PIC. Se non trovare il felcro adesivo lo potete incollare oppure bloccare il pacco batterie con un elastico o qualunque cosa vi venga in mente. Posizionate la basetta sul microrobot e montate il pacco da 8 batterie, anche questo reperibile nei negozi di elettronica. Montato il pacco batterie avvitate i fili del servo ai morsetti e inserite l’integrato L293, NON inserite il PIC, lo dobbiamo ancora programmare. Diamo un occhiata all’interno del L293 e cerchiamo di capire cosa c’è dentro. Come vedete, sono presenti 4 “triangoli”, questi sono gli stadi amplificatori di potenza. Il segnale che esce dal PIC viene applicato ai piedini A,B,C,D per poi essere amplificato dai “triangoli” ed uscire dai rispettivi piedini (3,6,11,14). Ogni motore ha 2 piedini, questa tecnica ci permette di far girare avanti od indietro i servi. Esempio: Dando alimentazione positiva ad A e negativa a B il servo gira in un senso, dando alimentazione positiva a B e negativa ad A, il servo gira nel senso opposto. Dando alimentazione positiva ad A ed a B il servo rimane fermo, dando alimentazione negativa ad A ed a B il servo rimarrà fermo.In questo modo noi possiamo far andare avanti il microrobot, farlo girare a destra o a sinistra e farlo indietreggiare. LEZIONE 22 Proviamo il nostro microrobot. Aprite il blocco note e copiate questa sequenza di caratteri. :020000040000FA :020000000528D1 :06000A008316073081009F :10001000FF3086001030850083121B200E28080058 :100020000800080008000800080008000800080090 :100030000630850008000930850008000A30850078 :1000400008000530850008000030850008000830F1 :100050008500080001308500080083120C308C00F8 :10006000322008000B11D83081000B1D35288C0B75 :1000700032280800831232308C003F2008000B1118 :10008000D83081000B1D42288C0B3F2808008312BA :1000900064308C004C2008000B11D83081000B1DFF :1000A0004F288C0B4C280800831296308C00592066 :1000B00008000B11D83081000B1D5C288C0B5928CF :1000C00008008312C8308C00662008000B11D8305D :1000D00081000B1D4F288C0B662808008312FA3014 :1000E0008C00732008000B11D83081000B1D76287E :0600F0008C0B73280800D0 :02400E00F13F80 :00000001FF Salvate il FILE con il nome AVANTI e cambiate l’estensione del FILE da TXT a HEX. Inserite il PIC nel programmatore (fate attenzione alla tacca di riferimento), date alimentazione alla scheda e collegate il programmatore alla porta parallela, avviate ICPROG. APRI ed andate a cercare il FILE che avete appena creato con il blocco note. Ora premete F5 e rispondete SI alla domanda di programmare il PIC. Vedrete una barra che scorre ed il led di programmazione che si accende. Finita la programmazione il led si spegne, ora potete togliere l’alimentazione ed il PIC dallo zoccolo. Montate il microcontrollore sul microrobot ed accendete l’interrutto, (assicuratevi che le batterie siano cariche). Il microrobot andrà avanti. Possibili problemi Il microrobot non si muove Controllate se le batterie sono tutte cariche. Controllate se i collegamenti sono corretti, aiutatevi con lo schema elettrico. Controllate se ci sono dei falsi contatti. Il microrobot va indietro. Invertite i fili del servo destro (il rosso con il nero ed il nero con il rosso) ed invertite i fili del servo sinistro (il rosso con il nero ed il nero con il rosso). Il microrobot va a sinistra. Invertite i fili del servo sinistro (il rosso con il nero ed il nero con il rosso). Il microrobot va a destra. Invertite i fili del servo destro (il rosso con il nero ed il nero con il rosso). Ora accantonate il microrobot ed iniziamo con la programmazione. Iniziamo con dei programmi che ci aiutano a capire i concetti di programmazione per poi passare ai vari linguaggi veri e propri. Dobbiamo scaricare un programma FREE chiamato MONTYPRO, lo trovate nella sezione programmi --> robotica, oppure inviandomi un e-mail all’indirizzo: [email protected] . Per funzionare MONTYPRO ha bisogno del compilatore della microchip, si trova all’interno dell’ambiente di sviluppo MPLAB e lo potete scaricare qui: http://www.microchip.com. Se volete il solo compilatore lo potete scaricare dalla sezione programmi--> robotica oppure inviandomi un email agli indirizzi sopraccitati. Scaricato il programma ed il compilatore, scompattatelo ed installate MONTYPRO. Eseguite MONTYPRO, dovrete avere un messaggio che vi avverte della mancanza del compilatore. Fate click su OK ed andate nel menù STRUMENTI à COMPILATORE, si aprirà una finestra di dialogo, andate a cercare il compilatore scaricato e fate click su APRI. Ora MINIMONTY è pronto per funzionare. Facciamo il nostro primo programma, formato da una sola istruzione, fate click nel pulsante AVANTI, si trova a destra del programma. Se non avete scaricato MINIMONTY potete copiare il FILE sottostante con il metodo descritto sopra. FILE ESADECIMALE. :020000040000FA :020000000528D1 :06000A008316073081009F :10001000FF3086001030850083121B200E28080058 :100020000800080008000800080008000800080090 :100030000630850008000930850008000A30850078 :1000400008000530850008000030850008000830F1 :100050008500080001308500080083120C308C00F8 :10006000322008000B11D83081000B1D35288C0B75 :1000700032280800831232308C003F2008000B1118 :10008000D83081000B1D42288C0B3F2808008312BA :1000900064308C004C2008000B11D83081000B1DFF :1000A0004F288C0B4C280800831296308C00592066 :1000B00008000B11D83081000B1D5C288C0B5928CF :1000C00008008312C8308C00662008000B11D8305D :1000D00081000B1D4F288C0B662808008312FA3014 :1000E0008C00732008000B11D83081000B1D76287E :0600F0008C0B73280800D0 :02400E00F13F80 :00000001FF Ora salviamo il FILE facendo click sul pulsante SALVA CON NOME e poi compiliamo il programma con il pulsante COMPILA. Verremo avvertiti da un messaggio che la compilazione è stata terminata. ATTENZIONE non salvate il FILE in percorsi troppo lunghi altrimenti il compilatore potrebbe generarvi degli errori. Andiamo nel percorso dove abbiamo salvato il FILE, la situazione dovrà essere la seguente: Un FILE con estensione HEX ed un FILE con estensione MNT. Il primo FILE è l’esadecimale da scaricare all’interno del PIC tramite il programmatore, il secondo è il nostro programma salvato e che potremmo riaprire e modificare in seguito. Scaricato il programma HEX all’interno del PIC ed il nostro microrobot andrà avanti. Il microrobot esegue delle istruzioni da noi impostate uno dopo l’altra. Esempio: Avanti Destra Sinistra etc. Queste istruzioni devono essere inserite in modo corretto altrimenti il risultato finale non sarà quello desiderato, vediamo come e perché. Aprite MINIMONTY ed inserite 2 istruzioni, AVANTI ed INDIETRO. Salvate, compilate e scaricate il programma nel PIC come descritto in precedenza. FILE ESADECIMALE :020000040000FA :020000000528D1 :06000A008316073081009F :10001000FF30860085018312093085000630850097 :100020001028831232308C00162008000B11D830B3 :1000300081000B1D19288C0B1628080083126430D0 :100040008C00232008000B11D83081000B1D2628BE :100050008C0B23280800831296308C003020080077 :100060000B11D83081000B1D33288C0B3028080071 :100070008312C8308C003D2008000B11D83081005D :100080000B1D26288C0B3D2808008312FA308C00AB :100090004A2008000B11D83081000B1D4D288C0B15 :0400A0004A280800E2 :02400E00F13F80 :00000001FF Vedrete che il microrobot NON andrà avanti ma solamente indietro perché? Il programma è esatto ma verrà eseguito molto velocemente e quindi noi vedremo solo l’ultima operazione inserita, ovvero INDIETRO. Per ottenere il nostro risultato dovremo ragionare in modo differente ed inserire le seguenti istruzioni: AVANTI, ATTENDI 1sec, INDIETRO. FILE ESADECIMALE :020000040000FA :020000000528D1 :06000A008316073081009F :10001000FF30860085018312093085000630850097 :100020001028831232308C00162008000B11D830B3 :1000300081000B1D19288C0B1628080083126430D0 :100040008C00232008000B11D83081000B1D2628BE :100050008C0B23280800831296308C003020080077 :100060000B11D83081000B1D33288C0B3028080071 :100070008312C8308C003D2008000B11D83081005D :100080000B1D26288C0B3D2808008312FA308C00AB :100090004A2008000B11D83081000B1D4D288C0B15 :0400A0004A280800E2 :02400E00F13F80 :00000001FF L’istruzione ATTENDI 1s, permette l’avanzamento del microrobot di 1 secondo per poi passare all’istruzione INDIETRO. Con questo sistema si possono creare tutti i programmi che vogliamo. LEZIONE 23 Con questo sistema possiamo creare tutti i programmi che vogliamo. Fate in modo che il microrobot si muova formando un quadrato. Fate in modo che il microrobot si muova formando un triangolo. Fate in modo che il microrobot si muova formando un rettangolo. Provate a creare un programma che parta da un determinato punto per poi arrivare ad un altro. Esempio: Partenza Camera da letto Arrivo Cucina Come sicuramente avete notato per far girare a destra il microrobot si utilizza questa strategia: Si tiene ferma la ruota destra e si manda avanti la sinistra. Per farlo ruotare a sinistra la strategia e l’inversa: si tiene ferma la ruota sinistra e si manda avanti la destra. MINIMONTY ha anche un'altra funzione, quella di ruotare a destra od a sinistra. Far ruotare il microrobot può essere comodo quando lo dobbiamo far girare in spazzi ridotti, la tecnica utilizzata è la seguente: per ruotare a destra si manda indietro la ruota di destra ed avanti la ruota di sinistra. Per farlo ruotare a sinistra è l’inverso: si manda indietro la ruota di sinistra ed avanti la ruota di destra. L’istruzione FERMO permette di fermare i motori del microrobot. Il programma seguente farà camminare il microrobot in vanti per 1 secondo, lo terra fermo per un altro secondo e poi lo farà tornare indietro. FILE ESADECIMALE :020000040000FA :020000000528D1 :06000A008316073081009F :10001000FF3086008501831209308500003085009D :10002000063085001228831232308C001820080018 :100030000B11D83081000B1D1B288C0B18280800D1 :10004000831264308C00252008000B11D830810009 :100050000B1D28288C0B25280800831296308C0055 :10006000322008000B11D83081000B1D35288C0B75 :10007000322808008312C8308C003F2008000B1182 :10008000D83081000B1D28288C0B3F2808008312D4 :10009000FA308C004C2008000B11D83081000B1D69 :0800A0004F288C0B4C280800CE :02400E00F13F80 :00000001FF L’istruzione VAI A ci permette di effettuare un salto nelle istruzioni. Ci sono due tipi di salti: SALTI CONDIZIONATI Questo tipo si salti vengono effettuati se si verifica una condizione e li vedremo più avanti. SALTI INCONDIZIONATI Questi salti si verificano anche se non è stata verificata una condizione. I salti incondizionati sono una semplice istruzione che “rimanda” ad un'altra istruzione, facciamo un programma esempio. FILE ESADECIMALE :020000040000FA :020000000528D1 :06000A008316073081009F :10001000FF30860085018312093085000630850097 :100020000C281128831232308C00172008000B1185 :10003000D83081000B1D1A288C0B1728080083125A :1000400064308C00242008000B11D83081000B1D77 :1000500027288C0B24280800831296308C0031202E :1000600008000B11D83081000B1D34288C0B31286F :1000700008008312C8308C003E2008000B11D830D5 :1000800081000B1D27288C0B3E2808008312FA30B4 :100090008C004B2008000B11D83081000B1D4E281E :0600A0008C0B4B28080048 :02400E00F13F80 :00000001FF Il programma appena scritto eseguirà tutte le istruzioni fino a VAI A 0 (zero). Questa istruzione farà saltare l’esecuzione del programma alla riga zero. In questo modo si crea un ciclo, cioè le istruzioni vengono ripetute infinite volte. Il microrobot andrà avanti e poi tornerà indietro per poi tornare avanti ed riandare indietro infinite volte. Con MINIMONTY si possono effettuare solo salti alle righe superiori, ma nei linguaggi di programmazione i salti li possiamo fare anche alle righe successive, lo vedremo meglio quando li studieremo. Un programma esempio che manda avanti il microrobot per poi fargli disegnare sempre la stessa figura geometrica. PROGRAMMA ESADECIMALE :020000040000FA :020000000528D1 :06000A008316073081009F :10001000FF3086008501831209308500013085009C :100020001A2009308500083085001A200930850023 :1000300013281928831232308C001F2008000B115E :10004000D83081000B1D22288C0B1F28080083123A :1000500064308C002C2008000B11D83081000B1D5F :100060002F288C0B2C280800831296308C00392006 :1000700008000B11D83081000B1D3C288C0B39284F :1000800008008312C8308C00462008000B11D830BD :1000900081000B1D2F288C0B462808008312FA3094 :1000A0008C00532008000B11D83081000B1D5628FE :0600B0008C0B5328080030 :02400E00F13F80 :00000001FF LEZIONE 24 Se il tempo impostato da MINIMONTY non è sufficiente potete aggiungere le istruzioni una dopo l’altra. Esempio avete necessità di attendere 6 secondi ma le istruzioni di MINIMONTY vi permettono di inserire un tempo massimo di 2,5 secondi? Fate come segue. ATTENDI 2,5 sec ATTENDI 2,5 sec ATTENDI 1 sec Il totale delle istruzioni darà 6 secondi. NB: Il tempo è impostato in base ad un quarzo da 4 Mhz, se lo si sostituisce, il tempo non sarà più di 2,5 secondi ma maggiore o minore. La funzione ATTENDI dipende anche dalla carica delle batterie. Questo tipo di ragionamento non va bene per le altre istruzioni, se noi inseriremo le istruzioni seguenti: AVANTI AVANTI Otterremo come effetto finale la stessa cosa della sola istruzione AVANTI, ma in questo modo occuperemo spazio e risorse per nulla. Il discorso spazio è molto importante perché il PIC ha una memoria molto piccola e quindi non può caricare dei programmi molto lunghi. Questo discorso vale tanto per il programma MINIMONTY quanto per i linguaggi di programmazione. LEZIONE 25 Ogni microrobot deve essere autonomo, deve riuscire a “capire” l’ambiente circostante e reagire di conseguenza. Per il momento il nostro microrobot si può solo spostare ma non può capire l’ambiente circostante. E’ come se noi prendiamo un cervello e gli colleghiamo solo le gambe, si muove ma non sa se incontra un’ ostacolo o se riesce a passare in determinati spazzi. Possiamo risolvere il problema con i sensori. Di sensori ne esistono molteplici, noi vedremo solo quelli che si serviranno per costruire il microrobot. Deviatori meccanici: Questo deviatore, (chiamato anche switch) lo potete reperire nei negozi di elettronica o smontare da una qualunque apparecchiatura, in sintesi sono facili da trovare. Vediamo il funzionamento: Ci sono 3 contatti (a volte sono 2). Sul contenitore dello switch troverete delle scritte: NA – NC – C. C = Comune NA= Normalmente aperto (a volte trovate NO) NC= Normalmente chiuso. Il funzionamento è semplice, quando la barra di contatto è a riposo cioè non incontra nessun ostacolo, C ed NC sono uniti (ROSSO), quando la barra di contatto è premuta, ovvero è presente un ostacolo C e NA sono uniti (VERDE). Vediamo come collegarli al nostro microrobot. Il PIC 16F84 è dotato di 13 piedini che possono essere usate come uscite od ingressi. Per uscite si intendono tutti quei piedini che permettono al PIC di comandare delle apparecchiature esterne. Per esempio i piedini che abbiamo usato per i motori sono tutte uscite. Il PIC porta a livello basso od alto le uscite e pilota l’integrato L293 che a sua volta va a pilotare i servi. Per ingressi si intendono quei piedini che permettono al PIC di prelevare delle informazioni dall’esterno. I sensori meccanici che abbiamo appena visto li collegheremo ad i piedini di ingresso. Come prima cosa dobbiamo collegare dei fili lunghi circa 20 cm a tutte le uscite, questo ci facilita il lavoro in seguito. Il colore dei fili non è importante, l’importante è ricordare a quale piedino corrispondono. Numero dei piedini e colore del filo. Colore -------------------- Piedino ---------------------------- Porta Rosso ------------------------- 3 --------------------------------- RA4 Verde ------------------------- 6 --------------------------------- RB0 Giallo ------------------------- 7 -------------------------------- RB1 Nero -------------------------- 8 --------------------------------- RB2 Viola - ------------------------ 9 --------------------------------- RB3 Bianco ----------------------- 10 -------------------------------- RB4 Arancione ------------------- 11 -------------------------------- RB5 Marrone ----- --------------- 12 -------------------------------- RB6 Rosa ---------- --------------- 13 -------------------------------- RB7 RA0—RA1—RA2—RA3 sono stati collegati ai motori. Passiamo a modificare i deviatori, con la carta vetrata grattate l’estremità della staffa in ferro fino a togliere tutta la placcatura, in questo modo possiamo saldare del filo di ferro o tubicino come in foto. A volte non si riesce a saldare il filo di ferro od il tubicino, si può però incollare o fermare con qualunque modo vi venga in mente. Io ho utilizzato delle barre filettate che mi erano avanzate e le ho incollate con della colla epossidica. LEZIONE 26 Ora prendiamo una basetta mille fori che ci è avanzata e foriamola in modo da far passare le barre Filettate, come in foto. Fissate gli switch sulla basetta, uno sopra ed uno sotto con un po’ di colla. Gli switch devono essere montati come in foto, i baffi devono formare una specie di imbuto, in questo modo potrà rivelare anche degli ostacoli posti al centro. CORRETTO ERRATO Questi sono gli schemi elettrici a secondo del deviatore o interruttore comprato. Deviatore switch Interruttore NA Interruttore NC IC1 è il microcontrollore, i piedini da utilizzare sono l’8 (Ostacolo destro) ed il 9 (ostacolo sinistro), rispettivamente RB2 ed RB3. Il valore delle resistenza usate è di 10 KΩ. Il funzionamento del circuito è il seguente: Il microcontrollore riceve costantemente il segnale 0 (zero), cioè è collegato a massa, fino a quando un ostacolo non chiude l’interruttore, portando il segnale al valore di 5V. Nel primo circuito(deviatore) si vede molto bene il deviatore posizionato a massa in stato di riposo (NC). Quando il deviatore trova un ostacolo il comune (C) si sposta al positivo (NA). Nel secondo circuito (interruttore NA) i piedini 8 e 9 sono forzati a massa tramite le resistenze, chiudendogli interruttore la tensione positiva raggiungerà i piedini cambiandoli di stato. Ne terzo circuito (interruttore NC) i piedini 8 e 9 sono collegati direttamente a massa, aprendo gli interruttore la tensione attraverserà le resistenze ed andrà sui piedini dell’integrato. Le resistenze sono poste in quel modo per evitare un corto circuito, ovvero per evitare che positivo e negativo si tocchino tra loro. Se nel secondo circuito togliamo la resistenza, quando l’interruttore si chiude, il positivo sarà collegato a massa ed avvera un corto circuito. Quando collegate la bassetta con gli interruttori, ricordate di portare 2 cavi per il positivi (5 volt) e la massa (zero volt). LEZIONE 27 Collegato il tutto, fissiamo la basetta con i dadi e sviluppiamo il programma per testarlo. Per gestire i sensori abbiamo bisogno di una versione differente di MINIMONTY. Vanno bene sia MONTYPLUS che MONTYPRO, i programmi non sono freeware ma potete scaricare una vesione demo dalla sezione programmi --> robotica, oppure contattandomi agli indirizzi presenti nella sezione contatti: Aprite MONTYPLUS o MONTYPRO e scrivete il programma riportato qui di seguito. Come vedete rispetto a MINIMONTY ci sono molte più griglie e sono state aggiunte delle funzioni. Analizziamo il programma principale, cioè la prima griglia a sinistra: Il programma ha solo 4 istruzioni: 1) ATTIVO VAI A Prossimita_destra 2) ATTIVO VAI A Prossimità_sinistra 3) AVANTI 4) VAI A 0 La prima istruzione controllo il sensore meccanico destro e se è attivo salta alla griglia prossimità_destra. La seconda operazione controlla il sensore meccanico sinistro e se è attivo salta alla griglia prossimità_sinistra La terza istruzione fa camminare aventi il microrobot e la quarta genera un loop, ovvero torna all’istruzione 1. Supponiamo che i sensori destra e sinistra non siano attivi (ovvero non toccano nessun ostacolo), il programma leggerà l’istruzione alla riga 3 e farà camminare il microrobot. LEZIONE 28 Se invece il microrobot incontra un ostacolo a destra, verrà eseguita l’istruzione alla riga zero (ATTIVO VAI A Prossimità_destro). Questa istruzione farà saltare il programma alla griglia presente nella scheda “Prossimità destra” ed eseguirà le istruzioni trovate, in questo caso: INDIETRO ATTENDI 0,5 RUOTA A DX ATTENDI 0,5 NB: Quando il sensore destro è attivo l’ostacolo si trova a sinistra e viceversa, questo è dovuto al fatto che i sensori sono incrociati. Queste istruzioni faranno indietreggiare il microrobot per 0,5 secondi, lo faranno ruotare a destra per altri 0,5 secondi. Finite tutte le istruzioni il programma risalterà alla griglia principale ed eseguirà l’ istruzione successiva, in questo caso “ATTIVO VAI A Prossimità_sinistra”. L’istruzioni VAI A 0 ci permette di testare continuamente i sensori. Se togliamo questa istruzione, quando partirà il programma, testerà subito i sensori poi andrà avanti e si fermerà all’ultima riga. Questo vuol dire che, non verranno più controllati i sensori e se il microrobot si scontrerà con un ostacolo non se ne accorgerà. Creando un ciclo, i sensori vengono controllati in continuazione e quindi il microrobot saprà sempre se ha un ostacolo di fronte oppure no. Se vogliamo che il nostro robot una volta individuato un ostacolo lo spinga, dovremmo utilizzare un programma che di solito si utilizza con i “lottatori di sumo”. I lottatori di sumo sono dei microrobot che si spingono a vicenda fino a quando uno dei due non è uscito dal ring. GRIGLIA PRINCIPALE GRIGLIA PROSSIMITA’ DESTRA GRIGLIA PROSSIMITA’ SINISTRA Come potete notare adesso il microrobot, quando rivelerà un ostacolo controllerà lo stato dell’altro sensore, se il sensore opposto non sarà attivo allora girerà altrimenti tramite l’istruzione RITORNA, tornerà alla griglia principale. Se tutti e due i sensori saranno attivo il microrobot andrà avanti spingendo l’ostacolo. Ora il nostro microrobot può sentire gli ostacoli che lo circondano e “decidere” se evitarli o spingerli. Questo è un primo approccio sui sensori da montare sul microrobot. Noi abbiamo usato un livello alto per segnalare la presenza dell’ ostacolo, cioè quando la tensione si sposta da zero a 1, ( il massimo che in questo caso sono 5V) esiste un ostacolo. Vengono utilizzati altri tipi di approccio, per esempio si potrebbe tenere il segnale a livello alto (5V) e segnalare un ostacolo quando scende a zero. Non è difficile da fare basta invertire i fili NA e NC dello switch. Attenzione però, bisogna poi cambiare anche le istruzioni del programma sulla griglia principale: Sostituire SE ATTIVO VAI A con SE DISATTIVO VAI A. Tutto questo discorso è per farvi capire che non è importante il tipo di segnala ma come viene interpretato. LEZIONE 29 Il microrobot può vedere oltre agli ostacoli anche la luce, il tipo di oggetti che può vedere dipende dai sensori di cui è fornito. I sensori meccanici permettono di vedere degli ostacoli solidi, i foto diodi o le foto resistenze permettono di vedere la luce, i microfoni di sentire i suoni etc. Se volessimo creare un circuito che permetta al microrobot di vedere una luce per poi inseguirla od evitarla, dovremmo utilizzare le foto resistenze od i foto diodi. Le foto resistenze sono delle resistenze sensibili alla luce, al cambiare dell’intensità della luce cambia il valore della resistenza. Con questi componenti il microrobot saprà se è presente della luce e a che intensità quindi a che distanza. Per quanto riguarda i foto diodi il discorso è simile solo che ricevono la luce infrarossa ( quindi la luce visibile e non visibile dall’occhio umano), ed oltre a cambiare il valore della loro resistenza, si comportano come i diodi, facendo passare la corrente solo da una parte ovvero quando sono polarizzati. Fate attenzione di foto diodi ne esistono 2 tipi: riceventi e trasmittenti, quelli sopra menzionati sono riceventi. Grazie a questi sensori il microrobot può vedere la luce e di conseguenza decidere se seguirla od evitarla. Lo schema qui di seguito è molto semplice e poco costoso. TR1 TR2 R1 R2 R3 R4 R5 R6 D1 D2 = = = = = = = = = = BC548 oppure BC238 BC548 oppure BC238 10KΩ 10KΩ 10KΩ 4,7KΩ 10KΩ 100KΩ potenziometro Diodo infrarosso ricevitore Diodo led rosso Ho utilizzato dei foto diodi riceventi perché sono poco costosi e facilmente reperibili in commercio. Analizziamo lo schema elettrico: Le tre resistenze R1,R2,R3 formano un partitore resistivo. Il partitore resistivo è formato da una serie di resistenze tutte dello stesso valore, in questo caso da 10KΩ, questo partitore ha la funzione di dividere la tensione per il numero delle resistenze e non per il valore. Quindi noi avremmo su ogni resistenza 5 Volt diviso le 3 resistenze = 1,666 V. Se avessimo avuto 3 resistenze da 33KΩ il valore su ogni resistenza sarà stato di 5 Volt diviso 3 resistenze = 1,666 V, quindi lo stesso. Io ho utilizzato 3 resistenze da 12KΩ e 470KΩ ed il circuito ha funzionato in tutti e due i casi. La base del transistor è posizionata tra la prima e la seconda resistenza quindi a 2/3 dell’alimentazione (3,3 Volt circa). Quando sulla base del transistor si supereranno i 2/3 dell’alimentazione il diodo led si accenderà ed avremo un segnale in uscita. Come avrete notato questo circuito serve solo come un interruttore tarato a 2/3 dell’alimentazione. Il diodo led rosso ci serve solo per vedere quando il transistor entra in conduzione e quindi regolare il potenziometro. Lo stadio precedente ci serve per regolare la tensione sulla base del transistor TR1. Anche qui abbiamo un partitore resistivo ma formato da una resistenza variabile ed un fotodiodo ricevitore. Il fotodiodo ricevitore ha una resistenza di circa 100KΩ quando viene investito dalla luce e per questo il potenziometro che è una resistenza variabile ha lo stesso valore. In questo modo noi possiamo variare il partitore resistivo tramite la resistenza variabile (potenziometro) R6 e quindi variare la sensibilità del circuito alla luce. La resistenza R5 serve solo per proteggere il transistor da una tensione troppo elevata, se andassimo a girare il potenziometro fino a eliminare tutta la resistenza, sulla base del transistor TR2 avremmo 5 Volt e quindi lo bruceremmo. Variando la luce il transistor TR2 varierà l’uscita andando a modificare la tensione sulla base del transistor TR2 che condurrà quando la tensione sulla base supererà i 2/3 dell’alimentazione. NB: Il circuito è sviluppato per un solo “occhio” quindi ne dovrete fare 2, uno per “l’occhio” sinistro ed uno per “l’occhio" destro. LEZIONE 30 Montate il circuito nello spazio disponibile dopo i sensori meccanici, come in foto. Montate i diodi riceventi infrarosso a 45 gradi come nella foto, così avrete un maggior margine di escursione della luce. Per capirci, i diodi devono essere montati negli angoli della basetta millefiori. Fissate i diodi led sulle barre Filettate o sugli switch oppure sulla basetta con dello scotch o della colla, (io ho usato la colla calda) per evitare che con le vibrazioni si spostino. I fili che collegano il nuovo circuito al microcontrollore sono: l’arancione per il sensore destro ed il bianco per il sensore sinistro, rispettivamente RB5 RB4. Ora passiamo al programma, i sensori ottici vengono trattati come i normali sensori. Essi ci forniscono 2 livelli logici (alto e basso) e noi li dobbiamo usare a nostro piacimento. Esempio: GRIGLIA PRINCIPALE GRIGLIA LUCE DESTRA GRIGLIA LUCE SINISTRA Il programma si può perfezionare nel seguente modo: GRIGLIA PRINCIPALE GRIGLIA LUCE DESTRA GRIGLIA LUCE SINISTRA In questo modo, prima di eseguire l’istruzione di girare, controlliamo se il sensore opposto è attivo, se è attivo ritorneremo alla griglia principale. LEZIONE 31 Ora avete a disposizione più sensori rispetto a prima, i sensori meccanici e quelli ottici, provate a creare un programma che li gestisca tutti e due, per esempio un microrobot che insegue una luce evitando gli ostacoli. Esempio: GRIGLIA PRINCIPALE GRIGLIA LUCE DESTRA GRIGLIA LUCE SINISTRA GRIGLIA PROSSIMITA’ DESTRA GRIGLIA PROSSIMITA’ SINISTRA Un atro programma che potete realizzare è un microrobot che insegua una luce e poi la spinga il più lontano possibile. Un microrobot del genere potrebbe essere impiegato per cercare delle fonti di calore (per esempio gli incendi) e spostarle il più lontano possibile. I programmi che potete realizzare con il microrobot dipende dalla vostra fantasia od esigenza. Vediamo ora come creare un circuito per vedere gli ostacoli “a distanza”. Il circuito che andremo a fare ci permette di rilevare un ostacolo senza doverlo toccare, a differenza dei sensori a contatto. Il principio di funzionamento è il seguente: Supponiamo di avere un altoparlante che generi un suoni (PING), questo suono va avanti nell’aria e se non trova nessun ostacolo continua ad andare avanti in eterno. Se invece trova un ostacolo il suono rimbalza e torna indietro (PONG). Per captare il suono in ritorno dovremmo avere un circuito di ricezione, ovvero un microfono. SUONO TRASMESSO SENZA OSTACOLO SUONO TRASMESSO CON OSTACOLO Dalle immagini si può dedurre che il ricevitore si attiverà solo in presenza di un ostacolo. Di solito si usano gli ultrasuoni, ovvero dei suoni che il nostro orecchio non riesce a percepire, e sono generati da delle “capsule”. Queste capsule le potete vedere all’interno delle macchine che hanno un sistema d’allarme, si trovano in genere vicino allo sportello. Esistono capsule trasmittenti e capsule riceventi, non sono riconoscibili dall’aspetto fisico ma solo da una scritta sul lato o dietro la stessa. Dalla foto sottostante potete vedere alcune, piccole (quelle nere) e grandi (quella grigia). Un altro modo e quello di utilizzare dei diodi infrarosso (trasmettitore e ricevitore), il funzionamento è lo stesso solo che in questo caso non si usano i suoni ma la luce non visibile dall’occhi umano. Noi utilizzeremo gli infrarossi perché rispetto alle capsule ultrasuono sono meno costose e per i nostri scopi vanno benissimo. LEZIONE 32 ATTENZIONE: Prima di costruire il circuito trasmettitore infrarosso leggete tutto l’articolo compreso lo stadio ricevitore infrarosso. Ecco lo schema elettrico del trasmettitore: E la lista componenti: R1 R2 R3 C1 C2 D1 IC1 = = = = = = = 100 KΩ 100 KΩ trimmer 56 Ω 120 pF a disco 100.000 pF poliestere Diodo infrarosso trasmettitore diametro 5mm NE555 o equivalenti Nello schema elettrico si può notare un solo integrato l’ NE555 o equivalenti. Questo integrato ci servirà per generare una frequenza di 30Khz. In pratica andremmo ad accendere e spegnere il diodo led infrarosso con una cadenza chiamata frequenza. Per farvi capire se accendiamo il led e poi lo spegniamo una volta al secondo, avremmo una frequenza di 1 Hz (si legge Hertz). Se invece lo accendiamo 5 volte in un secondo avremmo una frequenza di 5 Hz e così via. La nostra frequenza è di 30000 Hz che può essere interpretata come 30Khz. Un po’ come la pasta: 1000 grammi sono 1 Kgrammo, quindi 30000 Hz sono 30KHz. Ho scelto questa frequenza perché il ricevitore infrarosso riceve qualunque luce, visibile e non visibile, e quindi può rivelare una luce che non è stata inviata dal nostro trasmettitore. Inviando una frequenza conosciuta, il ricevitore ignorerà tutte le altre luci attivandosi solo alla frequenza scelta e perché il ricevitore integrato che utilizzeremo è tarato su questa frequenza. Cerchiamo di capire lo schema elettrico: All’interno dell’integrato NE555 ci sono molti componenti che polarizzati in modo opportuno generano la frequenza da noi scelta. Per vedere e sapere come va collegato, dovrete leggere il suo datascheet ovvero il “manuale d’ istruzioni” fatto dalla casa produttrice. Per motivi di tempo vi spiego io lo stretto necessario. Il piedino numero 1 va collegato a massa (zero volt). Il piedino numero 5 a noi non serve e se non viene utilizzato deve essere collegato a massa tramite un condensatore da 100000 pF. Il piedino 4 è il piedino di reset e se non viene utilizzato deve essere collegato al positivo. Il piedino 8 va collegato al positivo. Il piedino 3 è l’uscita da qui prelevare la frequenza. I piedini 2 - 6 e 7 ci serviranno per generare la frequenza. La frequenza generata è il risultato del seguente calcolo: Kilohertz = 1.440.000 : ((R1 + R2 + R2) X C1) NB: i valori delle resistenza vanno espresse in Kiloohm ed il valore del condensatore in picofarad. Facciamo un esempio, supponiamo di avere i seguenti valori per le resistenze ed il condensatore. R1 R2 C1 = = = 10 KΩ 20 KΩ 40 pF Il calcolo sarà il seguente: Per prima cosa sostituiamo i valori nella formula. Kilohertz = 1.440.000 : ((R1 + R2 + R2) X C1) Kilohertz = 1.440.000 : ((10 + 20 + 20) X 40) Poi calcoliamo la somma delle resistenza (10 + 20 + 20). Kilohertz = 1.440.000 : ((50) X 40) Ora moltiplichiamo il condensatore con il totale delle resistenze (50 x 40). Kilohertz = 1.440.000 : (2000) Ed ora la divisione (1.440.000 : 2000). Kilohertz = 720 Per concludere avrete una frequenza di 720 Khz con il valore di resistenze e condensatore scelti sopra. Facciamo un altro esempio: R1 R2 C1 = = = 23 KΩ 45 KΩ 15 pF Il calcolo sarà il seguente: Per prima cosa sostituiamo i valori nella formula. Kilohertz = 1.440.000 : ((R1 + R2 + R2) X C1) Kilohertz = 1.440.000 : ((23 + 45 + 45) X 15) Poi calcoliamo la somma delle resistenza (23 + 45 + 45). Kilohertz = 1.440.000 : ((113) X 15) Ora moltiplichiamo il condensatore con il totale delle resistenze (113 x 15). Kilohertz = 1.440.000 : (1695) Ed ora la divisione (1.440.000 : 1695). Kilohertz = 849,55752 Per concludere avrete una frequenza di 849,55752 Khz.. LEZIONE 33 Ma che calcolo dobbiamo fare per sapere la capacità di un condensatore sapendo la frequenza? E’ presto detto: C1 = 1.440.000 : ((R1 + R2 + R2) X KHz) Supponiamo di avere i seguenti valori. R1 R2 F = = = 100 KΩ 100 KΩ 30Khz Per prima cosa andremmo a sostituire i valori C1 = 1.440.000 : ((100 + 100 + 100) X 30) Poi sommeremo le resistenze (100 + 100 + 100) C1 = 1.440.000 : ((300) X30) Successivamente moltiplicheremo per la frequenza (300 X 30) C1 = 1.440.000 : (9000) E poi divideremo ( 1.440.000 : 9000). C1 = 160pF Purtroppo dalla teoria alla pratica c’è molta differenza, nei calcoli che abbiamo fatto non è stata contemplata la tolleranza dei componenti. Questo vuol dire che non avremmo una frequenza precisa sui 30Khz ma una frequenza che ci si avvicina. Per ottenere il nostro scopo dovremmo variare di poco il valore del condensatore e portarlo a 120pF. Adesso passiamo al montaggio Montate il circuito come in foto, utilizzando un'altra basetta mille fori. Il led infrarosso non emette una luce visibile all’occhio umano e quindi sapere se funziona sarà un po’ difficile, fate quanto segue: Andate in una zona al buio e date alimentazione al circuito poi posizionate la vostra telecamera digitale verso il led e tramite il display vedrete una luce bianca. Va bene anche la telecamera del videofonino. Il circuito va montato dal lato sinistro della basetta millefori, vista da davanti ed il diodo led è leggermente inclinato verso il lato destro. LEZIONE 34 Ora passiamo al ricevitore. R1 R2 C1 DL1 IC1 = = = = = 38KΩ 470Ω 10 µF 16V elettrolitico Diodo led rosso 3mm Ricevitore infrarosso 5300 oppure vedi testo Come vedete il ricevitore è molto semplice, sono stato costretto ad utilizzare un componente integrato e molto difficile da trovare in commercio, per facilitare molto il circuito. All’interno del IC1 troviamo molti circuiti integrati, nel caso nostro ci basta sapere che è dotato di: Un ricevitore infrarosso, per ricevere il segnale. Un amplificatore, per aumentare la sensibilità del segnale ricevuto. Un filtro, per escutere tutte le frequenze che non ci interessano. Di questi integrati ne potete trovare 2 tipi. Per il primo la descrizione dei piedini è la seguente: Per il secondo invece è la seguente. Se non trovate l’integrato presente nella lista potete chiedere quest’altri tipi: Nella parte destra è presente il componente e sulla sinistra la frequenza di lavoro. Se comprate il 5300 la frequenza di taglio è di 30Khz. Se comprate il 5360 la frequenza di taglio è di 36Khz, e così via per gli altri. Io ho usato il 5300, se voi trovate il 5360 dovrete cambiare la frequenza del trasmettitore infrarosso usando le formule spiegate in precedenza. Adesso passiamo al montaggio, posizionate il ricevitore infrarosso a destra della basetta millefori come in foto. La distanza fra trasmettitore e ricevitore deve essere di 3-4 centimetri, notate il diodo com’è inclinato verso destra, questa inclinazione la potete variare secondo la vostra esigenza . LEZIONE 35 Ora colleghiamo i fili dell’alimentazione ed il filo di colore marrone all’uscita del circuito e passiamo a testare il circuito. Per tarare il circuito, posizionate un ostacolo a circa 5 centimetri di distanza dal diodo, ed iniziate a girare il potenziometro fino a quando il diodo led non si accenderà. Se il circuito sarà troppo sensibile, rivelerà degli ostacoli che non esistono, se sarà poco sensibile non rivelerà nessun ostacolo. Cercate di tarare il circuito non in funzione della massima distanza ma del miglio funzionamento. Se avete la necessità di diminuire la sensibilità del circuito, basterà piegare il diodo led verso sinistra o cambiare la resistenza R3 del circuito trasmettitore e portarla a 120Ω. Il circuito ora è pronto per l’uso. Facciamo un piccolo programma per testarlo. Esempio: GRIGLIA PRINCIPALE GRIGLIA ULTRASUONI Il microrobot non farà altro che ruotare di 180 gradi (circa) una volta rivelato un ostacolo. LEZIONE 36 In questa LEZIONE vedremmo come utilizzare lo stesso principio dei sensori infrarosso per un altro scopo. Costruiremo due sensori per permettere al microrobot di rilevare una line (nera oppure bianca). NB: Prima di iniziare con la realizzazione del circuito leggete tutto l’articolo. R1 R2 DL1 DL2 IC1 = = = = = 1KΩ 22KΩ Diodo infrarosso trasmittente Diodo infrarosso ricevente 74HC132 o equivalenti Lo schema sopra riportato è molto semplice, il principio è lo stesso del sensore infrarosso, il diodo trasmette una luce infrarossa che è riflessa dalla linea bianca e ricevuta dal diodo ricevitore. Al contrario se la linea è nera, la luce infrarossa non sarà riflessa. Il circuito è per un solo sensore quindi ne dovremmo costruire due. All’interno dell’integrato ci sono 4 porte logiche rappresentate in figura (NAND). L’alimentazione dell’integrato è di 5V al piedino siglato VCC e 0 V a GND. Utilizzeremo 2 porte per il sensore di destra e le altre 2 per quello di sinistra. Costruiamo il circuito nello spazio rimanente della basetta usata per il sensore infrarosso. Prendiamo un pezzo di compensato spesso 8mm (o incollatene 2 da 4 mm) di forma rettangolare e di dimensioni 2 X 1,5 cm e pratichiamo dei fori da 5mm a 3mm di distanza tra loro. Posizioniamo il diodo ricevente e quello emittente come in foto. Con la stessa procedura, creiamo un altro sensore e fissiamolo alla base del microrobot come in foto. I sensori non si devono trovare a diretto contatto con la superficie, ma deve distare di circa mezzo centimetro dal suolo. Colleghiamo il filo giallo con il sensore sinistro ed il filo verde con il sensore destro e passiamo a testare il tutto con un programma esempio. I diodi infrarossi, sia riceventi che emittenti vanno collegati come i comuni diodi. Il reoforo più corto è il catodo ed il più lungo l’anodo. La lettera A indica l’anodo e la lettera K il catodo, il filo marrone è collegato alla massa. Il diodo ricevitore è siglato con la lettera RX ed il diodo trasmettitore con la lettera TX. Per vedere il funzionamento, su una superficie riflettente (tipo il pavimento) coloriamo una riga nera, oppure collochiamo del nastro isolante nero da elettricista. GRIGLIA PRINCIPALE GRIGLIA OTTICO DESTRO GRIGLIA OTTICO SINISTRO Un altro programma per seguire una linea nera è il seguente: GRIGLIA PRINCIPALE GRIGLIA OTTICO DESTRO GRIGLIA OTTICO SINISTRO LEZIONE 37 Questi sensori possono essere usati anche per rilevare la presenza del pavimento e quindi fermarsi od indietreggiare in assenza. Il pavimento (o qualunque altra superficie) però, deve riflettere, se i sensori non riveleranno la luce, vuol dire che il pavimento è assente. In questo caso bisogna spostare i sensori di fronte alle ruote, per far si che i sensori rilevino l’assenza del pavimento prima che il microrobot cada. GRIGLIA PRINCIPALE GRIGLIA OTTICO DESTRO GRIGLIA OTTICO SINISTRO Esistono in commercio dei sensori uguali a quelli appena costruiti, per esempio i CNY 70. Sono dei sensori difficili da trovare in commercio ed hanno al loro interno due diodi, uno emittente e l‘altro ricevente. Altri sensori per realizzare il circuito si possono trovare all’interno di un mouse con la rotella. Se non trovate in commercio l’integrato 74HC132 si può sostituire con un altro equivalente o con qualsiasi integrato che vi permette di avere uno stato logico quando il diodo riceve la luce infrarossa. Fate attenzione a comprare porte logiche aventi all’interno un trigger di schmitt, assicuratevi che nella documentazione ci sia questo disegno . Potete realizzare il circuito con dei transistor o con altri integrati, dipende dalle vostre esigenze e conoscenze in campo elettronico. LEZIONE 38 Il tutorial è terminato, voglio ringraziare tutte le persone che mi hanno sostenuto e motivato, un ringraziamento in particolare a Sandro Segantini (Main), per avermi fornito la strumentazione per sviluppare e testare i circuiti. Il microrobot ha ancora delle uscite disponibili, le potete utilizzare per i vostri scopi o per i vostri test Se volete inviarmi delle modifiche, dei programmi o degli schemi da aggiungere al microrobot, oppure avete dei problemi contattatemi all' indirizzo [email protected], [email protected] oppure postate le vostre domande nel forum www.ivotek.it/forum. Sono gradite le foto con la spiegazione passo passo delle modifiche, dei programmi o del circuito. Le lezioni successive serviranno a modificare od a migliorare il microrobot Poor. LEZIONE 39 Aggiunta di due occhi nel microrobot. I due occhi che vedete sono stati presi da un mouse che in laboratorio ha dato problemi e quindi è stato smontato. Sono stati incollati con della colla calda nei lati della basetta che contiene il trasmettitore/ricevitore infrarosso. LEZIONE 40 Modifica delle ruote. Le ruote sono state modificate per aumentare l'aderenza: Ho tagliato altri due pezzi di legno con forma circolare, come spiegato in precedenza. Poi li ho incolati alle vecchie ruote, aumentando lo spessore, in questo modo anche l'elastico è più facile da incollare. Per tenere fermo l'elastico durante la fase di essiccazione della colla potete usare del filo da cucire come in foto. LEZIONE 41 Sostituire le ruote con dei cingoli. In commercio esistono dei cingoli per il robot BoeBot facilmente adattabili al Poor. Vediamo come: Smontate le ruote ed il ruotino posteriore, smontate i servi e rimontateli in modo da avere il pignone verso la parte posteriore del microrobot, come in foto. Fissate i servi con delle fascette o della colla calda ma cercate di tenere il servo a filo con il legno sottostante. Ora tagliate 3 pezzi di compensato da 3mm con le seguenti dimensioni: Due da 3,5 cm X 5 cm. Uno da 3,5 cm X 9 cm. Incollate i tre pezzi di legno in modo da formare una scatola come in foto, sarà la struttura dei cingoli. Iniziate a montare i cingoli come descritto nel libretto di istruzioni presente nella scatola di montaggio. Prendere le viti lunghe 2 cm ed i dati relativi. Fissate il primo dado ma non lo stringete troppo, lasciate un millimetro circa di distanza. Adesso fissate la corona non dentata (arancione) nella base di alluminio stringendo il secondo bullone. Quando avete finito controllate che il perno arancione giri liberamente, se non lo fa allentate il primo dado. Montate con lo stesso sistema tutti gli altri perni per avere un aspetto simile a quello della foto. Ora montate il supporto in alluminio sul robot e forate il compensato per inserire le viti come in foto. Incollate la parte anteriore della struttura in alluminio con il legno, per intenderci quella sopra i servi segnata in rosso. Fate lo stesso per la seconda struttura, in modo da avere una cosa del genere. Prendere la corona dentata e fissate la squadretta rotonda con delle viti, vedi foto. Adesso montate il cingolo di gomma nella struttura ed infine la ruota dentata come in foto. Ricordatevi che ora i sensori sono più alti del dovuto e quindi vanno abbassati. LEZIONE 42 Costruite il circuito stampato come spiegato nel link seguente: http://www.ivotek.it/elettronica/documenti/circuiti_stampati.htm. Il disegno a grandezza naturale lo potete scaricare qui: http://www.ivotek.it/robotica/TUTORIALMICROROBOTWEB/LEZIONE42_F ILE/progpoor.bmp Una volta realizzato il circuito stampato posizionatelo con i fori per la presa parallela a destra, come in foto. Montiamo i primi 4 diodi 1N4007, questi componenti hanno un verso segnato da una barra bianca che andrà posizionata verso il basso,come in foto. I 3 diodi 1N4007 invece vanno montati con la barra bianca verso l'alto, come in foto. Montiamo ora le resistenze da 100 ohm, per riconoscerle assicuratevi che i colori siano MARRONE NERO MARRONE, se avete difficoltà a calcolare i valori potete scaricare il programma RESCOD da qui: http://www.ivotek.it/programmi/rescod.zip Questi componenti non hanno un verso e li potete montare come volete rispettate però la posizione come quella in foto. Montiamo ora le resistenze da 10 Kohm, i colori sono MARRONE NERO ARANCIONE, come in foto. Montiamo la resistenza da 4,7 Kohm, GIALLO VIOLA ROSSO, come in foto. Passiamo al montaggio della resistenza da 330 ohm, ARANCIONE ARANCIONE MARRONE, come in foto. Ora alla resistenza da 1 Kohm, MARRONE NERO ROSSO. Ora montiamo i diodi 1N4148, anche questi hanno un verso segnato da una barretta nera che va rivolta verso l'alto, come in foro. Adesso passiamo ai condensatori da 100 nF, questi non hanno un verso basta posizionarli come in foto. I due condensatori a disco da 27 pF, come in foto. I zoccoletti da 14 PIN e da 9 PIN devono essere montati rispettivamente a destra ed a sinistra, come in foto, questi componenti hanno un verso di montaggio ma se lo invertite non è importante perché servono solo a contenere gli integrati. Ora i diodi led da 3 mm, come tutti i diodi questi anno un verso di connessione, guardando il diodo noterete che c'è un reoforo più corto, nel diodo led a destra il reoforo più corti, va verso il basso, mentre per il diodo led a sinistra il reoforo più corto va a sinistra. Adesso il quarzo, non ha un verso di connessione, quindi potete montarlo senza problemi. Adesso montiamo il transistor, anche questo ha un verso di connessione e quindi va montato tenendo la parte piatta verso l'alto, come in foto. Ora il condensatore, guardando l'involucro noterete un segno meno (-) che identifica un reoforo che andrà rivolto verso l'alto. Passiamo allo stabilizzatore 7812, montato come in figura per rispettare al polarità. Ed ora allo stabilizzatore 7805, sempre come in foto. Adesso montiamo l'aletta di raffreddamento. Ed il ponticello. Adesso prepariamo il connettore per l'alimentazione, come in foto. Adesso dobbiamo collegare i cavi della porta parallela, rispettate i colori della foto per un facile collegamento. I colori sono, dall'alto verso il basso: Giallo - Rosa - Marrone - Griggio - Verde, il bianco è scollegato. Ed ora il connettore di alimentazione. Il filo bianco va saldato sul piedino dell'integrato 7407 una volta montato. La tacca di riferimento dell'integrato 7407 deve essere rivolta verso il cavo della porta parallela, mentre la tacca di riferimento del microcontrollore deve essere rivolta verso l'esterno del circuito stampato, come in foto: LEZIONE 43 Molte volte capita che i motorini a spazzole generino dei disturbi creando dei comportamenti anomali nel microrobot. Per evitare questi disturbi si possono usare più soluzioni, ve ne elenco qualcuna. 1) Usare due alimentazioni, un aper i motori ed una per il PIC. 2) Inserire dei condensatori a disco da 100nf tra i cavi dell'alimentazione del motore ed il supporto, come in foto. E tra il positivo ed il negativo dell'alimentazione dei motori. 3) Attorcigliate i cavi di alimentazione dei motori e avvolgeteli intorno ad un toroide di ferrite, ne potete trovare qualcuno all'intenro dei PC vecchi o nei negozio di elettronica.