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: - il numero del motore da comandare
- la sua velocità
- la sua accelerazione
/* 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