martedì 19 maggio 2015

Primo esempio di programma per il braccio robotico

Iniziamo a vedere come utilizzare i comandi fondamentali della Maestro library per muovere correttamente i nostri Servo motori.
Per prima cosa proviamo ad utilizzare un solo motore Servo, successivamente proveremo ad utilizzarne più Servo contemporaneamente.

// L'esercizio mostra il movimento di 1 motore, con relative accelerazioni e velocità.
#include <PololuMaestro.h>

#ifdef SERIAL_PORT_HARDWARE_OPEN
#define maestroSerial SERIAL_PORT_HARDWARE_OPEN
#else
#include
SoftwareSerial maestroSerial(10, 11);
#endif

MicroMaestro maestro(maestroSerial);

void setup()
{
maestroSerial.begin(9600);
}

void loop()
{
//con la funzione setSpeed imposto il numero del motore, la sua velocità
maestro.setSpeed(0, 20);

//con la funzione setAcceleration imposto il numero del motore, la sua accelerazione . Questo numero è compreso tra 0 ( accelerazione massima ) e 255
maestro.setAcceleration(0, 200);

//con la funzione setTarget imposto una posizione al motore, tipicamente tra 4000 e 8000
maestro.setTarget(0, 6000);
delay(3000); //aspetto 3 secondi prima di passare alla prossima posizione

maestro.setTarget(0, 4000);
delay(3000); //aspetto 3 secondi prima di passare alla prossima posizione
}

Possiamo modificare diversi parametri, in questo esempio, per il singolo Servo:
  1. il numero del motore da comandare
  2. la sua velocità
  3. la sua accelerazione 
E' molto utile ed istruttivo capire cosa cambia il movimento del braccio al variare di questi parametri da noi fissati. Il passo immediatamente successivo è proprio il controllo di più motori contemporaneamente:

/* L'esercizio mostra il movimento di 3 motori contemporanemanete, con relative accellerazioni e velocità. 
*/

#include <PololuMaestro.h>

#ifdef SERIAL_PORT_HARDWARE_OPEN
#define maestroSerial SERIAL_PORT_HARDWARE_OPEN
#else
#include
SoftwareSerial maestroSerial(10, 11);
#endif

MicroMaestro maestro(maestroSerial);

void setup()
{
maestroSerial.begin(9600);
}

void loop()
{
//con la funzione setSpeed imposto il numero del motore, la sua velicità
maestro.setSpeed(0, 20);
maestro.setSpeed(1, 10);
maestro.setSpeed(2, 10);
//con la funzione setAcceleration imposto il numero del motore, la sua accellerazione . Questo numero è compreso tra 0 ( accelerazione massima ) e 255
maestro.setAcceleration(0, 200);
maestro.setAcceleration(1, 200);
maestro.setAcceleration(2, 200);

//con la funzione setTarget imposto una posizione al motore, tipicamente tra 4000 e 8000
maestro.setTarget(0, 6000);
maestro.setTarget(1, 4000);
maestro.setTarget(2, 4000);
delay(3000); //aspetto 3 secondi prima di passare alla prossima posizione

maestro.setTarget(0, 4000);
maestro.setTarget(1, 6000);
maestro.setTarget(2, 6000);
delay(3000);
}

Anche in questo caso i parametri che possiamo impostare sono i medesimi dell'esempio precedente, solo applicabili a diversi Servo motori.

Nessun commento:

Posta un commento