Dziś przedstawię najprostszy możliwy przykład programu line follower działającego na robocie RedBot Basic Kit. RedBot Basic Kit jest wyposażony w trzy czujniki odbiciowe światła podczerwonego, dzięki temu idealnie nadaje się do budowy prostego robota line follower (budowa czegoś bardziej zaawansowanego wymagałaby użycia dodatkowych czujników lub listwy z czujnikami).
Pozostałe części cyklu:
Mój program powstał na bazie przykładu dostarczanego przez producenta, ale do uzyskania zadowalających efektów musiałem go mocno zmodyfikować. Idea działania jest bardzo prosta:
- po dołączeniu zasilania robot czeka na naciśnięcie przycisku
 - po naciśnięciu przycisku robot startuje
 - podczas jazdy sprawdzamy okresowo stan lewego i prawego czujnika (środkowy nie jest używany), w zależności od odczytanych stanów robot steruje odpowiednio silnikami:
Lewy czujnik Prawy czujnik Akcja Jasno Jasno Jazda do przodu Jasno Ciemno Skręcanie w lewo Ciemno Jasno Skręcanie w prawo Ciemno Ciemno Jazda do tyłu  
Poniżej znajduje się kod programu.
#include <RedBot.h>
RedBotMotors motors;
// czujniki IR
RedBotSensor lSen = RedBotSensor(A6);
RedBotSensor rSen = RedBotSensor(A7);
// piny przycisku i głośnika
#define BEEPER 9
#define BUTTON_PIN 12
// poziomy jasności tła i linii
const int bgLevel = 600;
const int lineLevel = 700;
// flaga trybu standby
volatile boolean standby = true;
void setup()
{
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  tone(BEEPER, 2000, 750);  
  delay(1000);
}
void loop()
{
  // czekaj na nacisniecie przycisku
  if (digitalRead(BUTTON_PIN) == LOW)
    standby = false;
  if (!standby)
  {
    // jasno pod oboma czujnikami -> jedz do przodu
    if (lSen.read() < bgLevel && rSen.read() < bgLevel) motors.drive(-100);    
    // ciemno pod oboma czujnikami -> cofnij się
    else if (lSen.read() > lineLevel && rSen.read() >lineLevel) motors.drive(100);    
    // ciemno pod prawym czujnikiem -> skrec w prawo
    else if (rSen.read() > lineLevel) {
      motors.leftDrive(-100);
      motors.rightBrake();         
    }
    // ciemno pod lewym czujnikiem -> skrec w lewo
    else if (lSen.read() > lineLevel) {
      motors.rightDrive(-100);
      motors.leftBrake();
    }    
  }
  else motors.brake();
}
Na filmie możecie zobaczyć robota w akcji.
Robota RedBot Basic Kit dostarczył sklep internetowy dla elektroników Kamami.pl.


					