Реализация системы сбора и обработки информации с аналоговых и цифровых датчиков на платформе Arduino
Морозов Александр Дмитриевич,
техническое отделение,
специальность: Компьютерные системы и комплексы, IV курс
Научный руководитель: Сохатюк Ю.В.,
Почетный работник СПО,
преподаватель ПЦК информационных и офисных технологий ГБПОУ «СПЭТ»
"Наука начинается с тех пор, как начинают измерять..."
Д.И. Менделеев
Аннотация:в данной статье приведен краткий исторический обзор развития автоматизации измерений, описана платформа Arduino и программные средства, использованные при реализации системы сбора и обработки информации с цифровых и аналоговых датчиков на платформе Arduino, приведены результаты работы и показаны области практического применения разработанной системы.
Ключевые слова:система сбора и обработки информации, Arduino, микроконтроллер.
В век информационных технологий и автоматизации производства одним из важных пунктов повышения скорости и стабильности производственного процесса является внедрение компьютеров и микропроцессоров в общую схему рабочего комплекса. Используя компьютерные программы, мы можем добиться автономности процесса сбора и анализа данных с цифровых и аналоговых датчиков. Объединив различные цифровые и аналоговые датчики и компьютер, мы сможем контролировать производственные или исследовательские процессы, делать различные наблюдения, формировать отчеты за отдельные промежутки времени и свободно оперировать базами данных другими интересными и выгодными для нас способами.
В связи с вышесказанным требуется разработать и смоделировать систему сбора и обработки информации с аналоговых и цифровых датчиков, которая должна обеспечить сбор информации, хранение, доступ к ней пользователя посредством веб-интерфейса. Мы предполагаем, что такая система может быть реализована на платформе Arduino.
Современная микропроцессорная техника является важнейшим средством при решении самых разнообразных задач в области сбора и обработки данных, систем автоматического управления и др. Знания в этой области становятся необходимыми все более широкому кругу специалистов.
Микропроцессорная техника в науке и технике, промышленности, сельском хозяйстве, военной отрасли, быту и других областях жизнедеятельности человека становится все более востребованной. Практически любая электронная система, обладающая достаточной функциональной сложностью, реализуется с помощью микропроцессорных устройств.
Микроконтроллеры являются наиболее массовым представителем микропроцессорной техники. Интегрируя на одном кристалле высокопроизводительный процессор, память и набор периферийных устройств, микроконтроллеры позволяют с минимальными затратами реализовать широкую номенклатуру систем управления различными объектами и процессами.
Использование микроконтроллеров в системах управления и обработки информации обеспечивает исключительно высокие показатели эффективности при достаточно низкой стоимости. Микроконтроллерам практически нет альтернативы, когда нужно создать качественные и дешевые системы [1].
Необходимость измерения огромного количества разнообразных физических величин потребовала разработки средств измерений, позволяющих получать необходимую информацию без непосредственного участия человека, т.е. выполняющих измерения автоматически. Автоматизация позволяет обеспечить:
- сбор измерительной информации в местах, недоступных для человека;
- длительные, многократные измерения;
- одновременное измерение большого числа величин;
- измерение параметров быстропротекающих процессов;
- измерения, характеризующиеся большими массивами информации и сложными алгоритмами ее обработки.
Следует различать полную и частичную автоматизацию. Процесс измерения, при котором обратная связь управления осуществляется без участия человека, называется автоматическим. Если оператор является одним из звеньев в цепи получения измерительной информации – речь идет об автоматизированных измерениях.
Создание автоматических систем измерений требует не только высокого уровня знаний о средствах измерений, но и тех задач, которые решаются при приеме и обработке измерительной информации, умения заложить оптимальную программу измерений и дать правильное толкование результатов измерения. Автоматические средства измерений в процессе своего развития прошли ряд этапов становления.
На первом этапе развития автоматизации подвергались лишь средства сбора измерительной информации и ее регистрации на аналоговых индицирующих и регистрирующих устройствах. Обработку результатов измерений и выработку соответствующих решений и исполнительных команд осуществлял оператор. В подобных системах управления объектом средства измерений представляли собой набор отдельных измерительных приборов. В результате при измерении большого числа параметров объекта оператор был не в состоянии охватить всю полученную информацию и принять оптимальное решение по управлению объектом. Это приводило к расширению штата обслуживающего персонала, к снижению надежности и качества управления и возрастанию эксплуатационных расходов.
На втором этапе все возрастающие требования к средствам измерений, обусловленные интенсификацией потоков измерительной информации, привели к созданию информационно-измерительных систем. В отличие от измерительного прибора информационно-измерительная система обеспечивает измерение большого количества параметров объекта и осуществляет автоматическую обработку получаемой информации с помощью встроенных в систему вычислительных средств. В задачу оператора системы управления теперь стали входить только принятие решений по результатам измерений и выработка команд управления. Централизованный сбор информации и ее обработка с помощью средств вычислительной техники резко повысили производительность труда, но не освободили человека от ответственности за управление объектом, обслуживаемого системой.
На третьем этапе развития появились информационно-управляющие системы и информационно-вычислительные комплексы, в которых осуществляется полный замкнутый цикл обращения информации от ее получения до обработки, принятия соответствующих решений и выдачи команд управления на объект без участия оператора. Главное достоинство таких систем заключается в том, что алгоритм работы систем стал программно-управляемым, легко перестраиваемым при изменении режимов работы или условий эксплуатации объекта. Труд оператора сводится к диагностике состояния системы управления, разработке методик измерения и программ функционирования. Выделение этапов развития СИ является приближенным и зависит от тех направлений науки и техники, в которых исследуются вопросы применения измерительной техники.
Типовая схема автоматизированных измерений изображена на рис.1.
Объектом измерения может быть некоторый процесс, явление или устройство. Измеряемые величины воспринимаются датчиками, с выходов которых электрические сигналы поступают на коммутатор. Коммутатор повышает коэффициент использования измерительной установки при многоканальных измерениях. Опрос датчиков может быть циклическим (параметры однородны и стационарны), программным (параметры стационарны, но неоднородны) или адаптивным (параметры нестационарны). Электрический сигнал с выбранного коммутатором датчика преобразуется в цифровой код в АЦП. Интерфейс обеспечивает сопряжение измерительного канала с ЭВМ (компьютер). Далее измерительная информация подвергается обработке по заданной программе в ЭВМ и представляется в удобной форме на экране дисплея или отпечатанной на бумаге. База данных (БД) предназначена для хранения необходимой измерительной и справочной информации.
Рис. 1 Обобщенная структурная схема процесса автоматизированного измерения
ЦАП используется для двух целей: представление результатов измерений в аналоговой форме с дальнейшим их преобразованием в графическую форму и преобразования команд ЭВМ в аналоговые сигналы с целью управления объектом измерений. Канал управления позволяет активно воздействовать на объект (нагревать, охлаждать, облучать, деформировать, перестраивать), следя одновременно за реакцией его на эти воздействия. Наличие ЭВМ позволяет производить вычислительный эксперимент [2].
Добиться реализации такого подхода к автоматизации наблюдений можно различными способами, используя разные вычислительные устройства и микроконтроллеры. В нашем случае целесообразно использовать отдельное устройство на базе платформы Arduino как "прослойку" между датчиками и компьютером. Программа, зашитая в микроконтроллер на плате Arduino, будет выполнять сбор данных с датчиков, который будет обеспечиваться специальными программными функциями и командами. Компьютер же по специальному протоколу будет запрашивать данные у Arduino и, получив их, записывать в базу данных. Так же компьютер будет обеспечивать взаимодействие пользователя с базой данных. Таким образом, весь массив сенсоров и программную оболочку для ПК мы сможем объединить благодаря Arudino, подключив плату к COM-порту ПК.
Arduino – это инструмент для проектирования электронных устройств (электронный конструктор) более плотно взаимодействующих с окружающей физической средой, чем стандартные персональные компьютеры, которые фактически не выходят за рамки виртуальности. Это платформа, предназначенная для «physicalcomputing» с открытым программным кодом, построенная на простой печатной плате с современной средой для написания программного обеспечения.
Arduino применяется для создания электронных устройств с возможностью приема сигналов от различных цифровых и аналоговых датчиков, которые могут быть подключены к нему, и управления различными исполнительными устройствами. Проекты устройств, основанные на Arduino, могут работать самостоятельно или взаимодействовать с программным обеспечением на компьютере (напр.: Flash, Processing, MaxMSP). Платы могут быть собраны пользователем самостоятельно или куплены в сборе. Среда разработки программ с открытым исходным текстом доступна для бесплатного скачивания.
Язык программирования Arduino является реализацией Wiring, схожей платформы для «physicalcomputing», основанной на мультимедийной среде программирования Processing.
Существует множество микроконтроллеров и платформ для осуществления «physicalcomputing». ParallaxBasicStamp, Netmedia'sBX-24, Phidgets, MIT'sHandyboard и многие другие предлагают схожую функциональность. Все эти устройства объединяют разрозненную информацию о программировании и заключают ее в простую в использовании сборку. Arduino, в свою очередь, тоже упрощает процесс работы с микроконтроллерами, однако имеет ряд преимуществ перед другими устройствами для преподавателей, студентов и любителей:
Низкая стоимость – платы Arduino относительно дешевы по сравнению с другими платформами. Самая недорогая версия модуля Arduino может быть собрана в ручную, а некоторые даже готовые модули стоят меньше 50 долларов.
Кросс-платформенность – программное обеспечение Arduino работает под ОС Windows, MacintoshOSX и Linux. Большинство микроконтроллеров ограничивается ОС Windows.
Простая и понятная среда программирования – среда Arduino подходит как для начинающих пользователей, так и для опытных. Arduino основана на среде программирования Processing, что очень удобно для преподавателей, так как студенты работающие с данной средой будут знакомы и с Arduino.
Программное обеспечение с возможностью расширения и открытым исходным текстом – ПО Arduino выпускается как инструмент, который может быть дополнен опытными пользователями. Язык может дополняться библиотеками C++. Пользователи, желающие понять технические нюансы, имеют возможность перейти на язык AVRC на котором основан C++. Соответственно, имеется возможность добавить код из среды AVR-C в программу Arduino.
Аппаратные средства с возможностью расширения и открытыми принципиальными схемами – микроконтроллеры ATMEGA328P и ATMEGA168 являются основой Arduino. Схемы модулей выпускаются с лицензией CreativeCommons, а значит, опытные инженеры имеют возможность создания собственных версий модулей, расширяя и дополняя их. Даже обычные пользователи могут разработать опытные образцы с целью экономии средств и понимания принципов работы [3].
Таким образом, Arduino становится отличным средством для проектирования модели будущего устройства. Наличие доступных программных библиотек, подключение датчиков и периферийных устройств становится достаточно простой задачей. C-подобный синтаксис языка программирования Arduino дает низкий входной порог в разработку устройств на базе этой платформы.
Что касается реализации программной части для ПК, то от приложения требовалось получать и обрабатывать данные с Arduino, сохранять данные в БД и загружать их, а так же взаимодействовать с пользователем посредством веб-интерфейса. Для решения поставленной задачи был выбран язык программирования Python.
Python – объектно-ориентированный язык сверхвысокого уровня. Python, в отличие от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на объектно-ориентированный.
В Python имеются исключения и механизм их перехвата; таким образом, программист может построить правильную обработку ошибок и создать надежную программу. Встроенные механизмы интроспекции позволяют опрашивать интерфейсы объектов во время выполнения программы.
Из современных языков Python можно сравнить в первую очередь с Java и Perl. Python выполняет все обещания, которые дала, но не выполнила Java. Python очень хорошо переносим, в отличие от Java он работает практически на любой платформе. Мы не говорим про UNIX и Windows, конечно - с точки зрения переносимости куда интереснее такие платформы как Mac, Amiga, Palm, RiscOS, AS/400 и многие другие. В сравнении с Perl, Python как язык ему совершенно равномощен, но избавлен от великого множества неприятностей и неудобств, присущих Perl. Python включает в себя богатую стандартную библиотеку и поддерживает возможность подключения множества модулей, доступных в Интернете [3].
Выбрав Python в качестве основного языка разработки программной части для ПК, мы обеспечили ее кроссплатформенность, надежность, возможность поддержки и расширения функционала в будущем.
Основной функционал приложения обеспечивается несколькими основными модулями Python, среди которых:
1. PySerial для обеспечения обмена данными между ПК и Arduino посредством COM-порта;
2. SQLAlchemy для работы с базой данных в формате SQLite;
3. Tornado как веб-фреймворк для обеспечения взаимодействия пользователя с приложением.
В итоге было разработано устройство, представленное на схеме (рис 2).
Рис. 2 Структурная схема устройства
Устройство работает по следующему принципу: данные с датчиков поступают на Arduino по запросу через заданный промежуток времени (см. рис 3). Далее, от ПК Arduino получает запрос по серийному порту и отсылает показания датчиков на компьютер, который записывает информацию в базу данных. Кроме того, обеспечивает веб-интерфейс для доступа к базе данных.
Рис. 3 Алгоритмы работы программ
Помимо представленных в схеме датчиков, имеется возможность расширять их номенклатуру и количество без существенной доработки конструкции и программы.
В процессе выполнения курсового проекта был собран и испытан экспериментальный макет разработанной системы. Результаты испытания позволяют сделать вывод, что разработанная система сбора и обработки данных с цифровых и аналоговых датчиков на платформе Arduino, полностью соответствует перечисленным требованиям.
Разработанное устройство может быть использована для удаленного мониторинга в системах метеонаблюдений, контроля и управления технологическими процессами.
Список литературы:
1. Микропроцессорные системы [Электронный ресурс]: электрон. учеб. пособие / О.В. Непомнящий, Е.А. Вейсов, Г.А. Скотников, М.В. Савицкая. – Электрон. дан. (4 Мб). – Красноярск: ИПК СФУ, 2009.
2. Парахуда Р.Н., Шевцов В.И. Автоматизация измерений и контроля: Письменные лекции. – СПб, СЗТУ, 75 с, [Электронный ресурс]:// http://windows.edu.ru/resource/490/40490/files/145.pdf
3. Что такое Ардуино? [Электронный ресурс]:// http://www.arduino.ru/About
4. Что такое Python и с чем его едят – Программные продукты [Электронный ресурс]:// http://www.interface.ru/home.asp?artId=2020
Для заметок
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________