PDA

Visualizza la versione completa : [C] Aiuto per programma ROBOT


gioscarab
19-06-2009, 03:23
#include <Servo.h>

#define pinServoLeft 6
#define pinServoRight 5
#define pinServoIRLeft 9
#define pinServoIRRight 10
#define pinIRLeft 0
#define pinIRRight 1
#define IRFrom 10
#define IRTo 120
#define IRMax 112640

Servo ServoIRLeft, ServoIRRight;
Servo ServoLeft, ServoRight;

double readLeft, readRight;

void setup() {
ServoIRLeft.attach(pinServoIRLeft);
ServoIRRight.attach(pinServoIRRight);
ServoLeft.attach(pinServoLeft);
ServoRight.attach(pinServoRight);
}

void readIR() {
readLeft += analogRead(pinIRLeft);
readRight += analogRead(pinIRRight);
}

void loop() {
int k = 1;
for(int i = IRFrom; true; i += k) {
ServoIRLeft.write(180 - i);
ServoIRRight.write(i);
readIR();
if(i < IRFrom || i > IRTo) {
k = -k;
ServoLeft.write(180 - round(90 * readLeft / IRMax));
ServoRight.write(round(90 * readRight / IRMax));
readLeft = readRight = 0;
}
delay(10);
}
}



Questo Ŕ il codice del mio robot:
E' un robot mosso da due servi e ha la capacitÓ di sentire se ci sono oggetti davanti a lui grazie a due sensori ir mossi in un raggio di tot gradi da due microservi, ottenendo cosi' una sorta di visione stereoscopica ir vera e non come i doppi sensori montati insieme che vendono nei negozi di robotica online.

un grande amico ingegnere informatico mi ha scritto questo codice da lui definito "una stupidata" per fare in modo che il robot vada di base avanti abbastanza piano e se sente un oggetto da un lato modifica la velocitÓ del motore del lato interessato in base al valore ottenuto (o chiaramente entrambi). I sensori ir non sono la precisione fatta a sensore MA riconoscono oggetti nel raggio di 10 15 cm se non troppo piccoli o sottili, calcolando che li ho costruiti io Ŕ una vittoria.

Sto studiando C perchŔ voglio scrivere un codice che mi dia la possibilitÓ di riconoscere se c'Ŕ o no un oggetto e dove rispetto al robot, calcolando l'angolo dei singoli servi e l'imput ottenuto dai sensori. Mi dareste una mano?

LeleFT
19-06-2009, 09:54
E il problema dove sta? Ricordo che qui vengono trattati problemi di programmazione relativi a del codice che si conosce e di cui non si capiscono gli eventuali problemi. La rcerca di codice o di persone per la stesura dello stesso vengono trattate in due diverse aree del forum: "<Sistema Operativo> e Software" per la ricerca software, "Offro Lavoro / Collaborazione" per la ricerca di persone per la stesura di codice.


Ciao. :ciauz:

Loading