Kuinka rakentaa yksinkertainen viiva robotin seurauksena Arduinon kanssa

Robotiikkaprojektin aloittaminen voi olla sekä jännittävää että koulutusta, varsinkin kun rakennat jotain konkreettista kuin linjaa seuraavaa robottia. Arduinon, joka on yksi suosituimmista mikrokontrollereista, hyödyntämällä prosessia jopa aloittelijoille. Tässä oppaassa opimme sinut läpi vaiheet luodaksesi yksinkertaisen viivaa seuraavan robotin, joka voi navigoida polulla itsenäisesti.

Tarvitset materiaalit

  • Arduino uno - Robotin aivot.
  • Moottorin ohjainmoduuli (L298N) - moottorien hallitsemiseksi.
  • DC -moottorit pyörillä - liikkeelle.
  • Runko - Kehys kaikkien komponenttien pitämiseksi.
  • Line -anturimoduuli (esim. QRE1113) - linjan havaitsemiseksi.
  • Akku - Robotin virtalähde.
  • Hyppyjohdot - Yhteydet.
  • Leipälauta - Yhteyksien prototyyppi.
  • Ruuvit, mutterit ja pultit - Alustan kokoaminen.

Vaihe 1: Alustan kokoaminen

Alusta toimii robotin perustana. Aloita kiinnittämällä DC -moottorit runkoon ruuveilla ja muttereilla. Varmista, että moottorit on kiinnitetty turvallisesti liikkumisen estämiseksi toiminnan aikana. Kiinnitä pyörät moottoriakseliin ja aseta akku ja Arduino runkoon. Varmista, että kaikki komponentit sopivat hyvin ja ovat helposti johdotusten saavuttamisessa.

Vaihe 2: Moottorien johdotus

Kytke tasavirtamoottorit moottorin ohjainmoduuliin (L298N). Moottorin kuljettaja toimii rajapintana Arduinon ja moottorien välillä, jolloin Arduino voi hallita moottorin nopeutta ja suuntaa ylikuormittamatta.


// Connect motor A
const int motorA_EN = 9;
const int motorA_IN1 = 7;
const int motorA_IN2 = 8;

// Connect motor B
const int motorB_EN = 10;
const int motorB_IN3 = 5;
const int motorB_IN4 = 6;

void setup() {
  // Motor A
  pinMode(motorA_EN, OUTPUT);
  pinMode(motorA_IN1, OUTPUT);
  pinMode(motorA_IN2, OUTPUT);
  
  // Motor B
  pinMode(motorB_EN, OUTPUT);
  pinMode(motorB_IN3, OUTPUT);
  pinMode(motorB_IN4, OUTPUT);
}

Vaihe 3: Line -anturin kytkeminen

Line -anturi havaitsee linjan ja pinnan välisen kontrastin. Tyypillisesti näissä antureissa on infrapuna LED ja fotodiodit heijastavien pintojen havaitsemiseksi. Yhdistä anturin VCC ja GND Arduinon 5 V: n ja GND: hen. Anturin lähtötapit kytketään Arduinon digitaalisiin tai analogisiin nastaihin anturityypin perusteella.


// Line sensor pins
const int sensorLeft = A0;
const int sensorRight = A1;

void setup() {
  pinMode(sensorLeft, INPUT);
  pinMode(sensorRight, INPUT);
}

Vaihe 4: Arduino -koodin kirjoittaminen

Arduino -koodissa lukee anturin arvot ja ohjaa moottoreita vastaavasti seuraavan rivin seuraamiseksi. Alla on yksinkertainen esimerkki siitä, miltä koodi voi näyttää:


// Define motor pins
const int motorA_EN = 9;
const int motorA_IN1 = 7;
const int motorA_IN2 = 8;
const int motorB_EN = 10;
const int motorB_IN3 = 5;
const int motorB_IN4 = 6;

// Define sensor pins
const int sensorLeft = A0;
const int sensorRight = A1;

// Threshold for line detection
const int threshold = 500;

void setup() {
  // Initialize motor pins
  pinMode(motorA_EN, OUTPUT);
  pinMode(motorA_IN1, OUTPUT);
  pinMode(motorA_IN2, OUTPUT);
  
  pinMode(motorB_EN, OUTPUT);
  pinMode(motorB_IN3, OUTPUT);
  pinMode(motorB_IN4, OUTPUT);
  
  // Initialize sensor pins
  pinMode(sensorLeft, INPUT);
  pinMode(sensorRight, INPUT);
  
  // Start serial communication for debugging
  Serial.begin(9600);
}

void loop() {
  int leftSensor = analogRead(sensorLeft);
  int rightSensor = analogRead(sensorRight);
  
  Serial.print("Left: ");
  Serial.print(leftSensor);
  Serial.print(" | Right: ");
  Serial.println(rightSensor);
  
  if (leftSensor > threshold && rightSensor > threshold) {
    // Move forward
    moveForward();
  }
  else if (leftSensor < threshold && rightSensor > threshold) {
    // Turn right
    turnRight();
  }
  else if (leftSensor > threshold && rightSensor < threshold) {
    // Turn left
    turnLeft();
  }
  else {
    // Stop
    stopMovement();
  }
}

void moveForward() {
  digitalWrite(motorA_IN1, HIGH);
  digitalWrite(motorA_IN2, LOW);
  digitalWrite(motorB_IN3, HIGH);
  digitalWrite(motorB_IN4, LOW);
  
  analogWrite(motorA_EN, 200);
  analogWrite(motorB_EN, 200);
}

void turnRight() {
  digitalWrite(motorA_IN1, HIGH);
  digitalWrite(motorA_IN2, LOW);
  digitalWrite(motorB_IN3, LOW);
  digitalWrite(motorB_IN4, LOW);
  
  analogWrite(motorA_EN, 200);
  analogWrite(motorB_EN, 0);
}

void turnLeft() {
  digitalWrite(motorA_IN1, LOW);
  digitalWrite(motorA_IN2, LOW);
  digitalWrite(motorB_IN3, HIGH);
  digitalWrite(motorB_IN4, LOW);
  
  analogWrite(motorA_EN, 0);
  analogWrite(motorB_EN, 200);
}

void stopMovement() {
  digitalWrite(motorA_IN1, LOW);
  digitalWrite(motorA_IN2, LOW);
  digitalWrite(motorB_IN3, LOW);
  digitalWrite(motorB_IN4, LOW);
  
  analogWrite(motorA_EN, 0);
  analogWrite(motorB_EN, 0);
}

Vaihe 5: Robotin virtaaminen

Kun kaikki liitännät on valmistettu, kytke akku Arduinolle ja moottorin ohjaimelle. Varmista, että napaisuus on oikea estämään komponenttien vaurioita. On hyvä käytäntö testata yhteydet yleismittarilla ennen virransa aikana.

Testi ja kalibrointi

Aseta robotti pinnalle virrankäytön jälkeen selkeällä viivalla (esim. Musta teippi valkoiselle paperille). Tarkkaile, kuinka se käyttäytyy ja tee tarvittavat säädöt. Saatat joutua säätämään anturikynnystä tai säätämään nopeutta muuttamalla koodin PWM -arvoja optimaalisen suorituskyvyn saavuttamiseksi.

Menestysvinkkejä

  • Varmista vakaat yhteydet: Löysät johdot voivat aiheuttaa ajoittaista käyttäytymistä. Käytä leipälautaa prototyyppien määrittämiseen ja harkitse yhteyksiä pysyvään asennukseen.
  • Käytä laatuantureita: Luotettavat linja -anturit voivat parantaa merkittävästi robotin suorituskykyä.
  • Kalibroi anturit: Eri pinnat ja valaistusolosuhteet voivat vaikuttaa anturin lukemiin. Kalibroi kynnysarvot vastaavasti.
  • Optimoi koodi: Tehokas koodi varmistaa nopeat vasteajat. Varmista, että silmukassa ei ole tarpeellisia viivästyksiä.

Parannukset ja jatko -oppiminen

Kun olet onnistuneesti rakentanut perusviivaa seuraavan robotin, harkitse lisää ominaisuuksien lisäämistä sen ominaisuuksien parantamiseksi:

  • Risteysten havaitseminen: Anna robotti tehdä päätöksiä risteyksissä.
  • Nopeuden hallinta: Toteuta dynaamiset nopeuden säädöt anturin tuloon perustuen.
  • Langaton hallinta: Lisää Bluetooth- tai Wi-Fi-moduulit hallitaksesi robottia etäyhteyden kautta.
  • Esteen välttäminen: Sisällytä ultraäänianturit navigoimaan esteiden ympärille.

Linja-seuraavan robotin rakentaminen Arduinon kanssa on loistava tapa sukeltaa robotiikan ja sulautettujen järjestelmien maailmaan. Se opettaa sinulle perustavanlaatuisia käsitteitä, kuten anturin integrointia, moottorin hallintaa ja reaaliaikaisen päätöksenteon. Kärsivällisyyden ja kokeilun avulla voit laajentaa tämän perusprojektin monimutkaisemmaksi ja kykeneväksi robotiksi. Hyvää rakennus!

Jätä kommentti

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.