Восстановление BlinkM к его заводским настройкам с помощью I2C шины

В этом примере показано, как восстановить светодиодный индикатор BlinkM RGB к его заводским настройкам путем связи с ним по I2C шине.

Для начала создайте объект I2C. В данном примере мы используем светодиодный индикатор BlinkM RGB с индексом платы 0 и адресом (hex) 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 является воспроизведение цветов white-red-green-blue-off в последовательности. Белый цвет остается в течение 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 указывает, что команда запуска (или 'boot') устройства - 'B', за которой следуют 5 аргументов.

  • Первый аргумент - Установите значение 1, чтобы воспроизвести скрипт.

  • Второй аргумент - Идентификатор скрипта, 0 в этом случае.

  • Третий аргумент - Количество повторов скрипта, чтобы проигрывать скрипт навсегда, мы устанавливаем количество повторов равным 0.

  • Четвертый аргумент - Fade speed.

  • Пятый аргумент - Настройте время.

  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.