dopo una lettura degli esempi di base, devo dire motlo chiari, ho testato qulli reliativi ai servi e alla seriale ... ho cominciato a scrivere per conto mio, giusto per esplorare due righe di codice.. pilotano un semplice robot, che muove i due motori con due ESC brushed, mentre un sensore infrarosso controlla l'ambiente.. il robot parte in avanti se il sensore rileva un ostacolo allora il robot indietreggia per circa 1,5 secondi, eseguendo una leggera virata.. e poi ricomincia la marcia in avanti...
il sensore viene fatto oscillare da un Pic 16F84 a parte.. in modo da ampliare il raggio di lettura del sensore
in 20 minuti scrivo e testo.. adesso voglio capire come aggiungere le librerie, per esempio quelle relative ad Ardupilot..
La semplicità di Arduino lo rende simile ai robot della Lego!
#include <Servo.h>
Servo ESC_1; // create servo object to control a servo
Servo ESC_2; // create servo object to control a servo
boolean sensorValue;
int count;
//__________________________________________________ ____
void setup()
{
pinMode(2, INPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
ESC_1.attach(9);
ESC_2.attach(10);
}
//__________________________________________________ ____
void loop()
{
sensorValue = digitalRead(2);
if(!sensorValue) // sensorValue == 0
{
back();
}
else // sensorValue == 1
{
front();
}
}
//__________________________________________________ ____
void front()
{
digitalWrite(3, 1); // setta valore 1 al pin 3 motore avanti
digitalWrite(4, 1); // setta valore 1 al pin 4 motore avanti
ESC_1.write(50);
delay(1);
ESC_2.write(50);
delay(15);
}
//__________________________________________________ ____
void back()
{
count = 8;
while(count >0 )
{
count = count - 1;
digitalWrite(3, 0); // setta valore 0 al pin 3 motore indietro
digitalWrite(4, 0); // setta valore 0 al pin 4 motore indietro
ESC_1.write(20);
delay(1);
ESC_2.write(60);
delay(15);
}
}
Citazione:
Originalmente inviato da faustog_2 |