Создание радиоуправляемой машинки на Arduino и NRF24L01

Бесплатная консультация юриста

+7 (800) -01-07-30

Реклама jurik.ru

Дата последнего обновления:


Содержание

  1. Общее описание проекта
  2. Необходимые комплектующие
  3. Электрические схемы
  4. Сборка механической части
  5. Программирование Arduino
  6. Тестирование и настройка
  7. Контакты для обращений

Общее описание проекта

В статье рассматривается процесс создания радиоуправляемой машинки с помощью микроконтроллера Arduino и беспроводного модуля NRF24L01.
Проект подходит как для начинающих, так и для тех, кто хочет углубиться в схемотехнику и программирование.

На основе найденных в сети материалов (см. даты , , , и др.) мы собрали проверенную схему, адаптировали её под современные комплектующие и добавили подробные пояснения.

Ключевые цели

  • Собрать шасси и установить два постоянных двигателя (движение вперёд/назад и поворот).
  • Создать пульт управления на базе Arduino Nano + NRF24L01.
  • Разработать прошивку для обеих сторон (трансивер и приёмник).
  • Настроить связь, проверить отклик и отладить управление.

Необходимые комплектующие

Электронные

  1. Arduino Nano (или Arduino Pro Mini) – 2 шт. (один в машине, второй в пульте).
  2. NRF24L01+PA+LNA модуль – 2 шт.
  3. Два постоянных двигателя постоянного тока (12‑24 В) – один отвечает за движение, второй – за поворот.
  4. Драйверы моторов (L298N или TB6612FNG) – 2 шт.
  5. Батарейный блок 7.4 V Li‑Po (2 шт.) + держатели.
  6. Светодиоды (фары) – 4 шт.
  7. Резисторы 220 Ω (для светодиодов) – 4 шт.
  8. Конденсаторы 10 µF (для стабилизации питания NRF24L01) – 2 шт.
  9. Кнопки/джойстик для пульта – 2‑4 шт.

Механические

  • Шасси (можно напечатать на 3‑D принтере формата А8, как в статье от ).
  • Гаечные ключи, крестовая отвертка, набор винтов и гаек.
  • Колёса (подходящие под выбранные моторы).
  • Подшипники, оси, планки для крепления электроники.

Электрические схемы

3.1 Схема подключения двигателя в машине

Схема построена на основе примеров от и .

+-------------------+ +-------------------+
| Arduino Nano | | NRF24L01 |
| (RX) | | (приёмник) |
| D2 —> CE |------| CE |
| D3 —> CSN |------| CSN |
| D4‑D7 —> MOSI/SCK |------| MOSI/SCK |
+-------------------+ +-------------------+

+-------------------+ +-------------------+
| Драйвер L298N | | Двигатель DC |
| IN1 —> D8 |------| + (вперёд) |
| IN2 —> D9 |------| — (назад) |
+-------------------+ +-------------------+

3.2 Схема пульта управления

Пульт использует тот же набор микросхем, но в роли передатчика.

+-------------------+ +-------------------+
| Arduino Nano | | NRF24L01 |
| (TX) | | (передатчик) |
| D2 —> CE |------| CE |
| D3 —> CSN |------| CSN |
| D4‑D7 —> MOSI/SCK |------| MOSI/SCK |
+-------------------+ +-------------------+

Кнопки:
- Button A (вперёд) → D8
- Button B (назад) → D9
- Button C (влево) → D10
- Button D (вправо) → D11

Сборка механической части

  1. Подготовка шасси. Распечатайте детали на 3‑D принтере (формат А8). Смотрите модель из статьи от .
  2. Установка двигателей. Закрепите моторы к шасси с помощью гаек и болтов. Один мотор будет отвечать за движение, второй – за поворот.
  3. Крепление колёс. Наденьте колёса на валы двигателей, зафиксируйте.
  4. Монтаж электроники. Прикрепите Arduino Nano, драйвер L298N и NRF24L01 в специально отведённые отверстия. Не забудьте добавить конденсаторы 10 µF рядом с NRF24L01.
  5. Подключение светодиодов. Прикрепите 4 светодиода к передней части машинки (две фары, две задние сигналы). Подключите через резисторы 220 Ω к выводам Arduino (D12‑D15).
  6. Питание. Подключите батарейный блок к VIN Arduino и к входу драйвера L298N. Проверьте полярность.

Программирование Arduino

5.1 Библиотеки

  • #include – для работы с NRF24L01.
  • #include – SPI‑шина.
  • #include (если используете Motor Shield) или прямое управление через digitalWrite.

5.2 Код приёмника (машинка)

#include <SPI.h>
#include <RF24.h>

RF24 radio(2, 3); // CE, CSN
const byte address[6] = "00001";

enum Command {STOP=0, FORWARD, BACKWARD, LEFT, RIGHT};

void setup {
 Serial.begin(9600);
 radio.begin;
 radio.openReadingPipe(0, address);
 radio.setPALevel(RF24_PA_LOW);
 radio.startListening;

 pinMode(8, OUTPUT); // IN1
 pinMode(9, OUTPUT); // IN2
 pinMode(10, OUTPUT); // IN3 (поворот)
 pinMode(11, OUTPUT); // IN4 (поворот)
}

void loop {
 if (radio.available) {
 Command cmd;
 radio.read(&cmd, sizeof(cmd));
 executeCommand(cmd);
 }
}

void executeCommand(Command cmd) {
 switch (cmd) {
 case FORWARD:
 digitalWrite(8, HIGH);
 digitalWrite(9, LOW);
 break;
 case BACKWARD:
 digitalWrite(8, LOW);
 digitalWrite(9, HIGH);
 break;
 case LEFT:
 digitalWrite(10, HIGH);
 digitalWrite(11, LOW);
 break;
 case RIGHT:
 digitalWrite(10, LOW);
 digitalWrite(11, HIGH);
 break;
 default: // STOP
 digitalWrite(8, LOW);
 digitalWrite(9, LOW);
 digitalWrite(10, LOW);
 digitalWrite(11, LOW);
 break;
 }
}

5.3 Код передатчика (пульт)

#include <SPI.h>
#include <RF24.h>

RF24 radio(2, 3); // CE, CSN
const byte address[6] = "00001";

enum Command {STOP=0, FORWARD, BACKWARD, LEFT, RIGHT};

void setup {
 Serial.begin(9600);
 radio.begin;
 radio.openWritingPipe(address);
 radio.setPALevel(RF24_PA_LOW);
 pinMode(8, INPUT_PULLUP); // Button Forward
 pinMode(9, INPUT_PULLUP); // Button Backward
 pinMode(10, INPUT_PULLUP); // Button Left
 pinMode(11, INPUT_PULLUP); // Button Right
}

void loop {
 Command cmd = STOP;
 if (digitalRead(8) == LOW) cmd = FORWARD;
 else if (digitalRead(9) == LOW) cmd = BACKWARD;
 else if (digitalRead(10) == LOW) cmd = LEFT;
 else if (digitalRead(11) == LOW) cmd = RIGHT;

 radio.write(&cmd, sizeof(cmd));
 delay(100); // небольшая задержка для стабильности
}

5.4 Пояснения

  • Для надёжной связи рекомендуется разместить конденсаторы 10 µF рядом с VCC и GND модуля NRF24L01.
  • Уровень питания NRF24L01 – 3.3 V. Если используете Arduino Nano 5 V, подключайте модуль через стабилизатор или логический уровневый преобразователь.
  • Для плавного управления можно добавить ШИМ‑регуляцию (analogWrite) вместо простого HIGH/LOW.

Тестирование и настройка

  1. Проверка питания. Убедитесь, что все компоненты получают нужное напряжение (Arduino 5 V, NRF24L01 3.3 V, моторы – от батареи).
  2. Тест драйвера. Подайте простую команду HIGH/LOW на выводы IN1‑IN4 и проверьте вращение моторов.
  3. Тест связи. Запустите скетч передатчика и приёмника, нажмите кнопку «вперёд». Машинка должна ехать вперёд.
  4. Отладка. Если связь «пропадает», проверьте антенну NRF24L01, замените конденсаторы, уменьшите расстояние.
  5. Калибровка скорости. Добавьте ШИМ‑управление (analogWrite) для регулировки скорости двигателей.
  6. Тест светодиодов. Убедитесь, что фары включаются при подаче питания.

После успешного теста ваш проект готов к эксплуатации! При желании можно добавить:

  • Bluetooth‑модуль вместо NRF24L01.
  • Сенсор препятствий (ультразвуковой датчик HC‑SR04).
  • Подвеску и более мощные моторы для увеличения нагрузки.

Контакты для обращений

Если у вас возникли вопросы, нужны консультации или вы хотите поделиться отзывом – используйте любые из перечисленных способов связи.

  • Официальный сайт: https://www.radiocars-example.ru
  • Горячая линия: +7 (495) -23‑45‑67 (круглосуточно)
  • Номера телефонов:
    • Техническая поддержка – +7 (495) -23‑45‑68
    • Отдел продаж – +7 (495) -23‑45‑69
  • Электронный адрес: support@radiocars-example;ru
  • Личный кабинет: https://www.radiocars-example.ru/login
  • Личный приём (по записи): +7 (495) -23‑45‑70
  • График приёма:
    • Пн‑Пт: 09:00–18:00
    • Сб: 10:00–15:00
    • Вс: выходной
  • Отделы:
    1. Отдел разработки – +7 (495) -23‑45‑71
    2. Отдел продаж – +7 (495) -23‑45‑69
    3. Отдел поддержки – +7 (495) -23‑45‑68
  • Руководство:
    • Генеральный директор – Иванов И.И.
    • Технический директор – Петров П.П.
    • Менеджер по работе с клиентами – Сидорова А.А.
  • Отзывы: Оставить отзыв можно на странице «Отзывы клиентов» или отправив письмо на feedback@radiocars-example.ru.

Создание радиоуправляемой машинки на базе Arduino – отличное практическое задание, которое помогает освоить электронику, программирование и механику.
Следуя пошаговым инструкциям, вы получите готовый к эксплуатации проект, а при необходимости сможете расширять его новыми функциями.

Удачной сборки и ярких поездок!