Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Основная статья: Роботы

Сам себе инженер: домашняя автоматика и роботы на JavaScript

Собирайте умные вещи и радиоуправляемые игрушки с подключением к домашней сети Wi-Fi, исследуйте мир летающими и подводными зондами, дайте развернуться вашей инженерной мысли!

На базе Arduino, Espruino и их аналогов можно создавать технику без инженерного образования и навыков низкоуровневого программирования. Для работы с Espruino и Tessel даже С/С++ знать не обязательно — весь код вы пишете на JavaScript. Сегодня мы расскажем об Arduino-подобных платах с поддержкой JS и о том, что можно делать с их помощью.

Что такое Arduino, Espruino и аналоги?

Это платформы для создания умных вещей и роботов в домашних условиях. У платформ есть:  

Аппаратная часть  — плата с микропроцессором, к которой можно подключать внешние модули: датчики, дисплеи, электродвигатели, адаптеры Bluetooth, WiFi и Ethernet и др.

Программная часть:

  • прошивка — движок платформы, который позволяет запускать JS на микропроцессоре;

  • среда разработки (IDE), где мы пишем код и откуда загружаем его на плату;

  • стандартная библиотека, которая обеспечивает базовый функционал: работу с интерфейсами, светодиодами, таймерами, форматами данных (типа JSON) и т.д.

Среда разработки может быть веб-приложением, мобильным или десктопным оффлайн-приложением. Бывают ещё программы-эмуляторы, которые позволяют тестировать код на компьютере, когда платы нет под рукой.

А ещё у производителей наготове наборы-конструкторы: плата + функциональные модули и заготовки кода под конкретные задачи.

Принципиальная особенность uino-платформ в том, что вы не только делаете что-то по рецепту, но и создаёте новые устройства для своих задач.

15 идей для проектов на базе Arduino, Espruino и Iskra JS

Если вы раньше не инженерили, первая мысль: «Что с этим делать?» Это может на мгновение ввести в ступор. Но стоит посмотреть на чужие проекты, обзоры плат и модулей  — тут же возникает громадьё идей и планов.

Вот подборка проектов, которые могут разжечь ваше воображение  — со ссылками на примеры или описание реализации:

  1. Вентилятор или светильник, который автоматически реагирует на изменение температуры в комнате или на открытие двери.

  2. Перчатка-манипулятор — пульт дистанционного управления для техники и игр.

  3. Игрушки, управляемые по Bluetooth с планшета или мобильного устройства, в том числе голосом.

  4. Металлоискатель или дозиметр.

  5. Сигнализация (в том числе для холодильника) или кодовый замок.

  6. Динамическая задняя подсветка для ЖК-телевизора или монитора.

  7. Система управления умным домом: открытие/закрытие жалюзи, управляемая с телефона дверная задвижка и др.

  8. Робот-сортировщик предметов по цвету.

  9. Автополив для дачных грядок.

  10. Мусорное ведро с фотоэлементом.

  11. Светильник с тачскрином для управления оттенком освещения.

  12. Погодный информатор с детализацией по городам мира.

  13. Портативные устройства на солнечной батарее, например, метеостанция с Wi-Fi.

  14. Система сбора данных о чём угодно: о погоде, статистике вашего сайта, группы в соцсети или youtube-канала.

  15. Интерактивный кофейный столик с реакцией на прикосновения или с тетрисом.

Arduino и JS — это совместимо?

Если у вас есть плата Arduino, но вы хотите писать код на JS, выход есть. Фреймворки типа Johnny-Five позволяют исполнять JavaScript на Arduino и других платформах:  Raspberry Pi, Tessel 2, pcDuino, Linio One, BeagleBone, BlendMicro, Particle Photon, Intel Galileo и других.

«Костыль!» — скажет кто-то. Отчасти да. Но для маленьких проектов и прототипирования это может быть удобно.

Почему JavaScript

Опытные программисты микроконтроллеров скажут, что C/С++ быстрее и ближе к «железу». Да, это мощные, но сложные и не самые лаконичные языки. Если вы их уже знаете — отлично. Но не всем они нужны, особенно в начале. Пусть выполнение JS-кода займёт на 10-15 миллисекунд дольше — для любительского проекта это не критично. Новичку важнее получать быстрые результаты и читать интуитивно понятный код.

Основные преимущества JS:

  1. Этот язык востребован: за последние 5 лет он —  самый популярный ЯП на StackOverflow. В рейтинге TIOBE за апрель 2018 JavaScript   — восьмой по популярности.

  2. Это один из самых простых в изучении языков, в отличие от С/C++.

  3. JS ускоряет разработку: с ним код бывает в 4 раза короче, чем на Arduino (Си)  — можно быстро реализовывать и тестировать новые задумки. Краткий и понятный синтаксис упрощает знакомство с чужими наработками и их переделку под ваши задачи.

  4. JS универсален: полезен и веб-разработчику, и игроделу, и тому, кто занимается интернетом вещей. Если вам интересно хотя бы одно из этих направлений, программирование автоматики на JS даст дополнительную практику.

  5. У JavaScript есть ясные перспективы развития, в том числе благодаря фреймворкам Node.js и Vue.js. Противостояние адептов AngularJS и React — один из увлекательных эпизодов истории языка, и сколько еще таких эпизодов нас ждёт! Пока web-разработка на подъёме, знание JS будет приносить доход.

Если вы недавно увлеклись робототехникой и ещё толком не умеете программировать, JavaScript — добрый помощник.

Бонусы JS-платформ

Большинство плат Arduino по умолчанию работают с урезанной версией C++, которую мало где применишь. Платформы Espruino и Iskra JS работают со стандартным JS, так что синтаксис и изученные приёмы можно использовать в других направлениях разработки.

Ещё один плюс Espruino и JS — автоматическое подключение библиотек. Сторонние С-библиотеки нужно компилировать и подключать вручную, что отнимает время. На платформе Espruino и Iskra JS библиотеки подхватываются по команде require в коде. Указываете имя библиотеки, и при запуске программы начинается её поиск: сначала на локальном устройстве, затем в интернет-репозиториях, в т.ч. на GitHub.

Консоль в  Espruino IDE позволяет отлаживать код в интерактивном режиме: вы видите результат выполнения программы и можете тут же вводить команды и экспериментировать.

Hello, LED! Простейший код для Espruino

Вместо "Hello, World" для Arduino-совместимых устройств первым пишут программу мигания светодиодом. Примерно такую:

// Светодиод мигает с интервалом полсекунды (500 мс)

const LED = 2; //номер ввода (пина) для обращения к компоненту платы

var on = false;

setInterval(function() { // Задаём интервал мигания

   on = !on;

   digitalWrite(LED, on);

}, 500);

Выбор платформы и платы

Платы различаются по форм-фактору, числу пинов (интерфейсов для встроенных и периферийных устройств), входному напряжению и, в итоге,  — по функционалу.

Espruino

Это полностью открытая (open source) платформа: на её базе можно создавать новые платы, прошивки, средства разработки. По назначению она схожа с Arduino, но не совместима с последней технически. Нельзя комбинировать модули двух платформ или писать код для Espruino в Arduino IDE. Программы на JS вы пишете в среде Espruino IDE, которая доступна как:

В  Espruino IDE встроена консоль, где можно отлаживать код в интерактивном режиме. Вы видите результат выполнения программы, можете тут же вводить команды и экспериментировать.

Espruino поддерживает фреймворки Node.js и Electron. Первый позволяет использовать JavaScript на стороне сервера, второй  — создавать нативные приложения на JS.
Варианты плат:

  • Оригинальная Espruino — универсальна по функционалу плата размером меньше кредитки (54 мм x 41 мм). Изначально работает как проводное устройство, но вы можете добавить модули Wi-Fi и Bluetooth. По умолчанию на плате есть разъём MicroUSB, слот для SD-карт и 44 пина.

 

  • Espruino Pico — мини-плата (33 мм x 15 мм), похожая на USB-флешку. Её можно воткнуть в компьютер напрямую, удобно носить с собой, встраивать в корпуса разной формы. На её основе удобно делать измерительные приборы. Примеры проектов  — здесь.

 

  • Espruino WiFi — плата с быстрым доступом в интернет и беспроводную сеть. Позволяет быстро запустить свой веб-сервис, собрать и обработать данные из интернета и/или наоборот  — отправлять данные исследований на сервер.

 

  • Puck.js  — плата-таблетка в пластиковом корпусе, которая позволяет создавать миниатюрные беспроводные устройства с низким энергопотреблением. Например, можно сделать в автосалоне кнопку для перехода к следующей записи в плейлисте телефона. Вы пролистываете музыку, не отрывая взгляда от дороги.

 

  • Iskra JS от российской компании «Амперка»  — логическое развитие оригинальной Espruino c дополнительными плюшками, о которых стоит рассказать подробнее.

Iskra JS

Плата на ядре Espruino и в форм-факторе Arduino. Вы можете использовать комплектующие Arduino и управлять полученной системой с помощью JavaScript!  Средой разработки служит уже знакомая Espruino WEB IDE. Плюс Iskra JS имеет собственные модули и платы расширения. Энтузиаст, которому понравилась одна платформа, рано или поздно захочет попробовать другую, и возможность комбинировать модули будет очень кстати.

Когда платы нет под рукой, вы можете тестировать код в онлайн-эмуляторе Iskra JS.

Подключить больше модулей поможет плата расширения, такая как Troyka Shield. Она позволяет перестановкой джампера выбирать напряжение на одной из линий питания, причем напряжение управляющей платы не важно.Вы можете  комбинировать пятивольтовые модули с трёхвольтовыми платами Arduino (Due, M0).

Tessel 2  

Плата работает с JavaScript, поддерживает фреймворк Node.js и менеджер пакетов NPM, из коробки обеспечивает работу с HTTP и web-сервером, отправку сообщений в Twitter, цветное освещение. Имеет два USB-порта для подключения внешних модулей, таких как:

  • камера,

  • средства воспроизведения звука,

  • модуль сотовой связи (GSM),

  • модуль Bluetooth LE,

  • слот MicroSD.

Ещё целый арсенал модулей можно цеплять к свободным пинам на плате.

Arduino

Все варианты плат Arduino рассматривать сейчас не будем  — всё же они заточены под C++. Скажем только о нескольких интересных и компактных решениях, которые дружат с Python, а через Johnny-Five ладят и с JS.

Arduino Yún  — плата для тех, кто увлечён интернетом вещей. Может получать доступ к Google-почте, Twitter, Facebook, Dropbox и ещё сотне популярных веб-сервисов через библиотеку Temboo. Управляемый через Yún умный дом может связаться с вами, где бы вы ни находились.

Arduino Tian — плата на базе Arduino Yun, но более производительная, с Wi-Fi, Bluetooth, Ethernet-модулями и ОС Linux на борту. Поддерживает Node.js, чтобы вы могли писать на JS и front-end и back-end. Позволяет быстро развернуть сервер для видеотрансляций или оригинальный веб-сервис для дома.

Мозги  — решают!

Какую бы платформу вы ни выбрали, поведение устройства будет зависеть от кода, который вы напишете. И здесь для программиста начинается самое увлекательное творчество. Ведь один и один и тот же механизм будет лучше или хуже справляться с задачами  — в зависимости от качества вашего кода. Попробуйте! Дайте машине мозги и почувствуйте себя Великим Гудвином! :)


25 май 18, 19:48
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Роботы будущего, которые уже среди нас

Начало года традиционно урожайно на всевозможные технологические новинки и анонсы. Одним из ярких событий стал проект фонда X Prize Foundation. Компания инвестировала 10 миллионов долларов в разработку «аватаров» - роботов, способных при помощи технологии VR в точности повторять действия человека. Если дело выгорит (а дедлайн запланирован уже на 2021 год) – это даст мощный импульс для развития виртуальной реальности и человекоподобных киборгов. Исследования, войны, инженерные операции больше не потребуют непосредственного участия человека – всё можно будет провести удалённо, не жертвуя временем и здоровьем.

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

ASIMO

Один из древнейших человекоподобных роботов впервые появился на публике ещё в 2000 году. Именно этот робот впервые пожал руку человеку, сыграл в футбол и поднялся по лестнице. Последняя версия может двигаться со скоростью 7 км/ч, распознавать лица, речь и даже предсказывать дальнейшие действия человека. На сегодняшний день это, пожалуй, не самый совершенный робот, но именно он впервые открыл человечеству неизбежную правду – скоро всех нас заменят.

Pepper

Японский робот, который сделал ставку не на механику, а на эмоции. «Перчик» способен распознавать радость, грусть, злость и ещё с десяток эмоций, а также может проявлять их в ответ. Для такого чуда стоимость символическая – всего 150 000 йен (около 1000 фунтов стерлингов) при покупке и ещё по 18 000 ежемесячно за обслуживание. Неудивительно, что первую партию из 1000 штук распродали за минуту.

LS3 BigDog

Один их первых роботов, заставивший человечество броситься на свою защиту во имя гуманизма. Это детище Boston Dynamics, как и Spot, напоминает что-то среднее между собакой и мулом. Робот способен перемещаться по пересечённой местности на расстояние до 20 миль и нести на себе до 180 кг веса. Вещь невероятно полезная и для армейских операций, и для мирных задач.

Promobot

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

Sophia

Первый робот-гуманоид, официально получивший гражданство (София стала подданной Саудовской Аравии). На сегодняшний день именно он является наиболее близким к человеку механизмом. София умеет имитировать 62 эмоции, свободно владеет несколькими десятками языков, жестами, способна поддержать разговор на любую тему с любым человеком. И да, теперь она умеет ходить.

Роботы-насекомые

В данной категории мы упомянем сразу двух роботов. Один из них (водомерка) был создан в сотрудничестве Сеульского Национального Университета и Гарварда, второй (таракан) обязан своим рождением лаборатории Беркли. Оба пока не несут какой-то смысловой нагрузки, кроме желания учёных повторить достаточно сложную механику движения насекомых в скромных габаритах.

Z-machine

Есть роботы трёх видов:

  • помогают людям и автоматизируют какие-то функции;
  • имитируют движения людей и животных;
  • занимаются ерундой.

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

Kuratas

Рейтинг роботов был бы не полным, если бы здесь не оказалось хотя бы одной боевой единицы. Самый известный представитель – японский робот Kuratas. Он способен эффективно сражаться «вручную», выдерживает попадания пистолетных пуль, а сам при этом может производить 6000 выстрелов в минуту. Главными конкурентами считаются американские «братья» Megabots, однако очные поединки они пока проигрывают.

RoboHon

Смартфон в теле робота. Не обладает уникальными функциями, способен выполнять стандартный набор функций: звонить, реагировать на голосовые команды, ездить и проецировать изображение. Однако именно в простоте (и небольшой цене – 1800 долларов) лежит секрет его успеха. Пока он продаётся только на территории Японии, но в перспективе планируется захват мира.

Nao

Как и ASIMO, наверное один из самых узнаваемых роботов в мире. Из-за малых габаритов умеет он совсем немного, но уже успел поиграть в футбол и даже устроиться на работу в японский банк. Там он помогает посетителям, предоставляя справки, а также провожая до заданного места.

О каких роботах будущего знаете вы?


28 мар 18, 17:56
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Показаны все темы: 2

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru