• Нельзя просто взять и спросить клиентов, что им нужно: пока вы это сделаете, они будут хотеть уже что-то новое.

Класс EV3 Sensor (Датчик)

http://smallbasic.com/smallbasic.com/img/object_32.pngSensor

Класс Sensor (Датчик) обеспечивает работу с датчиками, подключенными к блоку EV3. Чтобы указать датчик подключенный к основному блоку, используются номера портов 1 — 4, для указания портов на первом в цепочке подключенных по USB кабелю дополнительном блоке используются номера портов 5 — 8, на втором — 9 — 12, и т.п.

Методы класса Sensor:

http://smallbasic.com/smallbasic.com/img/method_16.pngGetName

Sensor.GetName(port)

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

port — Номер порта датчика

Возвращает: Имя текущего режима работы датчика (например «TOUCH»)

http://smallbasic.com/smallbasic.com/img/method_16.pngGetType

Sensor.GetType(port)

Получает числовой идентификатор типа датчика, подключенного к указанному порту. Эта команда предназначена прежде всего для диагностики системы.

port — Номер порта датчика

Возвращает: Числовой идентификатор типа датчика (например 16 — для датчика нажатия)

http://smallbasic.com/smallbasic.com/img/method_16.pngGetMode

Sensor.GetMode(port)

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

port — Номер порта датчика

Возвращает: Числовой идентификатор текущего режима работы датчика (0 для режима по умолчанию)

http://smallbasic.com/smallbasic.com/img/method_16.pngSetMode

Sensor.SetMode(port, mode)

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

  • 0 — отраженный свет
  • 1 — внешняя освещенность
  • 2 — цвет

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

port — Номер порта датчика

mode — Числовой идентификатор нового режима работы датчика из перечня разрешенных для данного типа датчика

http://smallbasic.com/smallbasic.com/img/method_16.pngIsBusy

Sensor.IsBusy(port)

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

port — Номер порта датчика

Возращает: «True» если датчик занят (недоступен), иначе — «False».

http://smallbasic.com/smallbasic.com/img/method_16.pngWait

Sensor.Wait(port)

Ждёт, пока датчик не переключится в новый режим или не инициализируется. Обычно использовать эту команду не нужно, так как метод SetMode() не возвращает управление программе до тех пор, пока не завершится переключение режима датчика. Однако, если в программе используются параллельные задачи (многопоточный режим), без этой команды не обойтись, так как при смене режима в одном  из потоков, другие продолжат выполняться, и для них датчик может стать на время недоступным.

port — Номер порта датчика

http://smallbasic.com/smallbasic.com/img/method_16.pngReadPercent

Sensor.ReadPercent(port)

Получает текущие показания датчика в процентах (0 — 100). Большинство датчиков, которые считывают данные в большом диапазоне значений, могут вывести свои показания в процентах, например у датчика нажатия: 0 — не нажат, 100 — нажат, или у датчика освещенности: 0 — максимально темно (для датчика), 100 — максимально светло.

port — Номер порта датчика

Возвращает: Текущие показания датчика в процентах.

http://smallbasic.com/smallbasic.com/img/method_16.pngReadRaw

Sensor.ReadRaw(port, number)

Читает текущие показания датчика в виде «сырых» данных (без перевода в проценты). В некоторых режимах показания датчиков не могут быть переведены в проценты, например значения цвета, в этом случае и используется метод ReadRaw().

port — Номер порта датчика

number — Размер возвращаемого массива с показаниями

Возвращает: Массив показаний датчика с заданным числом элементов. Массив начинается с 0 элемента. Элементы, в которых данные не получены, будут равны 0.

http://smallbasic.com/smallbasic.com/img/method_16.pngReadRawValue

Sensor.ReadRawValue(port, ind)

Читает одно текущее показание датчика в виде «сырых» данных (без перевода в проценты). В отличие от ReadRaw(), возвращает только одно выбранное показание датчика из массива. Например, для работы с цветосветовым датчиком в режиме определения цвета, подключенным к 3 порту, можно использовать вызов метода в виде Sensor.ReadRawValue(3, 0).

port — Номер порта датчика

ind — Индекс элемента массива с показаниями датчика (начиная с 0).

Возвращает: Одно значение из массива данных полученное с датчика в «сыром» виде.

http://smallbasic.com/smallbasic.com/img/method_16.pngCommunicateI2C

Sensor.CommunicateI2C(port, addr, nwbytes, nrbytes, array)

Обеспечивает взаимодействие с устройством, работающим по протоколу I2C, подключенным к одному из портов датчиков. Метод может посылать или принимать несколько байт по шине I2C. С помощью этого метода можно работать с датчиками сторонних производителей, использующих протокол обмена данными I2C или, например, с устройствами на базе Arduino. Обратите внимание, что метод работает только в пределах одного блока EV3 и только с подчиненными (Slave) I2C устройствами.

port — Номер порта датчика

addr — Адрес подчиненного устройства, подключенного к шине I2C (0 — 127)

nwbytes — Количество байт для отправки на I2C-устройство (максимум 31).

nrbytes — Количество байт для приема с I2C-устройства (1 -32).

array — массив, содержащий байты для отправки (индекс первого элемента — 0)

Возвращает: Массив, содержащий запрошенное количество принятых байт с I2C-устройства (индекс первого элемента — 0)

http://smallbasic.com/smallbasic.com/img/method_16.pngSendUARTData

Sensor.SendUARTData(port, nwbytes, array)

Посылает данные по протоколу UART устройству, подключенному к порту датчика. Функция полезна для общения с самодельными датчиками и исполнительными устройствами.

port — Номер порта датчика

nwbytes — Количество байт для отправки на устройство (максимум 32).

array — массив, содержащий байты для отправки (индекс первого элемента — 0)


Поделиться: