En linjefølgerobot er det perfekte første robotikk-prosjektet! Denne roboten bruker sensorer til å følge en svart linje på gulvet, og kombinerer grunnleggende elektronikk, programmering og mekanikk på en morsom måte.
I denne guiden bygger vi en enkel men effektiv linjefølgerobot fra bunnen av. Du lærer å koble sammen IR-sensorer, kontrollere motorer og programmere intelligent robotadferd.
Hva du trenger
- Arduino Uno – mikrokontrollen som styrer roboten
- L298N motordriver – for å kontrollere DC-motorene
- 2x DC-motorer med hjul – for fremdrift
- 2-3x IR-sensorer (TCRT5000) – for linjedeteksjon
- Chassis/ramme – kan være akryl, tre eller 3D-printet
- Batteripakke (6-9V) – strømforsyning
- Koblingskabler og breadboard
- Skruer, bolter og monteringsutstyr
- Svart tape – for å lage testbane
Slik fungerer en linjefølgerobot
Prinsippet er enkelt: IR-sensorer (infrarød) sender ut lys og måler hvor mye som reflekteres tilbake. Hvite overflater reflekterer mye lys, mens mørke overflater absorberer det. Roboten justerer retning basert på disse målingene.
IR-sensorer består av en IR-LED som sender ut lys, og en fototransistor som mottar det reflekterte lyset. TCRT5000 er en populær modul som gir både analog og digital utgang.
Tips: Start med å teste sensorene på forskjellige overflater før du begynner byggingen. Hold dem 3-10mm fra underlaget for best resultat.
Steg 1: Bygg chassiset
Chassiset er robotens «skjelett» som holder alle komponenter på plass. Du kan bruke:
- Ferdig chassis – enklest å komme i gang med
- Akrylplate – lett å bore hull i og tilpasse
- 3D-printet ramme – full kontroll over design
Plasser motorene i front eller bak, avhengig av design. Arduino og motordriver monteres oppå, mens sensorer festes under chassiset, 5-10mm fra bakken.
Steg 2: Monter sensorene
Sensorplassering er kritisk for god ytelse:
- To sensorer: Plasser en på hver side av hvor linjen skal gå
- Tre sensorer: En i midten, to på sidene – gir bedre presisjon
- Avstand: 2-3 cm mellom sensorene
- Høyde: 3-8mm fra bakken
Fest sensorene solid – vibrasjon kan forstyrre målingene.
Steg 3: Koble sammen elektronikken
L298N motordriver er hjertet i motorstyringen. Den tar lave strømssignaler fra Arduino og forsterker dem til å drive motorene.
Viktige tilkoblinger:
- Arduino pin 2,3: Til L298N IN1, IN2 (venstre motor)
- Arduino pin 4,5: Til L298N IN3, IN4 (høyre motor)
- Arduino A0-A2: Til IR-sensorenes analoge utganger
- L298N +12V: Til batteriets pluss
- Felles jord: Koble alle GND sammen
Tips: Bruk forskjellige farger på kablene – rød for strøm (+), svart for jord (GND), og andre farger for signaler. Dette gjør feilsøking mye enklere!
Steg 4: Programmering
Her er grunnkoden for å komme i gang:
// Linjefølgerrobot med tre analoge refleksjonssensorer og L298N (eller tilsvarende H-bro).
// Sensorer: venstre A0, midt A1, høyre A2. Høy verdi = sensoren ser den mørke linjen.
// Motorer: venstre IN1/IN2 på pinne 2/3, høyre IN3/IN4 på pinne 4/5.
// Terskelen (500) må justeres etter sensorene og underlaget.
const int sensorLeft = A0;
const int sensorCenter = A1;
const int sensorRight = A2;
const int motorLeftA = 2;
const int motorLeftB = 3;
const int motorRightA = 4;
const int motorRightB = 5;
const int TERSKEL = 500;
void settMotorer(int venstreA, int venstreB, int hoyreA, int hoyreB) {
digitalWrite(motorLeftA, venstreA);
digitalWrite(motorLeftB, venstreB);
digitalWrite(motorRightA, hoyreA);
digitalWrite(motorRightB, hoyreB);
}
void moveForward() { settMotorer(HIGH, LOW, HIGH, LOW); }
void turnLeft() { settMotorer(LOW, LOW, HIGH, LOW); } // venstre hjul står, høyre kjører
void turnRight() { settMotorer(HIGH, LOW, LOW, LOW); } // høyre hjul står, venstre kjører
void stopMotors() { settMotorer(LOW, LOW, LOW, LOW); }
void setup() {
pinMode(motorLeftA, OUTPUT);
pinMode(motorLeftB, OUTPUT);
pinMode(motorRightA, OUTPUT);
pinMode(motorRightB, OUTPUT);
}
void loop() {
int left = analogRead(sensorLeft);
int center = analogRead(sensorCenter);
int right = analogRead(sensorRight);
if (center > TERSKEL) {
moveForward();
} else if (left > TERSKEL) {
turnLeft();
} else if (right > TERSKEL) {
turnRight();
} else {
stopMotors(); // Linjen er borte – stopp i stedet for å kjøre videre
}
}
Introduksjon til PID-kontroll
PID (Proportional-Integral-Derivative) er en avansert styringsmetode som gir mykere og mer presise bevegelser. I stedet for brå svinger, justerer PID motorhastigheten gradvis basert på hvor langt roboten er fra ønsket posisjon.
PID beregner en feil (hvor langt fra linjen) og justerer motorene proporsjonalt. Dette gir mindre oscillasjon og raskere kjøring.
Tips: Start med enkel on/off-logikk først. Når roboten følger linjen greit, kan du implementere PID for bedre ytelse.
Vanlige feil og løsninger
- Roboten reagerer ikke: Sjekk batteriets spenning og alle jordforbindelser
- Motorene går bare en vei: Bytt om på motortilkoblingene til L298N
- Sensorene gir rare verdier: Juster høyden og kalibrer grenseverdiene
- Roboten oscillerer voldsomt: Reduser motorhastigheten eller implementer PID
- Mister linjen i svinger: Legg til flere sensorer eller øk bredden mellom dem
Neste steg
Når grunnroboten fungerer, kan du utvide med:
- Hastighetsregulering med PWM
- LCD-display for debugging
- Trådløs kommunikasjon
- Mer avanserte sensorer
Alle komponenter du trenger finner du i nettbutikken vår – fra Arduino-boards til sensorer og motorkomponenter. Lykke til med byggingen!
All kode fra denne guiden – kompilert og klar til bruk – ligger i det åpne repoet vårt: robonordic-prosjekter/robotikk/linjefolger


