Как управлять вашим Arduino с помощью JavaScript

Платы Arduino — один из самых простых способов взломать аппаратные средства для программистов. Есть огромное множество начинающих проектов

там, чтобы удовлетворить почти любого с опытом программирования. Тем не менее, начинание может показаться пугающим для тех, кто не хватает времени.

Изучение совершенно нового языка

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

Мы уже показали вам, как управлять платой Arduino с помощью Python

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

,

Список оборудования

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

  • Arduino Uno (или совместимая плата

    ): 22 доллара в официальном магазине, хотя вы можете получить их дешевле

    , доски клонов доступны всего за $ 3,20 на AliExpress.

  • Сервопривод для хобби: Подойдет любой сервопривод, совместимый с Arduino, из магазина хобби, я использую сервопривод стоимостью $ 1.60 от AliExpress.
  • Пара кусочков провода
  • USB-кабель: для подключения Arduino к вашему компьютеру

как управлять Arduino с помощью JavaScript

В сегодняшнем уроке будет использоваться доска Arduino Uno. Платформа Johnny-Five, которую мы будем использовать позже в этом проекте, поддерживает большинство Arduino-совместимых микроконтроллеров, хотя на вашей плате должна быть предусмотрена возможность ШИМ, чтобы поддерживать работу сервопривода.

Настройка схемы

Прикрепите ваш сервопривод к вашему Arduino следующим образом:

как управлять Arduino с помощью JavaScript

Короче, линия VCC (RED) подключается к 5v выводу Arduino, линии GND (ЧЕРНЫЙ или же BROWN) подключается к выводу GND Arduino и линии Pulse (желтый или же оранжевый) подключите к контакту 10 Arduino. Обратите внимание, что хотя вам не нужно специально подключать его к выводу 10, он должен подключаться к выводу ШИМ, обычно обозначаемому как ~.

Дважды проверьте, что вы не перепутали провода, и подключите Arduino к вашему компьютеру. Мы будем использовать Windows 10 для этого проекта. Все элементы этого проекта также доступны для Mac и Linux, хотя некоторые инструкции по установке могут немного отличаться.

Если вы еще этого не сделали, загрузите Arduino IDE и выберите свой доска а также порт от инструменты меню. Если вы делаете это в первый раз, и все это немного загадка, наше руководство для начинающих Arduino

может помочь вам через эти шаги.

как управлять Arduino с помощью JavaScript

Как только вы подключите его, загрузите StandardFirmataPlus пример наброска к доске. Вы можете найти этот эскиз в файл меню под Примеры> Фирма> СтандартФирматаПлюс. Вам вообще не нужно изменять эскиз, он просто настраивает Arduino для ожидания внешних инструкций, которые мы предоставим позже.

JavaScript Robotics с Johnny-Five

Платформа, которую мы будем использовать для управления нашим Arduino с помощью Javascript, называется Johnny-Five. Неудивительно, что, учитывая название фильма, проект ориентирован на работу с робототехникой.

как управлять Arduino с помощью JavaScriptИзображение предоставлено: johnny-five.io

Чтобы установить Johnny-Five, мы должны сначала установить Node.js

, Вы можете скачать их последнюю сборку с сайта Node.js. Мы используем рекомендуемую версию, которая на момент написания 8.9.4 LTS.

Открой .MSI файл и следуйте инструкциям по установке, убедившись, что он будет добавлен в ваш ДОРОЖКА. Текущий установщик Node.js добавляет PATH как стандарт, хотя стоит проверить это во время установки, поскольку это требуется для нашего следующего шага.

как управлять Arduino с помощью JavaScript

После завершения установки у нас будет доступ к Node Package Manager (NPM) менеджер пакетов из командной строки Windows (CMD). Нажмите Начните и введите CMD. Прежде чем мы продолжим, нам нужно инициализировать NPM, чтобы предотвратить возможные ошибки установки. Не требует специальных знаний, просто введите:

npm init

Следуйте инструкциям на экране. Для сегодняшнего проекта вам не нужно ничего менять, просто нажимайте ввод, пока не вернетесь в командную строку, затем введите:

npm install johnny-five

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

Установите его, введя:

npm install keypress

После того, как все эти пакеты установлены, мы готовы написать код!

Если вы столкнулись с какими-либо проблемами во время установки, попробуйте снова запустить установку johnny-5 после установки с помощью нажатия клавиши. Это может быть просто причудой версии NPM, используемой здесь, но выполнение этого сейчас предотвращает проблему, с которой вы, вероятно, столкнетесь позже, как я.

Код

Сегодня мы будем использовать фрагмент кода, приведенный в документации johnny-5, который позволяет управлять нашим сервоприводом с помощью клавиш со стрелками на клавиатуре. Полный код доступен по адресу johnny-five.io, но мы подробно рассмотрим его здесь, чтобы полностью понять, как он работает.

Мы используем Eclipse IDE

для кодирования сегодня, хотя вы можете использовать любую IDE или текстовый редактор

для этого проекта.

Создайте новый файл и назовите его test.js, и сохраните его там, где вы сможете легко получить доступ из командной строки позже. Сценарий начинается с создания переменных для необходимых библиотек и инициализации Нажатие клавиши библиотека для прослушивания входящих данных, а также вызова Совет () способ настроить доску.

var five = require("johnny-five");
var keypress = require("keypress");
keypress(process.stdin);
var board = new five.Board();

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

Далее мы хотим «разбудить» нашу плату и настроить ее для сервоуправления. board.on call ждет, пока контакты Arduino не будут готовы, прежде чем двигаться дальше. Библиотека Джонни-пять имеет встроенную поддержку сервоприводов, и мы звоним Servo.Continuous (10) на контакте 10, чтобы позволить прямое управление.

board.on("ready", function() {
console.log("Use Up and Down arrows for CW and CCW respectively. Space to stop.");
var servo = new five.Servo.Continuous(10);
process.stdin.resume();
process.stdin.setEncoding("utf8");
process.stdin.setRawMode(true);

process.stdin вызовы гарантируют, что все данные, которые мы получим с клавиатуры, будут использованы в следующем блоке кода. Теперь мы хотим «прослушать» нажатия клавиш и использовать их для перемещения нашего сервопривода по часовой стрелке (CW), против часовой стрелки (CCW) или для остановки на его дорожках.

  process.stdin.on("keypress", function(ch, key) {
if (!key) { // if no key is pressed, return i.e do nothing.
return;
}
if (key.name === "q") {
console.log("Quitting");
process.exit();
} else if (key.name === "up") {
console.log("CW");
servo.cw();
} else if (key.name === "down") {
console.log("CCW");
servo.ccw();
} else if (key.name === "space") {
console.log("Stopping");
servo.stop();
}
});
});

Убедитесь, что вы включили все закрывающие скобки внизу здесь, и ссылаетесь на весь блок кода, как указано выше, если вы получаете какие-либо ошибки. Сохраните этот скрипт и откройте командную строку.

Размахивая Привет!

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

node test.js

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

как управлять Arduino с помощью JavaScript

И все хорошо, сервопривод должен танцевать под ваши нажатия клавиш! Посмотри на эту маленькую волну зверюшек!

как управлять Arduino с помощью JavaScript

Скромное начало

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

Опытные пользователи JavaScript должны найти пакет Johnny-Five интуитивно понятным для работы. Библиотека также устанавливается на Raspberry Pi изначально, что делает ее идеальным пакетом для начинающих разработчиков роботов.

Отличительной особенностью этой библиотеки является то, что, хотя она спроектирована с учетом потребностей роботов, одни и те же входные и выходные данные могут использоваться для создания «умных» домашних настроек.

и даже самодельные системы безопасности

,

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

Ссылка на основную публикацию
Adblock
detector