Оглавление Введение......................................................................................................... 3 1 Обзорно-аналитическая часть ................................................................ 5 1.1 Обзор существующих аналогов устройства ................................... 5 1.1.1 Рамочные...................................................................................... 5 1.1.2 «Рогатые» ..................................................................................... 7 1.1.3 Наствольные ................................................................................ 8 1.2 Выводы по обзору аналогов устройства ....................................... 10 1.3 Обзор существующих аналогов программного продукта .......... 11 1.3.1 Программа «ХРОНОГРАФ» v3.0.0.169 .................................. 11 1.3.2 Strely ........................................................................................... 13 1.3.3 Баллистический калькулятор 2.44 ........................................... 14 1.3.4 AirGunCalc v1.2 ......................................................................... 15 1.4 Выводы по обзору аналогов программного продукта ................ 16 1.5 Анализ требований к программе ................................................... 16 2 Специальная часть ................................................................................. 17 2.1 Измерительная схема проектируемого устройства ..................... 17 2.2 Разработка структурной схемы модуля ........................................ 19 2.3 Обзор бесконтактных датчиков ..................................................... 20 2.3.1 Индуктивный датчик ................................................................ 20 2.3.2 Емкостный датчик..................................................................... 23 2.3.3 Оптический датчик ................................................................... 25 2.4 Выводы по обзору бесконтактных датчиков................................ 28 2.5 Выбор типа индикатора .................................................................. 30 2.5.1 Многоразрядные знаковые индикаторы ................................. 30 2.5.2 Статическая индикация ............................................................ 31 2.5.3 Динамическая индикация ......................................................... 32 2.5.4 Графические ЖК индикаторы ................................................. 34 2.5.5 Типы материалов жидких кристаллов .................................... 34 2.5.6 Режимы отображения ............................................................... 35 2.5.7 Подсветка ЖК Индикаторов .................................................... 36 2.6 Выводы по обзору типов индикаторов. ........................................ 38 2.7 Разработка алгоритма работы модуля .......................................... 39 2.8 Разработка структуры программного обеспечения ..................... 42 2.9 Разработка организации передачи данных ................................... 44 2.9.1 Интерфейс передачи данных ................................................... 44 2.9.2 Преобразователь интерфейсов ................................................ 45 2.9.3 Протокол передачи данных...................................................... 46 3 Конструкторско-технологическая часть ............................................. 48 3.1 Выбор элементной базы ................................................................. 48 3.1.1 Выбор микроконтроллера ........................................................ 48 3.1.2 Выбор источника питания........................................................ 53 3.1.3 Выбор элементов для организации датчика ........................... 54 3.1.4 Выбор жидкокристаллического индикатора .......................... 55 3.2 Разработка принципиальной схемы .............................................. 56 3.3 Разработка прикладного ПО модуля ............................................. 60 3.3.1 Среда разработки Atmel Studio ................................................ 60 3.3.2 Работа с аппаратным таймером ............................................... 61 3.4 Разработка прикладного программного обеспечения ................. 62 1 3.4.1 Среда разработки Qt Creator и библиотека Qt ....................... 62 3.4.2 Функции разрабатываемой программы. ................................. 63 3.4.3 Разработка графического пользовательского интерфейса ... 64 3.4.4 Получение расчетных данных ................................................. 67 3.5 Тестирование работоспособности Системы................................. 68 3.5.1 Проверка работоспособности модуля ..................................... 68 3.5.2 Проверка работоспособности программы .............................. 70 Заключение .................................................................................................. 78 Список литературы ..................................................................................... 79 2 Введение Задачей работы является разработка макета системы для бесконтактного измерения скорости движущегося объекта. Система для бесконтактного измерения скорости представляет собой комплекс аппаратных и программных решений. Аппаратный модуль выполняет функцию определения скорости при помощи специальных датчиков и, в цифровом виде, передает значения программному модулю. Программа, в свою очередь, обрабатывает и хранит полученные данные, рассчитывает производные значения и представляет все вышеперечисленное в удобном и понятном для пользователя виде. Система данного типа может быть полезна во множестве отраслей, но в данной работе будет рассмотрено применение модуля и сопутствующего программного обеспечения в военно-промышленной и спортивной сферах. Прибор, в рамках ВПК, может использоваться для измерения начальной скорости полета пули, а программное обеспечение призвано выявлять статистическую взаимосвязь в проведенных измерениях и рассчитывать параметры, на которые, непосредственно влияет начальная скорость полета, такие как дальность, энергия, дальность полета и импульс. Такие данные и их анализ могут помочь контролировать и повышать качество производимого продукта данной отрасли, а также делать выводы об условиях и специфике его применения. Далее результаты работы модуля отправляются на ПК, и исходя из этих результатов в ПО, прилагаемом к устройству, можно будет узнать (зная массу пули и прочие начальные параметры): Энергию Дальность полета Импульс Импульс 3 Также данный программно-аппаратный комплекс может применяться в промысловых отраслях хозяйства и спортивной сфере. Полученные данные могут помочь спортсменам правильно настроить спортивное оружие выбрать наиболее качественные патроны. Что в свою очередь приведет хорошим результатам на соревнованиях. Наконец, одной из самых значимых областей применения системы может стать разработка несмертельного-травматического оружия. Так как она поможет оценить эффективность, и самое главное, степень тяжести, наносимых травм. 4 1 Обзорно-аналитическая часть 1.1 Обзор существующих аналогов устройства 1.1.1 Рамочные Рамочные хронографы обладают объемной конструкцией, скорость пролета измеряется между рамками. Так как рамки не изолированы от внешнего освещения, измеренная скорость сильно зависит от внешних условий, из-за этого сложно производить измерения на открытом воздухе. Измерения рамочным хронографом можно производить на любом расстоянии. ИБХ-713 В данной модели результат отображается только на дисплее. Работает от сменных батареек, отдельно приобретается блок питания. Внешний вид устройства показан на рисунке 1.1. Рис. 1.1 ИБХ-713 5 АСС-0021 Результат отображается на дисплее, также есть возможность подключить к ПК. Как и предыдущая модель работает на батарейках, с возможностью подключения к сети через дополнительный блок питания. Внешний вид устройства показан на рисунке 1.2. Рис. 1.2 АСС-0021 6 1.1.2 «Рогатые» Рогатые хронографы просты в эксплуатации, подходят для любого типа оружия (пневматического, огнестрельного, метательного), но чувствительны к свету. Eddhead S1300 Данная модель характеризуется выводом результатов измерения на ПК, питание от батарейки, возможностью установить на штатив. Внешний вид устройства показан на рисунке 1.3. Рис. 1.3 Eddhead S1300 7 1.1.3 Наствольные Наствольные хронографы просты в эксплуатации, портативны, просты в изготовлении, поэтому недорогие, при этом обладают высокой точностью, но из-за того что одеваются на ствол, подходят не ко всем видам оружия и измеряют только начальную скорость. XCOPTECH X-3200 Данная модель популярна за рубежом, ее нельзя подключить к ПК. Имеется крепление для штатива, работает на батарейках. Внешний вид устройства показан на рисунке 1.4. Рис. 1.4 XCOPTECH X-3200 8 ИБХ-741 Данный хронограф индукционный, поэтому можно измерять только скорость свинцовых зарядов. Работает на батарейках, обладает высокой точностью. Не имеет связи с ПК, но имеет встроенную память на 200 измерений. Внешний вид устройства показан на рисунке 1.5. Рис. 1.5 ИБХ-741 9 1.2 Выводы по обзору аналогов устройства Все рассмотренные устройства имеют свои достоинства и недостатки, которые можно учитывать при проектировании нашего устройства. Хронографы делятся на три типа: 1. Рамочный 2. Рогатый 3. Наствольный Измерения рамочного и рогатого хронографа зависят от внешнего освещения, что создает сложности при использовании их на открытом воздухе, т.к. замеры в солнечную и пасмурную погоду будут отличаться. Поэтому принято решение разрабатывать наствольный хронограф. Он при небольших размерах и стоимости, обладает высокой точностью измерений. 10 1.3 Обзор существующих аналогов программного продукта На сегодняшний день аналогов существует довольно много, однако большинство из них не выполняет автоматический захват данных с устройства измерения, а требует вмешательства оператора на данном этапе. 1.3.1 Программа «ХРОНОГРАФ» v3.0.0.169 Бесплатная программа, является наиболее близким аналогом по спектру выполняемых задач. Программа позволяет: Производить выгрузку результатов измерений с нескольких различных устройств или вводить данные вручную. Производить расчет энергии. Редактировать полученные данные. Находить среднее значение выборки. Сохранять результаты измерений в виде списка в формате *.txt и графики в виде изображения *.png. Загружать данные из текстового файла *.txt Конвертировать величины из системы СИ в Английскую и наоборот. Интерфейс программы, как показано на Рис. 1.6, представляет собой масштабируемое окно с областью для ввода статических данных, областью для вывода расчетных параметров, полем для отображения графиков и контекстным меню в верхней части окна. 11 Рис. 1.6 Интерфейс программы «ХРОНОГРАФ v3.0.0.169» 12 1.3.2 Strely Программа бесплатная, предназначена для работы только с прибором ИБХ-АСС-0021. Программа позволяет производить следующие действия: Выгрузка данных с измерительного прибора ИБХ-АСС-0021. Сохранять данные в формате *.xls. Рассчитать энергию. Просмотреть и распечатать график серии измерений или рассчитанных значений энергии. Интерфейс программы, как показано на Рис. 1.7 представляет масштабируемое окно с областью отображения графика, таблицей расчетных и измеренных данных и контекстным меню в верхней части окна. Компоновка элементов программы и интерфейс являются интуитивно понятными для пользователя. Рис. 1.7 Интерфейс программы «Strely» 13 1.3.3 Баллистический калькулятор 2.44 Бесплатная программа, не имеющая возможности выгрузки данных с устройства и позволяющая производить расчет только для одного значения измерений. Также программа не позволяет произвести сохранение результатов расчета. Интерфейс программы (Рис. 1.8) представлен не масштабируемым окном с большим количеством полей ввода для исходных данных. После введения данных и нажатия на кнопку «Вычислить!» появляется окно с результатами расчетов. Рис. 1.8 Интерфейс программа "Баллистический калькулятор 2.44" 14 1.3.4 AirGunCalc v1.2 Бесплатная программа, как и предыдущая не имеет возможности выгрузить данные с измерительного устройства. При помощи программы можно рассчитать скорость по методу маятника, энергию, скорость у цели и время движения до нее, а также сохранить результаты в текстовом файле *.txt. Расчет может производиться только для одного значения измерений. Интерфейс представлен масштабируемым окном с тремя вкладками, первые две из которых предназначена для расчета определенных параметров, последняя для сохранения результатов (Рис. 1.9). Рис. 1.9 Интерфейс программы "AirGunCalc v1.2" 15 1.4 Выводы по обзору аналогов программного продукта Каждая, из рассмотренных выше программ, имеет свои недостатки и достоинства, которые можно использовать при проектировании программы. Все программы имеют относительно простой и понятный интерфейс, что является несомненным плюсом для начинающего пользователя. Программы, не имеющие возможности получать данные автоматически, могут рассчитываться значения только для одного измеренного значения, и не всегда имеют возможность сохранения результатов. Стоит отметить, что некоторые программы не нуждаются в установке, что упрощает их использование. 1.5 Анализ требований к программе Данные, должны поступать в программу с измерительного устройства, а также подгружаться вручную из *.txt файла, где разделителем для данных будет является перенос строки. Для расчета некоторых данных необходимо предусмотреть поля для ввода статических параметров, таких как: масса и высота от поверхности. Наиболее оптимальным способом представления, как экспериментальных, так и расчетных данных, является график. Такой тип представления позволяет наглядно продемонстрировать характер выборки, взаимозависимость различных данных и быстро получить представление о наличии или отсутствии грубых ошибок в измерениях. Также необходимо предусмотреть возможность выбора, какие данные будут отображаться на графике. Так как программа предполагает работу с выборкой данных, а не с одним значением, то наиболее оптимальным способом отображения данных является табличный вид. Функция редактирования является необходимой при обнаружении в выборке грубых ошибок, значения такого измерения необходимо удалить из выборки для получения действительных расчетных данных. 16 2 Специальная часть 2.1 Измерительная схема проектируемого устройства В параграфе 2.2 выбрана наствольная компоновка устройства, такая компоновка позволяет получать наиболее точные результаты по двум причинам. Во первых, как уже говорилось, только при наствольном исполнении прибора результат измерений не зависит от внешних факторов. Во вторых, при такой компоновке датчики всегда находится перпендикулярно объекту измерений, что позволяет произвести наиболее точные замеры скорости, исключая возможность неправильного размещения дула относительно измерительного устройства. Так же, при наствольном исполнении уменьшается риск повредить прибор во время проведения измерений, т.к. при правильной установке прибора, траектория полета пули проходит через центр измерительной трубки. Рис. 2.1 Измерительная схема прибора 17 На рисунке 2.1 изображена измерительная схема проектируемого устройства, которое состоит из трубки и двух пар датчиков, расположенных на расстоянии L друг от друга. 18 2.2 Разработка структурной схемы модуля Рис. 2.2 Структурная схема устройства Составление структурной схемы позволяет понять, какие компоненты необходимо использовать в устройстве и то, как они должны быть соединены. Согласно схеме приведенной на рисунке. 2.2 устройство должно состоять из следующих компонентов: 1. Пара датчиков, объединенных в отдельный блок. 2. Микроконтроллер 3. Индикатор 4. Интерфейс RS232 для обмена данными с компьютером 5. Источник питания c входным напряжением 12В. В следующих разделах будет подробно рассмотрен каждый компонент, возможные варианты его исполнения и выбран наиболее подходящий для проектируемого устройства. 19 2.3 Обзор бесконтактных датчиков 2.3.1 Индуктивный датчик Индуктивный датчик реагирует на все предметы, проводящие ток. Принцип действия индуктивного датчика заключается в том, что магнитное поле, создаваемое катушкой индуктивности датчика, изменятся под внешним воздействием.[1] Принцип действия бесконтактного индуктивного выключателя заключается в том, что изменяется амплитуда колебаний генератора, когда в активной зоне датчика появляется тело определенных размеров, состоящее из материалов, проводящих ток. При включении индуктивного выключателя появляется магнитное поле, которое создает вихревые токи во внесенном предмете, что, в свою очередь, изменяет амплитуду колебаний генератора. По средствам этого на выходе получается аналоговый сигнал, который изменяется в зависимости от расстояния между объектом и датчиком. Индуктивные выключатели состоят из следующих основных элементов, которые представлены на рисунке 2.3: Рис. 2.3 Устройство индуктивного выключателя 1. Генератор создает электромагнитное поле. 20 2. Триггер обеспечивает гистерезис при переключении и определенную длительность фронтов сигнала. 3. Усилитель увеличивает амплитуду сигнала. Активная зона (Рис. 2.4) индуктивного выключателя - это некоторая область около чувствительной поверхности, где магнитное поле наиболее сильно. Как правило размер чувствительной зоны примерно равен габаритам датчика. Рис. 2.4 Активная зона Рис. 2.5 Номинальное расстояние Номинальное расстояние переключателя (Рис. 2.5) – это величина, в которой не учитываются внешние паразитные влияния на датчик Номинальное расстояние срабатывания - это основная характеристика датчика, которая рассчитывается для конкретного датчика при его рабочей температуре и напряжении питания. На интервал срабатывания датчиков влияет температура окружающей среды. 21 Обычно датчик располагают так, чтобы тело, воздействующее на датчик, двигалось параллельно его поверхности. На рисунке 2.6 изображена зависимость выходного сигнала от расстояния до датчика. Рис. 2.6 Поперечный датчик приближения зависимость выходного сигнала от расстояния 22 2.3.2 Емкостный датчик Емкостный датчик представляет собой конденсатор, обкладки которого являются активными элементами конструкции и располагаются в непосредственной близости от поверхности корпуса элемента. Принцип действия емкостных датчиков заключается в том, что диэлектрик, находящийся между обкладками конденсатора – это некий предмет, внесенный в активную зону датчика. Это основывается на том, что емкость конденсатора зависит от диэлектрической проницаемости материала, находящегося между обкладками.[2] Перемещение тела, в активной зоне индуктивного датчика приводит к изменению емкости конденсатора, что в свою очередь меняет частоту работы генератора. На рисунке 2.7 показано устройство емкостного датчика. Рис. 2.7 Устройство емкостного датчика Алгоритм работы емкостного датчика: 1. Генератор создает электрическое поле. 2. Демодулятор преобразует изменения частоты колебаний генератора в напряжение. 3. Триггер обеспечивает гистерезис при переключении и определенную длительность фронтов сигнала. 4. Усилитель преобразует выходной сигнал к определенному значению. 23 Рабочая поверхность емкостного датчика выполняется в виде двух металлических электродов, которые и являются обкладками конденсатора. Эти обкладки подключены к цепи обратной связи генератора, который настроен так, что при отсутствии объекта в активной зоне он ничего не генерирует. Как только в активную зону датчика попадает некий объект, изменяется емкость, что приводит к тому, что генератор начинает вырабатывать колебания определенной амплитуды, зависящей от удаленности и размеров объекта. В зависимости от амплитуды, формируется выходной сигнал. Емкостный датчик различает как объекты из проводящих материалов, так и диэлектрики. При том, расстояние срабатывания изменяется в зависимости от типа материала, для токопроводящих материалов оно будет больше, а для диэлектриков меньше (Рис. 2.8). Рис. 2.8 Зависимость реального расстояния срабатывания Sr от диэлектрической проницаемости материала объекта er 24 2.3.3 Оптический датчик Оптический сенсор – прибор, выходной сигнал которого зависит от интенсивности светового потока попадающего на активную поверхность датчика Оптические датчики бывают дискретные и аналоговые. Выходной сигнал аналогового датчика пропорционален интенсивности освещения, попадающего на датчик. Дискретный датчик на выходе имеет либо логический ноль, либо логическую единицу, значение изменяется, когда освещённость датчика достигает порогового значения. Оптические датчики имеют широкий спектр применения, как в промышленных отраслях, так и в бытовой электронике. Оптические датчики наиболее часто используются для отслеживания перемещения объектов.[3] Оптический датчик состоит из источника освещения, фотоэлемента, также в состав устройства входит оптический элемент, фокусирующий световой поток, например линза или светопровод (Рис. 2.9). Рис. 2.9 Устройство оптического датчика Оптические датчики инфракрасносного спектра можно применить для контроля объектов с температурой отличной от температуры окружающей среды. Однако при этом встает необходимость защищать датчик от воздействия экстремальных температур.[4] Согласно ГОСТ Р 50030.5.2 оптические датчики разделяются на три группы[5]: • тип Т - с приемом прямого луча от излучателя; 25 • тип R - с приемом луча, возвращенного от отражателя; • тип D- с приемом луча, рассеянно отраженного от объекта. Для датчика типа Т свойственно размещение источника света и фотоэлемента в раздельных корпусах. В таком случае луч света направлен напрямую от источника света к фотоэлементу, отслеживаемый объект помещается между излучателем и фотоприемником (Рис. 2.10). Данная компоновка позволяет питать излучатель и приемник от различных источников, а также размещать их на значительном удалении друг от друга. Рис. 2.10 Датчик типа T В датчиках R типа источник света и фотоэлемент размещаются в одном корпусе, в непосредственной близости друг от друга (Рис. 2.11). При такой компоновке на фотоприемник попадает отраженный свет, для отражения света от источника используются специальные отражатели определённых форм и размеров. Объект наблюдения располагается между отражателем и фотоприемником. Рис. 2.11 Датчик типа R Как и в предыдущем случае, датчик типа D содержит в одном корпусе фотоприемник и источник света, расположенные рядом, однако не содержит отражателя (Рис. 2.12). В качестве отражателя, в данном случае, выступает 26 наблюдаемый объект. Свет на фотоприемник попадает после отражения от объекта. Таим образом с помощью такого датчика можно зафиксировать не только перемещения произведенные параллельно плоскости датчика, но и перемещения, которые перпендикулярны плоскости датчика. Рис. 2.12 Датчик типа D 27 2.4 Выводы по обзору бесконтактных датчиков Недостатки индуктивного датчика – это относительно небольшая частота переключений (обычно до 3 МГц), невысокая чувствительность и зависимость от частоты напряжения питания. Также датчик способен улавливать только предметы из токопроводящих материалов. Достоинством емкостных датчиков является малая инерционность и высокая чувствительность Недостатком является влияние внешних магнитных полей. К достоинствам датчика оптического типа можно отнести то, что расстояние до наблюдаемого объекта может быть весьма существенно. С помощью оптических датчиков можно отследить объекты из любых типов материалов, при этом они имеют высокую скорость переключения. А также, оптические датчики не нечувствительны к ряду внешних воздействий, таких как магнитные поля и электростатические помехи. Так как проектируемый прибор предназначается для измерения скорости объектов из различных материалов, преимущественно металлы и полимеры, применение индуктивного датчика ограничит функциональность прибора. Емкостный датчик нельзя применить по тому, что во время проведения измерений прибор будет находится в непосредственной близости с большим объемом металла, что может повлечь появления помех из-за магнитных полей. Также проектируемый прибор является относительно высокоскоростным, а емкостные датчики имеют высокую инерционность, это может привести к сильному искажению результатов измерений. Наиболее подходящим типом датчиков для проектируемого прибора является датчик оптического типа, он обладает достаточным быстродействием и также способен отслеживать объекты из любых материалов. Также оптический датчик независим от магнитного поля. 28 Если использовать оптический датчик инфракрасного спектра, можно избавиться от влияния внешней засветки прибора. Для прибора можно взять оптический датчик любого типа, однако датчик типа R сильно усложнит производство прибора, а датчик типа D избыточен для проектируемого устройства. Таким образом, можно заключить, что наиболее эффективным будет применение оптического датчика инфракрасного диапазона типа T. Наиболее простым исполнением такого датчика является пара фотодиод-светодиод. На рисунке 2.13 представлена измерительная схема с размещением соответствующих диодов. Рис. 2.13 Расположение компонентов датчиков 29 2.5 Выбор типа индикатора Вывод информации в понятном пользователю виде является неотъемлемой частью работы любого измерительного устройства. Однако перечень данных, которые необходимо вывести для пользователя, весьма ограничен, поэтому для отображения можно использовать простые устройства индикации, некоторые из которых будут описаны далее, а также будет произведен анализ целесообразности их применения. 2.5.1 Многоразрядные знаковые индикаторы Наиболее простым способом вывода числовых значений являются светодиодные семисегментные индикаторы. Семисегментные индикаторы представляют собой скомпонованный в особом порядке набор светодиодов (сегментов) определенной формы. Сегменты индикатора помещены в общий корпус и объединены в единую электрическую схему(Рис 2.14а). Dig1 Dig2 Dig3 a f b g 12 9 dig1 a b c 8 dig2 d e f g h a b c dig3 d e f g h a b c e d e f g h c d h 11 7 4 2 1 10 5 3 a б Рис. 2.14 Устройство семисегментных индикаторов Количество разрядов, помещенных в корпус одного семисегментного индикатора, варьируется от одного до нескольких десятков, что позволяет подобрать индикатор необходимый для конкретного устройства. Кроме 30 сегментов, предназначенных для отображения цифры или буквы, обычно существует дополнительный, восьмой, сегмент, обозначающий точку, которая позволяет выводить на индикатор рациональные числа. На рисунке 2.14б представлен вид и расположение сегментов индикатора, а также приведены их стандартные обозначения. Включение сегмента, или нескольких сегментов, осуществляется по средствам включения их в цепь, по которой течет ток. Семисегментные индикаторы бывают со статической и динамической индикацией. 2.5.2 Статическая индикация Принцип действия статической индикации основан на том, что необходимые сегменты подсвечиваются постоянно, то есть каждый набор из семи сегментов подключается через собственный дешифратор кк источнику информации предназначенному только для данного набора сегментов.(Рис. 2.15). ст. разряд 1 1 2 2 4 4 8 8 X/Y E a b b c c d d e e 1 2 2 4 8 X/Y 4 8 E 1 2 2 4 8 4 8 b b c c d d e e R14 f g R15 HG3 a a b b c c d d e e f E HG2 a g X/Y f R8 D3 g +5V g a f 1 R7 g D2 1 HG1 R1 a f мл. разряд К источнику кода индицируемого числа D1 R21 f g Рис. 2.15 Схема устройства с блоком статической индикации 31 При большом количестве индикаторов аппаратная реализация такого режима работы нецелесообразна, так как для этого потребуется большое количество дешифраторов и выводных контактов источника информации. А также это приведет к большому потреблению тока индикаторами. К тому же некоторые виды индикаторов получают в качестве входной информации импульсное напряжение, что делает невозможным применение статической индикации. 2.5.3 Динамическая индикация Динамическая индикация, в отличии от статической, предполагает гораздо меньшее число контактов для передачи информации. Обычно, в каждом наборе из семи сегментов, одноименные сегменты имеют общий вывод. Для обеспечения работы такой схемы включения используется динамическая индикация. Принцип действия динамической индикации (Рис.2.16) заключается в последовательном включении каждого семисегметного блока посредствам общей схемы преобразования данных. В таком случае все данные поступают всего на один дешифратор, но в определенной очередности. Такой дешифратор подключается ко всем элементам сразу, а сигнал о том, какой блок сегментов сейчас нужно использовать поступает по управляющему выводу. Тесть при динамической индикации в определенный момент времени работает только один семисегментный блок, однако, если переключение производить с достаточной частотой, то мерцание индикаторов будет незаметно для человека. Также существует динамическая индикация, при которой в каждый конкретный момент времени подсвечивается только один сегмент, однако это требует увеличения частоты переключений в несколько раз для исключения мерцания. 32 код выбранного символа код выбранного символа мультиплексор преобразователь кода код символа адрес а b c d e f g h символы дешифратор адреса счетчик адреса генератор Рис. 2.16 Структурная схема блока динамической индикации на 4 знака Схема с динамической индикацией, удобна при большом количестве семисегментных блоков, она позволяет использовать меньшее количество дешифраторов, и требует меньше контактов для передачи данных. Также в динамическом режиме индикаторы потребляют меньший ток. 33 2.5.4 Графические ЖК индикаторы Для отображения информации в микропроцессорных системах широко применяются жидкокристаллические (ЖК) индикаторы. ЖК индикаторы можно разделить на знакосинтезирующие и графические. Графический ЖК индикатор – это матрица из пикселей определенного размера. Таким образом чтобы зажечь определенный пиксель необходимо знать строку и столбец, на пересечении которых он находится. Данная технология позволяет проецировать на экран любое изображение. Для сопряжения микроконтроллера и узкоспециализированная микросхема, ЖК индикатора применяется которую называют контроллер дисплея. Контроллер получает информацию от микроконтроллера по определенному протоколу обмена и в свою очередь управляет пикселями ЖК индикатора. Как правило, контроллер монтируется в корпус индикатора. Обычно ЖК индикатор состоит из печатной платы, на которой установлена сама матрица дисплея, контроллер, а также необходимые электронные компоненты (Рис. 2.17). Рис. 2.17 Внешний вид жидкокристаллического индикатора ЖК индикаторы, как днем, при ярком освещении, так и в полной темноте. Ниже кратко описаны некоторые параметры жидкокристаллических индикаторов. 2.5.5 Типы материалов жидких кристаллов Можно выделить три основных типа материалов, применяющихся при изготовлении жидкокристаллических индикаторов, такие как TN, NTN и STN. От типа материала, используемого при производстве индикатора, 34 зависят эксплуатационные параметры устройства, такие как контраст, угол обзора и диапазон рабочих температур. 2.5.5.1 Жидкие кристаллы TN типа Самый простой и дешевый материал – это жидкие кристаллы типа TN. Большинство ЖК индикаторов, существующих на рынке, имеют в своей основе кристаллы TN типа. Данный тип кристаллов позволяет добиться угла обзора в 40-45 (Рис. 2.18), относительно перпендикуляра к поверхности матрицы градусов, что является достаточным для большинства типов устройств. Рис. 2.18 Углы видения материалов TN типа 2.5.5.2 Жидкие кристаллы STN и NTN типов Материалы жидких кристаллов типа STN и NTN позволяют достичь высокой контрастности и большого угла обзора. Углы обзора, характерные для данного типа материалов изображены на Рисунке 2.19. Рис. 2.19 Распределение угла видения материалов STN и NTN Угол обзора ЖК индикаторов можно регулировать, за счет изменения входного напряжения. 2.5.6 Режимы отображения Тип материала обуславливает цвет дисплея и режим отображения. ЖК индикаторы существуют с позитивным отображением (темные пиксели на 35 светлом фоне) (Рис. 2.20) и с негативным отображением (светлые пиксели на темном фоне) (Рис. 2.21). Для реализации подсветки на заднюю сторону ЖК матрицы помещают отражатель. Рис. 2.20 Позитивное изображение Рис. 2.21 Негативное изображение 2.5.7 Подсветка ЖК Индикаторов Подсветка ЖК индикаторов используется для улучшения видимости экрана при плохом внешнем освещении, а также это позволяет придать фону цвет, однако ее применение приводит к увеличению электропотребления модуля. Подсветка ЖК индикаторов обычно осуществляется светодиодами, которые имеют большой срок службы. При этом даже отказ одного диода не приводит к полной потере работоспособности подсветки. Однако использование подсветки приводит к увеличению толщины корпуса индикатора на несколько миллиметров. Существует два типа светодиодной подсветки - матричная (Рис. 2.22) и боковая (Рис. 2.23). 36 Рис. 2.22 Боковая подсветка Рис. 2.23 Матричная подсветка Боковая подсветка обычно используется для индикаторов небольшого размера. В индикаторах больших размеров при боковой подсветке в центре экрана образуются темные области. Матричная подсветка гарантирует более яркий и равномерный свет, по сравнению с боковой. При выборе подсветки определяющим фактором является потребление, ЖК индикаторы с постоянно включенной подсветкой не подходят для устройств, работающих от батарейного питания Также светодиодная подсветка позволяет регулировать яркость свечения. Яркостью можно управлять по средствам переменного резистора или широтно-импульсной модуляции. 37 2.6 Выводы по обзору типов индикаторов. Исходя из того, что диапазон измерений устройства, согласно техническому заданию, должен составлять от 0 до 1000 м/с, для отображения измеренных данных потребуется четырехразрядный семисегментный индикатор, а для отображения с большей точностью разрядов потребуется еще больше. Однако, сегментные диодные индикаторы позволяют отображать очень ограниченное число различных символов, то есть такой индикатор не позволит отображать ничего, кроме результатов измерений, то есть для отображения состояния датчиков и готовности устройства к работе, потребуется еще несколько индикаторов. Это в, свою очередь, повлечет необходимость использовать микроконтроллер с большим количеством выводов. К тому же, светодиодные индикаторы плохо видны при ярком солнечном освещении. То есть, при использовании прибора в полевых условия при определенных погодных условиях, оператор может просто не различить информацию на индикаторе. Использование ЖК индикатора, с матрицей небольшого размера, позволит, не только отобразить результаты измерений с высокой точностью, но и вывести всю необходимую информацию о состоянии прибора в понятном для пользователя виде. А также, использование ЖК индикатора с подсветкой позволит применять прибор при любых условиях внешней освещенности. К тому же, использование ЖК индикатора, позволит существенно упростить подключение индикатора к микроконтроллеру и снизит требуемое для микроконтроллера число выводов. 38 2.7 Разработка алгоритма работы модуля Прерывание – это сигнал, сообщающий контроллеру, о том, что произошло некоторое событие, которое должно быть немедленно обработано. В данном случае таким событием станет перекрытие одного из датчиков. При перекрытии первого (входного) датчика микроконтроллер должен остановить выполнение основной программой и заняться обработкой прерывания, а после окончания вернуться в исходную точку. Микроконтроллеры, обычно имеют несколько входов внешних прерываний, в данном случае необходим контроллер не менее, чем с двумя входами внешних прерываний. Также потребуется аппаратный таймер для того, чтобы зафиксировать временной промежуток между срабатыванием двух датчиков. Алгоритм работы основной программы представлен блок-схемой ниже. 39 40 Прерывания могут вызываться в любой точке программы, после команды глобального разрешения прерываний. На блок-схеме ниже представлен алгоритм работы внешних прерываний. 41 2.8 Разработка структуры программного обеспечения На рисунке 2.24 представлена структурная схема разрабатываемого программного обеспечения. Рис. 2.24 Структурная схема программного обеспечения Входными данными для программы являются данные переданные с измерительного устройства и данные, полученные из файла по запросу пользователя. Данные с устройства приходят согласно протоколу обмена, а затем преобразуются в числовые значения. Данные в файле находятся в виде числовых значений, отделенных друг от друга символом-разделителем. После получения данных, из файла или с устройства, они помещаются в соответствующий список. Затем, с учетом дополнительных параметров, которые пользователь вносит через графический интерфейс программы, по 42 соответствующим формулам, вычисляются расчетные данные, которые заносятся в соответствующие списки. Далее все данные из списков отображаются в таблицу, а также проецируются на график. Пользователь может выбрать какой тип представления данных он хочет видеть на экране в тот или иной момент. Затем в каждом списке вычисляется соответствующее среднее значение и отображается пользователю при помощи графического интерфейса. По желанию пользователя, для хранения и последующей обработки, данные могут быть сохранены в файл. 43 2.9 Разработка организации передачи данных 2.9.1 Интерфейс передачи данных Последовательный интерфейс RS-232 разработан более 50 лет назад, но до сих пор остается широко используется. Причина этого заключается в том, что он обладает высокой универсальностью, благодаря неплохой, хоть и не самой высокой, скорости обмена, большой допустимой длине линии связи, а также простоте программирования.[6] Наибольшую популярность интерфейс получил в составе COM-порта. Сейчас все меньше компьютеров оснащаются COM-портом, однако, механизм последовательного обмена интерфейса RS-232 продолжает активно использоваться – подавляющее большинство контроллеров имеет в своем составе UART – асинхронный последовательный пор, который лежит в основе идеологии интерфейса RS-232.[7] В UART данные передаются пор одному биту в каждый промежуток времени. Временной промежуток для передачи бита определяется скоростью UART. Кроме, непосредственно, данных UART автоматически передает, так называемые, старт-бит и стоп-бит, которые подставляются, соответственно, в начале и в конце байта данных. Принято, что пассивным состоянием линии является логическая 1, а стартовый бит логический 0. Тесть, UART ждет перепада на линии из логической 1 в логический 0, затем отсчитывает половину битового интервала и проверяет состояние линии. Если в этот момент на линии логический 0, то запускается процесс приема данных, первые пришедшие 8 бит – это данные. Последний, девятый бит – это стоп-бит, значение которого всегда 1. 44 2.9.2 Преобразователь интерфейсов Поскольку COM-порт все реже встречается в составе современных компьютеров, для повышения универсальности, требуется применить преобразователь интерфейсов. Так как порт USB встречается сейчас, практически, в каждом компьютере, обоснованно будет применить преобразователь UART-USB. Один из таких преобразователей производится фирмой Prolific на базе микросхемы PL2303[8]. Данный преобразователь обладает невысокой стоимостью, около 5$ США, и поставляется в комплекте с драйверами для ОС Windows и Mac-OS. Внешний вид преобразователя представлен на рисунке 2.25. Рис. 2.25 Преобразователь USB-UART на базе PL2303 с разъемом USBA Как можно видеть, преобразователь имеет компактный размер, а также имеет светодиодную индикацию. Фирма Prolific производит преобразователи с различными типами разъемов USB, что позволяет выбрать оптимальный для каждого конкретного случая. 45 2.9.3 Протокол передачи данных Протокол обмена данными – это комплекс определенных правил, которые устанавливают форму и порядок обмена данными между различными устройствами и программами. Эти правила позволяют привести данные к единому, понятному для всех участников обмена, виду, А также протокол позволяет исключить появление ошибок, что особенно актуально, когда на передающие линии могут влиять внешние физические факторы. При разработки протокола обмена данного измерительного модуля необходимо учесть то, что передаваемые данные всегда имеют одинаковую длину и не требуют ответа, это позволит заметно упростить протокол. Также стоит принять во внимание то, что данные передаются через интерфейс RS232, который имеет сложную физическую реализацию, что влечет за собой риск появления ошибок. Еще одним фактором, влияющим на структуру протокола обмена является, то, что данные от модуля передаются относительно редко. Это позволит спроектировать протокол, который будет значительно минимизировать вероятность появления ошибок при передаче. Данные представлены в виде рационального числа, имеющего 4 цифры целой части и 2 цифры дробной части. Это позволяет производить передачу одного значения тремя байтам, в каждый из которых помещается по два разряда числа. Фиксированное положение запятой позволяет вовсе не передавать информацию о ее расположении. Схема разбиения числа для передачи показана на рисунке 2.26. Рис. 2.26 Схема распределения разрядов числа для передачи Таким образом, в одном байте не может передаваться число больше 9910 , это позволяет определить необходимую последовательность обозначающую начало передачи. Число 9910 это 11000112, то есть в потоке 46 данных никогда не встретится байт со значением 25510 = 111111112, который можно использовать для обозначения начала передачи. Таким образом получает протокол передачи данных представленный на рисунке 2.27. Рис. 2.27 Протокол обмена Однако данный протокол не имеет никакой защиты от ошибок. С учетом того, что передавать данные приходится относительно редко, для обеспечения наилучшей надежности можно передавать каждый байт дважды. Соответствующая схема передачи представлена на рисунке 2.28. Рис. 2.28 Протокол обмена 47 3 Конструкторско-технологическая часть 3.1 Выбор элементной базы Перед началом, непосредственно, выбора элементной базы стоит уточнить, что все элементы должны является серийно выпускаемыми, а схемотехнические решения, необходимые для подключения данных элементов не должны включать нестандартных компонентов. 3.1.1 Выбор микроконтроллера Все микроконтроллеры разделяются на три типа по количеству разрядов шины данных: 8-разрядные 16-разрядные 32-разрядные 8-разрядные микроконтроллеры производительностью, обычно обладают достаточной относительно для решения низкой большого количества задач, связанных с управлением разными объектами. Обычно, это не сложные и не дорогие контроллеры, применяемые в простых, серийно производимых устройствах, таких как бытовая электроника, измерительные приборы, системы управления промышленными роботами, автомобильные компоненты. Таким контроллерам свойственна Гарвардская архитектура, для которой характерно разделение памяти программ и данных. Объем внутренней памяти обычно ограничивается несколькими десятками килобайт. Данные хранятся в блоке регистров или же в ОЗУ размещенное на кристалле микроконтроллера, объем которого ограничен в несколько килобайт. 8-разрядные контроллеры обычно способны выполнять небольшой набор команд (RISC – архитектура), которые используют простые способы адресации, за счет чего достигается выполнение команды за один машинный такт. 48 16-разрядные микроконтроллеры чаще всего представляют собой улучшенную модель 8-разрядного контроллера. Для них характерная не только увеличенная разрядность обрабатываемых данных, а так же увеличенная система команд и способов адресации, увеличенный набор регистров и объем адресуемой памяти. В таких микроконтроллерах часто можно увеличить объем памяти данных и программ, за счет подключения микросхем памяти, до нескольких мегабайт. В большинстве случаев существует программная совместимость с 8-разрядными моделями. Эти микроконтроллеры в основном применяются в крупных системах промышленной автоматики, аппаратуре для телекоммуникаций, медтехнике и высокоточных измерительных приборах. микроконтроллеры 32-разрядные производительности, который имеют обладает процессор высокой возможностями простых микропроцессоров общего назначения. Иногда ядро, применяемое в этих контроллерах, аналогично CISC- или RISC-процессорам, выпускавшихся ранее, как процессоры общего назначения. Микроконтроллер имеет память команд объемом в несколько десятков килобайт. Объем памяти данных – несколько килобайт и определенный напор периферийных устройств. Микроконтроллеры могут работать с внешней памятью объемом как до 16 Мбайт, так и выше. Такие контроллеры применяют в системах контроля и управления промышленной автоматики, в контрольно измерительных системах и оборудовании микроконтроллерах для применяется телекоммуникаций. Гарвардская или В таких Принстонская архитектура. Процессоры, входящие в их состав могут иметь CISC- или RISC-архитектуру, а некоторые содержат несколько исполнительных конвейеров, образующих суперскалярную структуру. При проектировании цифровой системы необходимо осуществить правильный выбор микроконтроллера. Основная цель – выбрать наименее 49 дорогой микроконтроллер (чтобы снизить общую стоимость системы), но в то же время удовлетворяющий спецификации системы, т.е. требованиям по производительности, надежности, условиям применения и т.д. Ниже представлены критерии, по которым осуществляется выбор микроконтроллера: Есть ли у микроконтроллера нужное количество контактов, портов ввода-вывода, т.к. при их избытке цена на контроллер может быть очень высокой, а при их недостатке, микроконтроллер не будет выполнять свою работу. Есть ли у микроконтроллера необходимые периферийные устройства, такие как АЦП, ЦАП, интерфейсы связей и пр. Обладает ли контроллер другими периферийными устройствами, использование которых не предусмотрено в устройстве (это может увеличить цену микроконтроллера). Поддерживает ли микроконтроллер частоту необходимую для корректной работы устройства. Доступность микроконтроллера. o Есть ли микроконтроллер в достаточном количестве на рынке. o Производится ли микроконтроллер в настоящее время. o Наличие и качество поддержки разработчика. o Поддерживаемые языки низкого уровня. o Компиляторы. o Средства разработки. o Информационная поддержка Примеры типовых схем. Различное дополнительное программное обеспечение. Примеры написания программ. Техническая поддержка со стороны производителя.. 50 o Для Фирма производитель. Прежние разработки. Качество продукции. Длительности работы производителя в данной сфере. создания модуля бесконтактного контроля скорости микроконтроллер должен удовлетворять следующим параметрам: 1. Иметь аппаратный, 16 битный таймер, для измерения промежутка времени между срабатыванием датчиков. 2. Работать на частоте, достаточной, для работы таймера на частоте не менее 20000 Гц. Такая частота работы таймера обеспечит измерения с точностью до 1 м/с в диапазоне от 0 до 1000 м/с, при расположении датчиков на расстоянии 0,1 м. 3. Иметь аппаратную реализацию интерфейса, позволяющего подключить ЖК индикатор. 4. Иметь аппаратный интерфейс UART для сообщения с компьютером. 5. Иметь не менее двух внешних прерываний для подключения датчиков. При этом контроллер должен иметь относительно не большую стоимость. Безусловно, каждый производитель микроконтроллеров предоставляет на рынок устройства, способные справится с задачами, которые ему необходимо выполнять в данном устройстве. При этом продукция разных фирм, имеющая примерно равные параметры обычно схожа по цене. Исходя из этого, выбор производителя микроконтроллера можно производить исходя из личных предпочтений. Данным условиям удовлетворят контроллер фирмы Atmel, семейства AVR, ATmega8-16PU. Это 8 битный RISC контроллер, способный работать на частоте до 16 мегагерц. Контроллер имеет два внешних прерывания, 16 51 разрядный и два 8 разрядных таймера, а также аппаратные интерфейс UART и SPI.[9] Данный контроллер выпускается в трех типах корпусов: PDIP, TQFP и MLF. Для создания макета выбран контроллер в корпусе PDIP, так как он подразумевает наиболее простой монтаж на печатной плате. Для контроллера ATmega8-16PU существует подробное описание от производителя, а также большое количество примеров программ. Также фирма Atmel предоставляет бесплатную среду разработки на языке C/C++, построенную на базе MS Visual Studio. Схема расположения выводов микроконтроллера Atmega8 представлена на рисунке 3.1. Рис. 3.1 Расположение контактов МК Atmega8 Поскольку, согласно документации, напряжение питания для данного контроллера составляет от 4,5В до 5,5В[9], а напряжение питания для проектируемого устройства составляет 12В ± 10%, появляется необходимость понизить напряжение. 52 3.1.2 Выбор источника питания При проектировании источника питания следует учесть, что разница между входным и выходным напряжениями источника питания мала, а протекающий через источник, ток невелик. Это означает то, что в качестве основного компонента источника питания можно использовать не дорогостоящий понижающий трансформатор, а относительно дешевый импульсный стабилизатор с понижением напряжения. Параметры, которым должен удовлетворять стабилизатор напряжения: 1. Диапазон входного напряжения должен включать 12В 2. Выходное напряжение 5В 3. Максимальный протекающий ток около 1А Данным параметрам удовлетворяет стабилизатор напряжения L7805ABV-DG фирмы ST MICROELECTRONICS, он способен пропускать ток до 1А, и способен принимать на вход напряжение до 35 В[10]. Данный продукт снабжен подробной документацией, включающей в себя полное описание всех характеристик, а также схемы включения. Также корпус прибора имеет тепло-отводную пластину с отверстием, которая позволяет закрепить на стабилизаторе радиатор для рассеивания тепла. 53 3.1.3 Выбор элементов для организации датчика Как было сказано ранее, датчик, в проектируемом устройстве, состоит из светодиода и фотодиода, работающих в инфракрасном диапазоне. При том, чем уже будет этот диапазон, тем лучше – это уменьшит влияние внешних воздействий. Сейчас на рынке присутствуют как светодиоды, так и фотодиоды, работающие не в диапазоне, а на определенном значении длинны волны. Большинство производимых моделей работают на излучении, с длинной волны 940 нм. Так как в схеме присутствует источник питания +5В, напряжение питания светодиода рационально подбирать под это значение. Таким образом, всем вышеупомянутым характеристикам соответствуют светодиоды BL-L513IRAC[11] и фотодиоды BL-L512PD[12], производства компании BetLux Electronics. Данные светодиоды выполнены в DIP корпусе, что облегчает их монтаж на измерительную трубку прибора. Габаритные размеры корпуса показаны на рисунке 3.2. Рис. 3.2 Габаритные размеры корпуса диода 54 3.1.4 Выбор жидкокристаллического индикатора Так как необходимо выводить на индикатор небольшое количество информации, рационально будет использовать небольшой дисплей с разрешением экрана в пределах 128х64 пикселей. Используемый дисплей должен быть снабжен контроллером, с интерфейсом SPI для обмена данными и работать от напряжения +5В. А также желательно выбрать индикатор с подсветкой, дабы обеспечить удобство работы с прибором в темное время суток и слабоосвещенных помещениях. Исходя из этих требований, был выбран дисплей Nokia 5110 с контроллером PCD8544 фирмы PHILIPS.[13] Данный индикатор имеет матрицу размером 84х48 пикселей и удовлетворяет другим, описанным выше, условиям. Дисплей представляет собой печатную плату, на одной из сторон которой, размещается ЖК матрица и модуль подсветки, закрывающие собой контроллер дисплея. Также, сверху и снизу ЖК матрицы, на плате присутствует по 8 контактных отверстий для монтажа проводки или разъемов, а также 4 монтажных отверстия, расположенных по углам платы. Внешний вид дисплея показан на рисунке 3.3. Рис. 3.3 Дисплей Nokia 5110 Следует отметить, что, на общедоступных ресурсах в сети интернет, существует большое количество разнообразных библиотек для работы с дисплеем. 55 3.2 Разработка принципиальной схемы Любой из электронных компонентов, обозначенных ранее, за исключением дисплея, будет правильно работать только в том случае, если будет обеспечен соответствующей обвязкой. Обвязка – это набор простых электронных компонентов, обеспечивающий правильную работу более сложных компонентов в соответствии с заданными параметрами. Начнем рассмотрение необходимых дополнительных компонентов с обвязки микроконтроллера. Хоть контроллер и имеет встроенный RC-генератор, способный работать на частоте 8 мГц, этого недостаточно для проведения точных измерений скорости, поэтому предполагается использование внешнего, кварцевого, резонатора. Схема подключения кварцевого резонатора, а также подключения питания подробно описаны в документации, предоставляемой фирмой Atmel. На рисунке 3.4 изображена электрическая-принципиальная схема, которая необходима для подключения и тактирования микроконтроллера Atmega8. Рис. 3.4 Схема включения контроллера Atmega8 56 Следующим рассмотрим устройство источника питания. Обвязка, необходимая для правильной работы стабилизатора напряжения L7805ABVDG описана в соответствующей технической документации. Она состоит из двух неполярных конденсаторов, один из которыхимеетноминал0,33мкФ, а другой 0,1мкФ. Конденсатор номиналом 0.33 мкФ подключается между «землей» и выводом, на который подается входное напряжение. Другой конденсатор, номиналом 0.1 мкФ, подключается между «землей» и выводом выходного напряжения. Электрическая-принципиальная схема, описанная выше, показана на рисунке 3.5. Рис. 3.5 Схема включения стабилизатора напряжения Данная схема включения позволяет защитить стабилизатор, и питаемые им устройства, от кратковременных скачков напряжениями помех. И наконец, рассмотрим схему включения фотодиодов. Так как, в нашем случае, на выходе датчика необходимо получать только значения логического 0 или логической 1, можно использовать, так называемую, «фотодиодную» схему включения фотодиода. Она является наиболее простой и в полной мере выполняет весь возложенный на нее функционал. Данная схема приведена на рисунке 3.6. 57 Рис. 3.6 Фотодиодная схема включения В общем виде схема представляет собой простейший делитель напряжения, только вместо одного из резисторов используется фотодиод, сопротивление которого изменяется в зависимости от интенсивности освещения. Согласно технической документации для микроконтроллера, при напряжении питания 5В уровню логического 0 соответствует напряжение примерно 1.3В[9]. График зависимости напряжения логического нуля, от напряжения питания показан на рисунке 3.7. Рис. 3.7 Зависимость порогового напряжения от напряжения питания Исходя из этого следует, что для уверенного срабатывания, датчик перекрытый наименьшим из возможных измеряем тел, резистор R1 нужно подобрать так, что выходное напряжение датчика было ниже 1.3В. 58 Для подбора номинала резистора был собран макет датчика, состоящий из светодиода и фотодиода, размещенных на измерительной трубке, а также подстроечного резистора номиналом 100 кОм. В ходе эксперимента датчик был перекрыт цилиндрическим телом диаметром 2мм и длинной 10мм. Затем производилось измерение напряжения на выходе датчика, и одновременно с этим, регулировка подстроечного резистора. В результате эксперимента удалось выяснить, что при номинале резистора в 50 кОм на выходе датчика появляется значение, примерно равное, 0.35В. Это позволяет получить на входе микроконтроллера уверенные значения логических сигналов, а вследствие чего, проводить точные измерения. Таким образом, мы определили все необходимые компоненты, их номинал, и схему включения, что, в свою очередь, позволяет составить полную электрическую-принципиальную схему устройства. Полная электрическая-принципиальная схема – см. Приложение 1. 59 3.3 Разработка прикладного ПО модуля 3.3.1 Среда разработки Atmel Studio Atmel Studio – интегрированная среда разработки (IDE) от компании Atmel для разработки приложений под микроконтроллеры ARM Cortex-M и AVR[14]. AVR Studio разрабатывается с 2004 года. С версии 6.0, программа сменила название на Atmel Studio. Программа позволяет работать как на ассемблере, так и на C/C++. Atmel Studio включает в себя мастер проектов, виртуальный симулятор, редактор исходного кода, модуль внутрисхемной отладки и компилятор GCC. Для удобство разработчика среда снабжена, так называемыми, «визуальными инструментами», которые позволяют ускорить и упростить разработку программы. Последняя версия Atmel Studio поддерживает все существующие на сегодняшний момент 8-битные, 32-битные AVR, SAM3 и SAM4 микроконтроллеры и включает в себя большое многообразие проектов с примерами. Atmel Studio предоставляется для следующих операционных систем: Windows 9x / ME / NT / 2000 / XP / VISTA / 7. Также следует отметить, что данная среда разработки распространяется свободно. 60 3.3.2 Работа с аппаратным таймером Для того, что замерит временной отрезок, за который пуля преодолевает расстояние между датчиком, необходимо воспользоваться таймеров. Контроллер Atmega8 снабжен аппаратными таймера на 8 и 16 бит, для получения большей точности следует воспользоваться 16 битным таймером. Таймер считает время в собственных единицах измерения, так называемых «тиках». За весь период отсчета таймер может произвести 216 = 65536 отсчетов. Также у таймера есть настраиваемый делитель, который указывает, на сколько будет поделена частота микроконтроллера для работы таймера. Значения, которые может принимать делитель: 1, 8, 64, 256, 1024. Исходя из этого, можно рассчитать длительность тика таймера в секундах. Выберем делитель 64, таким образом получим, что частота работы таймера 16000000 / 64 = 250000Гц. Для вычисления длительности одного тика таймера необходимо 1 поделить на частоту таймера: 1 / 250000 = 0,000004 с, или 4мкс. При расстоянии между датчиками 0,1м, такое время одного отсчета позволяет допустить ошибку измерения не более чем на 0,004м. При этом максимальная длительность замера составит примерно 0,26 с, что достаточно для замера скорости от 0,38 м/с. Исходный код для настройки и запуска 16 битного аппаратного таймера Atmega8: TCNT1 = 0; //инициализация таймера, с начальным значением 0 TCCR1B = (0<<CS12)|(1<<CS11)|(1<<CS10); //установка делителя 64 Полный текст исходных кодов программы см. приложение 2. 61 3.4 Разработка прикладного программного обеспечения 3.4.1 Среда разработки Qt Creator и библиотека Qt Qt — кроссплатформенный инструментарий разработки программного обеспечения на языке программирования C++. Также возможна работа и с другими языками программирования.[17] Программное обеспечение, написанное с помощью Qt, можно запускать во многих современных операционных системах при помощи простой компиляции программы для конкретной операционной системы, не изменяя исходного кода программы. Qt имеет все основные классы, требующиеся для разработки прикладного ПО. Qt – объектно ориентированный, с возможностью расширения и поддержки техники компонентного программирования. Meta Object Compiler (MOC) — предварительная система обработки исходного кода, является отличительной особенностью Qt от прочих библиотек. MOC увеличивает функционал библиотеки, используя понятие сигналы и слоты. Начиная с версии 4.5.0 в установочный пакет Qt добавлена среда разработки Qt Creator, которая содержит конструктор графического интерфейса Qt Designer, редактор исходных кодов, отладчик и подробную документацию. Qt Creator может использовать множество различных компиляторов, такие как GCC и Microsoft VC++. Версии для ОС Windows включают в себя компилятор, и файлы MinGW.[18] Qt Asistant – это справочная система, которая содержит подробное описание всех классов и функций библиотеки, а также позволяет создавать справочные файлы для приложений. Начиная с версии 4.0.0 Qt распространяется свободно для всех операционных систем. 62 3.4.2 Функции разрабатываемой программы. Перед, непосредственно, разработкой программы необходимо определить, какими же функциями она должна обладать. Перечислим эти функции: 1. Прием данных от устройства измерения. 2. Чтение данных из файла. 3. Запись данных в файл. 4. Прием дополнительных параметров. 5. Вычисление расчетных значений. 6. Вычисление средних значений для выборки. 7. Отображение данных и результатов вычислений для пользователя. Данные от устройства приходят в закодированном, согласно протоколу обмена, виде. Для их корректного отображения и обработки, предварительно необходимо провести их преобразование. При загрузке данных из файла, пользователь должен иметь возможность производить выбор желаемого файла. А при записи в файл, возможность называть файл любым, удобным для него, именем и выбирать директорию, в которой будет произведено сохранение. Также пользователь должен иметь возможность передать программе дополнительные параметры, при которых проводились измерения, для получения расчетных значений. И наконец все данные, полученные и рассчитанные программой, домны отображать в понятном для пользователя виде. 63 3.4.3 Разработка графического пользовательского интерфейса Пользовательский интерфейс – часть программного продукта, отвечающая за взаимодействие пользователя с программой. Современные пользовательские интерфейсы делятся на три типа: Командный WIMP SILK В командном интерфейсе пользователь подает текстовые команды программе, а программа обрабатывает их и выдает полученные результаты пользователю в виде текста. В WIMP (Window Image Menu Pointer) интерфейсе пользователь общается с программой при помощи графических образов. Пользователь так же подает программе команды, но делает это посредством графики. SILK интерфейс является самым требовательным в плане ресурсов. В этом интерфейсе общение пользователя и программы осуществляется с помощью речи. Пользователь просто ведет диалог с машиной, а машина в свою очередь ищет в разговоре человека команды, выполняет их, и результат выполнения команды преподносит также при помощи речи. Принято решение разрабатывать интерфейс WIMP типа. Такой тип пользовательского интерфейса является понятным для человека, и в то же время не требует больших мощностей. Компоновка и дизайн пользовательского интерфейса программы представлен на рисунке 3.8. На рисунке показано основное окно программы. Это окно - первое, что видит пользователь, запуская программу. 64 Рис. 3.8 Пользовательский интерфейс основного окна Данное окно поделено на две рабочие области, область вывода результатов (слева) и область работы с программой (справа). В области вывода результатов расположена только таблица, в которую записываются результаты измерений и расчетов. В области работы с программой расположены все управляющие кнопки и поля ввода. В самом низу этой области находится меню «Настройка порта». Это меню самое последнее, потому что пользователь использует его один раз за весь сеанс работы с программой. Самой первое меню, меню «Управления файлами», в этом меню пользователь может сохранять полученные результаты измерений или открывать уже готовые файлы. Следующий пункт меню, меню «Расчет параметров». В данном меню пользователь вносит значения массы и высоты. Для удобства пользования программой величины подписаны, и пользователю не нужно вспоминать в каких единицах работает программа. Кнопка «Рассчитать» находится сразу 65 после вводимых параметров, поэтому шанс того, что пользователю будет трудно ее найти, минимален. Далее расположено меню «Средние значения», в нем выводятся среднеарифметические значения рассчитываемых параметров, которые позволяют оценить всю выборку в целом. Следующее меню «Управление таблицей». При помощи него, пользователь может, при обнаружении грубых ошибок, удалять отдельные строки из таблицы, или же очистить всю таблицу целиком. Так же помимо основного окна программы, есть окно для отображения графиков. Интерфейс этого окна состоит из поля рисования графиков и четырех кнопок, позволяющих переключаться между различными графиками. Полный текст исходных кодов программы см. приложение 3. 66 3.4.4 Получение расчетных данных Проектируемое устройство подает на вход программе измеренные значения скорости. Программа в свою очередь должна показать эти значения пользователю в виде таблицы. Как говорилось в требованиях к программному продукту, на вход программы должны, так же подаваться начальные значения такие как, масса пули и высота над поверхностью. С помощью этих данных программа рассчитывает значения энергии, дальности, а также импульса. Эти значения рассчитываются при помощи простых физических формул. Энергия: 𝐸 = 𝑚∗𝑉 2 2 Дальность: 𝑆 = 𝑉 ∗ √ 2ℎ 9,81 Импульс: 𝑝 = 𝑚 ∗ 𝑉, где m – масса пули, h – высота от поверхности, V – измеренное значение начальной скорости. Так же в программе рассчитываются среднеарифметические значения всех параметров. Полный текст исходных котов программы – см. Приложение 3. 67 3.5 Тестирование работоспособности Системы 3.5.1 Проверка работоспособности модуля Для проверки работоспособности системы был произведен экспериментальный замер скорости. В качестве эталонной величины была выбрана скорость тела свободно падающего с определенной высоты, которая рассчитывалась по формуле 𝑉 = √2 ∗ 𝑔 ∗ ℎ, где g – ускорение свободного падения, h – высота с которой падала тело. Так как устройство измеряет скорость пролета тела между датчиками, найдем среднюю эталонную величину. Таблица 1 Выборка 1 0.53 м Выборка 2 0.39 м Расстояние до датчика 1 Расстояния до 0.43 м 0.29м датчика 2 Измерение 1 3.06 2.50 Измерение 2 2.90 2.51 Измерение 3 3.00 2.52 Измерение 4 2.96 2.51 Измерение 5 2.97 2.54 Измерение 6 3.03 2.50 Измерение 7 2.96 2.55 Измерение 8 3.05 2.52 Рассчитанное 3.22 2.39 значение скорости по формуле для датчика 1 Рассчитанное 2.90 2.77 значение скорости по формуле для датчика 2 Среднее 3.06 2.58 эталонное значение скорости Как видно из таблицы 1, результаты измерений незначительно отличаются от эталонного значения, поэтому следует рассчитать погрешность измерений. 68 Приведённая погрешность — погрешность, выраженная отношением абсолютной погрешности к нормирующему значению. Вычисляется по формуле: 𝛾𝑛 = Δ𝑋 𝑋𝑛 , где 𝑋𝑛 — нормирующее значение, являющееся максимальным значением шкалы измерений, в нашем случае 1000. Рассчитаем погрешность по результатам первой выборки. Среднее значение измеренной погрешность равна скорости равно 2,99 м/с, 3,06 − 2.99 = 0,07 м/с. значит Отсюда, абсолютная приведенная погрешность, равняется 70 ∗ 10−6 . Относительная погрешность вычисляется по формуле 𝛿𝑥 = Δ𝑥 𝑥𝑡𝑟𝑢𝑒 , где Δ𝑥 – абсолютная погрешность, 𝑥𝑡𝑟𝑢𝑒 – эталонное значение. Относительная погрешность равна 0,02, или 2%. 69 3.5.2 Проверка работоспособности программы Проверим работоспособность прикладного программного обеспечения. Произведем замеры устройством, подключенным к ПК с запущенной программой, и проверим правильность принимаемых данных. Рис. 3.9 Экран модуля На рисунке 3.9 приведены некоторые значения измерений, передаваемые на вход программе, сверим результаты с устройства с результатами полученными программой. 70 Рис. 3.10 Снимок экрана - данные На рисунке 3.10 видно, что значения отправленные устройством, приняты программой, верно, значит, передача данных работает исправно. Теперь проверим правильность рассчитываемых величин. Для проверки правильности расчетов программы, построим таблицу Excel с такими же значениями и формулами, как в нашей программе. Рис. 3.11 Снимок экрана - таблица На рисунке 3.11 приведена таблица Excel, в которой по тем же формулам, что и программе рассчитываются значения. Видно, что результаты вычислений в программе и таблице Excel одинаковы (за исключением округлений), значит, расчеты в программе проводятся верно. После проверки основных функций программы, проверим остальные функции, такие как, сохранение результатов, открытие файла, построение 71 графиков, расчет средних значений и т.д. Основная вкладка программы показана на рисунке 3.12 Рис. 3.12 Снимок экрана – основная вкладка Попробуем открыть в программе файл. Жмем кнопку «Загрузить…», открывается диалоговое окно 3.13. Рис. 3.13 Снимок экрана – диалоговое окно Выбираем нужный файл в формате .txt. 72 Рис. 3.14 Снимок экрана - данные Файл отрылся (Рис. 3.14), проверим, соответствует ли содержимое действительности. Рис. 3.15 Снимок экрана - файл Значения в загруженном файле (Рис. 3.15), соответствуют значениям, полученным программой. 73 Проверим, работает ли в программе функции удаления строки и очистки всей таблицы. Нажмем кнопку «Очистить все» в меню «Управление таблицей», проверим результат очистки. Рис. 3.16 Снимок экрана – очистка На рисунке 3.16 видно, что вся таблица очищена, функция работает верно. Для того чтобы удалить отдельную строку необходимо кликнуть мышью в любую ячейку этой строки. На рисунке 3.17 показан выбор строки. 74 Рис. 3.17 Снимок экрана – выбор строки Нажмем кнопку «Удалить строку», в меню «Управление таблицей». Рис. 3.18 Снимок экрана - удаление На рисунке 3.18 представлена таблица с удаленной строкой. Программа удалила выбранную нами строку, значит, функция удаления строки работает верно. Мы удалили строку с самым большим значением, значит, показания средних значений должны уменьшиться. Если сравнить показания средних 75 значений на рисунках 3.17 и 3.18, видно, что показания уменьшились, следовательно, расчет средних значений работает правильно. Проверим, сохраняет ли программа данные в файл (Рис. 3.19). Рис. 3.19 Снимок экрана - диалоговое окно Программа создала файл, проверим его содержимое. Рис. 3.20 Снимок экрана - файл На рисунке 3.20 видно, что содержимое сохраненного файла, соответствует данным в программе. Функция сохранения работает верно. 76 Рис. 3.21 Снимок экрана - график На рисунке 3.21 показан график, построенный программой. Значения на графике соответствуют значениям в таблице, значит, функция построения графиков работает верно. Таким образом, мы видим, что программа выполняет все функции. 77 Заключение В ходе разработки системы для бесконтактного измерения скорости, в рамках данной выпускной квалификационной работы, удалось разработать оптимальную компоновку измерительного прибора. Выбрать, наиболее подходящий для данного способа проведения измерений, тип датчика. Подобрать элементную базу, необходимую для реализации прибора, и составить электрическую-принципиальную схему. Спроектировать структуру программного обеспечения, выбрать средства для разработки, а также выбрать метод, и разработать протокол, для обмена данными. Проведенные исследования и этапы разработки позволяют произвести практическую реализацию системы для бесконтактного измерения скорости. Данная система может применяться в военной промышленности, для контроля и повышения качества производимой продукции. Система может быть использования спортивной сфере, в целях улучшения спортивных достижений, за счет совершенствования инвентаря. Также она может найти в применения в некоторых промысловых отраслях сельского хозяйства и сфере развлечений. 78 Список литературы 1. СамЭлектрик.ру: Индуктивные датчики. Разновидности, применение, схемы включения [Электронный ресурс] / Режим доступа: http://www.samelectric.ru/promyshlennoe-2/induktivny-e-datchikiraznovidnosti-primenenie-shemy-vklyucheniya.html. Дата обращения: 01.02.2015. 2. Малахит: Емкостные датчики [Электронный ресурс] / Режим доступа: http://malahit-irk.ru/index.php/2011-01-13-09-04-43/124-2011-05-11-05-1715.html. Дата обращения: 04.02.2015. 3. e-ope.ee: Оптические датчики положения [Электронный ресурс] / Режим доступа: http://www.eope.ee/_download/euni_repository/file/2393/Teooria.zip/__23.html. Дата обращения 06.02.2015. 4. Кип-сервис: Описание и особенности эксплуатации оптических датчиков [Электронный ресурс] / Режим доступа: http://kipservis.ru/sensor/datchiki_opticheskie_vbo.htm. Дата обращения 08.02.2015. 5. ГОСТ Р 50030.5.2-99. Аппаратура распределения и управления низковольтная. Часть 5-2. Аппараты и коммутационные элементы цепей управления. Бесконтактные датчики. - М.: ИПК Издательство стандартов, 2000 . 6. Аппаратные интерфейсы ПК. М. Гук, СПб.: Питер, ISBN 5-94723-180-8, 2002. 7. Википедия: Универсальный асинхронный приёмопередатчик [Электронный ресурс] / Режим доступа: https://ru.wikipedia.org/wiki/%D3%ED%E8%E2%E5%F0%F1%E0%EB%FC %ED%FB%E9_%E0%F1%E8%ED%F5%F0%EE%ED%ED%FB%E9_%EF% F0%E8%B8%EC%EE%EF%E5%F0%E5%E4%E0%F2%F7%E8%EA. Дата обращения 18.03.2015. 79 8. PL-2303 Edition USB to Serial Bridge Controller Product Datasheet, Prolific Technology Inc., 2005. 9. Atmega8-16PU Product Datasheet, Atmel Corporation, 2006. 10.L7800AB/AC Product Datasheet, STMicroelectronics, 2007. 11.BL-L513IRAC Product Datasheet, BetLux Electronics. 12.BL-L512PD Product Datasheet, BetLux Electronics. 13.PCD8544 , Datasheet Philips semiconductos, 1999. 14.Микроконтроллеры AVR. Практикум для начинающих, 2-е издание. В. Я. Хартов, М.: МГТУ им. Н. Э. Баумана, 2012, ISBN: 978-5-7038-3565. 15.Программирование на языке Си для AVR и PIC микроконтроллеров. Ю.А. Шпак, Киев: МК-Пресс, 2006, ISBN: 966-8806-16-6. 16.зык программирования C++. Лекции и упражнения, 6-е издание. С. Прата, Вильямс, 2012, ISBN: 978-5-8459-1778-2. 17.Разработка графического интерфейса с помощью библиотеки Qt3. J. Blanchette, M. Summerfield, перевод: А. Киселёв, 2002,ISBN: 0-13-1240722. 18.Создание графических приложений на платформе Qt. Г.Э. Куликов, 2006. 80