В этом сообщении блога мы рассмотрим, как создать полнофункциональный робот-автомобиль с использованием платформы робототехники Johnny Five JavaScript. Мы сосредоточимся на подключении четырех двигателей (не сервоприводов) и индивидуальном управлении каждым двигателем, чтобы обеспечить движение в нескольких направлениях. Кроме того, мы углубимся в программирование автомобиля-робота для выполнения различных движений, включая движение по квадрату, кругу и даже танец. К концу этого руководства у вас будет рабочий робот-автомобиль, способный выполнять эти сложные движения.

Необходимые компоненты. Для начала давайте соберем компоненты, необходимые для нашего проекта:

  1. Плата Arduino (например, Arduino Uno)
  2. Модуль драйвера двигателя (например, L293D или аналогичный)
  3. Четыре двигателя постоянного тока (убедитесь, что они соответствуют спецификациям драйвера двигателя)
  4. Перемычки для соединений
  5. Питание двигателей (аккумулятор или внешний источник питания)
  6. Шасси для робота-автомобиля
  7. Колеса и поворотное колесо для мобильности
  8. Макетная плата (опционально, для прототипирования и соединений)
  9. Ноутбук или компьютер для программирования и управления

Подключение компонентов. Теперь, когда у нас есть необходимые компоненты, давайте приступим к их подключению, чтобы построить нашу машину-робот:

  1. Подключите плату Arduino к компьютеру с помощью USB-кабеля.
  2. Присоедините модуль драйвера двигателя к плате Arduino, соблюдая правильное подключение контактов.
  3. Подключите четыре двигателя постоянного тока к выходам модуля драйвера двигателя, следуя инструкциям по подключению, характерным для выбранного драйвера двигателя.
  4. Установите отдельный источник питания для двигателей, подключив его к модулю драйвера двигателя и обеспечив надлежащие значения напряжения и тока.
  5. Соберите шасси, прикрепите колеса и установите двигатели в предназначенных для них местах.
  6. Используйте перемычки, чтобы установить необходимые соединения между платой Arduino и модулем драйвера двигателя, обеспечив правильное назначение контактов.
  7. Дважды проверьте все соединения, чтобы убедиться, что они безопасны и правильно подключены.

Управление двигателями с помощью Johnny Five. Для управления двигателями нашего автомобиля-робота мы будем использовать платформу робототехники Johnny Five JavaScript. Johnny Five позволяет нам взаимодействовать с аппаратными устройствами, такими как платы Arduino, используя знакомый синтаксис JavaScript. Давайте углубимся в код:

Установите необходимые зависимости: начните с настройки проекта Node.js и установки библиотеки Johnny Five с помощью npm.

npm install johnny-five

Настройте исходную структуру кода: создайте новый файл JavaScript (например, robot-car.js) и импортируйте библиотеку Johnny Five. Инициализируйте Johnny Five, подключившись к плате Arduino.

const { Board } = require("johnny-five");
const board = new Board();
board.on("ready", function() {
  // Your code goes here
});

Определите выводы двигателей и создайте экземпляры двигателей: в обратном вызове board.on("ready") укажите выводы, подключенные к каждому двигателю, и создайте экземпляры двигателей, используя класс Motor Johnny Five.

const motor1 = new five.Motor({ pins: { pwm: 3, dir: 12 } });
const motor2 = new five.Motor({ pins: { pwm: 5, dir: 13 } });
const motor3 = new five.Motor({ pins: { pwm: 6, dir: 10 } });
const motor4 = new five.Motor({ pins: { pwm: 9, dir: 11 } });

Управление отдельными моторами: теперь вы можете управлять каждым мотором по отдельности, вызывая методы экземпляров моторов. Например, чтобы двигатель 1 двигался вперед:

motor1.forward(speed);

Вы можете управлять скоростью, используя значения от 0 до 255, где 0 означает отсутствие движения, а 255 — полную скорость.

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

function moveInSquare() {
  // Move forward for a certain duration
  motor1.forward(speed);
  motor2.forward(speed);
  motor3.forward(speed);
  motor4.forward(speed);
  board.wait(2000, function() {
    // Stop and wait for a brief moment
    motor1.stop();
    motor2.stop();
    motor3.stop();
    motor4.stop();
    board.wait(500, function() {
      // Turn right for a certain duration
      motor1.forward(speed);
      motor2.reverse(speed);
      motor3.forward(speed);
      motor4.reverse(speed);
      board.wait(1000, function() {
        // Stop and wait for a brief moment
        motor1.stop();
        motor2.stop();
        motor3.stop();
        motor4.stop();
        board.wait(500, function() {
          // Repeat the pattern for the remaining sides
          // You can implement the other sides of the square using similar code
        });
      });
    });
  });
}

Изменив приведенный выше код, вы можете запрограммировать автомобиль-робот на выполнение других движений, таких как движение по кругу или танец, комбинируя соответствующие двигательные движения и синхронизацию.

Заключение. Поздравляем! Вы успешно построили полнофункциональную машину-робот с помощью Johnny Five, соединили четыре мотора и научились управлять каждым мотором по отдельности. Кроме того, вы изучили программирование автомобиля-робота для выполнения сложных движений, таких как движение по квадрату, кругу и даже танец. Обладая этими знаниями, вы сможете еще больше расширить возможности своего автомобиля-робота и изучить более интересные проекты в мире робототехники.

Не забывайте экспериментировать, проявлять творческий подход и продолжать исследовать огромные возможности робототехники с помощью Johnny Five. Приятного вам мастерства и получайте удовольствие от создания собственных роботизированных творений!