In questo progetto costruiremo una macchinina (Robot Car) in grado di rilevare ciò che la circonda ed evitare gli ostacoli, grazie al sensore ad ultrasuoni HC-SR04 al servo e ai motori controllati tramite il modulo L298N Dual H-Bridge (Controllo Motori).
b) Modulo sensore HC-SR04 (sensore ad ultrasuoni)
d) Modulo L298N Dual H-Bridge (Controllo motori)
La robotica
La robotica è una scienza che studia i comportamenti degli esseri intelligenti e cerca di sviluppare delle metodologie che permettano ad una macchina, chiamata robot, dotata di opportuni dispositivi adatti a percepire l'ambiente circostante ed a interagire con esso, di eseguire dei compiti specifici.
Rappresenta la soluzione a vari problemi per gli umani, che possono liberarsi di compiti troppo noiosi, lunghi, pericolosi, faticosi, veloci o precisi.
La disciplina nasce dal desiderio degli uomini di realizzare dispositivi artificiali e autonomi dotati di una propria intelligenza.
La Robotica non è importante soltanto per imparare a costruire e ad usare i robot, ma anche per imparare un metodo di ragionamento e sperimentazione, infatti raccoglie molti studi interdisciplinari, quali ad esempio la meccanica, l'elettronica, l'informatica, la sensoristica, l'intelligenza artificiale e la matematica.
The first industrial robot main task was to move objects from one place to another.
Robots are usually used for repetitive and dangerous works.
Robots can perform their tasks only if they are correctly programmed by a person, they can be programmed in many ways like the lead-through programming,the walk-through programming or by using a remote programming computer.
The CNC is the system which give instructions to robots.
They can also be used in the medical field since a robotic hand is most precise and is faster than a human hand.
Elementi principali
a)Arduino uno
SPECIFICHE TECNICHE:
Tensione di Alimentazione (raccomandata): 7-12V
Massima Tensione supportata (non raccomandata): 20V
I/O digitali: 14 (6 dei quali con uscita PWM)
Ingressi analogici: 6
Corrente in uscita per I/O Pin: 40 mA
Corrente in uscita per 3.3V Pin: 50 mA
Memoria Flash: 32 KB (ATmega328) di cui 0.5 KB usata bootloader
SRAM: 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Velocità di clock: 16 MHz
Arduino è un sistema (framework) open source che permette la prototipazione rapida e l'apprendimento veloce dei principi fondamentali dell'elettronica e della programmazione. È composto da una piattaforma hardware per il physical computing sviluppata presso l'Interaction Design Institute, un istituto di formazione post- dottorale con sede a Ivrea, fondato da Olivetti e Telecom Italia. Questa si basa su un circuito stampato che integra un microcontrollore con pin connessi alle porte I/O, un regolatore di tensione e un'interfaccia USB che permette la comunicazione con il computer. A questo hardware viene affiancato un ambiente di sviluppo integrato (IDE) multipiattaforma (Linux, Apple Macintosh e Windows). Questo software permette di scrivere programmi (sketch ) con un linguaggio semplice e intuitivo derivato da C/C++ chiamato Wiring (cablare, collegare con cavi). Arduino può essere utilizzato per lo sviluppo di oggetti interattivi stand-alone (funzionare da solo)ma può anche interagire, tramite collegamento, con software residenti su computer. La particolarità del progetto è che le informazioni sull'hardware e soprattutto i progetti sono disponibili per chiunque: si tratta quindi di un hardware open source.
b) Modulo ad ultruasuoni hc-sr04
Questo modulo, con tecnologia ad ultrasuoni, è capace di misurare una distanza compresa in un range tra 2-400 cm con una precisione di 3 mm.
E' solitamente usato in applicazioni di robotica, sistemi di sicurezza, misuratore di livello nei serbatoi o in sostituzione di unità ad infrarossi.
Il sensore HC-SR04 è costituito da una scheda, che presenta nella sua parte posteriore un circuito elettronico basato su un microcontrollore della ST, e nella parte anteriore sono presenti un quarzo e due cilindri metallici, i trasduttori ad ultrasuoni. Uno di questi invia ultrasuoni (TX) che rimbalzano contro ad un qualunque oggetto posto di fronte ad esso, ed entrano di ritorno nell'altro cilindro (RX).
Il modulo dispone di quattro terminali di collegamento, due di alimentazione (Vcc, GND) e due di controllo (Trigger, Echo).
c) Servo motore
Nella robotica per gli azionamenti, sono molto utilizzati i servomotori.
Di solito questi si presentano come piccoli contenitori di materiale plastico da cui fuoriesce un perno in grado di ruotare in un angolo compreso tra 0 e 180° mantenendo stabilmente la posizione raggiunta. Per ottenere la rotazione del perno è utilizzato un motore a corrente continua e 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 raggiunto dal perno tramite un potenziometro resistivo e bloccare il motore sul punto desiderato.
I Servomotori sono concepiti per essere pilotati nel modo più semplice possibile, eseguendo la movimentazione senza l'ausilio di circuiterie troppo complesse o l'uso di sistemi a microprocessore.
Un servomotore dispone solitamente di soli tre fili attestati ad un connettore femmina per pin strip a passo 2.54mm.
d) Modulo L298N Dual H-bridge (Controllo motori)
Tra i tanti moduli ora in commercio per pilotare dei motori elettrici in corrente continua c'è L298N Dual H-Bridge Motor
Controller di piccole dimensioni ed estremamente compatta misura solo 4.3 cm x 4.3 cm x 2.7 cm e dal peso di soli 28 gr.
Si tratta di una scheda driver con finale L298, al suo interno troviamo due ponti H integrati,che supportano un elevato voltaggio (teoricamente sino a 46V) ed elevate correnti (2A per ponte) e
che possono essere pilotati con livelli in logica TTL. Ciascun ponte può essere disabilitato o abilitato tramite il relativo piedino di enable per comandare un motore passo passo o due motori DC direttamente da Arduino o altri microcontrollori .
N° | Descrizione |
1 | ENA - ponticello di abilitazione motore a corrente continua A Non rimuovere nel caso si utilizzi un motore passo-passo. Connettersi a un'uscita PWM per il controllo della velocità del motore DC. |
2 | IN 1 |
3 | IN 2 |
4 | IN 3 |
5 | IN 4 |
6 | ENB - ponticello di abilitazione motore a corrente continua B Non rimuovere nel caso si utilizzi un motore passo-passo. Connettersi a un'uscita PWM per il controllo della velocità del motore DC. |
7 | Collegare la tensione di alimentazione del motore, massima di 35V DC. Rimuovere il ponticello [10] se la tensione è > 12V DC |
8 | GND |
9 | uscita 5V se 12V ponticello in luogo, ideale per alimentare il vostro Arduino (etc) |
10 | jumper 12V - rimuovere questo se si utilizza una tensione di alimentazione superiore a 12V DC. Ciò consente l'alimentazione tramite il regolatore 5V di bordo |
e)Arduino sensor shield
Questa Shield di Espansione IO (Arduino compatibile) è stata progettata per facilitare la connessione fra una scheda Arduino (ad esempio Arduino UNO, Arduino DUE, Arduino Mega) ed altre periferiche quali sensori.
Questa scheda quindi espande i pin di I/O digitali e di input analogici delle schede Arduino UNO, Mega e Duemilanove.
Inoltre, on-board sono presenti i connettori e l'elettronica necessaria per poter utilizzare i moduli wireless semplicemente inserendoli nell'apposito spazio ricavato sulla shield stessa. La scheda supporta l'utilizzo delle SD card, supporta APC220 e comunicazione Bluetooth. Inoltre a bordo vi è un connettore per facilitare il collegamento del Servo motore.
Software:
L'applicazione è stata sviluppata con il software ufficiale di Arduino. Ecco un'estratto del programma creato per il progetto:
#include <Servo.h> //Libreria standard del servo
//Pin del l298n
//Pin del sensore ad ultrasuoni
#define maximum_distance 200
NewPing sonar(trig_pin, echo_pin, maximum_distance);
pinMode(RightMotorForward, OUTPUT);
servo_motor.write(115); void loop(){
int distanceRight = 0;
if (distance <= 40){
if (distance >= distanceLeft){
int lookRight(){
|
Bibliografia
-Arduino.cc
-Canale youtube "Mert arduino and tech"
-Appunti scolastici
-Adrirobot.it
-Eleego.com