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