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

ИНЖЕНЕРНЫЕ РЕШЕНИЯ 59 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 5 2015 оттуда константу POLON = ′ A ′ , то счи- тает область заполненной, в против- ном случае – пустой. При распозна- вании цвета в сравнении участвуют только заполненные области. Второй байт не используется (зарезервирован) у всех областей, кроме нулевой. В нуле- вой области этот байт содержит при- знак того, что была произведена кали- бровка цвета с базовой яркостью – кон- станту KALIBR = ′ E ′ . Третий и четвёртый байты используются для хранения зна- чения x, пятый и шестой – для хране- ния y, седьмой и восьмой – для хра- нения C (для нулевой области) и для хранения c (для прочих областей). Зна- чения x, y, c обрабатываются програм- мой как вещественные числа (Float), но для экономии памяти в ЭСППЗУ запи- сываются как целые (Int), получаемые из вещественных путём умножения на 100 и преобразования типа числа. При нажатии кнопки «Стирание EEPROM» все области ЭСППЗУ, отве- дённые для хранения данных, заполня- ются константами ′ 0 ′ , а на ЖКИ выво- дится сообщение «Clear I2C Memory». Чтобы исключить случайное стира- ние ЭСППЗУ, время реакции програм- мы на нажатие этой кнопки (анти- дребезговый интервал) задано на поря- док больше, чем у остальных, поэтому для запуска операции кнопку «Стира- ние EEPROM» необходимо удерживать нажатой не менее двух секунд. При нажатии кнопки «Поиск в EEPROM» программа производит измерение цветовых характеристик и вычисление набора параметров исследуемого объекта, аналогично нажатию кнопки «Измерение», но без вывода результатов на ЖКИ. Затем про- изводится последовательный перебор содержимого ЭСППЗУ со сравнением набора параметров из каждой запол- ненной области и результатов изме- рения на предмет нахождения совпа- дения, согласно условиям, описанным выше. При первом совпадении сравне- ние останавливается, и на ЖКИ выво- дится сообщение «Find OK», номер совпавшего набора параметров и их значения, считанные из ЭСППЗУ. При отсутствии совпадений в конце срав- нения на ЖКИ выводится сообщение «Find NO OK». Указанную процедуру реализует функция Find_I2C_Memory(). В эту же функцию встроен программ- ный блок, который в случае совпадения для любого из первых восьми номеров кратковременно зажигает соответству- ющий ему светодиод HL2–HL9. Исходный текст управляющей про- граммы версии 3.0 (и файл прошивки флэш-памяти МК) содержится в ката- логе проекта I2C_Color, архив которо- го доступен для загрузки на сайте жур- нала (www.soel.ru ). Проект был подго- товлен и отлажен в интегрированной среде разработки IDE μVision4 V4.72 от Keil Software. Программирование и отладка уп- равляющей программы МК произво- дились с помощью JTAG-адаптера- программатора ULINK-ME, подключа- емого к разъёму JTAG МК отладочной платы и к ПК через порт USB. Р АБОТА С УСТРОЙСТВОМ После завершения сборки маке- та и отладки управляющей програм- мы устройство было протестирова- но путём калибровки и последующе- го распознавания цветов множества реальных объектов. В качестве таковых использовались кусочки цветной бума- ги из детского набора, цветные наклей- ки, фрагменты рекламных буклетов и тому подобное. При этом соблюда- лось единственное требование к образ- цу: его цвет должен быть однородным во всей исследуемой (подсвечиваемой) области. Всего использовалось около двадцати объектов различных цветов, каждый из которых был пронумеро- ван. Результаты калибровок приведе- ны в таблице. Исходя из информации, содержащей- ся в таблице, а также статистики досто- верности распознавания, набранной в ходе тестирования, определились зна- чения констант из приведённых выше формул. Значения констант dx и dy из формул (6) и (7) в программе заданы как DOL_SOWP_x = DOL_SOWP_y = 0,021. Значение константыwиз формул (11), (12) задано равным 0,1, то есть совпа- дение по яркостификсируется с точно- стью до 10% (PROZ_SOWP_C = 10). При неизменном излучении под- светки устройство безошибочно и ста- бильно распознает все откалиброван- ные цвета, выдавая по итогам сравне- ния номер соответствующего образца. Изменение коэффициента усиления входных сигналов датчика цвета I2C Color Sensor на качество распознава- ния не влияет. В этом случае требу- ется только перекалибровать и запи- сать в ЭСППЗУ новое значение C бел для белого цвета, поскольку значения результатов АЦП в каналах Red, Green, Blue и Clear для одних и тех же цветов существенно изменятся. Коэффици- ент усиления входных сигналов и про- чие настройки I2C Color Sensor задают- ся в программе внутри функции I2C_ Color_Init_IND_GLCD_Display(). Л ИТЕРАТУРА 1. TCS3414 Color Sensor With SYNC input for color sensing synchronization and in-pack- age IR blocking filter (CS package only), www.ams.com/eng/Products/Light-Sen- sors/Color-Sensor/TCS3414. 2. www.seeedstudio.com/wiki/index.php?title= Twig_-_I2C_Color_Sensor_v0.9b. 3. www.nxp.com/products/microcontrollers/ cortex_m3/lpc1700/LPC1768FBD100.html. 4. LPC1768. www.keil.com/dd/chip/4868.htm. 5. MCB1700 Evaluation Board and Starter Kit. www.keil.com/mcb1700. Параметры, используемые для распознавания цвета Номер набора данных в ЭСППЗУ Цвет (субъективное восприятие) x y c 0 Белый 0,34 0,37 1,00 1 Красный коралловый 0,52 0,45 0,32 2 Ярко-синий 0,18 0.28 0,28 3 Зелёный 0,37 0,38 0,34 4 Тёмно-серый 0,35 0,37 0,16 5 Коричневый 0,40 0,39 0,22 6 Жёлтый 0,43 0,42 0,64 7 Фиолетовый 0,30 0,34 0,26 8 Чёрный 0,34 0,37 0,11 9 Красный рубиновый 0,68 0,51 0,20 10 Ярко-оранжевый 0,61 0,49 0,32 11 Изумрудно-зелёный 0,35 0,38 0,24 12 Тёмно-синий 0,24 0,31 0,18 13 Чёрный бархатный 0,34 0,37 0,09 14 Салатовый 0,40 0,40 0,67 15 Бледно-голубой 0,33 0,36 0,86 16 Бледно-жёлтый 0,37 0,38 0,91 17 Светло-оранжевый 0,54 0,46 0,67 18 Лимонно-жёлтый 0,42 0,41 0,75

RkJQdWJsaXNoZXIy MTQ4NjUy