ultimo aggiornamento 2 marzo 2012

JLCPCB - 2$ per prototipi di PCB, di qualsiasi colore. Produzione in 24 ore!
L'Azienda di prototipi PCB più popolare, con oltre 700.000 clienti in tutto il mondo!
Continua la produzione dei PCB standard a 2 strati durante le festività primaverili


Per l'azionamento della telecamera di ArduinoBOT è previsto l'utilizzo di un dispositivo di Pan & Tilt.
Il dispositivo è la versione auto costruita di quella che si trova sul sito www.active-robots.com dove è possibile trovare anche le istruzioni per il montaggio del dispositivo visibile sotto.  In alternativa si potrà utilizzare il kit (senza servo) e per i servo considerare il materiale reperibile sul sito Homotix.


Versione originale

Progetto da me realizzato

 

Robot_arduino_telecamera.JPG Robot_arduino_telecamera-1.JPG

homotix

La struttura è costituita da due particolari (uno in lamiera di ferro, il secondo in alluminio) opportunamente tagliati e piegati.
Per la rotazione ho utilizzato dei servo della FUTABA modello S148, mentre la telecamera è una semplice CMOS a colori dotata di trasmettitore incorporato.


Per commenti, e informazioni aggiuntive

 

Gli attrezzi necessari sono: un seghetto da ferro, un trapano possibilmente a colonna, una morsa, un martello , delle punte da trapano di diverso diametro, una lima per smussare gli spigoli, un cacciavite a taglio e uno a croce, una pinza per il montaggio.

Assemblaggio del dispositivo

Una volta realizzati i particolari 1 e 2, si potranno verniciare con una bombola di smalto sintetico magari di colore nero opaco satinato. Per le istruzioni attenersi a quelle indicate sulla bomboletta stessa.
Si passerà poi al montaggio vero e proprio utilizzando i particolari e la minuteria necessaria:

pan_tilt-ridotto-taglio.jpg
Prima fase di taglio
pan_tilt-ridotto-foratura.jpg
Foratura dei particolari
pan_tilt-ridotto-piego.jpg
Particolari piegati e pronti per la foratura
pan_tilt-ridotto-verniciatura.jpg
Particolari verniciati pronti per il montaggio

• 4 viti testa cilindrica M3x10 (fissaggio servomotore TILT)
• 1 vite testa cilindrica M5x10 (cerniera di rotazione.)
• 8 viti autofilettanti ø 2 mm (fornite con servomotore.)

Per il montaggio ci si aiuterà con un cacciavite a taglio, uno a croce e una pinza.

Fase 1

In questa prima fase si fissa il particolare 1 al servomotore del movimento PAN utilizzando 4 autofilettanti ø 2 mm.

pan_tilt-ridotto-montaggio-1.jpg
Fissaggio del servo Pan

Fase 2

Nella seconda fase, si fissa il servomotore TILT mediante 4 viti M3x10 complete di rondelle e dadi.

pan_tilt-ridotto-montaggio-2.jpg
Fissaggio del servo Tilt

Fase 3

Nella terza fase si monta il particolare 2 fissandolo da un lato al servomotore TILT con 4 autofilettanti ø 2 mm da un lato e la vite M5X10, e dato antisvitamento dall’altro lato.

pan_tilt-ridotto-montaggio-3.jpg pan_tilt-ridotto-montaggio-4.jpg
Dettaglio distanziale per rotazione Fissaggio supporto telecamera
pan_tilt-ridotto-montaggio-6.jpg pan_tilt-ridotto-montaggio-5.jpg
 
Dettaglio Dettaglio perno di rotazione

Fase 4

Nella quarta fase di montaggio si potrà fissare la telecamera al particolare 2, utilizzando 2 viti.
Come modello di telecamera potrà essere scelto qualunque modello di solito utilizzato come sistema di videosorveglianza, e il cui costo completo di ricevitore si aggira intorno ai 70 euro.

 

Servomotore

CARATTERISTICHE 

Potenza
 
(Kg/cm)

4,8 V

 6 V

3,35

3,50

Velocità(sec./60°)

0,21

0,17

Alimentazione 4,8 - 6 V
Dimensioni (mm) 40x19x36 
Peso  (g) 47
Tipo ingranaggi Nylon
Uscita Bronzina
Tipo spina Futaba

Collaudo del dispositivo

Prima di procedere nel montaggio possiamo collaudare il funzionamento del dispositivo Pane & Tilt.
Per fare questo possiamo collegare alla porta I2C della scheda I/O expander un piccolo Joystick molto simile a quello presente sul controller della PS2 (PlayStation 2).
Il joystick e la basetta sono forniti dalla SPARKFUN codice COM-09032 e vendute in Italia tramite il sito di Futura Elettronica codice 7300-CSJOYSTICK
Esiste anche una versione prodotta dalla Parallax non dotato però del tasto funzione. Questo prodotto può essere trovato sul sito Homotix codice 27800
I movimenti direzionali sono semplicemente due potenziometri - uno per ogni asse. Dal valore di 10kΏ. Questo joystick ha anche un pulsante di selezione che viene azionato quando il joystick viene premuto, questa funzione non è però utilizzata in questo programma.

joystick_07.jpg

Considerando lo schema, vediamo che le variazioni di resistenza portano a variazioni di tensione che vengono lette dalle porte analogiche di Arduino e convertite in valori che azioneranno i servomotori.

Schema di collegamento

Collegamento Joystick

Per la prova si connetterà l’alimentazione alla scheda e si caricherà il programma Test_Pan-Tilt-ArduinoBOT.pde, per il funzionamento occorre che sia presente la libreria SERVO.   (per maggiori informazioni vedere https://arduino.cc/en/Reference/Servo )Per il funzionamento del programma sono utilizzati i pin sotto riportati

Pin +5V  

Alimentazione

Pin GND  

Alimentazione

Pin Digitale 3  

PWM pin 3 servo TILT (alto-basso)

Pin Digitale 9  

 PWM pin 9 servo PAN (destra-sinistra)

Pin Analogico 4  

 Joystick PAN (SDA) H

Pin Analogico 5  

 Joystick TILT (SCL) V


Scarica Test_Pan-Tilt-ArduinoBOT.pde

Per un funzionamento corretto bisognerà variare il valore di scala per fare in modo che le variazioni del Joystick siano entro il range di rotazione del dispositivo e che con il joystick in posizione neutra, la telecamera sia posta in asse con il robot e in posizione verticale.

Test_Pan-Tilt-ArduinoBOT.pde

/*
 Test_Pan-Tilt-ArduinoBOT.pde
 Il programma permette il test del dispositivo
 Pan & Tilt del robot ArduinoBOT
 
 Vengono utilizzati i seguenti pin
 Pin +5V         -> Alimentazione
 Pin GND         -> Alimentazione
 Pin Digital 3   -> PWM pin 3 servo TILT (alto-basso)
 Pin Digital 9   -> PWM pin 9 servo PAN (destra-sinistra)
 Pin Analogico 4 -> Joystick PAN (SDA) H
 Pin Analogico 5 -> Joystick TILT (SCL) V
 
 Creato il 4/12/2011
 da Adriano Gandolfo <https://www.adrirobot.it>
 Basato su programma realizzato da
 Fabio Biondi  <http://www.fabiobiondi.com/blog>
 This example code is in the public domain.
 */

#include <Servo.h> 

const int servo1 = 3;  // Servo TILT
const int servo2 = 9;  // Servo PAN
const int joyV = 5;    // Joystick TILT
const int joyH = 4;    // Joystick PAN

int servoVal;           // variabile per la lettura del valore dal pin analogico 

Servo servo_pan;   // crea l'oggetto servo per controllarlo 
Servo servo_tilt;  // crea l'oggetto servo per controllarlo 

void setup() {
  // Servo   

  servo_pan.attach(servo1);   // attribuisce il servo
  servo_tilt.attach(servo2);  // attribuisce il servo
  // Inizialize Serial
  Serial.begin(9600);
}

void loop(){

  // Visualizza i valori del Joystick utilizzando il monitor seriale
  outputJoystick();

  // Legge il valore orizzontale del joystick (valore compreso tra 0 e 1023)
  servoVal = analogRead(joyH);           
  servoVal = map(servoVal, 0, 1023, 20, 80);  // scala il valore per usarlo con il servo (risultato compreso tra 20 e 80) 

  servo_tilt.write(servoVal);                 // imposta la posizione del servo in base al valore in scala    

  // Legge il valore verticale del joystick (valore compreso tra 0 e 1023)
  servoVal = analogRead(joyV);            
  servoVal = map(servoVal, 0, 1023, 30, 130); // scala il valore per usarlo con il servo (risultato compreso tra 30 e 130) 

  servo_pan.write(servoVal);                  // imposta la posizione del servo in base al valore in scala  

  delay(15);                                  // Attesa per portare i servo in posizione 
}

/**
 * Mostra il valore dei joystick
 */
void outputJoystick(){

  Serial.print(analogRead(joyH));
  Serial.print ("---");  
  Serial.print(analogRead(joyV));
  Serial.println ("---");
}
Elenco revisioni
02/03/2012 Inserito filmato e programma
21/06/2011 Emissione preliminare