Современная электроника №9/2018

ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 40 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 9 2018 Например, для перезагрузки отладоч- ной платы нужно ввести в поле консо- ли команду reset(); . После перезагруз- ки в консоли отобразится информация о плате с указанием версии её прошив- ки. При необходимости можно обно- вить прошивку до последней версии (см. далее). Программа может отображаться и редактироваться как в текстовом виде, так и в виде программных блоков. Пере- ключение между этими режимами осу- ществляется с помощью программной кнопки </>. В консоли можно работать с подклю- чённой платой в диалоговом режиме: делать арифметические вычисления, вызывать функции, просматривать значения переменных и т.д. Напри- мер, если ввести в консоль 3+(8–7)*3/6 и нажать Enter , то отладочная плата выполнит команду и вернёт резуль- тат 3.5 . В консольном режиме можно использовать переменные: >var x = 3 =3 >var y = 4 =4 >x * x + y * y + 5 =30 Переменные могут хранить не толь- ко числа, но и строки, логические зна- чения, функции и составные объекты. Интерпретатор JavaScript позволяет работать с пользовательскими и встро- енными функциями. Например, вызов функции >getTime() вернёт числовой результат времени в секундах, прошед- ших с момента включения платы. В диалоговом режиме допускается управление элементами платыи опрос их состояния. Например, с помощью команды >LED1.write(1) подаётся пита- ние на светодиод LED1, а посредством команды >LED1.write(0) питание свето- диода LED1 отключается. Опрос состоя- ния кнопки можно выполнить с помо- щьюкоманды >BTN1.read() . Если кноп- ка нажата, в ответ отобразится =true , в противном случае выведется =false . П РИМЕРЫ ПРОГРАММ Рассмотрим пример программы, результатом работы которой будет мигание светодиода LED1 на плате (см. листинг 1). Данную программу можно сохранить на компьютере в виде файла с произ- вольным именем и расширением js , например blink.js . После загрузки про- граммы в отладочную плату Iskra JS на плате начнёт мигать светодиод LED1 с периодичностью 500 мс. Следующий пример – программа lamp.js с использованием библиотек «Амперки» – приведён в листинге 2 и предназначен для управления светоди- одом, подключённым к выводу P1 отла- дочной платы. В первой строке про- граммы с помощью функции require создаётся объект led для светодиода, под- ключаемого к выводу P1. Во второй стро- ке программы вызывается метод blink объекта led , который заставляет свето- диод светиться в течение 0,1 с, а затем гаснуть на 0,9 с в циклическом режиме. На сайте производителя приведе- но множество других примеров про- Библиотечные функции JavaScript для платы Iskra JS Вызов Результат Случайные числа Инициализация: var random = require(‘@amperka/hw-random’) random.int(1, 6) целое случайное число от 1 до 6 Встроенные функции Инициализация: не требуется console.log(‘Hello!’) Вывести «Hello!» setInterval(function() { … }, 350) Вызывать функцию каждые 350 мс setTimeout(function() { … }, 350) Вызвать функцию через 350 мс (3.1415926).toFixed(3) Округлить до 3 знаков после запятой: 3,142 getTime() Получить время в секундах с момента старта или перезагрузки Светодиод Инициализация: var led = require(‘@amperka/led’).connect(P1) led.turnOn() Включить led.turnOff() Выключить led.toggle() Если выключен – включить, если включён – выключить led.blink(0.2, 0.8) Мигать: 0,2 с включён, 0,8 с выключен led.blink(0.2) Мигнуть 1 раз в течение 0,2 с led.brightness(0.42) Установить яркость 42% Кнопка Инициализация: var button = require(‘@amperka/button’).connect(P3) button.on (‘press’, function() { … }) Вызвать функцию при нажатии button.on (‘release’, function() { … }) Вызвать функцию при отжатии button.on (‘click’, function() { … }) Вызвать функцию при коротком клике button.on (‘hold’, function() { … }) Вызвать функцию при длительном нажатии Зуммер Инициализация: var buzzer = require(‘@amperka/buzzer’).connect(P5) buzzer.turnOn() Включить buzzer.turnOff() Выключить buzzer.toggle() Если выключен – включить, если включён – выключить buzzer.beep(0.2, 0.8) Прерывисто звучать: 0,2 с звучать, 0,8 с не звучать buzzer.beep(0.2) Звучать 1 раз в течение 0,2 с buzzer.frequency(1234) Звучать на частоте 1234 Гц Потенциометр Инициализация: var pot = require(‘@amperka/pot’).connect(A0) pot.read() Считать значение от 0,0 до 1,0 Сенсор освещённости Инициализация: var sensor = require(‘@amperka/light-sensor’).connect(A2) sensor.read(‘lx’) Считать значение в лк Сервопривод Инициализация: var servo = require(‘@amperka/servo’).connect(P13) servo.write(42) Повернуть в положение 42° Термометр Инициализация: var thermometer = require(‘@amperka/thermometer’).connect(A4) thermometer.read(‘C’) Считать значение в °C Ультразвуковой дальномер Инициализация: var sonic = require(‘@amperka/ultrasonic’).connect({trigPin: P10, echoPin: P11}) sonic.ping(function(error, distance) { … }, ‘cm’) Измерить значение в см и вызвать функцию ИК-приёмник Инициализация: var ir = require(‘@amperka/ir-receiver’).connect(P7) ir.on (‘receive’, function(code, repeat) { … }) Вызвать функцию при нажатии кнопки на ИК-пульте Эмуляция клавиатуры Инициализация: var kb = require(‘@amperka/usb-keyboard’) kb.tap(kb.KEY.SPACE) Нажать «Пробел» kb.tap([kb.MODIFY.ALT, kb.KEY.SPACE]) Нажать Alt + «Пробел» kb.type(‘Hello World!’) Набрать «Hello World!» грамм для работы с Iskra JS и перифе- рийными платами, например из набора «Йодо» [10]. Среди доступных примеров можно найти такие проекты, как теле- Листинг 1 var on = false; setInterval(function() { on = !on; LED1.write(on); }, 500); Листинг 2 var led = require('@amperka/ led').connect(P1); led.blink(0.1, 0.9);

RkJQdWJsaXNoZXIy MTQ4NjUy