Skocz do zawartości

[Line follower] Robot jeżdżący po linii


Pomocna odpowiedź

Na stronie wiki masz podane przykładowe kody wraz z opisami i ustawienie zworek

//Standard PWM DC control
int E1 = 5;     //M1 Speed Control
int E2 = 6;     //M2 Speed Control
int M1 = 4;    //M1 Direction Control
int M2 = 7;    //M1 Direction Control

///For previous Romeo, please use these pins.
//int E1 = 6;     //M1 Speed Control
//int E2 = 9;     //M2 Speed Control
//int M1 = 7;    //M1 Direction Control
//int M2 = 8;    //M1 Direction Control


void stop(void)                    //Stop
{
 digitalWrite(E1,LOW);   
 digitalWrite(E2,LOW);      
}   
void advance(char a,char b)          //Move forward
{
 analogWrite (E1,a);      //PWM Speed Control
 digitalWrite(M1,HIGH);    
 analogWrite (E2,b);    
 digitalWrite(M2,HIGH);
}  
void back_off (char a,char b)          //Move backward
{
 analogWrite (E1,a);
 digitalWrite(M1,LOW);   
 analogWrite (E2,b);    
 digitalWrite(M2,LOW);
}
void turn_L (char a,char b)             //Turn Left
{
 analogWrite (E1,a);
 digitalWrite(M1,LOW);    
 analogWrite (E2,b);    
 digitalWrite(M2,HIGH);
}
void turn_R (char a,char b)             //Turn Right
{
 analogWrite (E1,a);
 digitalWrite(M1,HIGH);    
 analogWrite (E2,b);    
 digitalWrite(M2,LOW);
}
void setup(void) 
{ 
 int i;
 for(i=4;i<=7;i++)
   pinMode(i, OUTPUT);  
 Serial.begin(19200);      //Set Baud Rate
 Serial.println("Run keyboard control");
} 
void loop(void) 
{
 if(Serial.available()){
   char val = Serial.read();
   if(val != -1)
   {
     switch(val)
     {
     case 'w'://Move Forward
       advance (255,255);   //move forward in max speed
       break;
     case 's'://Move Backward
       back_off (255,255);   //move back in max speed
       break;
     case 'a'://Turn Left
       turn_L (100,100);
       break;       
     case 'd'://Turn Right
       turn_R (100,100);
       break;
     case 'z':
       Serial.println("Hello");
       break;
     case 'x':
       stop();
       break;
     }
   }
   else stop();  
 }
}

PrEmO, Ja raczej na arduino nie pracuję, ale kod jest bardzo prosty. Słowo void oznacza funkcję,a int to zmienna. Proponuję żebyś wgrał ten kod do arduino, założył zworki, podłączył silniki, ustawił monitor portu szeregowego (chyba tak to się nazywa) i wciskał klawisze "wsad" na klawiaturze. Jeśli to zadziała spróbuję pomóc.

Kod z linku do wiki podanego przeze mnie. Nie załamuj mnie, że nie przeglądałeś tamtej strony 👹

[ Dodano: 14-06-2015, 20:00 ]

PrEmO, Wstaw zdjęcie płytki. Baud ustawiony, zworki pozakładane, wciskasz klawisze w terminalu? Jeśli nie działa spróbuj podmienić pierwsze linie kodu na:

//Standard PWM DC control 
//int E1 = 5;     //M1 Speed Control 
//int E2 = 6;     //M2 Speed Control 
//int M1 = 4;    //M1 Direction Control 
//int M2 = 7;    //M1 Direction Control 

///For previous Romeo, please use these pins. 
int E1 = 6;     //M1 Speed Control 
int E2 = 9;     //M2 Speed Control 
int M1 = 7;    //M1 Direction Control 
int M2 = 8;    //M1 Direction Control 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...