Johnny-Five — это среда программирования Интернета вещей и робототехники с открытым исходным кодом, основанная на протоколе Firmata, разработанная сообществом Nodebots. Программы Johnny-Five можно писать для Arduino (все модели), Electric Imp, Beagle Bone, Intel Galileo & Edison, Linino One, Pinoccio, pcDuino3, Raspberry Pi, Particle/Spark Core & Photon, Tessel 2, TI Launchpad и других!
Johnny-Five превратился из страстного проекта в инструмент, вдохновляющий на обучение и творчество для людей всех возрастов, происхождения и со всего мира.
Просто хотите учиться и создавать потрясающие вещи? Возможно, вы захотите начать с официального сайта Johnny-Five.
Если вы хотите найти документацию по API, она находится здесь.
Нужно выяснить, какую платформу использовать для проекта? Мы поместили это сюда.
Вам нужно вдохновение для вашего следующего NodeBot? Посмотрите примеры.
Хотите быть в курсе проектов сообщества? Проверьте это.
Нужны обновления и объявления сообщества NodeBots или проекта Johnny-Five? Это то, что вы ищете.
Johnny-Five не пытается предоставить «все необходимое», а вместо этого фокусируется на предоставлении надежных, проверенных на практике, легко компонуемых API, которые работают согласованно на всех поддерживаемых аппаратных платформах. Johnny-Five хочет стать базовым набором управления для аппаратных проектов, предоставляя вам свободу создавать, развивать и экспериментировать с различными библиотеками JavaScript по вашему выбору. Джонни-Пять комфортно сочетается с:
Популярные библиотеки приложений, такие как Express.js и Socket.io.
Другие аппаратные проекты, такие как ar-drone, Airgel и Spheron.
Игровые контроллеры Bluetooth, такие как XBox Controller и DualShock
Платформы Интернета вещей, такие как Octoblu
...И это лишь малая часть из многих возможностей, которые можно исследовать. Ознакомьтесь с этими захватывающими проектами: node-pulsesensor, Footballbot-workshop-ui, nodebotui, dublin-disco, node-slot-car-bot, сервокалибратор, node-ardx, nodebot-workshop, phone-home, Purple-unicorn, webduino, jumpduino, lasercat-master, simplesense, Five-Redbot, Robotnik, the-Blender
Почему JavaScript? NodeBots: развитие робототехники JavaScript
Вездесущая программа «Hello World» в мире микроконтроллеров и SoC — это «мигание светодиодом». Следующий код демонстрирует, как это делается с помощью платформы Johnny-Five.
const { Board, Led } = require("Джонни-пять");const board = new Board();board.on("ready", () => { // Создаем светодиод на контакте 13 const светодиод = новый светодиод (13); // Мигаем каждые полсекунды светодиод.blink(500);});
Примечание. Узел выйдет из строя, если вы попытаетесь запустить johnny-five в REPL узла, но экземпляры платы создадут свой собственный контекстный REPL. Поместите свой сценарий в файл.
Johnny-Five был протестирован на различных платах, совместимых с Arduino.
Для проектов, не основанных на Arduino, доступен ряд плагинов ввода-вывода для конкретной платформы. Плагины ввода-вывода позволяют коду Johnny-Five взаимодействовать с любым оборудованием, отличным от Arduino, на любом языке, на котором говорит платформа!
Документацию по API Johnny-Five можно найти здесь, а примеры программ — здесь.
Нужна помощь? Задайте вопрос на форуме сообщества NodeBots. Если у вас просто есть небольшой вопрос или вы заинтересованы в текущих обсуждениях дизайна, присоединяйтесь к нам в чате Johnny-Five Gitter.
Пошаговые примеры, включая введение в электронику, можно найти в Руководстве экспериментатора Arduino для NodeJS от @AnnaGerber.
Вот список предварительных условий для Linux, OSX или Windows.
Если вы хотите удаленно управлять своим роботом, ознакомьтесь с руководством по Bluetooth.
Рекомендуемый стартовый комплект: набор изобретателя Sparkfun.
Загрузите Arduino IDE
Подключите Arduino или Arduino-совместимый микроконтроллер через USB.
Откройте Arduino IDE, выберите: Файл > Примеры > Firmata > StandardFirmataPlus.
StandardFirmataPlus доступен в Firmata v2.5.0 или более поздней версии.
Нажмите кнопку «Загрузить».
Если загрузка прошла успешно, плата готова, и вы можете закрыть Arduino IDE.
Для проектов, отличных от Arduino, репозиторий каждого плагина IO предоставит свои собственные инструкции по настройке для конкретной платформы.
git clone git://github.com/rwaldron/johnny-five.git && cd johnny-five установка npm
Установите модуль с помощью:
npm установить Джонни-пять
Чтобы вы могли быстро приступить к работе, мы предоставляем различные примеры использования каждого компонента Johnny-Five. Одна вещь, которая нас особенно радует, — это обширная коллекция диаграмм Фрицинга, которую вы найдете по всему сайту. Огромная часть любого проекта Johnny-Five — это работа с реальным оборудованием, и мы включили его в документацию, потому что поняли, что инструкций по написанию кода для управления сервоприводом недостаточно без инструкций по подключению сервопривода. сервопривод!
Для интерактивной навигации по примерам посетите страницу примеров Johnny-Five на официальном сайте. Если вы хотите напрямую ссылаться на примеры в этом репозитории, вы можете использовать одну из следующих ссылок.
На данный момент существует 362 примера программ с кодом и диаграммами!
Плата — базовая инициализация
Доска – очистка при выходе из события
Доска - Несколько в одной программе
Доска – указание интервала выборки
Плата - Укажите порт
Пользовательские свойства данных
Приколоть
РЕПЛ
ВЕЛ
Светодиод – Мигание
Светодиод — демонстрационная последовательность
Светодиод - затухание
Светодиод — обратный вызов затухания
Светодиод — плавное затухание с анимацией
Светодиод - PCA9685
Светодиод - Импульс
Светодиод - Пульс с анимацией
Светодиод - Слайдер
Светодиод — сервомодуль Tessel
Светодиоды — массив светодиодов.
Светодиоды — управление массивом светодиодов
Светодиод - RGB (общий анод)
Светодиод — RGB (общий анод) PCA9685
Светодиод - интенсивность RGB
Светодиод - Радуга
Светодиод - Радуга BlinkM
Светодиод — цифровые часы
Светодиодные — цифровые часы, два дисплея
Светодиодные цифровые часы, HT16K33
Светодиод — демонстрация рисования символов матрицы
Светодиод — перечисление символов и символов матрицы
Светодиод - Матрица
Светодиод — демонстрация матрицы
Светодиод - Матрица HT16K33
Светодиод - Матрица HT16K33 16х8
Сервопривод
Сервопривод – непрерывный
Сервопривод — привод
Сервопривод – многооборотный
Сервопривод - PCA9685
Сервопривод — подсказка
Сервопривод — управление ползунком
Сервопривод — сервомодуль Tessel
Сервоприводы — массив сервоприводов.
GPS – разработка Adafruit Ultimate GPS
GPS — GPS по умолчанию
GPS — серийный номер оборудования
GPS-Sparkfun GP-20U7
Сервопривод — анимация
Сервопривод — анимация ног
Цвет — EVShield EV3 (Код)
Цвет — EVShield EV3 (Raw)
Цвет — EVShield NXT (Код)
Цвет - ISL29125
Мотор
Мотор - 3-контактный
Двигатель - Adafruit DRV8871 Драйвер двигателя постоянного тока
Мотор-Тормоз
Двигатель – Ток
Мотор - направленный
Мотор — EVShield EV3
Мотор - EVShield NXT
Двигатель — контакт включения
Мотор — GROVE_I2C_MOTOR_DRIVER
Мотор — H-мост
Мотор - ЛУДУС
Мотор - PCA9685
Двигатель - Pololu VNH5019 Двухмоторный драйвер
Двигатель — блок Эдисона Sparkfun с двойным H-мостом
Мотор - Sparkfun TB6612FNG
Мотор - l298 Breakout
Двигатели — двойной H-мост
Степпер - Водитель
Шаговый двигатель — четырехпроводной
Степпер — развертка
ESC — двунаправленный
ESC — ESC, управляемые нажатием клавиши
ЭКУ - PCA9685
Кнопка
Кнопка - Бампер
Кнопка — EVShield EV3
Кнопка — EVShield NXT
Кнопка – Параметры
Кнопка — подтягивание
Кнопки - Коллекция с AT42QT1070
Выключатель
Переключатель - Магнитная дверь
Переключатель наклона SW-200D
Тумблер
Клавиатура — рюкзак I2C Nano 3x4
Клавиатура — рюкзак I2C Nano 4x4
Клавиатура — VKEY
Клавиатура — Waveshare AD
Тачпад — Grove QTouch
Тачпад — MPR121
Тачпад — MPR121, Чувствительность
Тачпад — MPR121QR2_SHIELD
Тачпад — MPR121_KEYPAD
Тачпад — MPR121_SHIELD
Реле
Реле - Коллекция
Реле на аналоговом контакте
Регистр сдвига
Сдвиговый регистр — семисегментный контроллер с общим анодом
Сдвиговый регистр – общий анод, семь сегментов, соединенных в цепочку
Сдвиговый регистр — семисегментный контроллер
Сдвиговый регистр - семь сегментов, цепочка
ИК-движение
ИК-близость
ИК-отражение
ИК-отражательная матрица
Близость
Близость — EVShield EV3 (ИК)
Близость — EVShield EV3 (ИК)
Близость — EVShield EV3 (ультразвуковой)
Близость — EVShield EV3 (ультразвуковой)
Близость - GP2Y0A710K0F
Близость - HC-SR04
Близость — HC-SR04 (аналоговый)
Близость — рюкзак HC-SR04 I2C
Близость - ЛИДАР-Лайт
Близость - MB1000
Близость - MB1003
Близость - MB1010
Близость - MB1230
Близость - SRF10
Движение
Движение — GP2Y0A60SZLF
Движение — GP2Y0D805Z0F
Движение — GP2Y0D810Z0F
Движение — GP2Y0D810Z0F
Джойстик
Джойстик - Эсплора
Джойстик — управление панорамированием и наклоном
Джойстик - Щит Sparkfun
Grove — средство просмотра цветов на ЖК-дисплее RGB
ЖК-дисплей
ЖК-дисплей — перечисление символов
ЖК-I2C
ЖК-дисплей — I2C PCF8574
ЖК-дисплей — бегун I2C
ЖК - бегун 16x2
ЖК - Бегунок 20x4
ЖК - Тессель 2 16x2
Tessel 2 + Grove — средство просмотра цвета на ЖК-дисплее RGB
Tessel 2 + Grove — ЖК-дисплей RGB
Компас - Найти север
Компас — HMC5883L
Компас — HMC6352
Компас - Регистратор
Компас - MAG3110
Компас — MAG3110 на Тессел 2
Компас / Магнитометр
Пьезо
ИМУ - BNO055
ИМУ - BNO055 (ориентация)
ИДУ-LSM303C
ИДУ - MPU6050
Мульти-BME280
Мульти-BMP085
Мульти-БМП180
Мульти - DHT11_I2C_NANO_BACKPACK
Мульти - DHT21_I2C_NANO_BACKPACK
Мульти - DHT22_I2C_NANO_BACKPACK
Мульти - HIH6130
Мульти-HTU21D
Мульти-MPL115A2
Мульти-MPL3115A2
Мульти-MS5611
Мульти - SHT31D
Мульти-SI7020
Мульти-SI7021
Мульти-TH02
Акселерометр
Акселерометр — ADXL335
Акселерометр — ADXL345
Акселерометр — LIS3DH
Акселерометр - MMA7361
Акселерометр - MMA8452
Акселерометр — MPU6050
Акселерометр — панорамирование + наклон
Высотомер - BMP085
Высотомер - БМП180
Высотомер - MPL3115A2
Высотомер - MS5611
Барометр - BMP085
Барометр - БМП180
Барометр - MPL115A2
Барометр - MPL3115A2
Барометр - MS5611
Гироскоп
Гироскоп — аналоговый LPR5150AL
Гироскоп — I2C MPU6050
Гигрометр - DHT11_I2C_NANO_BACKPACK
Гигрометр - DHT21_I2C_NANO_BACKPACK
Гигрометр - DHT22_I2C_NANO_BACKPACK
Гигрометр - HIH6130
Гигрометр - HTU21D
Гигрометр - SHT31D
Гигрометр - SI7021
Гигрометр - TH02
Датчик
Датчик — цифровая микроволновая печь
Датчик – гибкий датчик
Датчик – чувствительный к силе резистор
Датчик-Микрофон
Датчик - Фоторезистор
Датчик-потенциометр
Датчик – ползунковый потенциометр
Термометр - BMP085
Термометр - БМП180
Термометр - DHT11_I2C_NANO_BACKPACK
Термометр - DHT21_I2C_NANO_BACKPACK
Термометр - DHT22_I2C_NANO_BACKPACK
Термометр - DS18B20
Термометр — двойной DS18B20
Термометр - HIH6130
Термометр - HTU21D
Термометр - LM335
Термометр - LM35
Термометр - MAX31850
Термометр — MCP9808
Термометр - MPL115A2
Термометр - MPL3115A2
Термометр - MPU6050
Термометр - MS5611
Термометр - SHT31D
Термометр - SI7020
Термометр - SI7021
Термометр - TH02
Термометр - ТМП102
Термометр - ТМП36
Расширитель - 74HC595
Экспандер — CD74HC4067, 16-канальный разъем аналогового входа
Расширитель - LIS3DH
Расширитель - MCP23008
Расширитель - MCP23017
Расширитель - MUXSHIELD2, Аналоговые датчики
Расширитель — MUXSHIELD2, цифровой ввод и вывод
Расширитель - PCA9685
Расширитель - PCF8574
Расширитель - PCF8575
Расширитель - PCF8591
Фотонный погодный щит: влага
Кнопка — EVShield EV3
Кнопка — EVShield NXT
Цвет — EVShield EV3 (Код)
Цвет — EVShield EV3 (Raw)
Цвет — EVShield NXT (Код)
Свет - BH1750
Свет — EVShield EV3 (окружающий)
Свет — EVShield EV3 (отраженный)
Свет — EVShield NXT (окружающий)
Свет — EVShield NXT (отраженный)
Свет - TSL2561
Мотор — EVShield EV3
Мотор — EVShield NXT
Близость — EVShield EV3 (ИК)
Близость — EVShield EV3 (ультразвуковой)
Intel Edison + Grove — акселерометр (ADXL345)
Intel Edison + Grove — Акселерометр (MMA7660)
Intel Edison + Grove — Датчик качества воздуха
Intel Edison + Grove — Барометр (BMP180)
Intel Edison + Grove — кнопка
Intel Edison + Grove — Компас (HMC588L)
Intel Edison + Grove — Датчик пламени
Intel Edison + Grove — газ (MQ2)
Intel Edison + Grove — влажность и температура (TH02)
Intel Edison + Grove — драйвер двигателя I2C
Intel Edison + Grove — Джойстик
Intel Edison + Grove — светодиодный
Intel Edison + Grove — Датчик освещенности (TSL2561)
Intel Edison + Grove — Датчик влажности
Intel Edison + Grove — Q Touch
Intel Edison + Grove — ЖК-дисплей RGB
Intel Edison + Grove — средство просмотра цветного ЖК-дисплея RGB
Intel Edison + Grove — ЖК-дисплей температуры RGB
Intel Edison + Grove — реле
Intel Edison + Grove — поворотный потенциометр
Intel Edison + Grove — сервопривод
Intel Edison + Grove — сенсорный
Роща — Кнопка
Роща — Джойстик
Роща - LED
Grove — двигатель (драйвер I2C)
Гроув — ЖК-дисплей RGB
Grove – ЖК-дисплей температуры RGB
Grove — Поворотный потенциометр
Роща — Сервопривод
Роща – Прикосновение
Micro Magician V2 - Акселерометр
Микро Маг V2 - Мотор
Микро Маг V2 — Сервопривод
TinkerKit — Акселерометр
TinkerKit — Блинк
TinkerKit — Кнопка
TinkerKit — Комбо
TinkerKit — непрерывный сервопривод
TinkerKit — гироскоп
TinkerKit — Джойстик
TinkerKit — Линейный потенциометр
TinkerKit — Поворотный потенциометр
TinkerKit — Температура
TinkerKit — Наклон
TinkerKit — сенсорный
Классический контроллер Wii
Wii Нунчак
Ошибка
Контроллер роботизированной руки Kinect
Лазерный провод
Следователь линии
Двуногий придурок Lynxmotion
Мотобот
Навигатор
Нодебот
Феникс Шестиногий
Радар
Роботизированный коготь
Усы
Пример плагина
Светодиодное мигание на электрическом бесе
Светодиод мигает на плате Intel Edison Arduino
Светодиод мигает на плате Intel Edison Mini
Светодиодное мигание на Intel Galileo Gen 2
Led Blink на Raspberry Pi
Светодиодное мерцание на Spark Core
Светодиодное мигание на pcDuino3
Все материалы должны соответствовать Руководству по стилю Idiomatic.js, сохраняя существующий стиль кодирования. Добавьте модульные тесты для любых новых или измененных функций. Скомментируйте и протестируйте свой код, используя grunt.
Авторские права (c) 2012, 2013, 2014 г. Рик Уолдрон [email protected] Лицензия MIT. Авторские права (c) 2014, 2015 The Johnny-Five Contributors, лицензированные по лицензии MIT.