Hogyan lehet felépíteni egy egyszerű sort a robot után Arduino -val

A robotikai projektbe való belépés izgalmas és oktató is lehet, különösen akkor, ha valami kézzelfogható dolgot épít, mint egy vonalkövető robot. Az Arduino, az egyik legnépszerűbb mikrokontroller használata, még kezdők számára is hozzáférhetővé teszi a folyamatot. Ebben az útmutatóban végigmegyünk a lépéseken, hogy létrehozzunk egy egyszerű vonalkövető robotot, amely önállóan képes navigálni az utat.

A szükséges anyagok

  • Arduino Uno - A robot agya.
  • Motor illesztőprogram modul (L298N) - A motorok vezérlése.
  • DC motorok kerekekkel - A mozgáshoz.
  • Alváz - A keret az összes alkatrész tartásához.
  • Vonalérzékelő modul (például QRE1113) - A vonal észlelése.
  • Akkumulátor - A robot energiaforrása.
  • Jumper vezetékek - A kapcsolatokhoz.
  • Kenyér - A prototípus -kapcsolatokhoz.
  • Csavarok, anyák és csavarok - Az alváz összeállítása.

1. lépés: Az alváz összeszerelése

Az alváz a robot alapja. Kezdje úgy, hogy csavarokkal és anyákkal rögzítse a DC motorokat az alvázhoz. Győződjön meg arról, hogy a motorok biztonságosan rögzítik, hogy megakadályozzák a működést. Csatlakoztassa a kerekeket a motor tengelyeihez, és helyezze az akkumulátorcsomagot és az Arduino -t az alvázra. Győződjön meg arról, hogy az összes alkatrész jól illeszkedik, és könnyen elérhető -e a vezetékekhez.

2. lépés: A motorok bekötése

Csatlakoztassa az egyenáramú motorokat a Motor Driver modulhoz (L298N). A motorvezető felületként működik az Arduino és a Motors között, lehetővé téve az Arduino számára a motor sebességének és irányának szabályozását anélkül, hogy túlterhelték volna.


// 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);
}

3. lépés: A vonalérzékelő csatlakoztatása

A vonalérzékelő felismeri a vonal és a felület közötti kontrasztot. Ezeknek az érzékelőknek általában infravörös LED -jei és fotodiódjai vannak a tükröző felületek észlelésére. Csatlakoztassa az érzékelő VCC -jét és GND -jét az Arduino 5V -hez és a GND -hez. Az érzékelő kimeneti csapjait az Arduino digitális vagy analóg csapjaihoz kell csatlakoztatni az érzékelő típusának alapján.


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

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

4. lépés: Az Arduino kód írása

Az Arduino kód elolvassa az érzékelő értékeit, és ennek megfelelően vezérli a motorokat, hogy kövesse a vonalat. Az alábbiakban egy egyszerű példa a kód megjelenésére:


// 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);
}

5. lépés: A robot bekapcsolása

Miután az összes csatlakozás megtörtént, csatlakoztassa az akkumulátorcsomagot az Arduino -hoz és a Motor -vezetőhöz. Győződjön meg arról, hogy a polaritás helyes -e az alkatrészek bármilyen károsodásának megakadályozása érdekében. Jó gyakorlat, ha a csatlakozásokat multiméterrel teszteljük, mielőtt bekapcsolnánk.

Tesztelés és kalibrálás

A bekapcsolás után helyezze a robotot egy felületre egy tiszta vonalon (például fekete szalag a fehér papírra). Vegye figyelembe, hogyan viselkedik, és végezze el a szükséges kiigazításokat. Lehet, hogy meg kell változtatnia az érzékelő küszöbét, vagy be kell állítania a sebességet az optimális teljesítmény elérése érdekében a kódban lévő PWM -értékek megváltoztatásával.

Tippek a sikerhez

  • Gondoskodjon a stabil kapcsolatokról: A laza vezetékek időszakos viselkedést okozhatnak. Használjon kenyérlemezt a prototípus készítéséhez, és fontolja meg az állandó beállításhoz forrasztási csatlakozásokat.
  • Használjon minőségi érzékelőket: A megbízható vonalérzékelők jelentősen javíthatják a robot teljesítményét.
  • Kalibrálja az érzékelőket: A különböző felületek és világítási körülmények befolyásolhatják az érzékelő leolvasását. Ennek megfelelően kalibrálja a küszöbértékeket.
  • A kód optimalizálása: A hatékony kód biztosítja a gyors válaszidőket. Győződjön meg arról, hogy a hurokban nincs szükség felesleges késéssel.

Fejlesztések és további tanulás

Miután sikeresen felépített egy alapvető vonalkövető robotot, fontolja meg további funkciók hozzáadását a képességek javítása érdekében:

  • Kereszteződés -észlelés: Engedje meg, hogy a robot a kereszteződéseknél döntéseket hozzon.
  • Sebességszabályozás: Végezze el az érzékelő bemenete alapján a dinamikus sebesség beállításait.
  • Vezeték nélküli vezérlés: Adjon hozzá Bluetooth vagy Wi-Fi modulokat a robot távoli irányításához.
  • Akadály elkerülése: Helyezze be az ultrahangos érzékelőket az akadályok körüli navigáláshoz.

A vonalkövető robot felépítése Arduino-val fantasztikus módja annak, hogy belemerüljön a robotika és a beágyazott rendszerek világába. Tanít ​​olyan alapvető fogalmakat, mint az érzékelő integrációja, a motorvezérlés és a valós idejű döntéshozatal. A türelemmel és a kísérletezéssel kibővítheti ezt az alapvető projektet egy bonyolultabb és tehetségesebb robotra. Boldog épület!

Hagyj egy megjegyzést

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.