В этом примере показано, как восстановить заводские настройки индикатора BlinkM RGB путем взаимодействия с ним по шине I2C.
Для начала создайте объект I2C. В данном примере используется светодиодный индикатор BlinkM RGB с индексом платы 0 и адресом (шестнадцатеричный) 9h. Для подключения компьютера к шине I2C используется адаптер USB-I2C фирмы Aardvark. При создании I2C объекта это переводится в:
BoardIndex = 0
RemoteAddress = 9-й
Vendor = Аардварк.
blinkM = i2c('aardvark',0,hex2dec('09'))
I2C Object : I2C-0-9h
Communication Settings
BoardIndex 0
BoardSerial 2237481561
BitRate: 100
RemoteAddress: 9h
Vendor: aardvark
Communication State
Status: closed
RecordStatus: off
Read/Write State
TransferStatus: idle
Перед выполнением операции чтения или записи необходимо подключить объект I2C к устройству с помощью fopen функция. Если объект был успешно подключен, его свойство Status автоматически настраивается на открытие.
fopen(blinkM);
get(blinkM, 'Status')
ans = open
Заводская настройка по умолчанию для BlinkM заключается в последовательном воспроизведении цветов «белый-красный-зеленый-синий». Белый цвет остается для 100 тактов, в то время как цвета красный, зеленый, синий и выключенное состояние остаются для 50 тактов. В этом примере сценарий используется для воспроизведения этой последовательности на светодиодном индикаторе BlinkM RGB.
В спецификации BlinkM указывается, что длина скрипта может быть задана путем записи «L» в устройство с последующим добавлением 3 аргументов. Мы будем использовать fwrite для записи двоичных данных на шину I2C.
Первый аргумент - при необходимости установки заводских параметров по умолчанию используйте сценарий с идентификатором 0.
Второй аргумент - длина сценария, этот сценарий имеет 6 строк кода.
Третий аргумент - количество повторов сценария, для воспроизведения сценария навсегда мы задаем число повторов равным 0.
fwrite(blinkM,['L' 0 6 0]);
Примечание: Время записи eeprom составляет приблизительно 20 мс для BlinkM. Поэтому для успешной записи команды может потребоваться пауза.
Согласно спецификации, строка скрипта может быть записана на устройство путем записи «W», за которым следует 7 аргументов.
Первый аргумент - идентификатор сценария, в данном случае 0.
Второй аргумент - номер строки, которую требуется записать.
Третий аргумент - длительность в засечках, которая будет длиться командой.
Аргументы 4:7 - Фактическая команда BlinkM и её аргументы.
Для начала сначала задайте скорость замирания для устройства, записав «f», а затем скорость для устройства.
fwrite(blinkM,['W' 0 0 1 'f' 10 0 0]);
В следующих 5 командах укажите последовательность цветов: белый, красный, зеленый, синий и выходной. Цвет на светодиоде можно задать, записав в него «n», а затем значения R, G и B. Например, установите первый цвет в последовательности белым, установив значения R, G, B на 255.
fwrite(blinkM,['W' 0 1 100 'n' 255 255 255]); fwrite(blinkM,['W' 0 2 50 'n' 255 0 0]); fwrite(blinkM,['W' 0 3 50 'n' 0 255 0]); fwrite(blinkM,['W' 0 4 50 'n' 0 0 255]); fwrite(blinkM,['W' 0 5 50 'n' 0 0 0]);
В спецификации BlinkM указывается, что для запуска (или «загрузки») устройства используется команда «B», за которой следует 5 аргументов.
Первый аргумент - значение 1 для воспроизведения сценария.
Второй аргумент - идентификатор сценария, в данном случае 0.
Третий аргумент - количество повторов сценария, для воспроизведения сценария навсегда мы задаем число повторов равным 0.
Четвертый аргумент - скорость затухания.
Пятый аргумент - Корректировка времени.
fwrite(blinkM,['B' 1 0 0 8 0]);
Ранее написанный сценарий можно воспроизвести, написав «p», а затем 3 аргумента.
Первый аргумент - идентификатор сценария, в данном случае 0.
Второй аргумент - количество повторов сценария, для воспроизведения сценария навсегда мы задаем число повторов равным 0.
Третий аргумент - номер строки сценария для начала воспроизведения.
fwrite(blinkM,['p' 0 0 0]);
Отсоедините его от устройства, удалите из памяти и удалите из рабочей области.
fclose(blinkM);
delete(blinkM);
clear ('blinkM');
На этом завершается пример восстановления BlinkM в состояние по умолчанию путем записи в него сценария. Этот сценарий можно обновить для воспроизведения настраиваемых последовательностей на светодиодном индикаторе BlinkM RGB.