СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №5/2015

ИНЖЕНЕРНЫЕ РЕШЕНИЯ 58 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 5 2015 ЖКИ. Затем программа инициализиру- ет датчик, задавая с помощью команд управления его основные настройки: режим выполнения АЦП, длительность цикла преобразования, коэффициент усиления входных сигналов. Записыва- емые в соответствующие регистры I2C Color Sensor значения сразу же считыва- ются программой и выводятся наЖКИ. Таким образом, пользователь может визуально контролировать исправ- ность датчика и результат его иници- ализации. Выведенный на ЖКИ набор значений регистров I2C Color Sensor, соответствующий исправному датчи- ку и успешному завершению инициа- лизации, показан на рисунке 8. Значе- ние регистра идентификатора (REG_ ID) не принципиально, и у различных экземпляров датчика может отличать- ся от показанного на рисунке 8. Обмен командами/данными МК с датчиком и ЭСППЗУ осуществля- ется в программе с помощью функ- ции записи N байт в ведомое устрой- ство wr_N_byte_I2C_Color() ифункции чтения K байт из ведомого устройства rd_K_byte_I2C_Color(). Указанные функ- ции инициируют процесс обмена по шине I 2 C, управляемый обработчиком прерываний I2C0MasterHandler() от аппаратного модуля I2C0 микрокон- троллера. Согласно описанию датчи- ка [1], считывание данных может осу- ществляться побайтно, пословно или блочно, то есть сразу всего массива дан- ных. В нашем случае с помощьюфунк- ции READ_I2C_Color_ADC_BLOCK_ AVERAGE() реализуется блочное чтение. После завершения инициализации датчика устройство переходит в жду- щий режим, из которого доступно выполнение следующих пользователь- ских операций: однократное измере- ние цветовых характеристик и вычис- ление набора параметров исследуемого объекта с выдачей результатов на ЖКИ (по нажатию кнопки SB1 «Измерение»), сохранение набора вычисленных пара- метров в выбранной области ЭСППЗУ (по нажатию кнопки SB2 «Запись в EEPROM»), стирание всего содержи- мого ЭСППЗУ (по нажатию кнопки SB6 «Стирание EEPROM»), перемеще- ние по ЭСППЗУ в сторону увеличения/ уменьшения номеров областей хране- ния наборов параметров с выводом их содержимого на ЖКИ (по нажатию кно- пок SB4/SB5 «Вправо/Влево по кольцу»), автоматический последовательный перебор содержимого ЭСППЗУ со срав- нением с отображаемым на ЖКИ набо- ром параметров на предмет нахожде- ния совпадения для распознавания цвета исследуемого объекта и выдачи результатов на ЖКИ (по нажатию кноп- ки SB3 «Поиск в EEPROM»). Для датчика I2C Color Sensor про- граммно задан режим выполнения АЦП, при котором преобразования произво- дятся непрерывно. При нажатии кноп- ки «Измерение» программа производит накопление и последующее усреднение по выборке из 50 результатов преобра- зований (размер выборки задаётся кон- стантой MAX_INTERVAL = 50) для каж- дого из каналов, а затем вычисляет зна- чения x и y с использованиемфункции CONVERSION_I2C_Color_AVERAGE(). Усреднённые по выборке значения R, G, B, C (целые положительные числа, пред- ставленные в отсчётах АЦП в диапазо- не от 0 до 65535), а также вычисленные значения x и y (дробные десятичные числа, меньшие единицы, округлённые до сотых) выводятся на ЖКИ. При нажатии кнопки «Запись в EEPROM» полученный набор пара- метров записывается в I2C ЭСППЗУ. По умолчанию после сброса запись будет произведена в область ЭСППЗУ с номе- ром 0. Чтобы записать данные в другие области, необходимо, используя кноп- ки «Вправо/Влево по кольцу», вручную задать нужный для записи номер. При этом на ЖКИ будут отображаться вме- сте с текущим номером области («Num Color = ») также её содержимое – значе- ния «x = », «y = », «c = » («C = »). Если вме- сто числовых значений x, y, c(C) справа от знака равенства стоят прочерки, зна- чит, отображаемая область ЭСППЗУ сво- бодна от данных и может быть исполь- зована для калибровки нового цвета. Запись можно произвести и в заня- тую область, но при этом новые дан- ные запишутся поверх старых. Как уже было сказано, в нулевую область ЭСППЗУ (NumColor = 0) сначала необ- ходимо записать набор параметров для цвета с максимальной (базовой) яркостью – то есть белого. Если этого не сделать, то попытки записи в дру- гие области ЭСППЗУ приведут к выво- ду на ЖКИ сообщения об отсутствии базовой яркости «NO White», и запись не состоится. Всего для записи доступно 50 обла- стей, то есть устройство может распоз- навать до 50 цветов (количество зада- ёт константа MAX_num_Color = 50). При необходимости количество цве- тов может быть увеличено до преде- ла, ограниченного только объёмом ЭСППЗУ. Область данных, соответству- ющая одному цвету, занимает в ЭСППЗУ восемь байтов. В первом байте содер- жится признак заполнения области данными: если программа считывает Рис. 8. Информация на ЖКИ, соответствующая успешной инициализации датчика I2C Color Sensor Рис. 7. Внешний вид макета устройства анализа и распознавания цвета

RkJQdWJsaXNoZXIy MTQ4NjUy