В этом сообщении блога мы рассмотрим, как создать полнофункциональный робот-автомобиль с использованием платформы робототехники Johnny Five JavaScript. Мы сосредоточимся на подключении четырех двигателей (не сервоприводов) и индивидуальном управлении каждым двигателем, чтобы обеспечить движение в нескольких направлениях. Кроме того, мы углубимся в программирование автомобиля-робота для выполнения различных движений, включая движение по квадрату, кругу и даже танец. К концу этого руководства у вас будет рабочий робот-автомобиль, способный выполнять эти сложные движения.
Необходимые компоненты. Для начала давайте соберем компоненты, необходимые для нашего проекта:
- Плата Arduino (например, Arduino Uno)
- Модуль драйвера двигателя (например, L293D или аналогичный)
- Четыре двигателя постоянного тока (убедитесь, что они соответствуют спецификациям драйвера двигателя)
- Перемычки для соединений
- Питание двигателей (аккумулятор или внешний источник питания)
- Шасси для робота-автомобиля
- Колеса и поворотное колесо для мобильности
- Макетная плата (опционально, для прототипирования и соединений)
- Ноутбук или компьютер для программирования и управления
Подключение компонентов. Теперь, когда у нас есть необходимые компоненты, давайте приступим к их подключению, чтобы построить нашу машину-робот:
- Подключите плату Arduino к компьютеру с помощью USB-кабеля.
- Присоедините модуль драйвера двигателя к плате Arduino, соблюдая правильное подключение контактов.
- Подключите четыре двигателя постоянного тока к выходам модуля драйвера двигателя, следуя инструкциям по подключению, характерным для выбранного драйвера двигателя.
- Установите отдельный источник питания для двигателей, подключив его к модулю драйвера двигателя и обеспечив надлежащие значения напряжения и тока.
- Соберите шасси, прикрепите колеса и установите двигатели в предназначенных для них местах.
- Используйте перемычки, чтобы установить необходимые соединения между платой Arduino и модулем драйвера двигателя, обеспечив правильное назначение контактов.
- Дважды проверьте все соединения, чтобы убедиться, что они безопасны и правильно подключены.
Управление двигателями с помощью 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. Приятного вам мастерства и получайте удовольствие от создания собственных роботизированных творений!