Prefazione
L’idea per questo progetto mi venne casualmente, in un pomeriggio di ottobre, osservando come i lampioni si accendessero automaticamente al giungere del crepuscolo mentre la luce solare si attenuava.
A quel punto un abbozzo già cominciava a comporsi nella mia mente, tratti grossolani di una struttura mobile con un sensore capace di percepire l’intensità solare circostante. Non sembrava nulla di estremamente complesso, e man mano che riflettevo il progetto cominciava sempre più a prendere forma. Quello che avevo in mente era un robot a tutti gli effetti, rudimentale, ma pur sempre dotato di parti mobili comandati da un software; capace inoltre di percepire stimoli esterni, quali la luce. Mi affascinava il fatto di realizzare con le mie mani l’idea che avevo pensato, e decisi di portare il progetto QWEWER come tesina del mio esame di Stato.
Anche QWEWER deriva da un fatto del tutto casuale! Non sapendo che nome attribuire alla mia creatura, cominciai a digitare caratteri a caso nella tastiera, nella speranza che qualcosa saltasse fuori. Ebbi la fortuna di trovare quasi subito una combinazione che non sembrava insensata, ma nemmeno troppo banale nella sua semplicità.
Potrebbe sembrare buffo il nome, come in parte il suo aspetto: infatti anche la forma di QWEWER è puramente casuale!
Inizialmente l’avevo pensato più somigliante ad un braccio meccanico piuttosto che ad una specie di robot di Lego assimilabile al vecchio Goldrake, ma procedendo con la costruzione del supporto per il motore la forma che prese fu quasi una scelta obbligata. Una volta terminata la costruzione, notai che con l’aggiunta di occhi e orecchie il tutto sarebbe sembrato più espressivo! Erano davvero necessari questo genere di particolari?
La risposta è sì!
Non solo i pittori o gli scrittori sono autorizzati ad usare la fantasia per realizzare le loro opere. Le idee sono fatte da intuizioni, pronte per essere raccolte da chi sa coglierle, percepite dal più profondo della nostra mente. Un pezzo di codice non è vincente solo perché è efficiente, ma anche perché è originale, è bello.
L’originalità va cercata ed espressa in qualsiasi modo, mezzo, azione ed invenzione attraverso la fantasia: è proprio questo l’elemento chiave che contraddistingue l’essere umano dall’essere macchina. Se in un futuro prossimo tutti i lavori saranno svolti dalle macchine, vorrà forse dire che esse sono diventate come noi?
Einstein diceva che l’immaginazione è più importante della conoscenza. Forse perché la conoscenza, per quanto grande, ha sempre un limite, mentre l’immaginazione non ha confine.
E forse un giorno qualcuno per caso, per intuizione, perché era un po’ più pazzo degli altri, riuscirà a cambiare il mondo attraverso le proprie scoperte.
“Il trent’anni. Gli scienziati, invece, sono molto
2000 è vicino. Io ho poco tempo, ma sono avanti
indietro. Se mi dessero ascolto, se solo un poco mi ascoltassero, risolverebbero tutti i problemi del mondo. Ho 91 anni, e da molto tempo studio il magnetismo e alcuni fenomeni della fisica che ancora non sono stati capiti. Il secolo che sta per iniziare potrebbe cambiare la scienza. Non so se siete pronti per ascoltare questa cosa, ma è bellissima!
Dentro al sole, al centro, abbiamo scoperto un cuore. Un cuore pulsante che batte agli stessi ritmi
umano, un cuore magnetico. Siete liberi di credere o no a quello che scrivo… Se ci
credete, allora avete capito i segreti del mondo. Se non ci credete, per me è lo stesso.”
Pierluigi Ighina – Intervista a “Reporter”, 1999
L’assemblaggio
Il corpo di QWEWER e ogni sua giunzione sono composti interamente da mattoncini Lego Technic. Ho optato per questa scelta per la facilità del montaggio, avendo già a disposizione tutti i pezzi necessari; inoltre la variegata forma dei singoli mattoncini permetteva una certa flessibilità nella costruzione, consentendomi di progettare una forma semplice ma allo stesso tempo compatta e resistente. Tutta la struttura poggia in una solida base, rinforzata opportunamente con dei perni per evitare che i pezzi si stacchino accidentalmente.
È presente il motore principale, che fa ruotare degli ingranaggi per permettere alla torretta di girare in senso orario o antiorario di 360°.
Tutto ciò è permesso da un pezzo speciale, composto da due ingranaggi posti uno di fronte all’altro e uno alla sommità di questi due, che serve per trasferire il moto circolare dettato dal motore da orizzontale a verticale.
La torretta è sorretta da un’asse saldamente fissata alla parte superiore tramite un connettore a T, il quale è legato a dei sostegni alla base della struttura.
L’albero motore è fissato alla base in maniera che faccia buona presa sugli ingranaggi motrici e soprattutto non si pieghi.
La “testa” è l’alloggiamento per il secondo motore, che ha il compito di inclinare in alto o in basso la fotoresistenza per un angolo complessivo di 90°. Questa è formata da due parti: la calotta inferiore, che è fissata all’asse, e la calotta superiore che tiene fisso il motore in modo che non si sposti durante i movimenti. Entrambe le parti sono tenute assieme da altri connettori a T e dei perni simili a quelli usati nella base.
Il braccio sinistro è composto da un’asse leggermente più corta di quella che sorregge la testa, la quale è collegata al motore tramite un incastro appositamente costruito su misura utilizzando dei vecchi tubi di plastica. Alla sua estremità troviamo il sostegno per la fotoresistenza.
Purtroppo l’incastro improvvisato e autocostruito era instabile, e ho dovuto provvedere a fissare il braccio ad un supporto più robusto, per evitare che si inclinasse troppo falsando quindi le rilevazioni effettuate.
Dall’altra parte si trova il braccio destro di QWEWER. Quest’arto ha l’unica funzionalità di servire da contrappeso per un miglior bilanciamento, e naturalmente svolge una funzione centrale nel renderne più divertente l’aspetto, insieme ad occhi malvagi e orecchie drizzate!
I motori
La scelta dei motori non è stata facile.
Inizialmente pensai di utilizzare motori passo-passo per la loro precisione e stabilità, data dalla lenta velocità di coppia e dalla possibilità di regolare alla perfezione la posizione angolare dell’albero. C’era solo un piccolo, grande problema: questo tipo di motori avevano bisogno di una scheda di pilotaggio per poter funzionare. Senza di questa, non si muovevano nemmeno di un millimetro. Purtroppo me ne accorsi troppo tardi e, con grande delusione, decisi di mettere da parte i passo-passo.
La seconda opzione erano i cosiddetti motorini elettrici in corrente continua, di facile reperibilità (ho dovuto smontare un’intera macchinina radiocomandata) e grande versatilità.
Infatti i motorini elettrici hanno bisogno di poca tensione per funzionare, rispetto ai motori passo-passo, e un assorbimento di corrente medio di 150mA.
Presentano però il problema della velocità di rotazione: mentre con i passo-passo si aveva una rotazione lenta e precisa, questi hanno una coppia estremamente più elevata, e quindi imprecisa.
Limitare la tensione di alimentazione dei motori sarebbe stata la soluzione migliore al problema, ma di impossibile realizzazione visto che sono pilotati dall’integrato L293D, che non accetta tensioni minori di 4,5 volt.
Ho risolto questa complicazione da software, creando una funzione delay(int msec); produceva un ritardo di n millisecondi, determinando così una sorta di clock per il motore, che rimane attivo solo per un brevissimo lasso di tempo e poi si spegne.
Preciso che nell’ambiente di sviluppo Borland C++ non è presente una funzione già predefinita che produce un ritardo in millisecondi, ma solo nell’ordine dei secondi.
//produce un ritardo di msec millisecondi
#include <time.h>
void delay(int msec){
clock_t start=clock();
clock_t end;
do{ end=clock();
}while(end-start < msec);
}
La funzione clock() restituisce il valore del clock interno del microprocessore. La funzione delay è molto semplice: resta bloccata nel ciclo finché la differenza tra il momento attuale e quello del segnale di start è minore del valore indicato. Ma anche questo sistema è soggetto ad alcuni problemi di precisione: si ha un ritardo minimo di 50-60 millisecondi, perché la CPU impiega del tempo per eseguire l’assegnazione e il controllo, e anche se mettessimo il valore di msec pari a 0, in ogni caso si avrebbe un ritardo minimo di 60 millisecondi.
Ma 60 millisecondi bastano per far muovere di uno scatto il motore. Compie un movimento un po’ brusco, ma la struttura è solida e capace di resistere a strattonamenti.
Ma diamo uno sguardo a cosa c’è dentro a quelle scatoline misteriose!
Questo a sinistra è il motore di base, che fa girare l’asse principale. Fisicamente è più grosso del secondo perché deve muovere tutto il peso della torretta. Si notino come gli ingranaggi formino una sorta di limitatore di coppia, rallentando di molto la rotazione finale.
Il motore secondario (a destra) invece è più piccolo in termini di potenza, ma nonostante questo, presenta una coppia più elevata del primo. Infatti possiede ben due ingranaggi intermedi per rallentare ulteriormente la velocità di rotazione finale.
Il circuito
Il robot QWEWER è dotato di una serie di integrati che gli permettono di interagire con il mondo esterno, e di trasferire i dati al programma elaboratore attraverso la porta parallela. La seguente figura rappresenta lo schema a blocchi dei componenti e la dinamica con cui comunicano tra loro.
Senza entrare subito nei dettagli, notiamo che ogni integrato è comandato direttamente dal software attraverso un’interfaccia, creata appositamente per comunicare con la porta parallela e trasferire i segnali di controllo dal computer al circuito.
Analizziamo ora lo schema circuitale completo:
Legenda
Nella prima parte, dedicata al controllo dei motori, i collegamenti in blu si riferiscono a quei segnali destinati al comando del primo motore, mentre quelli verdi si riferiscono al secondo.
Nella parte inferiore, troviamo i componenti riguardanti l’acquisizione e la conversione dei segnali luminosi analogici provenienti dall’esterno.
Qui, i collegamenti blu si riferiscono ai bit più significativi (MSB) mentre i verdi ai bit meno significativi (LSB). In uscita all’integrato 74LS157 si avrà uno dei due nibble (collegamenti rossi), selezionato tramite il comando di STROBE.
Per semplificare la rappresentazione dello schema, ho riassunto in un simbolo (SWITCH) il sistema di pilotaggio degli integrati, composti da un transistor e due resistenze. Vedremo successivamente in dettaglio il suo significato, insieme alla spiegazione di ogni singolo componente presente nel circuito e la sua funzione.
Elenco componenti
- 7 resistori 560 Ω
- 7 resistori 22k Ω
- 1 resistore 10k Ω
- 2 resistori 330 Ω
- 1 resistore 100 Ω
- 7 transistor BJT NPN BC109B
- 1 integrato 74LS04
- 1 integrato L293D
- 1 integrato 74LS157
- 1 convertitore analogico/digitale ADC0804L
- 2 motorini elettrici in corrente continua
- 1 fotoresistenza
- 1 interruttore
Il tutto opportunamente saldato su board millefori con stagno 1mm e cavetti conduttori.
Passiamo ora alla spiegazione e alla visione dei datasheet degli integrati.
Come da schema, ogni pin OUT della porta parallela è collegato ad un transistor bipolare BJT.
Il transistor è un componente elettronico attivo, formato da semiconduttori, che funziona come amplificatore o interruttore, e a seconda di come viene polarizzato può comportarsi in modi differenti. In questo contesto viene usato come un interruttore digitale.
La porta parallela, infatti, non è abilitata ad erogare una corrente degna di tale nome, e non può quindi pilotare nessun tipo di integrato.
Ma collegando un pin di uscita alla base del transistor, è possibile mandarlo in stato di saturazione (ON) o interdizione (OFF).
Il passaggio da uno stato all’altro è controllato dalla corrente di base o dalla tensione di base-emettitore. Se si lascia aperto l’ingresso o si applica all’ingresso il potenziale della massa, la corrente di base non fluisce e praticamente neanche la corrente di collettore. La figura l’esempio pratico del funzionamento. I valori in nero si riferiscono alle grandezze durante la fase di interdizione, mentre quelli in rosso alla fase di saturazione.
Così, quando il livello logico del pin è 1, l’emettitore andrà a massa, dando quindi in uscita uno 0 logico; mentre con uno 0 in entrata, l’uscita sarà 1.
L’utilizzo della porta NOT è spiegata perché i bit di output all’accensione del computer, per default, sono settati a 0. Quando il software non comanda la porta parallela tutti i transistor conducono, e andrebbero ad attivare tutti i motori contemporaneamente, provocando danni alla struttura.
Integrato 74LS04
Con l’aggiunta dell’integrato 74LS04 si scongiura questo problema, e la gestione da parte del software diventa più intuitiva, visto che si evita di ragionare in logica negativa dei transistor. Svolge un ruolo fondamentale anche nella gestione dei motori, riducendo il numero di pin OUT da utilizzare per il controllo.
Per capire meglio il perché, spieghiamo prima a cosa serve l’integrato L293D, detto anche ponte ad H.
Cos’è un ponte H?
È un circuito che pilota un motore in corrente continua, e permette di farlo lavorare in quattro diversi stadi: avanti, indietro, stop, frenato.
Lo schema può essere così rappresentato:
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Tesina - Premio maturità 2009
Titolo: Il progetto QWEWER, una porta tra il mondo fisico ed informatico.
Autore: Cardin Christian
Descrizione: Un piccolo robot che, muovendosi in una semisfera a 360, compie rilevazioni sulla quantità luminosa circostante e scrive i dati in un database per effettuare delle indagini statistiche.
L'idea per questo progetto mi venne casualmente, in un pomeriggio di ottobre, osservando come i lampioni si accendessero automaticamente al giungere del crepuscolo mentre la luce solare si attenuava. A quel punto un abbozzo già cominciava a comporsi nella mia mente, tratti grossolani di una struttura mobile con un sensore capace di percepire l'intensità solare circostante. Non sembrava nulla di estremamente complesso, e man mano che riflettevo il progetto cominciava sempre più a prendere forma. Quello che avevo in mente era un robot a tutti gli effetti, rudimentale, ma pur sempre dotato di parti mobili comandate da un software; capace inoltre di percepire stimoli esterni, quali la luce. Mi affascinava il fatto di realizzare con le mie mani l'idea che avevo pensato, e decisi di portare il progetto QWEWER come tesina del mio esame di Stato. Anche QWEWER deriva da un fatto del tutto casuale! Non sapendo che nome attribuire alla mia creatura, cominciai a digitare caratteri a caso nella tastiera, nella speranza che qualcosa saltasse fuori. Ebbi la fortuna di trovare quasi subito una combinazione che non sembrava insensata, ma nemmeno troppo banale nella sua semplicità. Potrebbe sembrare buffo il nome, come in parte il suo aspetto: infatti anche la forma di QWEWER è puramente casuale!
Materie trattate: informatica, sistemi, elettronica, calcolo
Area: tecnologica