vedi articolo

Istituto Tecnico Tecnologico "Blaise Pascal"- Cesena
Esame di stato 2014
L’influenza della scienza e fantascienza
Realizzazione di un braccio meccanico
Marchi Matteo
5°A
Elettronica e Telecomunicazioni
Anno 2013/2014
Indice
1
• L'immagine della scienza
2
• Isaac Asimov
4
• Automation
6
• Braccio Robotico
7
Matteo Marchi
L'immagine della scienza
Nella seconda metà dell’800 dominava una visione del mondo fondata sulla convinzione
fiduciosa che il sapere umano si sarebbe dilatato senza fine, portando un benessere
illimitatamente crescente.
Secondo tale visione il dominio dell'uomo sulla natura si sarebbe ampliato senza conoscere
ostacoli; in particolare, si credeva che lo sviluppo industriale, fondato sui nuovi processi
produttivi, frutto delle innovazioni tecnologiche, potesse avanzare indefinitamente, creando
ricchezza e benessere sempre più diffusi.
Questo convincimento scaturiva dall'impressionante sequenza di invenzioni e
realizzazioni tecniche che si erano susseguite tra gli ultimi decenni del XIX secolo e i primi
del XX: la gelatina esplosiva che permise di realizzare i grandi trafori alpini; il calcestruzzo
pre-compresso che consentì la costruzione di
grandi dighe; la lampadina elettrica che prima
illuminò le strade e poi le case dei benestanti; la
prima centrale elettrica realizzata nel 1881 dalla
Siemens in Inghilterra; il filobus, il trattore, il
treno elettrico, l'aereo e poi anche l'elicottero; il
motore a benzina nel 1884 e quindi il motore
Diesel; il pneumatico, la prima automobile nel 1888.
Questo elenco, necessariamente incompleto, permette di cogliere la rilevanza della meccanica
e dell'elettrotecnica sulle altre branche dell'ingegneria e quindi aiuta a comprendere meglio il
sentimento di stupore e ammirazione che caratterizzò quegli anni, favorendo il diffondersi del
mito del progresso.
All'inizio del Novecento, dunque, l'atteggiamento più diffuso era la fede nel progresso,
che includeva la fiducia nell' ingegno umano dominatore della natura, l'aspettativa di una
crescita illimitata, l'ammirazione per i trionfi della meccanica e dell'elettrotecnica e il
riconoscimento della centralità della tecnologia.
Tutto questo viene poi interrotto e smorzato dall'arrivo delle due guerre mondiali e l'esigenza
di realizzare armi più sofisticate: l’ atomica e il suo utilizzo in campo militare che portò a un
dissesto geologico non quantificabile al momento.
Con Le catastrofi ambientali e l'incapacità di risolvere alcuni problemi planetari siamo arrivati
a distruggere il clima in cui prosperava il mito del progresso. Ciò è avvenuto, per fortuna o
per sfortuna solo in parte perché si è indebolita l'influenza della scienza e della tecnologia
sulla società, che anzi si è accresciuta.
La fine del mito del progresso è stata caratterizzata da fasi alterne di pessimismo e di
ottimismo, dalla consapevolezza che tale influenza produce anche effetti profondamente
negativi. Di tutti gli eventi del XX secolo, la realizzazione delle armi atomiche - con le
esplosioni dell'agosto 1945, il successivo sviluppo della bomba all'idrogeno e la corsa agli
armamenti nucleari durante gli anni cinquanta – si costituisce l'avvenimento che ha influito più
direttamente sull'atteggiamento dell'opinione pubblica nei confronti della scienza e della
tecnologia.
Già dagli anni cinquanta ci si è dunque interrogati sull'opportunità di imporre dei limiti .
2
Matteo Marchi
Per contro alla tesi dei limiti si può obiettare anzitutto con l'esperienza storica che ha
dimostrato come l'imposizione di vincoli alla libertà della ricerca scientifica da parte della
cultura e dei poteri dominanti si sia in seguito sempre dimostrata negativa.
Una più consistente obiezione è quella che il sapere, pur avendo in sé potenzialità
negative, rende possibili anche conoscenze e strumenti per affrontare i problemi che si
determinano. Nasce così un'alternativa alla tesi dei limiti - quella che si è indicata come tesi
dell'equilibrio - consistente nel porsi come obiettivo della ricerca l'analisi delle potenzialità
delle nuove scoperte e, ove tali potenzialità siano pericolose, l'acquisizione delle conoscenze
necessarie per affrontare e dominare i rischi che ne conseguono.
Nel corso del Novecento la crescita del sistema scientifico-tecnologico ha assunto velocità
ineguagliate nella storia dell'umanità; l'espansione è stata tale da indurre profondi mutamenti
nell'attività di ricerca.
I mutamenti di più vasta portata sono i seguenti: la scienza ha fatto irruzione in campi
che sembravano preclusi all'indagine scientifica; si è assistito alla moltiplicazione e
diversificazione delle sedi in cui la ricerca è svolta e alla frammentazione della comunità
scientifica; l'Europa ha perduto la sua centralità a favore degli Stati Uniti; la competizione
bellica ed economica tra le nazioni ha portato alla egretezza della ricerca minando l'ideale
ottocentesco di una comunità scientifica sovranazionale; la crescita dei mezzi necessari alle
attività di ricerca ha portato gli scienziati a dipendere sempre più dalle fonti di
finanziamento, alimentando il conflitto tra indipendenza e finalizzazione; la moltiplicazione
degli addetti alla ricerca ha indebolito
lo spirito di élite proprio degli scienziati
ottocenteschi.
Nel corso del XX secolo i mutamenti indotti dalla terza rivoluzione industriale hanno
trasformato profondamente la società umana nel suo complesso, e il mondo occidentale in
particolare, al punto che molti osservatori considerano il Novecento come il secolo più
dinamico nella storia dell'umanità. La ricerca scientifica e tecnologica è stata il motore
trainante di questi mutamenti, in quanto ha prodotto uno sviluppo economico che, a sua volta,
ha creato nuove risorse da destinare alla ricerca.
Si parla di terza rivoluzione industriale indicando tutta una serie di
processi di trasformazione del tessuto socio-economico avvenuti nei
paesi sviluppati occidentali del primo mondo nella seconda metà del
Novecento e a partire dal secondo dopoguerra e caratterizzati dalla
diffusione di applicazioni tecnologiche legate a loro volta ai processi
tecnico-scientifici quali la produzione di energia dal nucleare e da
fonti rinnovabili, l’estensione della manipolazione dei materiali alla
scala atonica(nanotecnologie) e la digitalizzazione dell’informazione .
Tra le cause della terza rivoluzione industriale si possono
annoverare lo sviluppo e l’accumulo delle conoscenze scientifiche e
tecnologiche del momento spesso nate nel contesto militare delle
guerre mondiali della prima metà del secolo e successivamente in
quello della guerra fredda tra le superpotenze mondiali: Stati Uniti e
Unione Sovietica. Condizioni polite più stabili a livello mondiale nei
paesi occidentali hanno poi favorito la crescita economica a partire
dalla ricostruzione post-bellica.
3
Matteo Marchi
Isaac Asimov
Vita:
Isaac Asimov nasce a Petrovichi (Russia) nel 1920,
all'età di 3 anni segue i genitori che emigrano negli Stati Uniti.
Di famiglia ebraica cresce a New York. Si laurea in Chimica e
Biologia, e svolge attività di insegnamento presso la prestigiosa
School
of
Medicine
dell'università
di
Boston.
Contemporaneamente dal 1939 svolge attività di scrittore che lo
porterà a ritirarsi dall'insegnamento nel 1950 per dedicarsi alla
scrittura a tempo pieno.
Isaac Asimov muore a Manhattan il 6 aprile 1992.
Schivo e modesto di carattere impiega la quasi totalità del suo
tempo alla macchina da scrivere; abitudinario e dedito al lavoro
non ama viaggiare soprattutto in aereo e raramente si allontana
da New York.
Pensiero:
E' curioso notare come un uomo che ha immaginato una umanità in viaggio attraverso lo
spazio tempo immenso di millenni nel futuro su distanze di anni luce non amasse viaggiare e
fosse terrorizzato dall'aeroplano.
In realtà con la sua mente egli ha spaziato ben oltre i limiti fisici e mentali dell'uomo
comune ed in questo era completamente appagato, una volta ha detto che ringraziava la
natura per avergli concesso una mente lucida e piena di idee, e la capacità di renderle
chiaramente sulla carta.
Arguto e ironico amava sminuire il suo lavoro in pubblico, forse con falsa modestia,
dichiarandosi molto più interessato ai proventi delle sue opere che ai contenuti, anche se in
realtà conduceva una vita molto semplice, quasi monastica di assoluta dedizione al lavoro.
Andava giustamente orgoglioso di aver coniato il nuovo vocabolo "ROBOTICA" , oltre ad
averne previsto le applicazioni , destinato ad avere un impatto sensazionale sui nostri tempi.
Le sue opere sono considerate sia nel campo della fantascienza sia nel campo della
divagazione scientifica. Sapeva vedere oltre il quotidiano e gli eventi del momento, infatti
lanciò accorati appelli sul sovrappopolamento della terra appellando si al bisogno di controllare
le nascite tramite procreazione e contraccezione responsabile. Si considerò sempre
sostenitore del femminismo e riteneva che l’omosessualità dovesse essere un diritto morale.
Lanciò inoltre allarmi riguardo la crisi ambientale che vedeva delineandosi descrivendo il
fenomeno serra e il buco dell’ozono. Era fortemente contro la violenza e si oppose alla guerra
del Vietnam, non a caso una delle sue famose massime è: ”la violenza è l’ultimo rifugio degli
impotenti”.
L’ opera sua più letta è la trilogia di “IO ROBOT” dove vengono menzionate le tre leggi
della robotica da lui sostenute:
4
Matteo Marchi
1) Un robot non può recar danno a un essere umano ne
permettere che un eseere umano patisca danno;
2) Un robot deve sempre obbedire agli ordini degli esseri
umani a meno che contrastino con la prima legge;
3) Un robot deve proteggere la propria esistenza, purchè
questo non contrasti con le due leggi menzionate.
L’influenza Della Fantascienza:
Il tenore di vita dell'umanità è sempre andato soggetto a cambiamenti drastici e più o
meno irreversibili, spesso causati da qualche avanzamento scientifico e/o tecnologico. Ad
esempio, la nostra vita è stata cambiata per sempre dalla scoperta del fuoco, della ruota, della
stampa.
Anche il tasso d'incremento di questi cambiamenti è cresciuto di continuo: una volta
che i cambiamenti si verificano, tendono ad accrescere il senso di sicurezza della specie
umana e quindi ad aumentarne il numero di individui capaci di concepire, introdurre e
sviluppare ulteriori progressi della scienza e della tecnologia. Inoltre, ogni progresso serve da
base ai progressi successivi, per cui l'effetto è cumulativo. Il tutto è peggiorato dal fatto
che, grazie ai progressi scientifici e tecnologici, siamo arrivati al punto di disporre di un
potere che può distruggere la civiltà, oppure portarla a vette mai sognate.
Ma come si fa a prevedere esattamente i cambiamenti, quando la maggioranza della
popolazione rifiuta testardamente di ammettere l'esistenza anche del minimo cambiamento?
Ed è fantascienza della migliore se gli eventi descritti si possono svolgere solo in un
ambiente sociale o fisico notevolmente diverso dal nostro. Il che non significa che un
racconto di fantascienza debba essere profetico, o che debba narrare qualcosa che
succederà veramente, per poter essere importante. Non deve nemmeno narrare qualcosa
che possa accadere nella più remota delle ipotesi.
L'esistenza del cambiamento, il fatto di accettare il cambiamento, è sufficiente. Col
tempo, chi legge fantascienza arriva a scoprire che le cose saranno diverse. Forse migliori,
forse peggiori, ma diverse. In una maniera o in un altra, ma diverse. Se abbastanza gente
leggesse fantascienza o fosse, per lo meno, sufficientemente influenzata da chi legge
fantascienza, una buona parte della popolazione potrebbe giungere ad accettare i
cambiamenti, e i capi di governo potrebbero programmare cambiamenti con speranza di non
incontrare resistenza.
Okay, allora mi domando, la fantascienza ha influenzato il mondo? Qualcosa che gli
autori di fantascienza hanno scritto ha talmente influenzato veri scienziati, o ricercatori, o
uomini politici o industriali da scatenare veri cambiamenti? Perché non parlare dei voli nello
spazio, dei viaggi sulla Luna? Questo è stato uno dei temi prediletti dalla fantasia umana; sia
Jules Verne che H.G. Wells hanno scritto opere molto popolari sui viaggi sulla Luna nel
diciannovesimo secolo e all'inizio del ventesimo. Indubbiamente, gli scienziati e i tecnici che
hanno cominciato a dare solide basi alla missilistica avevano letto fantascienza.
5
Matteo Marchi
Automation
Automation is the use of various control systems for
operating equipment such as machinery, processes in factories,
boilers, steering and stabilization of ships, aircraft and other
applications with minimal or reduced human intervention. Some
processes have been completely automated.
The biggest benefit of automation is that it saves labor,
however, it is also used to save energy and materials and to
improve quality, accuracy and precision.
The advantages are:
• Increased productivity and the speed of production.
• Increased consistency of output and improved quality.
• Reduced direct human labor costs and expenses.
The disadvantages are:
• Causing unemployment by replacing human labor.
• Security Threats: an automated system may have a limited level of intelligence, and is
therefore more susceptible to committing errors outside of its immediate scope of
knowledge.
• High initial cost: the automation of a new product or plant typically requires a very
large initial investment in comparison with the unit cost of the product, although
the cost of automation may be spread among many products and over time.
Another major shift in automation is the increased demand for flexibility and
convertibility in manufacturing processes. Manufacturers are increasingly demanding the
ability to easily switch from manufacturing Product A to manufacturing Product B without
having to completely rebuild the production lines.
6
Matteo Marchi
Braccio Robotico
Descrizione:
Il progetto è stato realizzato utilizzando legno, per la base e i sostegni laterali, ferro,
per le parti mobili del braccio e della base rotante, e alluminio per vari sostegni. La base ha
una rotazione massima di 230°, il braccio principale ha un’inclinazione massima di 30°, mentre
il braccio secondario ha un’apertura massima di 40°. L’estensione del braccio è di 25 cm circa.
Nel progetto sono presenti varie schede elettroniche:
• Scheda Principale per Arduino MEGA 2560
• Scheda per Arduino UNO R3
• Modulo Relay
• Ponte ad “H”
• Alimentatore
• Schede per Potenziometro, Servo, Sensore ad Ultrasuoni
• Pulsantiera
Componenti meccanici principali:
• Un attuatore lineare
• Un secondo attuatore lineare
• Un motore passo-passo NEMA 23
• Pinza Meccanica azionata dal Servomotore
• Due Pulegge con Cinghia Di Trasmissione
• Base Ruotante (recuperata da un vecchio mobile TV)
7
Matteo Marchi
Componenti elettronici:
• Arduino Mega 2560 R3
• Arduino UNO R3
• 2 Display LC
• Sensore ad ultrasuoni HC-SR04
• Potenziometro Multigiro
• Finecorsa
• Relay srd-05vdc
• Accoppiatori ottici EL 817
• Transistor BC547C
• Transistor BDX53 (NPN) e BDX54 (PNP)
• Mosfet IRF540NPBF
• Regolatori di tensione (24V, 12V, 5V)
Esternamente a questa unità principale è presente un’unità di potenza che contiene due
trasformatori, che abbassano la tensione di rete 240Vac in 12Vac e 24Vac, protetti da un
magnetotermico e da salvavita.
Spiegazione Parti Progetto:
Primo Attuatore Lineare
Secondo Attuatore Lineare
Sovrastante, attuatore lineare 24Vcc 4.8A con corsa massima da 6 cm (con finecorsa
interni); il secondo attuatore lineare 12Vcc 0.5A, presenta una barra filettata M4 da 30 cm.
Motore
Motore passo-passo bipolare, bialbero, 3.6Vcc 3A, 200 steps.
8
Matteo Marchi
Servomotore
Sensore ad Ultrasuoni
Puleggia
Servomotore con forza da 15.5kg-cm, velocità di 0.15sec/60°, con corsa di 180°;
sensore ad ultrasuoni HC-SR04; pulegge con cinghia di trasmissione.
Alimentatore
Arduino MEGA 2560
Alimentatore realizzato con integrati L78SxxCV che forniscono ad ogni uscita 2A di
corrente, per un totale di 16A, presenta un’uscita da 24Vcc, tre da 12Vcc e quattro da 5Vcc;
affianco l’Arduino MEGA 2560.
Ponte ad “H”
Modulo 4 Relay
A sinistra abbiamo il ponte ad “H”, mentre a destra è presente un modulo a quattro
relay utilizzato per il comando dei due attuatori.
9
Matteo Marchi
Scheda Arduino Uno
La scheda sovrastante presenta, come in quella principale, un ingresso per
l’alimentazione tramite jack, diodo di protezione, tasto per il reset e due trimmer da 100KΩ.
Questa scheda gestisce i segnali provenienti dal sensore di distanza e dal
potenziometro collegato al motore passo-passo, li adatta alle misure reali correggendo piccoli
errori e stampa su schermo LCD i valori finali.
Scheda Principale Per Arduino MEGA
La scheda principale è stata realizzata per essere utilizzata in varie combinazioni, ad
esempio collegata al computer tramite collegamento USB e interfacciata a programmi come
LabView o Pure-data che permettono il controllo di tutte le parti della scheda.
Scendendo nei dettagli la scheda presenta:
10
Matteo Marchi
•
•
•
•
•
•
•
•
•
Alloggio per MEGA 2560 (possibilità di sostituirla con Arduino DUE o UNO, nel caso di
quest’ultimo le funzioni della scheda risulteranno molto limitate)
Schermo LCD da 2 righe per 16 colonne illuminato e con il contrasto pre-impostato al
massimo
Cinque BJT (BC547) con il collettore collegato alla morsettiera
Cinque Mosfet (IRF540) con il collettore collegato alla morsettiera
Due trimmer da 100 KΩ collegati direttamente agli ingressi analogici di Arduino
Un connettore esterno per jack maschio di alimentazione, presenta di seguito un diodo
di sicurezza
Un pulsante di reset
Otto relay srd-05vdc, 250Vac 10A, collegati alla scheda tramite isolatori ottici EL817
Tre led di colori differenti ed un buzzer
Pannello alta tensione e gruppo trasformatori
Base rotante del braccio
Pinza meccanica
Pulsantiera di controllo
La pinza meccanica è azionata dal servomotore e presenta, nei suoi ingranaggi, una
frizione per non sforzare il motore ne distruggere l’oggetto quando lo si afferra.
La tastiera presenta cinque switch e quattro pulsanti, il primo switch a sinistra
controlla il blocco della struttura in una data posizione impedendo di inviare altri comandi
finché esso non viene disattivato; i restanti quattro switch selezionano direzioni e comandi dei
vari movimenti, i pulsanti posti a fianco di questi ultimi switch azionano il comando
precedentemente selezionato.
11
Matteo Marchi
Immagini Finali Del Progetto:
12
Matteo Marchi
Codice Arduino MEGA:
/*
MATTEO MARCHI 5AET 2013/14
I.T.T. B. Pascal - Cesena
PROGETTO ESAME DI STATO 2014
BRACCIO MECCANICO CONTROLLATO
DA ARDUINO MEGA 2560
*/
#include <LiquidCrystal.h>
#include <Servo.h>
#define VERDE 12 // LED VERDE
#define GIALLO 11 // LED ROSSO
#define ROSSO 10 // LED ROSSO
#define TONE 13 // CICALINO
#define R1 42
// RELE' 1 STEPPER
#define R2 40
// RELE' 2 STEPPER
#define R3 38
// RELE' 3 STEPPER
#define R4 36
// RELE' 4 STEPPER
#define FC5 18
// FINECORSA PINZA
#define FC4 34
// FINECORSA ALTO
#define FC3 32
// FINECORSA BASSO
#define FC2 21
// FINECORSA SX
#define FC1 20
// FINECORSA DX
#define SU 14
// ATTUATORE SU'
#define GIU 15
// ATTUATORE GIU'
#define AVANTI 16 // ATTUATORE AVANTI
#define INDIETRO 17 // ATTUATORE INDIETRO
#define SW0 4
// SWITCH 0 -- STOP
#define SW1 6
// SWITCH 1 -- COMANDO SERVO
#define SW2 3
// SWITCH 2 -- COMANDO ATTUATORE 2
#define SW3 7
// SWITCH 3 -- COMANDO ATTUATORE 1
#define SW4 5
// SWITCH 4 -- COMANDO STEPPER
#define P1 8
// PULS 1 ---- SERVO
#define P2 9
// PULS 2 ---- ATTUATORE 2
#define P3 28
// PULS 3 ---- ATTUATORE 1
#define P4 30
// PULS 4 --- STEPPER
LiquidCrystal lcd(35, 33, 31, 29, 27, 25); //SET LCD
Servo myservo; //SET SERVO
int t = 40; // VARIABILE RITARDO SPOSTAMENTO STEPPER
int data;
//VARIABILE COMANDI
void setup(){
void
void
void
void
void
void
void
void
STEPPER_DX(void); // FUNZIONE ROTAZIONE DX
STEPPER_SX(void); // FUNZIONE ROTAZIONE SD
UP(void);
// FUNZIONE SOLLEVAMENTO BRACCIO
DOWN(void);
// FUNZIONE ABBASSAMENTO BRACCIO
FORWARD(void);
// FUNZIONE AVANZAMENTO BRACCIO
BACK(void);
// FUNZIONE RETROCESSIONE BRACCIO
CLOSE(void);
// FUNZIONE CHIUSURA PINZA
OPEN(void);
// FUNZIONE APERTURA PINZA
lcd.begin(16,2); //SET LCD
myservo.attach(2); //SET PIN OUTPUT SERVO
pinMode(VERDE, OUTPUT);
pinMode(GIALLO, OUTPUT);
pinMode(ROSSO, OUTPUT);
pinMode(TONE, OUTPUT);
pinMode(R1, OUTPUT);
//RELE' 1 STEPPER
pinMode(R2, OUTPUT);
//RELE' 2 STEPPER
pinMode(R3, OUTPUT);
//RELE' 3 STEPPER
pinMode(R4, OUTPUT);
//RELE' 4 STEPPER
pinMode(FC1, INPUT);
// FINECORSA DX
pinMode(FC2, INPUT);
// FINECORSA SX
13
Matteo Marchi
pinMode(FC3, INPUT);
//FINECORSA BASSO
pinMode(FC4, INPUT);
//FINECORSA ALTO
pinMode(FC5, INPUT);
// FINECORSA PINZA
pinMode(SU, OUTPUT);
// ATTUATORE SU'
pinMode(GIU, OUTPUT);
// ATTUATORE GIU'
pinMode(AVANTI, OUTPUT); // ATTUATORE AVANTI
pinMode(INDIETRO, OUTPUT); // ATTUATORE INDIETRO
pinMode(SW0, INPUT);
// SWITCH 0 -- STOP
pinMode(SW1, INPUT);
// SWITCH 1 -- COMANDO SERVO
pinMode(SW2, INPUT);
// SWITCH 2 -- COMANDO ATTUATORE 2
pinMode(SW3, INPUT);
// SWITCH 3 -- COMANDO ATTUATORE 1
pinMode(SW4, INPUT);
// SWITCH 4 -- COMANDO STEPPER
pinMode(P1, INPUT);
// PULS 1 ---- SERVO
pinMode(P2, INPUT);
// PULS 2 ---- ATTUATORE 2
pinMode(P3, INPUT);
// PULS 3 ---- ATTUATORE 1
pinMode(P4, INPUT);
// PULS 4 --- STEPPER
digitalWrite(VERDE, HIGH);
digitalWrite(GIALLO, LOW);
digitalWrite(ROSSO, LOW);
digitalWrite(R1, LOW);
digitalWrite(R2, LOW);
digitalWrite(R3, LOW);
digitalWrite(R4, LOW);
digitalWrite(SU, LOW);
digitalWrite(GIU, LOW);
digitalWrite(AVANTI, LOW);
digitalWrite(INDIETRO, LOW);
digitalWrite(R1, LOW);
digitalWrite(R2, LOW);
digitalWrite(R3, LOW);
digitalWrite(R4, LOW);
}
void loop(){
if(digitalRead(SW0) == 1){
digitalWrite(GIALLO, HIGH);
data =
data =
data =
data =
data =
0;
data +
data +
data +
data +
(!digitalRead(P4)); // VALORI POSSIBILI DI "DATA" 0/1 COMANDO STEPPER
(!digitalRead(P3) *2); // VALORI POSSIBILI DI "DATA" 0/2 COMANDO ATTUATORE 1
(!digitalRead(P2) *4); // VALORI POSSIBILI DI "DATA" 0/4 COMANDO ATTUATORE 2
(!digitalRead(P1) *8); // VALORI POSSIBILI DI "DATA" 0/8 COMANDO SERVO
/* IL PROGRAMMA E' COSTITUITO PER ESEGUIRE
UN'AZIONE ALLA VOLTA.
CIO' SIGNIFICA CHE QUANDO SI PREMONO DUE
O PIU' PULSANTI IL PROGRAMMA ESEGUE IL PRIMO
COMANDO RICEVUTO
*/
if (data!=0){
digitalWrite(ROSSO, HIGH);
switch(data){
case 1:
// COMANDO ROTAZIONE
if(digitalRead(SW4) == 0){
STEPPER_DX();
}
else{
STEPPER_SX();
}
break;
case 2:
// COMANDO AVANZAMENTO
if(digitalRead(SW2) == 0){
BACK();
}
else{
FORWARD();
}
break;
case 4:
// COMANDO
if(digitalRead(SW3) == 0){
14
Matteo Marchi
DOWN();
}
else{
UP();
}
break;
case 8:
// COMANDO PINZA
if(digitalRead(SW1) == 1){
OPEN();
}
else{
CLOSE();
}
break;
} // SWITCH
if(digitalRead(FC5) == 1){
lcd.setCursor(0,0);
lcd.print(" IN POSIZIONE ");
}
else{
lcd.setCursor(0,0);
lcd.print("
");
}
}
else{
digitalWrite(ROSSO, LOW);
digitalWrite(R1, LOW);
digitalWrite(R2, LOW);
digitalWrite(R3, LOW);
digitalWrite(R4, LOW);
digitalWrite(SU, LOW);
digitalWrite(GIU, LOW);
digitalWrite(AVANTI, LOW);
digitalWrite(INDIETRO, LOW);
lcd.setCursor(0,1);
lcd.print("
");
}
}
digitalWrite(GIALLO, LOW);
delay(1);
} // LOOP
//-------------------------------------------------------------void STEPPER_DX(){
// FUNZIONE ROTAZIONE DX
lcd.setCursor(0,1);
lcd.print(" ROTAZIONE A DX ");
if(digitalRead(FC1) == 0){
digitalWrite(R1, HIGH);
digitalWrite(R2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(R4, LOW);
delay(t);
digitalWrite(R1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(R3, HIGH);
digitalWrite(R4, LOW);
delay(t);
digitalWrite(R1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(R3, LOW);
digitalWrite(R4, HIGH);
delay(t);
digitalWrite(R1, HIGH);
digitalWrite(R2, LOW);
digitalWrite(R3, LOW);
digitalWrite(R4, HIGH);
delay(t);
}
digitalWrite(R4, LOW);
}
void STEPPER_SX(){
// FUNZIONE ROTAZIONE SX
lcd.setCursor(0,1);
lcd.print(" ROTAZIONE A SX ");
15
Matteo Marchi
if(digitalRead(FC2) == 0){
digitalWrite(R1, HIGH);
digitalWrite(R2, LOW);
digitalWrite(R3, LOW);
digitalWrite(R4, HIGH);
delay(t);
digitalWrite(R1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(R3, LOW);
digitalWrite(R4, HIGH);
delay(t);
digitalWrite(R1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(R3, HIGH);
digitalWrite(R4, LOW);
delay(t);
digitalWrite(R1, HIGH);
digitalWrite(R2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(R4, LOW);
delay(t);
}
digitalWrite(R1, LOW);
}
void FORWARD(){
// FUNZIONE ATTUATORE 1 AVANTI
digitalWrite(16, HIGH);
lcd.setCursor(0,1);
lcd.print(" AVANZAMENTO ");
}
void BACK(){
// FUNZIONE ATTUATORE 1 INDIETRO
lcd.setCursor(0,1);
lcd.print(" RETROCESSIONE ");
digitalWrite(17, HIGH);
}
void UP(){
// FUNZIONE ATTUATORE 2 SU'
lcd.setCursor(0,1);
lcd.print(" INALZAMENTO ");
if(digitalRead(FC4) == 0){
digitalWrite(SU, HIGH);
}
else{
digitalWrite(SU, LOW);
}
}
void DOWN(){
//FUNZIONE ATTUATORE 2 GIU'
lcd.setCursor(0,1);
lcd.print(" ABBASSAMENTO ");
if(digitalRead(FC3) == 0){
digitalWrite(GIU, HIGH);
}
else{
digitalWrite(GIU, LOW);
}
}
void CLOSE(){
//FUNZIONE CHIUSURA PINZA
lcd.setCursor(0,1);
lcd.print(" CHIUSURA PINZA ");
myservo.write(10);
delay(50);
}
void OPEN(){
//FUNZIONE APERTURA PINZA
lcd.setCursor(0,1);
lcd.print(" APERTURA PINZA ");
myservo.write(160);
delay(50);
}
Codice Arduino UNO:
/*
MATTEO MARCHI 5AET 2013/14
I.T.T. B. Pascal - Cesena
PROGETTO ESAME DI STATO 2014
16
Matteo Marchi
SCHEDA ARDUINO UNO R3
PROGRAMMA PER RILEVARE DISTANZA DELA BRACCIO DA UN OGGETTO
E ROTAZIONE DEL BRACCIO CON STAMPA DATI SU DISPLAY LCD
*/
#include <Ultrasonic.h>
#include <LiquidCrystal.h>
#define TRIGGER_PIN 8
#define ECHO_PIN 9
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN); //SET ULTRASONIC SENSOR PIN
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //SET LCD
int gradi;
float cmMsec;
void setup(){
pinMode(13, INPUT);
pinMode(12, INPUT);
Serial.begin(9600);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Distanza: ");
lcd.setCursor(0,1);
lcd.print("Angolo: ");
}
void loop(){
long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM); //LETTURA DISTANZA
lcd.setCursor(10,0);
lcd.print(cmMsec);
gradi = map(analogRead(A3), 764, 537, 0, 230); //LEGGO VALORE ANALOGICO SU PIN A3
//E LO MAPPO PER OTTENERE I GRADI DI ROTAZIONE
lcd.setCursor(8,1);
lcd.print(gradi);
if(gradi < 100){
lcd.setCursor(10,1);
lcd.print(" ");
}
delay(1);
}
17
Matteo Marchi
Funzionamento:
• Sensore ad ultrasuoni:
Il sensore ad ultrasuoni è una scheda per la rilevazione di distanza, misurata con il sistema
a ultrasuoni. Questa scheda ha due capsule a ultrasuoni, una utilizzata come trasmettitore e
una come ricevitore. Per interfacciarsi utilizza solo 4 pin: 2 pin di alimentazione, il pin Trig e il
pin Echo.
Fornendo sul pin Trig un impulso positivo di circa 10uS il trasmettitore sparerà un
segnale a ultrasuoni che rimbalzando sull'oggetto che stiamo puntando rimbalza e viene
captato dal ricevitore. Sul pin Echo verrà restituito un segnale logico "alto" con durata
proporzionale alla distanza. e la formula sarà: Distanza(cm)= TEcho(us)/58
• Servomotore e pinza meccanica:
Il servomotore è un piccolo motore a corrente continua che presenta un meccanismo di
demoltiplica che consente di aumentare la coppia in fase di rotazione. La rotazione del motore
è effettuata tramite un circuito di controllo interno in grado di rilevare l'angolo di rotazione,
compreso tra 0° e 180°, raggiunto dal perno tramite un potenziometro resistivo e bloccare il
motore sul punto desiderato.
Per comandare questo tipo di motore si utilizza un segnale PWM a frequenza costante, il servo
risponde alla durata degli impulsi, agendo sul perno secondo lo schema seguente.
18
Matteo Marchi
Questo servomotore viene collegato alla pinza meccanica, realizzata appositamente per
questo tipo di motori. Alla posizione 180° del servo corrisponde l’apertura totale della pinza e
a 0° corrisponde la chiusura totale.
• Motore Passo-Passo Bipolare:
I motori passo-passo sono motori elettrici che offrono un controllo preciso di rotazione,
esso può rotare per ogni passo di circa 1,8° in ogni direzione a velocità di rotazione
controllata.
I motori bipolari si chiamano così perché, per far ruotare il perno, occorre invertire la
polarità d’alimentazione delle loro bobine secondo una ben precisa sequenza. Per il loro
controllo, si utilizza un circuito denominato ponte ad H. I vantaggi dei motori passo-passo
sono: la costruzione robusta, la grande coppia che può essere sviluppata alle basse velocità, la
precisione di posizionamento e l’errore di posizione è molto basso. Lo svantaggio di questi
motori è l’uso obbligatorio di un sistema di controllo digitale.
Per il controllo del motore ho realizzato un ponte a “H” utilizzando dei transistor di
potenza. Questi transistor sono il BDX53, NPN, e il BDX54, PNP; realizzati per supportare
alte correnti (8A di corrente nominale) e sono provvisti internamente di un diodo di
protezione, tra emettitore e collettore.
Il funzionamento consiste nel far passare la corrente nella fase del motore sia da un
verso che dall’altro, alternando la sollecitazione delle due fasi.
Il metodo di comando utilizzato è il metodo " Double-step"; questo metodo offre una coppia
maggiore a discapito della stabilità, genera infatti molte vibrazioni.
• Attuatori lineari:
Gli attuatori lineari sono attuatori meccanici che agiscono linearmente, tramite una barra
filettata, azionati da un motore in corrente continua collegato alla barra filettata tramite
ingranaggi, utilizzati per aumentare la coppia o modificarle la velocità.
Principalmente gli attuatori lineari in commercio sono quelli a vite, che si dividono in
due sottocategorie: la prima, ovvero il piccolo attuatore lineare montato nel braccio, dove il
motore fa muovere una barra filettata avanti e indietro lungo l’asse; la seconda
sottocategoria riguarda, nel progetto l’attuatore principale, quelli che sfruttano la rotazione
di una vite senza fine per far muovere linearmente un tubo, filettato internamente, che
scorre lungo la vite. I secondi attuatori lineari hanno una potenza maggiori rispetto ai primi
ma occorre più spazio per ottenere una corsa maggiore, mentre i secondi ha il difetto della
flessione della barra filettata per notevoli sforzi.
19
Matteo Marchi
• Arduino:
L'Arduino UNO è una scheda basata sul microcontrollore Atmel ATmega328. Ha 14
Ingressi/uscite digitali (6 delle quali con PWM), 6 ingressi analogici, un cristallo a 16 MHz, una
porta USB, una presa di alimentazione, una connessione ICSP.
La Arduino Mega 2560 è una scheda a microcontrollore basata sul ATmega2560.
Dispone di 54 ingressi / uscite digitali pin (di cui 14 possono essere utilizzate come uscite
PWM), 16 ingressi analogici, 4 UART (porte seriali hardware), un cristallo oscillatore a 16
MHz, una connessione USB, un jack di alimentazione, un header ICSP.
20
Matteo Marchi
Fonti:
•
Wikipedia
•
Enciclopedia Treccani
•
“The Isaac Asimov Fiction Magazine” 8-1981
•
AdriRobot.it
•
Arduino.cc
Programmi Usati:
•
KiCad
•
Arduino 1.0.5
Siti di acquisti:
•
Distrelec (componenti elettronici)
•
Robot Italy (pinza meccanica)
•
R & D Lab (motore passo-passo)
•
Amazon (Arduino UNO, display LCD e Servomotore)
•
eBay (Arduino Mega 2560)
•
Radioforniture Romagnola
Contatti:
EMAIL: [email protected]
21
Matteo Marchi