Бесконтактный оптический датчик перемещения
Изучение существующих методов измерения перемещений и датчиков, созданных на их основе. Анализ методов проектирования аппаратно-программного измерительного комплекса, в процессе которого решаются проблемы несовершенства упрощенной физической модели мира.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.12.2019 |
Размер файла | 5,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Оглавление
Аннотация
Abstract
Введение
Исследование
Сравнительный анализ существующих датчиков перемещений
Разработка
Разработка алгоритма получения измерительной информации
Разработка структурной схемы датчика перемещений
Выбор элементной базы измерительного модуля
Разработка прикладного ПО
Разработка и тестирование макета оптического датчика перемещений
Аппаратная часть
Программная часть
Руководство пользователя
Заключение
Список литературы
Приложения
Аннотация
перемещение датчик комплекс программный
В работе проводится сравнительный анализ существующих методов измерения перемещений и датчиков, созданных на их основе. Особое внимание уделяется датчикам, работающим на различных оптических принципах. В результате анализа выделяется ниша, среди подобных измерительных устройств, где не хватает бесконтактного оптического датчика перемещений. Также проводится проектирование аппаратно-программного измерительного комплекса, в процессе которого решаются проблемы несовершенства упрощенной физической модели мира, а также, за счет грамотного подбора аппаратной составляющей достигается наилучшее экономическое соотношение цена/функциональность. Кроме того, следует разработать программное обеспечение, позволяющее легко снимать показания с датчика, обрабатывать их и представлять в наглядном формате. В результате проектирования создается рабочий макет устройства, тесты которого подтверждают верность расчетов проектирования и работоспособность ПО. ВКР состоит из 45 страницы, не включая график выполнения, титульный лист и техническое задание, 10 иллюстраций и 14 источников.
Abstract
In this research a comparative analysis of existing methods of measuring linear and angular displacements and sensors based on this methods is carried out. Particular attention is paid to sensors operating on various optical principles. As a result of the analysis, a field, in which there is not enough contactless optical displacement sensor, is revealed. A hardware-software measuring complex is designed. During this process problems of imperfection of a simplified physical model of the world are solved. Also, due to a competent selection of the hardware component, the best economic price/functionality ratio is achieved. In addition, a software, that makes it easy to take readings from the sensor, process them and present them in a visual format is being designed. As a result of the conducted work, a working model of the device is created, tests that were made confirm the correctness of the conducted calculations and software operability.
The paper includes 45 pages, not including the schedule, title page and technical specification, 10 illustrations and 14 sources.
Введение
Актуальность
В современном мире развитие технологий с каждым годом ускоряется. Индустриализация - процесс ускоренного социально-экономического перехода от традиционного этапа развития к индустриальному, с преобладанием промышленного производства в экономике - начавшаяся в девятнадцатом веке продолжает уверенно шагать по Земному шару. Производство становится все больше технологичным и автоматизированным, космические корабли бороздят просторы вселенной, активно ведется разработка новых технологий и исследования в самых разных областях науки. Одна из самых важных систем любой линии автоматизированного производства - контрольно-измерительная. Именно она отвечает за точность во время производства и, кроме того, позволяет находить ошибки, допущенные оборудованием. Некоторому оборудованию необходим постоянный контроль за состоянием его частей, ведь малейший сдвиг некоторых элементов может привести к неприятным последствиям, начиная от потери точности производства и заканчивая поломкой дорогостоящей аппаратуры. В науке измерения не менее важны, ведь любой эксперимент сопровождается постоянными измерениями и контролем состояний оборудования, среды, исследуемого объекта. Для этого применяются различные датчики, способные замерять, а затем передавать или отображать информацию о каких-либо физических величинах. Существует множество различных видов датчиков, один из них - оптические - датчики, работающие на одном или нескольких оптических свойствах, как волновой, так и квантовой природы. Одно из самых важных преимуществ таких датчиков - бесконтактная работа, другими словами, они не воздействуют на исследуемый объект механически, что порой очень и очень важно.
Цели и задачи
Цели данной работы глобально делятся на две категории аппаратная реализация и программная составляющая.
Описывая аппаратную часть, следует указать, что основная цель - создать датчик перемещения, который сочетает в себе преимущества используемых в настоящее время систем. В ходе работы должна быть создана модель системы и дана экспериментальная информация. Для достижения этого представляется целесообразным поставить следующие задачи:
? исследование существующих решений и разработок в области датчиков перемещения,
? моделирование геометрической модели расположения световодов,
? математическое моделирование системы,
? выбор элементной базы и моделирование работоспособности схемы, на ее основе,
? разработка макета системы и его тестирование.
Цели для реализации программной части:
? В работе требуется провести обзор и анализ предметной области с целью обнаружения и изучения существующих реализаций предлагаемого программно-аппаратного комплекса,
? Спроектировать функциональные особенности разрабатываемого комплекса.
? Разработать программное обеспечение для снятия показаний с прототипа.
? Отладить взаимодействие между созданным оборудованием в виде датчика, микрокомпьютером и ПО непосредственного пользователя.
Научная значимость
Вклад системы, описанной в этом исследовании, включает в себя: получение устройства, готового для использования в промышленности и науке. Датчик должен обеспечивать высокую точность измерений и относительно высокую стоимость производства. Это повысит доступность многих научных исследований, снизит стоимость производства автоматизированных систем. Кроме того, исследование создаст основу для дальнейшей разработки волоконно-оптических датчиков различного назначения.
Более того, датчики перемещений уже давно не являются новым словом в науке и технике. Но с каждым днем задачи и потребности людей растут. В том числе меняются требования к уже созданным промышленным изделиям.
Технологии по мониторингу движущихся объектов применяются во многих сферах деятельности. Например, в охранных системах подобные датчики активизируют аварийных режим и посылают сигнал в управляющий центр. Или же в домашнем хозяйстве существуют виды датчиков, которые при приближении человека включают освещение и при его отсутствии в целях экономии ресурсов выключают его. Внедрение разрабатываемой системы позволит автоматизировать процесс мониторинга любой активности.
Этапы разработки аппаратной части
Первым делом в специальном ПО моделируются и рассчитываются различные версии датчиков, а точнее взаимное расположение излучателей и приемников. Затем необходимо определиться с элементной базой. После этого строится принципиальная, функциональная и монтажная электрические схемы. По построенным схемам проводится моделирование работоспособности и по успешному завершению собирается первый прототип. Прототип необходим для тестов работы аппаратной части в также для установления математической зависимости расстояния от информации с оптических приемников.
Этапы разработки программной части
I. Разработка прошивки микроконтроллера - язык программирования C:
1. Исследование прошивок для микроконтроллера серии ATmega от производителя AVR.
2. Выбор среды разработки.
3. Поиск библиотеки для работы с АЦП AD7705.
4. Модификация библиотеки AD770X.h для данного проекта.
5. Написание кода пришивки.
II. Разработка пользовательского ПО - Python часть проекта:
1. Анализ кода программ, в которых используется последовательное подключение микроконтроллера к АЦП.
2. Выбор среды разработки.
3. Разработка скрипта для отладки настроек и первичной визуализации колебаний объектов перед датчиком движения.
4. Разработка скрипта для записи показаний датчика в виде таблицы CSV формата.
5. Разработка скрипта для визуализации полученный данных в виде графика.
Исследование
Сравнительный анализ существующих датчиков перемещений
На данный момент существует огромное количество разнообразных датчиков перемещений. Они имеют разный вид, стоимость и, что самое главное, способ измерения. Все датчики можно разделить на 2 категории: контактные и бесконтактные. Первым необходимо иметь постоянный физический контакт с объектом измерений, соответственно вторым нет. Необходимо подробно рассмотреть каждую из этих категорий. Начнем с контактных датчиков, их основные преимущества:
· Простота
· Надежность
· Помехоустойчивость
Рассмотрим существующие реализации контактных датчиков:
· Вытяжные тросиковые - Принцип действия данных устройств очень простой: имеется катушка с тросиком, один конец которого прикреплен к измеряемому объекту. При перемещении объекта тросик начинается вытягиваться из катушки и, зная длину вытянутого троса можно измерить перемещение. Катушки оснащены пружиной, которая позволяет автоматически втягивать трос при обратном перемещении объекта. Такое устройство отличается простотой, высокой надежностью, но имеет небольшую точность на малых перемещениях.
· Цифровые линейки - также крайне простое устройство. Имеется направляющая, по которой движется каретка, жестко или через систему рычагов, соединенная с измеряемым объектом. При перемещении объекта каретка приходит в движение и сдвигается на равное или пропорциональное (в случае связи через рычаг) расстояние. Бывают резистивные, магнитные и оптические - по способу определения перемещения каретки.
· Цифровые щупы - эти датчики представляют собой подпружиненный щуп, наконечник которого прижимается к измеряемому объекту. Затем различными методами происходит измерение перемещения щупа, который может быть закреплен через рычажную системы, что позволяет измерять даже крайне малые перемещения с высокой точностью.
· Тензометрические датчики - у данных датчиков за основу взят принцип деформации какой-либо поверхности, контактирующей с объектом измерения. Такие датчики довольно точны, но очень сложны и дороги в производстве.
Несмотря на наличие многих преимуществ, данные устройства можно использовать только в случае, если воздействие датчика на объект пренебрежимо мало и не может повлиять на результат измерений или работоспособность системы, в которой производится измерение. Очень важно отметить, что механическая связь позволяет обеспечить полную защиту от внешних помех. Чаше всего такие датчики применяются для автоматизации работы промышленного оборудования.
Для тех случаев, когда воздействовать на объект физической силой невозможно, применяются бесконтактные датчики. Основные преимущества таких устройств:
· Высокая точность
· Отсутствие влияния на объект
· Механическая надежность
По принципу работы такие датчики можно разделить на 2 группы: оптические и не оптические, по основному принципу работы. К оптически относятся: лазерные, фото и современные датчики, основанные на обработке изображений, поступающих с матрицы фотокамеры. К неоптическим относятся: индуктивные, вихретоковые, емкостные и ультразвуковые.
Подробнее рассмотрим принципы работы данных измерительных приборов:
· Индуктивные - металлический объект перемещается внутри катушки, влияя на её индуктивность. Простой, но не очень точный датчик, подходит только для металлических объектов определенной формы. Имеет контактную реализацию - сердечник всегда находится в катушке, однако его конец связан с щупом, контактирующим с объектом измерения. В таком случае сердечник представляет собой магнит и позволяет автоматически активировать измерительной устройство при перемещениях объекта благодаря индуктивному току в катушке.
· Вихретоковые - датчики очень высокой точности. Катушка, разложенная на датчике, генерирует высокочастотное электромагнитное поле, создающее в металле вихревые токи, благодаря чему возникает электрическое поле в измеряемом объекте. Мощность этого поля напрямую зависит от расстояния между катушкой и объектом измерения. Данные датчики обладают высокой точностью, однако подходят только для измерения перемещений металлических объектов, при этом следует учесть, что вихревые токи могут нагревать объект. Внешнее электромагнитное поле может серьезно повлиять на точность работы прибора.
· Ультразвуковые - основаны на принципе отражения ультразвуковой волны от поверхности измеряемого объекта. Излучатель посылает волну, она отражается от объекта и возвращается в приемник, по времени, которое потребовалось на отклик, вычисляется расстояние между датчиком и объектом. Данный датчик крайне прост, имеет довольно высокую точность, однако ему важен размер исследуемого объекта и стойкость к внешним звуковым помехам. Также к недостаткам можно отнести ультразвуковое воздействие, которое в некоторых ситуациях не имеет отличий от механического. Не зависят от проводимости поверхности объекта.
· Емкостные - работают на принципе измерения электрической емкости между чувствительным элементом и токопроводящей поверхностью. Довольно устойчив ко многим внешним помехам, обладает высокой чувствительностью.
· Лазерные - построен на принципе отражаемости лазерного света. Мощный пучок лазера светит на объект, а приёмник, в виде фотодиода замеряет интенсивность отражённого света. Существует более сложная, но более эффективная версия датчика - лазерный триангуляционный датчик. Работает на геометрических принципах вычисления положения через треугольники. Данные датчики обладают высокой помехоустойчивостью, не привязаны к проводимости материала. Являются довольно дорогими и могут представлять опасность для человека, поскольку используется лазерное излучение.
· Фотодатчики - используют метод, аналогичный простым лазерным датчикам. Обладают заметно более низкой точностью и помехоустойчивостью, но при этом цена на них сильно ниже.
· Датчики основанные на обработке изображений с фотокамер - самый современный, но в тоже время самый дорогой и сложный метод. Объект должен быть контрастным по отношению к неподвижному фону. Камера делает снимок и затем, специальное ПО вычисляет перемещение объекта. Позволяет измерять перемещение сразу в двух плоскостях, обладает средней точностью.
Существуют ещё решения - условно-бесконтактного измерения. В этом случае на измеряемый объект крепиться ответная часть измерительного устройства, а само устройство помещается рядом и прямого контакта с объектом исследования не имеет. Данный метод позволяет проводить измерения бесконтактным методом, однако масса ответной части должна быть пренебрежимо мала, в сравнении с массой объекта. Данный метод позволяет применять методы, пригодные только для токопроводящих изделий к любым изделиям, установив на них металлическую ответную часть. Другим таким примером является магнитострикционный датчик, объединяющий в себе принципы магнетизма и ультразвука. Он имеет очень сложный физический принцип, не очень прост в производстве, однако обладает высокой точность и стойкостью к помехам.
Таким образом, можно прийти к выводу, что существует огромное количество различных датчиков, работающих на совершенно разных принципах, обладающих разными, иногда совершенно противоположными свойствами. Оптические датчики обладают очень значимым преимуществом - они универсальны и не зависят от материала, из которого изготовлен измеряемый объект. При анализе, можно заметить, что такие датчики представлены крайне малым разнообразием, представляющим собой крайности: дорого и очень точно, дешево и не точно, при этом отсутствует вариант средней точности. В связи с этим было принято решение разработать оптический датчик, являющийся достаточно точным для большинства лабораторных исследований и в тоже время с умеренной стоимостью.
Аналитический обзор литературы
В последние годы тема разработки систем по созданию датчиков движения активно появляется в публикациях ученых со всего света. Стоит обратить внимание на ключевые подходы в каждой из работ, чтобы избежать повторения ошибок, а также быстрее прийти к выводам, которые уже были представлены в работах других людей.
Одной из таких работ может служить статья нашего научного руководителя Гудкова Ю. И. и Тува А. Л. " Активный инфракрасный датчик для систем контроля вращения привода " [1]. В ней детально проанализированы основные факторы, которые влияют на считывание показаний движения объекта в пространстве с использованием оптического датчика, который в свою очередь управляется серийно выпускаемым прецизионным компаратором, а не микроконтроллером, как планируется осуществить в этом дипломном проекте. Компаратор обеспечивает высокую точность регистрации границы метки, а формирователь импульсов, построенный на основе D-триггеров минимизирует задержки при прохождении импульса выходного сигнала устройства. Также ключевым моментом является использование двух фотоприемников, которые расположены симметрично относительно оси источника излучения и схемы обработки измерительной информации. Такая компоновка системы является более надежной и с обладает более высокой точностью измерений. Она не подвержена таким внешним воздействиям как дрейф интенсивности потока излучения источника и не зависит от меняющихся свойств отражающих поверхностей контролируемого объекта, которые связаны с пылью взвесями и прочими факторами внешней среды.
Также авторы представляют другие преимущества этого датчика, а именно: бесконтактный метод получения измерительной информации, диапазон частот от нуля герц до сотен килогерц, долговечность, малые размеры и вес, совместимость с микроэлектронными устройствами обработки информации. Практическое применение устройство, которое предлагается этой статьей - использование инфракрасного датчика в судостроении где необходимо отслеживать синхронность вращение ходовых винтов судна или же в танковой/тракторной технике, в которой также важно синхронность вращения гусениц.
В патенте [2] сингапурских изобратателей Yufeng Yao и Chi Boon Ong описывается оптический датчик приближения. В изобретении используются три различных подхода, которые были скомбинированы при разработки оптического датчика приближения.
? первый подход представляет собой пакет светоизлучателя
? второй подход представляет собой детектор света
? третий представляет собой интегральную схему
Практическое применение авторы видят в использовании своего датчика в различной портативной технике. В мобильных телефонах, в помощниках по работе с персональными данными (Personal Data Assistants (“PDAs”)), в ноутбуках и КПК, в портативных устройствах, а также в торговых автоматах, в машинах и оборудовании для промышленной автоматизации, в бесконтактных выключателях, машинах и оборудовании для сантехники и т.д.
Конструкция датчика содержит в себе излучатель инфракрасного света, детектор или фотодиод обнаруживающий этот свет, схему управления излучателем света, металлический корпус или экран с отверстиями и объектом, подлежащим обнаружению. Лучи света фиксируются по средствам фотодиода и благодаря ему фиксируется расстояние от датчика до объекта наблюдения. На данный патент ссылаются 54 статьи, среди которых есть такие компании как Osram Gmbh, A Germany Corporation, Avago Technologies Ecbu, Optiz, Inc. и другие. Это означает, что данный датчик признан мировым сообществом и широко используется в производстве. То есть идеи примененный в данной патенте более чем достойны того, чтобы на них опираться в вновь создаваемых работах.
Из работы наших соотечественников Сяпина А.В. и Зотина А. Г «Система управления движением автономной колесной платформы» [3] можно подчеркнуть принципы, которые используются при создании программного обеспечения. Их система включает в себя микроконтроллер ArduinoDuemilanove на основе ATMega 328. Для управления работой двигателей предназначен силовой модуль расширения Ardumoto L298P MotorDriverShield, что как раз соответствует планам реализуемого в данной дипломной работе проекта. В этой статье также задействованы ультразвуковые датчики расстояния, оценивающие расстояние до препятствий перед платформой слева и справа по направлению движения. По центру платформы в передней части расположен инфракрасный датчик препятствий, выдающий сигнал в случае, если препятствие находится прямо перед платформой на расстоянии 800 мм и менее.
Что касаемо непосредственно программного обеспечения микроконтроллера, то движением аппарата управляет микроконтроллер, микропрограмма которого включает в себя блок инициализации, в котором производится настройка датчиков, а также основной цикл, в котором последовательно производится опрос датчиков аппарата, определение возможности движения в данный момент, остановка движения в случае наличия препятствия в непосредственной близости, передача телеметрической информации в бортовой компьютер. Одним из главных преимуществ данной работы можно считать высокую надежность работы и устойчивость к возникновению прерываний и сбоев в канале передаче данных между бортовым компьютером и микроконтроллером. Исходя из этих требований, для реализации программного обеспечения микроконтроллера в проекте Сяпина А.В. и Зотина А. Г была выбрана концепция автоматного программирования. Часть программного кода, ответственная за командноинформационный обмен с бортовым компьютером, представляет собой конечный частично определенный детерминированный автомат-распознаватель. Программное обеспечение на стороне бортового компьютера, принимающее телеметрические данные от микроконтроллера, реализовано по такому же принципу. Таким образом, сбой работы микроконтроллера так же не приводит к прекращению обменом информацией между бортовым компьютером и управляющим микроконтроллером или зависанию программы. Для возобновления нормального функционирования системы достаточно перезагрузить микроконтроллер либо бортовой компьютер, других специальных шагов предпринимать не требуется.
Еще одним немаловажным вопросом для проекта является выбор микрокомпьютера для обработки сигналов датчика. Статья Peter Jamieson [4] и книга Dr.Simon Monk [5] поможет в этом разобраться. В статье про Arduino утверждается, что устройство имеет много положительных моментов, таких как развитое сообщество инженеров и творческих личностей с опытом эксплуатации данного устройства и большим количеством разноплановых проектов. По утверждению автора данный параметр является основополагающим для выбора Arduino студентами, так как появляется доступ к большому количеству материала людей, которые уже прошли путь от поставки цели до конечного результата с работающими прототипами устройств. К достоинствам этой платформы Peter Jamieson относит легкую первоначальную установку. Достаточно включить устройство и оно уже будет готово к работе. Совместимость с операционными системами Windows, Linux и Mac OS также является плюсом. И самое главное, что Arduino может принимать на вход программы, написанные на большом количестве языков. В том числе на C.
Если же рассматривать использование микроконтроллера Raspberri Pi как основу для проекта, то по утверждению автора Raspberry Pi Cookbook [5] отличный выбор очень дешевого микроконтроллера на основе Linux компьютера. Среди моделей есть более 4 вариантов, которые отличаются процессорами и набором портов для подключения периферийного оборудования. В отдельном разделе книги описываются базовые принципы написания программ. Основным языком является Python, но также как и в Arduino поддерживаются и другие языки программирования. Более того, описывается огромное количество практических примеров по использованию Python, по созданию базовых алгоритмов с последовательным описанием всех действий.
Главными недостатками микрокомпьютера Arduino Dr.Simon Monk определяет малую частоту процессора (разница более чем в 43 раза), в разы меньшее количество оперативной и дисковой памяти, а также отсутствие какого-либо интерфейса для ввода информации непосредственно на устройство. Эти действия необходимо осуществлять с стороннего компьютера.
Аналогичное устройство указано в патенте Казачкова Юрия Петровича и Миллера Олега Васильевича. Авторы предлагают использовать три волокна, два из которых ведут к приемникам, а одно - к излучателю. Таким образом, это позволяет компенсировать боковой наклон датчика в боковой плоскости. Однако этот подход не самый оптимальный, так как оптическая компенсация наклона происходит только в одной плоскости. На основе простых геометрических основ оптики, идеальный вариант оптической компенсации будет самым подходящим.
Один сердечник внутри другого, но производство таких волоконных систем недешево, поэтому было бы правильнее использовать четыре приемных волокна, расположенных по диагонали относительно друг друга вокруг центрального излучающего световода. При таком расположении свет от излучающего диода будет передаваться через центральную жилу к объекту исследования. Отраженный от объекта свет попадает в световоды, подключенные к приемным фотодиодам, после чего смещение будет рассчитываться по формуле:
где k - коэффициент пересчета; U1, U2 - сигналы от первого и второго фотоприемников соответственно.
Кроме того, авторы предлагают размещать излучатель света дальше от объекта, чем оптические волокна приемников, что приведет к увеличению точности измерений и уменьшению эффекта отклонения направления светового луча от нормальный к объекту. Авторы также упоминают о различиях в оптических свойствах различных поверхностей и предлагают бороться с этим путем нанесения специального распыления на объект. Этот метод не оптимален, поскольку предполагает взаимодействие с объектом, что противоречит концепции бесконтактного оптического датчика и делает невозможным его использование во многих научных исследованиях. Для обработки данных авторы предложили использовать микропроцессор совместно с аналого-цифровым преобразователем. Чтобы использовать датчик в качестве измерителя колебаний, необходимо, чтобы микропроцессор имел высокую рабочую частоту, а для получения высокой точности измерений необходимо использовать АЦП с высоким разрешением. В современных реалиях правильнее будет использовать микроконтроллер, в котором есть все необходимое. Это обеспечит более высокую надежность, простоту и меньшую стоимость получаемой электронной схемы. Кроме того, современные микроконтроллеры имеют различные встроенные интерфейсы передачи данных, что позволяет легко передавать данные с датчика на персональный компьютер или специальное научное оборудование.
Суммируя проанализированный материалы можно сделать вывод, что об оптических эффектах нужно учитывать много разных вещей. Начиная от основ геометрической оптики и заканчивая волновым поведением света. Обе стороны вопроса подробно обсуждаются в книге Макса Борна и Эмиля Вольфа «Основы оптики» (3). Таким образом, есть два важных взаимосвязанных принципа: принцип Гюйгенса - принцип Френеля и Ферма или метод наименьшего времени. Первый относится к волновой оптике, второй - к оптической. Без этих принципов невозможно создать достаточно точный оптический датчик.
Кроме того, необходимо учитывать, что поверхности могут быть шероховатыми, что приводит к различиям в их отражательной способности. Подробности об этом эффекте описаны в книге Scott M «Photoelectric sensors and controls: selection and application» (1). В ней автор описывает проблему диффузного отражения, которая может составлять значительный процент отраженного света. В случае датчиков очень удобно использовать коэффициент отражения Ламберта. Зная коэффициенты основных типов материалов, можно контролировать значение коэффициента на уровне сенсорного программного обеспечения. В исследовании Вольфганга Крюгера и Пата Ханрахана (2) получена формула для компьютерного моделирования отражательной способности слоистых поверхностей, другими словами, поверхностей, состоящих из нескольких частично прозрачных слоев.
Разработка
Разработка алгоритма получения измерительной информации
Прежде всего необходимо было понять общее представление структуры устройства. Была составлена схема, приведенная на рисунке 1.
Размещено на http://www.allbest.ru/
Рисунок 1
Хорошо видно, что весь программно-аппаратный комплекс состоит из трех частей: датчика или измерительного модуля, логического модуля и персонального компьютера, на котором выполняется специализированное ПО. Стрелками показано направление обмена данными. Так датчик, представляя собой некий аналоговый сенсор, только передает данные в логический модуль, занимающийся обработкой полученных данных. После обработки логический модуль передает данные, в готовом виде для работы с ними виде, в пользовательское программное обеспечение на ПК. Компьютер в свою очередь может управлять логическим модулем, запрашивая у него данные.
Из всего этого следует, что нужно сделать устройство, способное вести двустороннюю связь с ПК, а также считывать аналоговый сигнал с измерительного модуля.
Разработка структурной схемы датчика перемещений
После разработки общего алгоритма работы устройства была разработана структурная схема устройства, отражающая полный набор модулей и их состав. (Рисунок 2).
Рисунок 2
По схеме видно, что аппаратная часть устройства состоит из двух блоков: измерительного и логического модулей. Это должны быть 2 раздельных устройства для того, чтобы обеспечить необходимую надежность и защиту логики от внешнего воздействия.
Измерительный модуль состоит из одного или нескольких светодиодов и фотодиодов работающих в одном диапазоне излучаемых/принимаемых волн. Логический модуль отвечает за обработку сигнала с измерительного модуля, а также дальнейшую передачу обработанных данных в ПК посредством цифрового интерфейса. Работой светодиодов управляет микроконтроллер. Фотодиоды подключаются к АПЦ, который преобразует аналоговый сигнал в цифровое значение и передает его микроконтроллеру для обработки. После обработки данные выводятся через I\O интерфейс.
Было принято решение организовывать подключение к ПК по интерфейсу USB 2.0 по следующим причинам:
· высокая скорость
· полнодуплексный канал связи
· возможность питания ведомых устройств током до 500 мА
· напряжение питание стабилизировано до значения +5V
Для организации инфообмена между микроконтроллером и ПК посредством USB используется микросхема USB-TTL, что позволит использовать микроконтроллер без поддержки данного интерфейса и при этом обеспечить возможность подключения устройства к любому современному ПК на аппаратном уровне, без необходимости использовать переходник USB-COM. Кроме того, с шины USB осуществляется питание всего устройства, что очень удобно в практическом применении, поскольку у пользователей будет отсутствовать необходимость в организации дополнительного питания.
Выбор элементной базы измерительного модуля
После разработки структурно схемы была выбрана элементная база, соответствующая структурной схеме:
· Микроконтроллер Atmega328p
Данный МК представляет собой восьмиразрядный AVR микроконтроллер, располагающий на борту все необходимые блоки. Его основное преимущество перед аналогами - простота и надежность в работе. Имеет множество встроенных интерфейсов передачи данных: i2c, spi, serial port и другие. Позволяет настроить различную частоту работы, благодаря чему возможно снизить энергопотребление до очень низких значений. Кроме того, данный микроконтроллер имеет на борту встроенный многоканальный 10-ти разрядный АЦП.
· АЦП AD7705
Это внешний 16-ти разрядный аналогово-цифровой преобразователь. Необходим, поскольку встроенного в микроконтроллер АЦП недостаточно, для достижения требуемой точности измерений. Имеет два входных аналоговых канала, посредством программного управления позволяет включать встроенный усилитель различной мощности. Данный АЦП поддерживает управление по интерфейсу SPI, который поддерживается описанным ранее микроконтроллером на аппаратном уровне.
· USB TTL PL 2303
Этот модуль необходим для связи микроконтроллера и персонального компьютера по USB интерфейсу. Такое решение было принято в связи с тем, что последовательный порт занят для связи с АЦП, а то время как программное обеспечение не позволяет использовать программные реализации последовательного порта или иного, в связи с тем, что потребляют слишком много ресурсов микроконтроллера.
· ИК светодиод
Длина волны данного светодиода 860нм, выходная мощность 100мВ.
· фотодиод ФД256
Данный фотодиод имеет интегральную токовую чувствительность 0.6 мкА/лк.
· оптоволоконный световод
Для возможности измерять перемещение малых объектов и при этом не использовать дорогой лазер, было принято решение использовать оптоволоконный световод. Он позволит сконцентрировать и направить излучение от малого объекта в фотоприемник, размер которого больше, чем размер измеряемого объекта. Было рассмотрено несколько вариантов расположения жил световода, а также количество приемников-излучателей. Один из вариантов схематично показан на рисунке 3. Такое расположение жил световода позволит избежать проблем точного позиционирования датчика относительно измеряемого объекта. Другими словами, минимизируется влияние наклона датчика на получаемый с него результат. Подробно об этом влиянии рассказано в работе Н. Дубовицкой, А. Ледовского и А. Васильева «разработка датчика угловых перемещений». Фотодиод подключается к центрально жиле, а светодиод ко внешней, необходимо это для увеличения площади светового пятна от фотодиода, что позволит ещё сильнее минимизировать угловое влияние.
Размещено на http://www.allbest.ru/
Рисунок 3
Однако такой метод не позволяет избежать ошибок, связанных с отражательными свойствами поверхностей, а расположить датчик ровно в лабораторных условиях проще, чем высчитывать коэффициент отражаемости. Для решения этой проблемы лучше всего подходит использование трехжильного оптоволокна, имеющего структуру как на рисунке 4.
Рисунок 4
К одной из крайних жил подключается светодиод, к оставшимся - фотодиоды, таким образом свет, отраженный от поверхности, будет по-разному достигать фотодиодов в зависимости от свойств поверхности. И в результате вычисления разности сигналов между принимающими световодами будет получено значение, отражающее непосредственно перемещение, независимо от коэффициента отражаемости поверхности.
На основе выбранных компонентов была разработана следующая аппаратная часть датчика, представляющая собой модульное устройство, состоящее из двух модулей: Измерительного и логического. Первый отвечает непосредственно за измерение аналоговой величины, а второй занимается обработкой полученных данных, преобразованием их в нормальный вид и передачей информации на внешнее устройство.
Измерительный модуль представляет собой оптоволоконный кабель один конец которого направляется на исследуемый объект, а к другому крепятся фотодиод и светодиод. Далее к их ножкам присоединяются провода, идущие к штыревому коннектору 6-pin. Логический модуль выполняется в виде печатной платы с расположенными на ней компонентами, разъемами для подключения к внешнему устройству и разъемом для подключения измерительного модуля. Кроме того, на ней располагаются элементы обвязки для микросхем и светодиода в соответствии с рекомендациями производителей.
Конструкция выполнена разборной в связи с тем, что это позволяет производить модульный ремонт, меняя только один модуль, а также можно использовать логический модуль с любым другим датчиком, принцип действия которого схож с работой разработанного. Это свойство открывает большой потенциал для модернизации. По своей структуре логический модуль представляет собой унифицированное устройство, имеющее 2 высоко разрядных аналоговых входа и один управляемый ШИМ вывод. При необходимости можно будет незначительно изменить прошивку модуля, для подключения практически любого аналогового датчика. Также возможна последующая разработка иных измерительных датчиков и разработка универсальной прошивки.
Разработка прикладного ПО
Исследование прошивок для микроконтроллера
В публичных репозиториях сосредоточено большое количество свободно распространяемых проектов c предназначенных для микроконтроллеров семейства AVR (Advanced Virtual RISC). Среди них сосредоточены решения для различных типов задач, но программы, решающую конкретно задачу данной дипломной работы, нет. Поэтому лучшим выход создать код с нуля. Но сперва необходимо было определиться с помощью каких инструментов и технологий логичнее всего работать.
Выбор инструментальных средств программирования прошивки микроконтроллера
Так как в данном проекте используется отладочная плата Arduino Uno выбор языка программирования для создания прошивки МК пал на С++ адаптированный специально для Arduino IDE, которая в свою очередь является родной средой разработки для данной платформы. Существует открытый фреймворк Wiring, который содержит в себе набор базовых функций для управления выводами микроконтроллера, математику и другие функции для управления устройством. Большинство инструментов/функций для создания программ под Ардуино состоят в этом фреймворке. Поэтому язык разработки для данного микрокомпьютера также называют Arduino Wiring, потому как он не является C++.
Разберем программное обеспечение для создания прошивки. Сама по себе аббревиатура IDE расшифровывается как Integrated Development Environment и представляет собой редактор для кода и механизм, который в последствии этот код компилирует по средствам препроцессора и компилятора. А также IDE загружает итоговую программу на саму плату. Arduino IDE создана по средствам java и из-за этого не отличается большой скоростью работы. Данный софт довольно долго запускается так как занимает большой объем оперативной памяти компьютера. Также к ее недостаткам можно отнести отсутствие дерева файлов как в иных средах программирования, отсутствие рефакторинга кода, и невозможность авто дополнения вводимых команд. Все это конечно замедляет работу, но среди всех этих недостатком есть неоспоримый плюс Arduino IDE, который превосходит все остальное. Это официальная поддержка и выпуск новых версий программ от производителя. При том, что сама по себе программа распространяется бесплатно.
Если рассматривать конкурентов, то можно найти среди них как программы более высокого уровня, так и обратное:
1) Один из вариантов, это использовать продвинутые блокноты такие как Notepad++/Sublime Text/Visual Studio Code для редактирования кода и запуска уже через Arduino IDE. Удобно тем, что данные блокнот обладают всеми современными функциями, не удобно - работа сразу в двух отдельных программах.
2) Если рассматривать полноценные IDE, то можно обратиться к PlatformIO. Она имеет возможность автоматически прописывать начатую команду, но при этом лишена функции по конфигурации проекта. Более того в данном ПО могут часто встречаться проблемы по интеграции с библиотеками.
3) Programino IDE - отвечает всем требованиям проекта, но распространяется на коммерческой основе, что значительно снижает все ее остальные преимущества.
4) Другая IDE, подходящая для разработки прошивок, это MariaMole. В ней сосредоточенно как большое количество багов, так полезных фишек.
5) B4R дает возможность Basic программистам разрабатывать код не меняя специализацию. Но данный подход не является общепринятым в сообществе и поэтому не подходит.
6) Visual Studio Micro плагин для более известной Microsoft Visual Studio. Данный софт является серьезным конкурентом для официальной среды разработки Arduino.
7) XOD - не стандартный подход к программированию. Код представляется виде блоков (нод). Подразумевает за собой дополнительное время на изучение данной концепции
8) Atmel Studio программа для прямой работы с микроконтроллерами компании AVR. Сочетает в себе отсутствие вспомогательных функций как Arduino IDE, но при том дает более тонко конфигурировать проект.
Проанализировав возможные решения по реализации кода прошивки микроконтроллера была выбрана оригинальная для платформы Arduino программа c одноименным названием Arduino IDE.
Цифровой интерфейс АЦП
После выбора инструментов программирования необходимо углубиться в особенности работы прошивок с аналого-цифровым преобразователем AD7705.
Программируемые функции AD7705 управляются с помощью набора встроенных регистров. Данные записываются в эти регистры через последовательный интерфейс, который также обеспечивает доступ на чтение регистрами. Вся связь с деталями должна начинаться с операции записи в регистр связи. После включения питания или сброса устройства ожидается запись в собственные регистры связи. Данные, записанные в эти регистры, определяют, является ли следующая операция операцией чтения или записи и с каким регистром происходит эта операция. Таким образом доступ на запись в регистр на любой части начинается с операции записи в регистр связи, а затем записи в выбранный регистр. Аналогично, операция чтения из любого регистра, включая регистр выходных данных, начинается с операции записи в регистр связи, за которой следует операция чтения из выбранного регистра.
Последовательные интерфейсы AD7705 состоят из пяти сигналов: CS, SCLK, DIN, DOUT и DRDY. DIN используется для передачи данных в регистры на кристалле, а DOUT для доступа к данным из регистров на кристалле. SCLK это пин входного синхроимпульса для передачи по последовательному интерфейсу. Вся передача данных на DIN или DOUT проходит связанно с импульсами на SCLK. DRDY используется в качестве сигнала состояния для указания того, когда данные готовы к считыванию из регистров данных AD7705. DRDY проходит внизу, когда новое значение данных доступно в выходном регистре. Он сбрасывается наверх, когда операция чтения из регистра данных завершена.
Он также идет вниз до обновления выходного регистра, указывая не читать с устройства, чтобы гарантировать, что чтение данных не предпринимается во время обновления регистра. CS используется для выбора устройства. Его можно использовать для декодирования AD7705 / AD7706 в системах, где ряд деталей подключен к последовательной шине.
Рисунок 5 Диаграмма таймингов цикла чтения
Рисунок 6 Диаграмма таймингов цикла записи
На рис. 5 и рис. 6 показаны временные диаграммы для взаимодействия с AD7705, с CS используется для декодирования частей. На рис. 5 показана операция чтения из AD7705 выходного регистра сдвига, а на рис. 6 показана операция записи на вход регистра сдвига. Возможно прочитать такие же данные дважды от регистра выхода, даже если линия DRDY возвращает максимум после первой прочитанной операции. Однако необходимо позаботиться о том, чтобы операция чтения была завершена до следующего обновления выходных данных.
Последовательный интерфейс AD7705 может работать в 3-проводном режиме, связывая вход CS низким таймингом. В этом случае линии SCLK, DIN и DOUT используются для связи с AD7705, а данные с DRDY можно получить путем опроса MSB регистра связи. Данная схема подходит для сопряжения с микроконтроллерами. Если CS требуется в качестве сигнала декодирования, он может быть сгенерирован из бита порта. Для интерфейсов микроконтроллера рекомендуется, чтобы SCLK работал на холостом ходу между передачами данных.
AD7705 можно также эксплуатировать с CS используемым как сигнал синхронизации рамки. Эта схема подходит для интерфейсов DSP. В этом случае первый бит (MSB) эффективно синхронизируется CS, потому что CS обычно происходит после падения края SCLK в интерфейсах DSP. SCLK может продолжать работать между передачами данных при условии, что номера синхронизации соблюдаются.
Последовательный интерфейс можно сбросить, выполнив вход сброса.
Он также может быть сброшен путем записи серии 1S на входной DIN. Если логика 1 записывается в линию AD7705 DIN не менее 32 последовательных тактов, последовательный интерфейс сбрасывается. Это гарантирует, что в 3-проводных системах, если интерфейс потерян из-за ошибки программного обеспечения или сбоя в системе, он может быть сброшен в известное состояние. Это состояние возвращает интерфейс туда, где AD7705 ожидают операции записи в свои регистры связи. Операция сама по себе не сбрасывает содержимое каких-либо регистров, но нужно производить настройку всех регистров снова, потому что информация, записанная в регистры, неизвестна из-за потери интерфейса.
Некоторые последовательные интерфейсы микропроцессора или микроконтроллера имеют одну последовательную линию данных. В этом случае можно подключить данные AD7705 и данные в строках вместе и подключить их к одной строке данных процессора. Подтягивающий резистор 10 кОм должен быть использован на этой одиночной линии данных. В этом случае, если интерфейс потерян, процедура сброса его обратно в известное состояние несколько отличается от описанной ранее, поскольку операции чтения и записи разделяют одну и ту же строку. Вместо этого требуется операция чтения 24 последовательных синхроимпульсов, за которой следует операция записи, где логика 1 записывается по крайней мере для 32 последовательных тактов, чтобы гарантировать, что последовательный интерфейс сбрасывается в известное состояние.
Настройка AD7705
AD7705 содержит шесть встроенных регистров, к которым можно получить доступ через последовательный интерфейс. Связь с любым из этих регистров начинается с первой записи в регистр связи. На рис. 7 показана блок-схема последовательности, используемой для настройки регистров после включения питания или сброса на AD7705;
Рисунок 7 Блок-схема для настройки и считывания с AD7705
Кроме того, на рис.7 показан ряд символов, которые следует записать в регистры для следующих условий работы: усиление 1, отсутствие синхронизации фильтра, биполярный режим, буфер выкл., тактовая частота 4,9512 МГц и выходная частота 50 Гц.
Интерфейс микроконтроллера
Гибкий последовательный интерфейс AD7705 позволяет легко взаимодействовать с большинством микрокомпьютеров и микропроцессоров.
Последовательный интерфейс способен работать от 3 проводов и совместим с протоколами интерфейса SPI. 3-проводная операция делает эти части идеальными для изолированной системы, в которой минимизация количества интерфейсных линий минимизирует количество оптико-изоляторов, необходимых в системе. Время подъема и падения других цифровых входов AD7705 не должно превышать 1 мкс.
Большинство регистров на AD7705 являются 8-разрядными регистрами, что облегчает взаимодействие с 8-разрядными последовательными портами микроконтроллеров. Регистр данных на AD7705 составляет 16 бит, а регистры смещения и усиления-24 бит, но передача данных в эти регистры может состоять из нескольких 8-битных передач в последовательный порт микроконтроллера. Процессоры DSP и микропроцессоры обычно передают 16 бит данных в последовательной операции передачи данных. Поскольку некоторые регистры в AD7705 имеют длину всего 8 бит, последовательные операции записи в два из этих регистров могут обрабатываться как одна 16-разрядная передача данных. Например, чтобы обновить регистр установки, процессор должен записать в регистр связи, чтобы указать, что следующая операция является записью в регистр установки, а затем записать 8 бит в регистр установки. Это может быть сделано в одной 16-разрядной передаче, потому что как только восемь последовательных синхроимпульсов операции записи в регистр связи завершены, эта часть немедленно настраивается для операции записи в регистр установки.
Алгоритм для конфигурации AD7705
В этом разделе показан алгоритм для сопряжения микроконтроллера Atmega328 с AD7705.
Примерная программа настраивает различные регистры на AD7705 и считывает 1000 образцов из одного канала в Atmega328. Условия установки со стороны такие же, как описано для схемы на рис. 7. В приведенном здесь примере кода вывод DRY опрашивается, чтобы определить, доступно ли новое допустимое слово в регистре данных.
Последовательность событий в этой программе:
1) Запись в регистр связи, выбор канала 1 в качестве активного канала и настройка следующей операции для записи в регистр часов
2) Запись в регистр тактового канала, установка в бит CLKDIV, который делит внешний тактовый канал на два внутренних. Это предполагает, что внешний кристалл составляет 4,9512 МГц. Частота обновления выбирается равной 50 Гц.
3) Запись в регистр связи выбор канала 1 в качестве активного канала и настройка следующей операции для записи в регистр установки.
4) Запись в регистр установки, устанавливая увеличение до 1, устанавливая биполярный режим, буфер, очищая синхронизацию фильтра, и начиная калибровку.
5) Опрос вывода DRDY.
6) Чтение данных из регистра данных.
7) Повторение шагов 5 и 6 (цикл) до тех пор, пока не будет взято заданное количество образцов из выбранного канала.
Библиотека AD7705/AD7706
Для взаимодействия с АЦП с микроконтроллером в работе используется специальная библиотека, которая подключается во время загрузки скетча на устройство. Она была несколько модифицирована, для более удобной работы с ней. Библиотека работает в своем базовом состоянии, но для этого требуется углубленные знания базового чипа, что несколько затрудняет ее использование. Большинство проблем можно решить, отрегулировав время в пользовательском коде, но это весьма сложно для пользователей, которые не знакомы с чипом. Было решено добавить следующие функции, которые призваны облегчить использование библиотеки.
Одним из изменений исходного кода является добавление функции готовности данных. Эта функция запрашивает бит в регистре связи и возвращает true, когда бит готовности данных очищается.
Используя эту функцию, осуществляется задержка, пока преобразованные данные будут готовы, прежде чем считывать результат преобразования (без использования оператора delay):
В ReadADResult добавлен дополнительный параметр refOffset смещения. Если Vref-не привязан к земле, можно использовать эту переменную для установки напряжения смещения, которое будет вычитаться из результата преобразования. Режим работы по умолчанию - биполярный. Для AD7705 и AD7706 разница между униполярной и биполярной работой заключается в том, как ссылается входной сигнал, поэтому, установив режим ввода на биполярный, все равно можно измерять униполярные напряжения. Все, что нужно, это привязать Vref - к земле и оставить refOffset со значением по умолчанию (т. е. 0).
Также добавлена функция сброса reset. Вызывая эту функцию сначала в коде настройки, гарантированно чип приводится в известное состояние. Некоторые из трудностей, с которыми сталкиваются при использовании оригинальной библиотеки, заключаются в том, что в зависимости от того, как работает система, AD770x может быть не в согласованном режиме, и поэтому результаты A/D кажутся случайными. Сброс микросхемы может быть достигнут с помощью пин-кода RESET или кода возврата. Реализация в коде является желаемым методом, если не нужна максимальная производительность. Еще одним преимуществом является то, что эта реализация требует на один вывод MCU меньше, чем стандартная библиотека AD770X.
Подобные документы
Разработка аппаратно-программного комплекса для осуществления идентификации объектов управления на основе вещественного интерполяционного метода. Анализ работоспособности аппаратно-программного комплекса, пример идентификации объекта управления.
магистерская работа [2,2 M], добавлен 11.11.2013Системно–алгоритмическая модель аппаратно–программного комплекса автоматического контроля параметров микроклимата теплицы. Программная реализация работы клавиатурной матрицы, измерения влажности и 1-Wire интерфейса для связи с цифровым термометром.
дипломная работа [920,1 K], добавлен 02.02.2016Модели развертывания и облачные модели. Анализ существующих методов информационной безопасности. Обеспечение надежного шифрования данных при передаче их от пользователя к провайдеру услуг по хранению данных. Минимизация нагрузки на облачные сервисы.
дипломная работа [839,1 K], добавлен 17.09.2013Характеристика основных методов и средств моделирования мультиагентных систем. Ознакомление с результатами экспериментального тестирования и отладки программного комплекса. Рассмотрение методов оценки качества разработанного программного продукта.
дипломная работа [3,1 M], добавлен 27.10.2017Метод решения математической модели на примере решения задач аналитической геометрии. Описание согласно заданному варианту методов решения задачи. Разработка математической модели на основе описанных методов. Параметры окружности минимального радиуса.
лабораторная работа [310,6 K], добавлен 13.02.2009Анализ деятельности гостиницы. Структурный анализ бизнес-процесса на основе IDEF0-модели. Особенности построения инфологической и даталогической модели данных. Аспекты проектирования базы данных гостиницы с использованием программного языка Delphi.
курсовая работа [1,6 M], добавлен 15.02.2014Изучение основных видов угроз программного обеспечения. Выявление наиболее эффективных средств и методов защиты программного обеспечения. Анализ их достоинств и недостатков. Описания особенностей лицензирования и патентования программного обеспечения.
курсовая работа [67,9 K], добавлен 29.05.2013Алгоритмы и стандарты криптографических преобразований. Криптографические преобразования на основе специального программного обеспечения. Метод криптографических преобразований на основе жесткой логики. Аналоги модуля шифрования и дешифрования данных.
курсовая работа [971,6 K], добавлен 30.01.2018Систематизация теоретических и практических знаний в области проектирования автоматизированных систем объектов нефтегазовой отрасли. Выбор датчиков: уровнемера, сигнализатора, расходомера, температуры и вибрации. Нормирование погрешности канала измерения.
курсовая работа [1,1 M], добавлен 07.06.2015Рассмотрение основных понятий защиты информации в сетях. Изучение видов существующих угроз, некоторых особенностей безопасности компьютерных сетей при реализации программных злоупотреблений. Анализ средств и методов программной защиты информации.
дипломная работа [1,5 M], добавлен 19.06.2015