Visualizza messaggio singolo
Vecchio 06 aprile 12, 02:13   #4 (permalink)  Top
faustog_2
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
semplice ed immediato

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 Visualizza messaggio
faustog_2 non è collegato   Rispondi citando