Vai al contenuto

Problema con la macchina RC


195891450

Messaggi raccomandati

Salve a tutti,

Sono nuovo sull'arduino, dopo aver seguito alcune guide su Youtube sui led ho deciso di portare una tesina di maturità sulle macchine RC comandato dall'arduino uno.

L'idea era come una cosa del genere http://www.instructables.com/id/RC-Car-to-Robot/?ALLSTEPS, ma con una variazione, che quando la macchina incontra uno ostacolo giri, muovendo avanti le ruote destra oppure sinistra e muovendo indietro contemporaneamente le ruote destra nel caso si muovesse avanti quelle sinistra e viceversa.

Questo è la macchina(dove sono arrivato al momento), ho caricato anche la mappa, però oltre alla programmazione, che non ho la minima idea come farla(ho trovato sui forum qualcosa che vi metto sotto), la motor shield L298N come lo collegata cioè il positivo(dei due motori a destra) nell'output 2 e il negativo(dei due motori a sinistra) nell'output 1, la stessa cosa a sinistra con + nel output 3(filo giallo se guardate l'immagine).

Vi spiego come ho collegato:

Il sensore con:GND,INPUT,OUT,5V. Ho collegato il GND nella ground dell'arduino, INPUT nel pin 5, OUTPUT nel pin 6 e 5V alimentato direttamente dall'arduino.

La motor shield L298N: IN1 nel pin8, IN2 nel pin9,IN3 nel pin12, IN4 nel pin13; poi ENA e ENB nel pin 10 e pin 11(PWM), dopo aver letto gli altri post ho capito che servono semplicemente a spegnere e accendere la velocità? non a controllare la velocità della macchina. poi l'alimentazione lo fornisco attraverso una batteria DC esterna da 6V e il ground lo messo sull'arduino(anche quella della batteria). Non ho ancora messo la batteria da 9V(quella per alimentare l'arduino).

 

Poi mi scuso se ho scritto così tanto, perché sono veramente disperato....non conosco nessuno che mi possa dare una mano, l'unico posto che potevo chiedere era qui....ringrazio in anticipo!!!

 

mi serve soprattutto una mano sulla programmazione please!!!e grazie mille!!!

Programmazione(so che qui la luce già non mi serve):

//motore anteriore
int m1 = 3;
int m1_a = 4;
int m1_b = 5;
//motore posteriore
int m2 = 9;
int m2_a = 6;
int m2_b = 7;
//sensore ultrasuoni
int ali = 11;
int triggerPort = 12;
int echoPort = 13;
//luce
int L1 = 1;
int L2 = 2;

int ferma(){
analogWrite( m2, 255 );
digitalWrite( m2_a, LOW );
digitalWrite( m2_b, LOW );
}
void avanti(){
analogWrite( m2, 255 );
digitalWrite( m2_a, LOW );
digitalWrite( m2_b, HIGH );
}
int indietro(){
analogWrite( m2, 155 );
digitalWrite( m2_a, HIGH );
digitalWrite( m2_b, LOW );
}
void sx(){
digitalWrite( m1, HIGH );
digitalWrite( m1_a, LOW );
digitalWrite( m1_b, HIGH );
}
void dx(){
digitalWrite( m1, HIGH );
digitalWrite( m1_a, HIGH );
digitalWrite( m1_b, LOW );
}
void dritto(){
digitalWrite( m1, HIGH );
digitalWrite( m1_a, LOW );
digitalWrite( m1_b, LOW );
}
int scan(){
 //porta bassa l'uscita del trigger
digitalWrite( ali, HIGH );
digitalWrite( triggerPort, LOW );

//invia un impulso di 10microsec su trigger
digitalWrite( triggerPort, HIGH );
delayMicroseconds( 10 );
digitalWrite( triggerPort, LOW );

long duration = pulseIn( echoPort, HIGH );

long r = 0.034 * duration / 2;

Serial.print( "durata: " );
Serial.print( duration );
Serial.print( " , " );
Serial.print( "distanza: " );

//dopo 38ms è fuori dalla portata del sensore
if( duration > 38000 ) Serial.println( "fuori portata");
else { Serial.print( r ); Serial.println( "cm" );}

//aspetta 1.5 secondi
delay( 500 );
return r;
}
void ostacolo(){
 ferma;
 delay(500);
indietro();
 delay( 1500 );
 dx();
 avanti();
delay( 2500 );
dritto();
}
void setup() {
pinMode( L1, OUTPUT );
pinMode( L2, OUTPUT);
 
pinMode( m1, OUTPUT );
pinMode( m1_a, OUTPUT);
pinMode( m1_b, OUTPUT );
pinMode( m2, OUTPUT );
pinMode( m2_a, OUTPUT );
pinMode( m2_b, OUTPUT );
pinMode( triggerPort, OUTPUT );
pinMode( echoPort, INPUT );
pinMode( ali, OUTPUT );

Serial.begin( 9600 );
Serial.println( "Sensore ultrasuoni: ");
}
void loop()
{
int m=0;
Serial.print( m);
m= scan();
while(m>20)
{
 m= scan();
 avanti();
}
m= scan();
ostacolo();
}

 

 

<a href="http://it.tinypic.com?ref=2zzp283" target="_blank"><img src="http://i61.tinypic.com/2zzp283.jpg" border="0" alt="Image and video hosting by TinyPic"></a>

 

<a href="http://it.tinypic.com?ref=w6pgrd" target="_blank"><img src="http://i57.tinypic.com/w6pgrd.jpg" border="0" alt="Image and video hosting by TinyPic"></a>

 

<a href="http://it.tinypic.com?ref=15x1ruo" target="_blank"><img src="http://i57.tinypic.com/15x1ruo.jpg" border="0" alt="Image and video hosting by TinyPic"></a>

 

<a href="http://it.tinypic.com?ref=28wmnp5" target="_blank"><img src="http://i59.tinypic.com/28wmnp5.jpg" border="0" alt="Image and video hosting by TinyPic"></a>

 

<a href="http://it.tinypic.com?ref=vopws9" target="_blank"><img src="http://i62.tinypic.com/vopws9.jpg" border="0" alt="Image and video hosting by TinyPic"></a>

Link al commento
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

Giochi in Uscita



  • Community Hive Community Hive

    Community Hive allows you to follow your favorite communities all in one place.

    Follow on Community Hive
  • Utenti

    Non ci sono membri da mostrare

×
×
  • Crea Nuovo...