Перейти к содержимому
Constell Shop
Робот-машинка: соберите своего первого робота 3D

Инструкции к проектам

Робот-машинка: соберите своего первого робота

Двухмоторное шасси, драйвер L298N и Arduino UNO — основа робототехники. В конце машинка проедет по запрограммированному вами маршруту: прямо, поворот, и снова.

Сложность
Легко
Время
~90 min
Детали
деталей: 11
Шаг за шагом
шагов: 7
  • Управлять моторами через драйвер и менять скорость ШИМ
  • Питание от аккумуляторов и общая земля
  • Программировать движение по времени

Детали

Ещё понадобится

  • — Компьютер и Arduino IDE (бесплатно на arduino.cc)
  • — USB-кабель для UNO (вариант UNO SMD «+ USB-кабель»)
  • — Небольшая крестовая отвёртка

Шаг за шагом

  1. 01

    Соберите шасси

    Закрепите два мотора TT кронштейнами в задней части платформы, шаровую опору — спереди. Наденьте колёса на валы. Отсек для аккумуляторов и L298N поставьте в центр на стойки.

  2. 02

    Подключите моторы к драйверу

    Провода левого мотора — в клеммы OUT1/OUT2, правого — в OUT3/OUT4. Если позже мотор крутится не в ту сторону, просто поменяйте местами эти два провода.

  3. 03

    Подключите управляющие провода

    Соедините L298N и UNO проводами «папа-мама» по таблице ниже. Снимите перемычки с ENA и ENB — иначе скорость не будет регулироваться.

  4. 04

    Подключите питание

    Плюс аккумуляторов — в клемму 12V на L298N, минус — в GND. От того же GND проведите провод к GND на UNO, а 5V драйвера — к 5V на UNO. Аккумуляторы пока не вставляйте.

  5. 05

    Установите радиомодуль

    Подключите nRF24L01 по таблице: VCC только к 3.3V (5V сожжёт модуль), CE → D9, CSN → D10, SCK → D13, MOSI → D11, MISO → D12. Пока машинка ездит по маршруту сама; радио готово к следующему шагу — управлению со второй платы с nRF24L01 и джойстиком.

  6. 06

    Загрузите код

    Подключите UNO по USB, в Arduino IDE выберите плату «Arduino Uno» и порт, вставьте код и нажмите «Upload». Драйвер CH340 Windows обычно ставит сама.

  7. 07

    Испытайте

    Отключите USB, вставьте аккумуляторы и поставьте машинку на пол. Она четыре раза проедет «прямо + поворот направо» — по квадрату. Если угол меньше или больше 90°, подберите TURN_MS.

Подключение

  • Питание (+)
  • Земля (−)
  • Сигнальный пин
  • Шина I²C / SPI
L298N ⟷ UNOпроводов: 8
  1. L298NENA→UNOD5 снимите перемычку с ENA
  2. L298NIN1→UNOD7
  3. L298NIN2→UNOD8
  4. L298NIN3→UNOD2
  5. L298NIN4→UNOD4
  6. L298NENB→UNOD6 снимите перемычку с ENB
  7. L298NGND→UNOGND общая земля — обязательно
  8. L298N5V→UNO5V питает UNO от драйвера
L298N ⟷ Левый моторпроводов: 1
  1. L298NOUT1OUT2→Левый мотор
L298N ⟷ Правый моторпроводов: 1
  1. L298NOUT3OUT4→Правый мотор
Аккумулятор ⟷ L298Nпроводов: 2
  1. Аккумулятор+(2×18650)→L298N12V
  2. Аккумулятор−→L298NGND
nRF24L01 ⟷ UNOпроводов: 7
  1. nRF24L01VCC→UNO3.3V не 5V!
  2. nRF24L01GND→UNOGND
  3. nRF24L01CE→UNOD9
  4. nRF24L01CSN→UNOD10
  5. nRF24L01SCK→UNOD13
  6. nRF24L01MOSI→UNOD11
  7. nRF24L01MISO→UNOD12

Код

sketch.ino
// моторы (L298N)
const int ENA = 5, IN1 = 7, IN2 = 8;   // левый
const int ENB = 6, IN3 = 2, IN4 = 4;   // правый

void motors(int left, int right) {     // -255 … 255
  digitalWrite(IN1, left >= 0);  digitalWrite(IN2, left < 0);
  digitalWrite(IN3, right >= 0); digitalWrite(IN4, right < 0);
  analogWrite(ENA, abs(left));   analogWrite(ENB, abs(right));
}

void setupMotors() {
  int pins[] = {ENA, IN1, IN2, ENB, IN3, IN4};
  for (int p : pins) pinMode(p, OUTPUT);
  motors(0, 0);
}

const int SPEED = 180;      // 0–255
const int STRAIGHT_MS = 1500;
const int TURN_MS = 420;    // подберите для поворота на 90°

void setup() {
  setupMotors();
  delay(2000);              // время поставить робота на пол
  for (int side = 0; side < 4; side++) {
    motors(SPEED, SPEED);   delay(STRAIGHT_MS);
    motors(SPEED, -SPEED);  delay(TURN_MS);
  }
  motors(0, 0);
}

void loop() {}

Если что-то не работает

  • Моторы гудят, но не крутятся: аккумуляторы разряжены или SPEED слишком мал — поднимите выше 150.
  • Один мотор крутится в обратную сторону: поменяйте его провода в клеммах OUT.
  • UNO перезагружается: нет общей земли или слабые аккумуляторы.
  • Машинку уводит в сторону: немного уменьшите скорость более быстрого мотора.

Что дальше

  • Соберите пульт из второй платы, nRF24L01 и джойстика и управляйте машинкой по радио (библиотека «RF24»)
  • Поставьте датчик HC-SR04 и превратите в робота, объезжающего препятствия