Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1697

.pdf
Скачиваний:
11
Добавлен:
29.06.2020
Размер:
1.25 Mб
Скачать

Рисунок 15 – Общая схема выводов на дозаторе

Благодаря проделанной работе появляется возможность управлять хи-

мическим дозатором, а так же используя аналогичный принцип использовать для подключения других устройств, что позволяет расширить функционал проекта и добавить модульность .

4.3 Изготовление платформы для элементов проекта

Так как в данном проекте не используется датчики и камеры, была из-

готовлена специальная платформа, благодаря которой все элементы закреп-

лены стационарно. В качестве основных сосудов использовались химическая посуда со специальными крышками, мензурка и урна. Выбор посуды был полностью согласован с лаборантами химических лабораторий, поэтому ко-

личество смешиваемых элементов равно четырем, так как редки случаи, ко-

гда смешивается более четырех элементов. Так же за счет использования по-

суд с притиркой для герметичного закрытия появляется возможность рабо-

 

 

Лист

 

ВКР. 155510.09.04.04.ПЗ

51

Изм. Лист № докум. Подпись Дата

 

тать с различными летучими и ядовитыми веществами. Данная функция уни-

кальна, так как имеющиеся аналоги не способны работать с подобной посу-

дой, за счет отсутствия манипулятора и захватывающей клешни для подоб-

ных операций. Схема расположения элементов продемонстрирована на ри-

сунке 16.

Рисунок 16 – Схема расположения элементов

В качестве используемого материала использовалось оргстекло, кото-

рое достаточно прочное для удержания всей посуд и манипулятора, а так же имеет малый вес, что облегчает конструкцию. Размер данной платформы предусматривает возможность установки дополнительных элементов, таким образом, чтоб в дальнейшем это не мешало перемещению дозатора.

Таким образом, используя статически расположенные объекты, уде-

шевляется стоимость проекта и облегчении все систем в целом. Одним из са-

мих проблемных моментов в подобных устройствах является компьютерное зрение, которые использует большую часть вычислительных ресурсов ком-

плекса, а так же может давать сбои в процессе работы

 

 

Лист

 

ВКР. 155510.09.04.04.ПЗ

52

Изм. Лист № докум. Подпись Дата

 

5 РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

5.1 Выбор среды разработки приложения для микроконтроллера

Для программирования микроконтроллеров существуют различные языки программирования, но наиболее подходящим являются ассемблер и Си, так как в этих языках реализованы все необходимые средства по управ-

лению аппаратными средствами.

Ассемблер - это низкоуровневый язык программирования, использу-

ющий непосредственный набор инструкций микроконтроллера. Создание программы на этом языке требует хорошего знания системы команд про-

граммируемого чипа и достаточного времени на разработку программы. Ас-

семблер проигрывает Си в скорости и удобстве разработки программ, но имеет заметные преимущества в размере конечного исполняемого кода, а,

соответственно, и скорости его выполнения.

Си позволяет создавать программы с большим комфортом, предоставляя разработчику все преимущества языка высокого уровня. Основные преимуще-

ства перед ассемблером: высокая скорость разработки программ; универсаль-

ность, не требующая досконального изучения архитектуры микроконтроллера;

лучшая документируемость и читаемость алгоритма; наличие библиотек функ-

ций; поддержка вычислений с плавающей точкой.

В языке Си гармонично сочетаются возможности программирования низ-

кого уровня со свойствами языка высокого уровня. Возможность низкоуровне-

вого программирования позволяет легко оперировать непосредственно аппарат-

ными средствами, а свойства языка высокого уровня позволяют создавать легко читаемый и модифицируемый программный код. Кроме того, практически все компиляторы Си имеют возможность использовать ассемблерные вставки для написания критичных по времени выполнения и занимаемым ресурсам участков программы.

Для программирования Ардуино применялся стандартный компилятор,

написанный на языке Java, который позволяет писать, тестировать и заливать прошивки, написанные на языке Си. При написании прошивок для платформы

 

 

Лист

 

ВКР. 155510.09.04.04.ПЗ

53

Изм. Лист № докум. Подпись Дата

 

используется видоизмененный язык Си с дополнительными библиотеками и встроенными функциями. Имеющиеся особенности позволяют, облегчают написание первых работоспособных программ.

Некоторые из особенностей:

программы, написанные программистом Ардуино, называют-

ся «наброски» и сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++;

обязательную в C++ функцию main() препроцессор Ардуино создает сам, вставляя туда необходимые «черновые» действия;

программист должен написать две обязательные для Ардуино функ-

ции setup() и loop(). Первая вызывается однократно при старте, вторая вы-

полняется в бесконечном цикле;

в текст своей программы (скетча) программист не обязан встав-

лять заголовочные файлы используемых стандартных библиотек. Эти заголо-

вочные файлы добавит препроцессор Ардуино в соответствии с конфигура-

цией проекта. Однако пользовательские библиотеки нужно указывать;

менеджер проекта Ардуино IDE имеет нестандартный механизм до-

бавления библиотек. Библиотеки в виде исходных текстов на стандартном

C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Програм-

мист отмечает нужные библиотеки и они вносятся в список компиляции;

ардуино IDE не предлагает никаких настроек компилятора и миними-

зирует другие настройки, что упрощает начало работы для новичков и уменьшает риск проблем.

Простейшая Ардуино-программа состоит из двух функций:

setup(): функция вызывается однократно при старте микроконтролле-

ра;

loop(): функция вызывается после setup() в бесконечном цикле все время работы микроконтроллера.

 

 

Лист

 

ВКР. 155510.09.04.04.ПЗ

54

Изм. Лист № докум. Подпись Дата

 

Таким образом программирование платформы не вызывает особых проблем. За счет своей особенности и простоты программист может реализо-

вать достаточно удобное и компактное решение для своей задачи.

5.2 Выбор среды разработки приложения для персонального ком-

пьютера.

В качестве среды разработки приложения на персональный компью-

тер был выбран Microsoft Visual Studio 2013. Одним из главных факторов является то что, данная среда позволяет создавать программное обеспече-

ние под операционные систем семейства Windows. Так как компилятор для микроконтроллера Ардуино работает непосредственно на операционной системе Windows, то необходимо использовать отладочную программу,

совместимую с данной операционной системой.

Также для стабильной работы необходимо использовать виртуальные

COM порты, так как это один из способов передачи данных на платформу микроконтроллера. Для удобства использования необходим интуитивный интерфейс, позволяющий управлять манипулятором и создавать файлы, по которым возможно повторить выполненные ранее действия.

Выбранная среда разработки позволяет компилировать написанный код, редактировать, помогает находить ошибки и интуитивно дополняет требуемые компоненты.

В качестве языка программирования приложения был выбран язык высокого уровня - C#. Выбранный язык предназначен для разработки са-

мых разнообразных приложений, предназначенных для выполнения в среде

.NET Framework. Язык C# прост, строго типизирован и объектно-

ориентирован. Благодаря множеству нововведений, C# обеспечивает воз-

можность быстрой разработки приложений, но при этом сохраняет вырази-

тельность и элегантность, присущую языкам C.

C# объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлс-

 

 

Лист

 

ВКР. 155510.09.04.04.ПЗ

55

Изм. Лист № докум. Подпись Дата

 

берга в компании Microsoft как язык разработки приложений для платфор-

мы Microsoft .NET Framework .

Visual C# является реализацией языка C# корпорацией Майкрософт. Visual Studio поддерживает Visual C# с полнофункциональным редактором кода, компилятором, шаблонами проектов, конструкторами, мастерами ко-

да, мощным и простым в использовании отладчиком и многими другими средствами. Библиотека классов .NET Framework предоставляет доступ ко многим службам операционной системы и другим полезным, правильным классам, что существенно ускоряет цикл разработки.

.NET Framework — программная платформа, выпущенная компанией

Microsoft. Основой платформы является общеязыковая среда исполнения

Common Language Runtime (CLR), которая подходит для разных языков программирования. Функциональные возможности CLR доступны в любых языках программирования, использующих эту среду.

Основной идеей при разработке .NET Framework являлось обеспече-

ние свободы разработчика за счёт предоставления ему возможности созда-

вать приложения различных типов, способные выполняться на различных типах устройств и в различных средах.

Вторым принципом стала ориентация на системы, работающие под управлением семейства операционных систем Microsoft Windows.

Программа для .NET Framework, написанная на любом поддерживае-

мом языке программирования, сначала переводится компилятором в еди-

ный для .NET промежуточный байт-код Common Intermediate Language..

Затем код либо исполняется виртуальной машиной Common Language

Runtime, либо транслируется утилитой NGen.exe в исполняемый код для конкретного целевого процессора. Использование виртуальной машины предпочтительно, так как избавляет разработчиков от необходимости забо-

титься об особенностях аппаратной части. В случае использования вирту-

альной машины, встроенный в неё JIT-компилятор преобразует промежу-

точный байт-код в машинные коды нужного процессора. Современная тех-

 

 

Лист

 

ВКР. 155510.09.04.04.ПЗ

56

Изм. Лист № докум. Подпись Дата

 

нология динамической компиляции позволяет достигнуть высокого уровня быстродействия. Виртуальная машина CLR также сама заботится о базовой безопасности, управлении памятью и системе исключений, избавляя разра-

ботчика от части работы.

Благодаря использованию данного программного обеспечения появля-

ется возможность использовать многопоточность. Многопоточность — свой-

ство платформы или приложения, состоящее в том, что процесс, порождён-

ный в операционной системе, может состоять из нескольких потоков, выпол-

няющихся «параллельно», то есть без предписанного порядка во времени.

При выполнении некоторых задач такое разделение может достичь более эф-

фективного использования ресурсов вычислительной машины.

5.3 Особенности программирования на ардуино

Платформа состоит из аппаратной и программной частей; обе чрезвы-

чайно гибки и просты в использовании.Программирование ведется целиком через собственную программную оболочку (IDE), бесплатно доступную с сайта Ардуино. В этой оболочке имеется текстовый редактор, менеджер про-

ектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер Микроконтроллер на плате программируется при помощи упрощенной версии С++, известной как язык Ардуино (основан на язы-

ке Wiring) и среды разработки Ардуино (основана на среде Processing).

Проекты устройств, основанные на Ардуино, могут работать самостоя-

тельно, либо же взаимодействовать с программным обеспечением на компь-

ютере. Платы могут быть собраны пользователем самостоятельно или купле-

ны в сборе. Программное обеспечение доступно для бесплатного скачивания.

Исходные чертежи схем (файлы CAD) являются общедоступными, пользова-

тели могут применять их по своему усмотрению. Поддерживаются операци-

онные системы Windows, MacOS X и Linux.

Закачка программы в микроконтроллер Ардуино происходит через предварительно запрограммированный специальный загрузчик. Загрузчик создан на основе Atmel AVR Application Note AN10 и может работать через

 

 

Лист

 

ВКР. 155510.09.04.04.ПЗ

57

Изм. Лист № докум. Подпись Дата

 

интерфейсы RS-232, USB или Ethernet в зависимости от состава периферии конкретной процессорной платы. В некоторых вариантах, таких как Ардуино

Mini или неофициальной Boarduino, для программирования требуется от-

дельный переходник. Пользователь может самостоятельно запрограммиро-

вать загрузчик в чистый микроконтроллер. Для этого в IDE интегрирована поддержка программатора на основе проекта AVRDude.

Для начала работ с данной платформой необходимо установить

Arduino IDE которая предназначена для программирования микроконтролле-

ра. Данную программу необходимо взять с официального сайта компании Ардуино. Так же можно использовать и другие программ, но предоставляе-

мое программное обеспечение омпании Ардуино наиболее пододит для дан-

ной задачи. Далее после установки необходимо установить драйвер для мик-

роконтроллера, который используется в проекте, в противном случае устройство не будет опознано.

После установки Arduino IDE необходимо соединить Arduino с компь-

ютером по USB-кабелю. На плате загорится светодиод «ON» и начнёт мигать светодиод «L». Это означает, что на плату подано питание, а микроконтрол-

лер начал выполнять прошитую на заводе программу «Blink» ,мигание све-

тодиодом.

Чтобы настроить Arduino IDE на работу с конкретной платой Arduino,

необходимо узнать, какой номер COM-порта присвоил компьютер данной платформе. Для этого необходимо зайти в «Диспетчер устройств» Windows и

раскрыть вкладку «Порты (COM и LPT)». В дальнейшем можно изменить номер порта, для подключения других устройств использующий подобный вид подключения к персональному компьютеру.

Благодаря тому, что используется данный способ подключения, появ-

ляется возможность удобного управления платформой, а так же возможность получать данные. На рисунке 17 изображен требуемый COM-порт.

 

 

Лист

 

ВКР. 155510.09.04.04.ПЗ

58

Изм. Лист № докум. Подпись Дата

 

Рисунок 17 – Выбор COM-порта

Она означает, что операционная система распознала нашу плату

Arduino как COM-порт, подобрала для неё правильный драйвер и назначила этому COM-порту номер 2. Если мы подключим к компьютеру другую плату

Arduino, операционная система назначит ей другой номер. Если у вас не-

сколько плат Arduino, очень важно не запутаться в номерах COM-портов. Ес-

ли после подключения не появилось данная запись, это говорит о том, что возможно вышла из строя сама платформа ардуино или возможно поврежден кабель передачи данных. Так же возможен вариант блокировки данного устройства операционной системой.

Далее необходимо выбрать необходимый порт и платформу для про-

граммирования в Arduino IDE. Так же есть возможность изменить загрузчик для плат в самом компиляторе.

Для проверки платы, рекомендуется продемонстрировать решение ка-

кой либо задачи, так имеется пример для моргания светодиодом, после за-

грузки, которого у нас так же должен продолжать моргать светодиод.

5.4 Разработка алгоритма работы программного обеспечения на

микроконтроллере

Для удобства управления манипулятором необходимо было разрабо-

тать универсальное программное обеспечение микроконтроллера, которое

 

 

Лист

 

ВКР. 155510.09.04.04.ПЗ

59

Изм. Лист № докум. Подпись Дата

 

позволит управлять каждой степенью отдельно, а так же принимать команды непосредственно с компьютера.

Управление через компьютер производится через команды, которые передаются в COM порт, где в дальнейшем интерпретируются и выполняют-

ся определенные команды. Таким образом, появляется возможность управле-

ния всеми степенями свободы манипулятора и самим дозирующим устрой-

ством.

Для стабильности работы и структурности программы использовались специальные обозначения, которые позволяют определить объект управле-

ния. После определения объекта необходимо передать параметр, на которые требуются переместиться или выполнить действия. Таким образом, получа-

ется, различить движение каждого сервомотора и управления дозатором.

В качестве входной информации использовался протокол с четырьмя характеристиками, которые передают тип управления, номер мотора, требу-

емый градус и задержка при повороте сервомотора. Таким образом, исполь-

зуя данный проток можно увеличить функционал путем добавления допол-

нительных степеней свобод или добавить дополнительное оборудование и используя 3 характеристики производить управления. Данное решение предусматривает модульность, что улучшает восприятие программного обеспечения для микроконтроллера.

Так же используется библиотека EEPROM.h, которая дает возможность сохранять значения имеющееся на дозаторе на энергонезависимую память,

что позволяет помнить значения после полного отключения питания. Также имеется возможность калибровать значения, хранящиеся в энергонезависи-

мой памяти. Данная функция необходима для того чтоб сохранять значения дозатора после отключения питания. Так как сам микроконтроллер не спосо-

бен запоминать данную информацию используя специализированный чип Для управления сервомоторами была использована стандартная биб-

лиотека Servo.h. Для поворота использовалась встроенная команда, которая поворачивает сервомотор на заданный градус. Для удобства управления была

 

 

Лист

 

ВКР. 155510.09.04.04.ПЗ

60

Изм. Лист № докум. Подпись Дата

 

Соседние файлы в предмете Основы мехатроники