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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 06.06.2013
Размер файла 5,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

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

1. Анализ систем управления зерноуборочных комбайнов

1.1 Технологические процессы в зерновом производстве сельского хозяйства

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

Таким образом, обобщённая и укрупнённая блок-схема техпроцесса представлена на рис. 1. В данной блок-схеме не учтены процессы полива и уничтожения вредителей, которые производятся вне системы автоматизации, по необходимости. Этапы «получение данных для ТП» и «получение данных по ТП» включают в себя получение и применение настроек от внешней ситстемы планирования и отправку статистических данных о проведённых работах соответственно.

Подпроцесс распашки можно представить блок-схемой, показанной на рисунке 2. На этапе движения к месту работы комбайн движется под управлением водителя и оставляется им у кромки поля с наиболее удобной для подъезда стороны. После этого включается режим автоматического движения по маршруту (с выполнением необходимых действий, т.е. поднятие / погружение прицепного плуга в почву). Координаты и положение в пространстве комбайна вычисляются при помощи бортовой системы навигации.

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

Рис. 1 - Блок-схема техпроцесса распашки поля с последующим посевом и уборкой зерна

Рис. 2 - Подпроцесс распашки поля

Таким образом, маршрут движения комбайна по полю генерируется заранее системой планирования на основе навигационных данных и данных о данном поле (карты высот, границ поля, типа почв), а маршрут движения от точки доставки до точки старта - на месте выполнения работ, сразу после доставки комбайна. В процессе движения, происходит постоянная корректировка маршрута по навигационным координатам и по данным навесных внешних датчиков (для определения недоступных для обнаружения навигационными системами препятствий). Основные типы маршрутов распашки представлены ниже[4]:

Рис. 3 - Основные траектории движения при распашке поля

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

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

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

1.2 Анализ технических средств автоматизированного управления сельхозтехникой

В мире существует большое количество систем автоматизации комбайнов для зернового сельхозпроизводства. Однако, все подобные системы являются всего лишь с/х автопилотами-то есть, они обеспечивают движение комбайна (либо иной сельхозтехники по прямой из двух точек. Это сделано для общего удешевления производства и применения на сельскохозяйственном производстве разделения сельхозугодий на поля по геометрическому методу, а не по контурному (по карте высот), вследствие высокой цены на составление подобной карты на исследования.

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

Система Trimble основана на приборе EZ - Guide, который сочетает в себе свойства бортового компьютера и навигационной системы. На рисунке 65 показана комплектация системы и её компоненты.

EZ - Guide - комбинированный прибор, который объединил в себе графический легко считываемый экран (даже при ярком солнечном свете) и светодиодный линейный курсопоказатель, не затеняет обзор для водителя. Курсопоказатель обеспечивает управление техникой по требуемой траектории, а графический дисплей облегчает ориентацию управления при разворотах и при движении по криволинейной траектории.

Рис. 4 - Комплектация системы Trimble и ее компоненты

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

Как и ее аналоги, данная система предназначена для следующих операций:

· вспашка (Опционально);

· сев яровых и озимых (Опционально);

· опрыскивание;

· разбрасывание удобрений;

· внесение жидких удобрений.

Рис. 5 - Система параллельного вождения компании TeeJet

Повысить эффективность с новым бортовым компьютером Leica mojo3D от Leica Geosystems. Понятный в использовании, новый Leica mojo3D сочетает в себе 18-ти сантиметровый цветной сенсорный экран с уникальным 3D-изображением и понятным графическим меню. И главное - компьютер надежно защищенный крепким пыле-влагостойким металлическим корпусом.

Рис. 6 - Схема работы системы Leica Geosystems

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

1.3 Анализ методов управления автоматизированным зерноуборочным комбайном

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

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

2) Управление рабочими органами зерноуборочного комбайна соответственно программе движения на данном участке траектории.

Для решения первой задачи необходимо построить опорную траекторию на основании геоинформационной навигационной системы GPS. Выбор данной системы обусловлен тем, что в лидирующих в данной области системах GPS и ГЛОНАСС для точного земледелия не хватает точности. В системе GPS сигнал «режется» из соображений оборонного характера правительством США, а в системе ГЛОНАСС просто не хватает спутников в орбитальной группировке для более точного позиционирования. Однако, если в случае c GPS возможно использовать дифференциальные станции, то же оборудование для ГЛОНАСС результата не даст ввиду малого количества источников измерений (спутников). Секрет получения высокой точности состоит в том, что с помощью приемника, помещенного на местности в точке с заранее точно определенными координатами, можно вычислить погрешности, возникающие в дальномерных спутниковых сигналах. Получается как бы новая точка отсчета, из которой можно передавать сигналы коррекции на любые другие приемники GPS, находящиеся вместе с опорным в некоторой ограниченной области, для которой погрешности одинаковы.

Рис. 7 - Дифференциальная система коррекции сигнала GPS

В общем систему движения можно представить так: посредством данных GPS для системы управления строится опорная траектория, которая состоит из прямых отрезков, соединяющих точки излома траетории движения на обрабатываемом поле. Во время движения, система посредством датчиков обнаруживает препятствия (яма, бревно и т.п.), и корректирует маршрут, превращая движение по прямой в движение по ломанной траектории [6]. Функциональную схему автоматической системы управления движением можно представить так:

Блок «Система ориентации и навигации» предназначен для определения положения объекта в пространстве. Физически данная система состоит из GPS-приемника и GPS-антенны. На данный момент для гражданских пользователей уже достигнута точность определения координат метра. При использовании дифференциального способа измерения координат с использованием GPS точность позиционирования может достичь метра.

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

Блок «Датчики положения относительно препятствий местности» позволяет определять координаты препятствий. Любое обнаруженное препятствие по умолчанию считается непроходимым и маршрут корректируется с учетом его существования. В качестве датчиков могут использоваться стереоскопические видеокамеры, лазерные дальномеры, широкофронтальные ультразвуковые дальномеры и инфракрасные датчики. Точность определения положения препятствий местности в зависимости от типа датчиков лежит в пределах от нескольких миллиметров до нескольких сантиметров. При использовании дублирующих друг друга разнотипных датчиков точность измерений значительно возрастает.

Блок «Система обработки информации о препятствиях местности» предназначен для обработки информации блока «Датчики положения относительно препятствий местности» с целью выделения областей непреодолимых препятствий для мобильного робота и представления этой информации в форме удобной для последующего использования. Физически представляет собой плату для АЦП, также здесь бинарные данные упаковываются во внутренний внутрисистемный протокол обмена данными.

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

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

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

1.4 Аппаратные средства для создания беспилотных систем

Для создания АСУ зерноуборочного комбайна необходимо выбрать прежде всего контроллер управления, который будет отвечать за обработку сигналов с датчиков, управление исполнительными устройствами и обмен информацией с управляющим программным комплексом[1].

Одним из лидеров в области создания средств автоматизации является компания National Instruments. В области автоматизации одно из главных решений, предлагаемых этой компанией - Single-Board RIO. Данная платформа выполнена в виде разведённой печатной платы, что позволяет его эффективно встраивать в существующие компактно исполненные бортовые электронные системы.

Рис. 9 - NI Single-Board RIO

Благодаря наличию более 50 модулей ввода / вывода сигналов для платформы NI Single-Board RIO, а также встроенным в модули схемам согласования сигналов, можно подключать датчики различных физических величин напрямую к системе: датчики шума и вибрации (NI 9233,9234), датчики температуры (NI 9211, 9213, 9217, 9219), датчики деформации (NI 9235, 9236, 9237, 9239), Аналоговый ввод / вывод (NI 920x, 921x), цифровой ввод / вывод и реле (NI 92xx).

Система NI CompactRIO и NI Single-Board RIO позволяют сохранять данные мониторинга или измерений на следующих носителях: встроенная flash, карта памяти в модуле, USB-накопитель, Ethernet-хранилище.

Программное обеспечение LabVIEW позволяет провести весь цикл разработки проекта в одной среде графического программирования при помощи специализированных программных модулей: LabVIEW Real-Time и LabVIEW FPGA, а также легко создать удобный пользовательский интерфейс для АРМ.

Главным преимуществом данной платы управления является максимальная удобность создания системы - так как внешние датчики специально разрабатывались для сопряжения с платами компании NI. Также преимуществом является высокая скорость и надёжность обработки данных.

Рис. 10 - Структурная схема платы семейства SingleBoard RIO 9600, 1, 3, 5 - коннекторы для модулей С серии; 2 - линии аналогового ввода / вывода; 4,6 - не используются на плате SingleBoard RIO 9631; 7, 9, 17, 18 - цифровые линии ввода / вывода 3.3В;.10 - Ethernet RJ-45; 11 - последовательный порт RS-232; 13 - кнопка сброса; 14 - заземление; 15 - светодиодные индикаторы; 16 - питание

Недостатком является прежде всего высокая стоимость (более 200 тыс. рублей) платы в базовой комплектации, а также ее низкая защищённость от внешних факторов - из-за отсутствия корпуса плата никак не пыле - влагозащищена. Кроме того, все внутренние протоколы и способы передачи данных «датчик-плата» является коммерческой тайной и не подлежат разглашению, что значительно затрудняет самостоятельное построение системы на основе данной платы, без привлечения специалистов National Instruments, что значительно увеличивает стоимость разработок.

Также, для задач автоматизации комбайна, данная плата обладает излишними вычислительными мощностями. Наиболее хорошо NI Single-Board RIO подходит для высокотехнологичных военных разработок, например автопилотов.

Главным конкурентом Single-Board RIO является одноплатный компьютер MK905 от компании Fastwell. МК905 реализован на базе процессорного модуля CPВ905 и модуля источника питания PS351. MK905 может быть установлен как на DIN-рейку, так и на панель. Особенностью данной платформы является возможность организации работы в условиях длительной необслуживаемой эксплуатации при экстремально низких температурах с ограничениями мощности электропитания.

Рис. 11 - одноплатный компьютер MK905

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

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

Также, в настоящее время на рынок плат для автоматизации выходит такая система, как Arduino Uno. Если ранее это была управляющая плата для поделок и технического творчества, то современные ее версии удовлетворяют даже самые высокие требования при очень скромной цене. Плата Arduino состоит из микроконтроллера Atmel AVR (ATmega328P и ATmega168 в новых версиях и ATmega8 в старых), а также элементов обвязки для программирования и интеграции с другими схемами. На многих платах присутствует линейный стабилизатор напряжения +5В или +3,3В. Тактирование осуществляется на частоте 16 или 8 МГц кварцевым резонатором (в некоторых версиях керамическим резонатором). В микроконтроллер предварительно прошивается загрузчик BootLoader, поэтому внешний программатор не нужен.

Рис. 12 - Плата Arduino Uno R3

На концептуальном уровне все платы программируются через RS-232 (последовательное соединение), но реализация этого способа отличается от версии к версии. Плата Serial Arduino содержит простую инвертирующую схему для конвертирования уровней сигналов RS-232 в уровни транзисторно-транзисторной логики, и наоборот. Текущие рассылаемые платы, например, Diecimila, программируются через USB, что осуществляется благодаря микросхеме конвертера USB-to-Serial FTDI FT232R. В версии платформы Arduino Uno в качестве конвертера используется микроконтроллер Atmega8 в SMD-корпусе. Данное решение позволяет программировать конвертер так, чтобы платформа сразу определялась как мышь, джойстик или иное устройство по усмотрению разработчика со всеми необходимыми дополнительными сигналами управления. В некоторых вариантах, таких как Arduino Mini или неофициальной Boarduino, для программирования требуется подключение отдельной платы USB-to-Serial или кабеля.

Платы Arduino позволяют использовать большую часть I/O выводов микроконтроллера во внешних схемах. Доступно 14 цифровых входов / выходов, 6 из которых могут выдавать ШИМ сигнал, и 6 аналоговых входов. Эти сигналы доступны на плате через контактные площадки или штыревые разъемы. Также доступны несколько видов внешних плат расширения, называемых «shields» («щиты»), которые присоединяются к плате Arduino через штыревые разъёмы. Количество входов и выходов значительно увеличивается при использовании «щитов» ввода / вывода.

Интегрированная среда разработки Arduino - это кроссплатформенное приложение на Java, включающее в себя редактор кода, компилятор и модуль передачи прошивки в плату.

Среда разработки основана на языке программирования Processing и спроектирована для программирования новичками, не знакомыми близко с разработкой программного обеспечения. Язык программирования аналогичен используемому в проекте Wiring. Это C++, дополненный некоторыми библиотеками. Программы обрабатываются с помощью препроцессора, а затем компилируется с помощью AVR-GCC.

Рис. 13 - Установленное расширение ввода / вывода

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

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

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

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

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

На данный момент ведущие производители предлагают практически идентичные устройства, отличающиеся качеством пластика в исполнении корпуса и страной изготовителем. В качестве образца производителя подруливающих устройств, можно назвать фирму Trimble. Её продукция представлена на рисунке 14:

Рис. 14 - Подруливающее устройство фирмы Trimble

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

Рис. 13 - Ультразвуковой датчик дистанции

Ультразвуковой датчик KLM-501 радарного типа, работает на отражение ультразвуковой волны от объекта, измеряемая дистанция 300..2000 мм.

Основные характеристики:

- рабочее расстояние 300..2000 мм;

- напряжение питания 10..30 В;

- ток нагрузки 200 mA;

- выходной сигнал 0..10 V;

- угол излучения 38 градусов.

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

Рис. 14 - датчик URM37 V3.2

На рисунке показано сравнение зон покрытий ультразвуковой волны датчиков KLM-501 и URM37 V3.2.

Рис. 15 - Сравнение зон покрытия датчиков: а) - URM37 V3.2, б) - KLM-501

Оптический датчик диффузионного типа с программируемой дистанцией срабатывания в диапазоне от 0 до 50 см.

Рис. 16 - Инфракрасный датчик дистанции

Основные характеристики:

- возможность программирования дистанции срабатывания - до 50 м;

- напряжение питания 10..30В;

- ток нагрузки 200mA;

- выходной сигнал PNP.

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

На масштабном макете аналогом данного датчика является датчик DFRobot Ambient Light Sensor:

Данный датчик обладает следующими характеристиками:

- рабочее напряжение 5 Вольт DC.

- ручная регулировка дальности от 3 до 40 см.

- выход: PNP

Рис. 17 - Датчик DFRobot Ambient Light Sensor

Для приёма сигналов GPS используется навигационный модуль Геос-1. Аналогов данного модуля на масштабном макете не предусмотрено, ввиду нехватки точности GPS для отслеживания отклонений от маршрута в масштабе макета. На масштабном макете точки для опорной траектории жёстко заданы при программировании. Отклонения от маршрута определяются лишь по данным ультразвукового и инфракрасного датчиков. Внешний вид навигационного модуля Геос-1 представлен на рисунке 18:

Рис. 18 - Навигационный модуль Геос-1

Основные характеристики навигационного модуля Геос-1:

- Сигналы: L1 GPS C/A, L1 ГЛОНАСС ПТ;

- Количество каналов: 24;

- Время первого определения, с: (холодный / теплый / горячий старт) 36/32/4;

- Основное питание, В: 3,3;

- Резервное питание: внутренняя батарея;

- Порты: 2*RS-232 или RS-232 +USB;

- Протоколы: NMEA 0183 v3.01 + собственный бинарный;

- Темп выдачи данных: 1 или 5 Гц (программируется);

. Разработка технической и информационной структуры системы управления зерноуборочным комбайном

2.1 Разработка технической структуры АСУ

Эффективное выполнение функций АСУ зерноуборочного комбайна на примере масштабного макета возможно только на основе интегрированного применения технологий управления на аппаратном и программном уровне. Пробная интеграция этих технологий проводится в рамках масштабного макета.

В качестве основы для макета выбрана модель комбайна компании John Deere. Компания John Deere является мировым лидером на рынке сельскохозяйственной техники. Модель комбайна John Deere T670i позволяет продемонстрировать особенности современных комбайнов. В модели реализованы реалистичные детали, такие как открывающиеся двери кабины, многочисленные открывающиеся крышки, подвесная жатка с выравниванием, высокая маневренность комбайна, возможность перегрузки «зерна» из бункера выгрузным шнеком.

Модель комбайна John Deere T670i изготовлена из высококачественного пластика в масштабе 1:16 (рис. 19). Она состоит из комбайна, съемной жатки и прицепа для перевозки жатки.

Рис. 19 - Общий вид модели комбайна John Deere T670i

Рис. 20 - Внутренне устройство макета комбайна

Внутреннее устройство макета комбайна:

1) Мотор-редуктор Tamiya 70110

2) Серводвигатель для открытия / закрытия шнека

3) Плата управления Arduino Uno R3

4) Плата управления двигателями Arduino Motor Shield Rev3

5) Bluetooth модуль Bee

6) Аккамулятор GP6120

7) Мотор постоянного тока для вращения шнека

8) Серводвигатель для поднятия / опускания жатки

9) Серводвигатель для управления поворотом макета

В макете использованы серводвигатели SM-S2309B. Данная модель серводвигателя выбрана ввиду ее высокой надежности и достаточного угла поворота (±60°). Всего для изготовления макета было использовано 3 серводвигателя. Серводвигатель SM-S2309B и его параметры изображены на рисунке:

Рис. 21 - Серводвигатель SM-S2309B

Данный серводвигатель имеет следующее устройство:

Рис. 22 - внутреннее устройство серводвигателя SM-S2309B

В качестве управляющего сигнала служит импульсный сигнал с периодом 20 мс и с длительностью от 0,8 до 2,2 мс. Это общепринятый стандарт управления сервомашинок. Чем длиннее пришел импульс, тем на больший угол повернется вал сервомашинки. Форма сигнала представлена на рисунке:

Рис. 23 - Форма сигнала управления сервоприводом

Управляющий сигнал подается на серву по сигнальному проводу S. В данной сервомашинке он белого цвета. Помимо сигнального провода из сервомашинки выходят два провода - линии питания - земля (черный) и питание (красный):

Рис. 24 - расположение контактов на колодке сервопривода

Для движения макетов используется мотор-редуктор Tamiya 70110 с передаточным отношением 441:1, что обеспечивает достаточный для движения макета крутящий момент. Внешний вид мотор-редуктора представлен на рисунке:

Рис. 25 - Мотор-редуктор Tamiya 70110

В качестве источника питания был использован аккумулятор GP6120 с напряжением 6В. Данный аккумулятор обеспечивает надёжную бесперебойную работу макета в течение, как минимум тридцати минут. В качестве программируемого логического контроллера была использована плата Arduino Uno R3 с расширениями Arduino Motor Shield Rev3 и Bluetooth Bee.

Рис. 26 - Внешний вид и установка платы Arduino Motor Shield Rev3

Датчики установлены на внешней стороне жатки макета и соединены с контроллером посредством разъёма. В макете использованы следующие датчики: световой датчик - DFRobot Ambient Light Sensor, магнитный датчик Холла - DFR0033, ультразвуковой датчик расстояния - URM37 V3.2 Ultrasonic Sensor.

Рис. 27 - Внешний вид и установка Bluetooth Bee

Рис. 28 - Размещение датчиков в жатке.

Размещение датчиков в жатке:

1) Жгут проводов для питания датчиков и передачи информации

2) Внешний монтаж ультразвукового датчика расстояния

Световой датчик расположен на внутренней части жатки, а датчик Холла - внутри ее корпуса. Информационные провода и провода питания собраны в единый разъём, подключаемый к макету комбайна.

Программирование платы Arduino производится через USB-B удлинитель, соединенный с разъёмом на самой плате. также на корпусе комбайна находится кнопка включения / выключения питания макета.

К плате Arduino можно подключиться к через разъем USB-B под боковой панелью для изменения программы управления, также можно получить доступ к модулю связи, для этого надо: подключиться к беспроводной сети комбайна.

2.2 Разработка информационной структуры АСУ зерноуборочного комбайна на примере масштабного макета

Для разработки системы необходимо сначала провести её объектное моделирование. Для этого используется язык UML. Необходимо построить объектную диаграмму, диаграмму использования и структурную диаграмму. С помощью них можно определить количество и тип информационных связей между компонентами системы, а также между ней и её потребителями. После этого необходимо провести анализ надёжности системы, основанный на вероятностях отказа элементов системы. Для этого используется программный комплекс «Арбитр». в нём строится Структурно-функциональная схема разрабатываемого комплекса и проводится расчёт. По результатам вычислений определяются наиболее узкие места системы и наиболее предпочтительные для резервирования элементы. После этого производится разработка схемы электрических подключений макетов сельскохозяйственной техники. После получения схемы электрических подключений производится разработка компоновки макетов. Окончательная компоновка производится во время сборки макетов для более тщательной подгонки компонентов.

После этого начинается этап разработки программного обеспечения комплекса. Сначала производится разработка программы управления макетами для микроконтроллера Arduino. Данная программа должна интерпретировать управляющие команды программы - центра управления и передавать ему данные с датчиков макетов. После этого проводится разработка программного обеспечения центра управления комплекса и системы навигации на основе технического зрения. Программное обеспечение центра управления на основе данных системы навигации и собственного алгоритма, а также настроек пользователя создает маршрут движения для макетов трактора и комбайна. Навигация на основе технического зрения строится на алгоритмах контурного анализа и использует видеокамеру для распознавания контуров, нанесённых на корпуса машин и передаёт данные о местонахождении макета относительно краёв поля программе центра управления.

После разработки всех программных продуктов производится их отладка и интеграция, а после этого - отладка и интеграция всех систем программно-аппаратного комплекса.

Unified Modeling Language (UML) - язык объектного моделирования третьего поколения, стандарт которого разработан консорциумом Object Management Group (OMG). Язык UML может использоваться для разработки систем и программного обеспечения, предназначенных для применения в самых разных областях. В настоящее время UML используется для проектирования различных информационных систем - начиная с ПО систем инвентаризации и заканчивая ПО систем управления летательными аппаратами. Всякий поддерживаемый стандарт со временем изменяется: в нем исправляются ошибки, реализуются новые идеи и исключаются неудачные элементы. В настоящее время UML используется в проектах по моделированию и созданию систем, весьма значительно различающихся по своему масштабу - от проектов, в которых участвует группа разработчиков из нескольких человек, до систем, в разработке которых участвует несколько тысяч человек. UML обладает всем необходимым для моделирования, своевременной обработки событий и управления ресурсами, которые характеризуют современные встраиваемые системы и системы реального времени.

В качестве средства разработки на UML был выбран Rhapsody Modeler ввиду его функциональности и открытой лицензии. В данной программе были разработаны объектная диаграмма, диаграмма использования макета внутри всей системы и структурная диаграмма макета.

Рис. 29 - Объектная диаграмма работы макета на языке UML

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

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

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

Рис. 30 - Диаграмма использования макета комбайна внутри комплекса в целом

Диаграмма использования макета и объектная диаграмма работы макета являются основой для разработки структурной диаграммы макета. Но в отличие, от диаграммы использования макета и диаграммы работы макета в структурной диаграмме отражены не функции макета и их связи, уровни подчинения, а его физическая структура с обобщённым распределением этих функций и связей на их реальные назначения. При разработке структурной диаграммы используется терминология объектно-ориентированного программирования, где система в целом рассматривается как приложение, макет комбайна - как класс системы, а функциональные блоки(компоненты) - как объекты внутри этого класса. Для связи между компонентами используется понятие порта передачи данных. В данном типе диаграмм порт является виртуальным понятием и может быть применён как к физическом порту, так и к программному, а также к любому другому каналу передачи данных, например, визуальном.

Рис. 31 - Структурная диаграмма макета

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

Далее необходимо разработать электрическую схему макета соответственно структурной. Макет комбайна состоит из аккумулятора на 5В, управляющей платы Arduino UNO R3 и подключённых к ней устройств: трёх сервоприводов, двух моторов, датчиков освещённости, Холла, расстояния и Bluetooth-модуля. Плата Arduino состоит из базового модуля и моторшилда. Все подключения устройств происходят через моторшилд.

Управление серводвигателями происходит через восьмой, девятый и десятый пин дискретного выхода платы. Данные с ультразвукового датчика передаются через седьмой пин платы, а питается она от шестого пина платы. Bluetooth-модуль питается от пятого пина платы, а информация передаётся с помощью чётвёртого пина. Управление двигателями происходит с помощью ШИМ через аналоговый выход платы на шесть пинов. Получение информации с аналоговых датчиков Холла и освещённости происходит через аналоговый вход платы на шесть пинов. Управление двигателями осуществляется через микросхему l298 по интерфейсу направление / скорость, т.е. логический сигнал 0..1 задает направление двигателя и ШИМ сигнал 0..5 В задает скорость вращения.

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

Рис. 32 - Схема подключения дискретных устройств к плате управления макетом комбайна

Макет комбайна для связи с остальными частями программно-аппаратного комплекса использует Bluetooth-канал. По нему в двоичной форме передаются управляющие сигналы и информация с датчиков. В качестве входных сигналов используются стандартные ASCII-коды. Управляющие сигналы представлены в следующей таблице:

Табл. 1 - Таблица входных сигналов макета

ASCII-код

Буква

Управляющие воздействие

1

#87

W

При движении вперёд остановить вращение оси мотора.

2

#119

w

Начать вращение оси мотора для движения вперёд.

3

#83

S

При движении назад остановить вращение оси мотора.

4

#115

s

Начать вращение мотора для движения назад.

5

#65

A

Если ось сервопривода управления направлением движения повёрнута против часовой стрелки на 45 градусов, вернуть ее в исходное положение

6

#97

a

Повернуть ось сервопривода управления направлением движения против часовой стрелки на 45 градусов

7

#68

D

Если ось сервопривода управления направлением движения повёрнута по часовой стрелке на 45 градусов, вернуть ее в исходное положение

8

#100

d

Повернуть ось сервопривода управления направлением движения по часовой стрелке на 45 градусов

9

#82

R

Если жатка поднята, опустить ее.

10

#114

r

Поднять жатку.

11

#69

E

Если шнек вращается, остановить его.

12

#101

e

Начать вращение шнека.

13

#76

L

Если жатка выдвинута, сложить ее обратно.

14

#108

l

Выдвинуть жатку.

15

#109

m

Передать значения с датчика Холла.

16

#113

q

Передать значения с датчика освещенности.

17

#117

u

Передать значения с ультразвукового датчика расстояния.

Выходными сигналами макета являются данные датчиков: ультразвуковой датчик расстояния, магнитный датчик Холла, датчик освещённости. Эти данные передаются в ответ на соответствующий входной сигнал. Данные передаются в виде двухбайтового бесзначного числа. Со времени передачи управляющего сигнала запроса до получения данных запрещена передача любых управляющих сигналов.

Проектная оценка надежности программно-аппаратного комплекса выполнена по методике, основанной на применении новой информационной технологии автоматизированного структурно-логического моделирования систем (АСМ), реализованной в программном комплексе АРБИТР.

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

1) Первичное структурно-логическое моделирование системы.

2) Автоматизированное моделирование и расчет системных показателей надежности.

3) Анализ результатов, выработка и обоснование проектных решений.

Центральное место в автоматизированном структурно-логическом моделировании занимает построение структурных моделей надежности. Структурные модели в АСМ строятся с помощью специального аппарата СФЦ.

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

Рис. 33 - Структурно-логическая модель программно-аппаратного комплекса

В данной модели узлы макета обозначены цифрами:

1. Arduino Uno R3 - комбайн

2. Аккумулятор комбайна

3. Сервопривод управления жаткой комбайна

4. Сервопривод управления движением комбайна

5. Сервопривод управления шнеком комбайна

6. Двигатель шнека комбайна

7. Двигатель комбайна

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

9. Датчик Холла комбайна

10. Датчик освещённости комбайна

15. Bluetooth-модуль комбайна

19. Arduino Uno R3 - трактор

20. Аккумулятор трактора

21. Сервопривод управления движением трактора

22. Двигатель трактора

28. Bluetooth-модуль трактора

29. Программа управления

30. Bluetooth-модуль центра управления

31. Навигационная программа

32. Видеокамера

35. Визуальная метка комбайна

36. Визуальная метка трактора

Также цифрами обозначены фиктивные вершины функций макета:

11. Функция получения данных с датчиков макета комбайна

12. Функция движения макета комбайна

13. Функция выгрузки «зерна»

14. Функция управления жаткой

18. Функция обмена данными между макетом комбайна и программой управления на ПК по Bluetooth

17. Функция общей работоспособности макета комбайна.

25. Функция обмена данными между макетом трактора и программой управления на ПК по Bluetooth

26. Функция общей работоспособности макета трактора

27. Функция движения макета трактора

37. Функция общей работоспособности системы.

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

Рис. 34 - Резервирование видеокамеры и программы навигации в комплексе, последствия отказа одной из видеокамер

Надёжность системы после резервирования составляет Р=0.805869040273, что больше на 15%, чем надёжность системы без резервирования. При дальнейшей разработке системы необходимо обеспечить резервирование данных элементов и тем самым повысить надёжность системы.

2.3 Разработка алгоритмов обработки информации

После включения питания и инициализации исполнительных устройств. Система управления макетом комбайна на базе платы Arduino Uno R3 начинает устанавливать связь через модуль Bluetooth с компьютером управления и при ее установлении ожидает команд от компьютера. На рис. 13 приведен алгоритм функционирования программы внутри контроллера[3]:

Рис. 35 - Алгоритм функционирования программы

Реализация алгоритма управления такова: после описания и инициализации переменных в разделе setup, запускается бесконечный цикл Loop, в котором происходит постоянное определение пришедшего по Bluetooth-каналу ASCII-кода, и реализация действия в зависимости от него.

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

Рис. 36 - Алгоритм управления масштабным макетом автоматизированной системы управления зерноуборочным комбайном

Пример функции управления:

switch (curByte) {

case 'L':

analogWrite (ELEV_SPEED, 0);

break;

…}

Листинг 1 - Пример функции управления

Мы определяемый входящий управляющий сигнал, и, если это «L», то передаем значение «0» переменной, определяющей скорость вращения мотора шнека и с помощью команды «break» переходим на следующую итерацию цикла.

Целиком программа управления представлена ниже:

#include <Servo.h>

#define WiFly Serial1

#define Ultrasonic Serial2

 // Определение контактов ввода / вывода

const byte LED = 13; // Servos

const byte ELEV_SERVO = 10;

const byte REAPER_SERVO = 11;

const byte STEER_SERVO = 12;

Servo Elevator;

Servo Reaper;

Servo Steering;

 // Установка контактов для управления скоростью моторов

const byte ELEV_SPEED= 5;

const byte ELEV_DIR = 4;

const byte ENGINE_SPEED = 6;

const byte ENGINE_DIR = 7;

 // Инициализация датчиков

const byte MAGN_SENS = 8;

const byte LIGHT_SENS = 0;

 // Инициализация логических переменных

const bool DIR_LIFT = LOW;

const bool DIR_FWD = HIGH;

const bool DIR_BWD =! DIR_FWD;

 // Max speeds for motors

const byte MAX_ELEV = 255;

const byte MAX_ENGINE = 200;

 // Установка данных сервоприводов по умолчанию

const byte ELEV_OPEN = 90;

const byte ELEV_CLOSED = 0;

const byte REAPER_DOWN = 0;

const byte REAPER_UP = 170;

const byte STEER_LEFT = 179;

const byte STEER_MID = 90;

const byte STEER_RIGHT = 0;

char curByte;

 // Определение адресной области для буфера ультразвукового датчика

uint8_t DMcmd[4] = {

0x22, 0x00, 0x00, 0x22};

 // Получение данных с ультразвукового датчика

unsigned char header;

unsigned char highbyte, lowbyte;

unsigned char sum;

uint16_t dist; // Получение дистанции

uint16_t time;

bool tracktor;

void setup()

{

WiFly.begin(9600);

Ultrasonic.begin(9600);

Elevator.attach (ELEV_SERVO);

pinMode (ELEV_SERVO, OUTPUT);

Elevator.write (ELEV_CLOSED);

Reaper.attach (REAPER_SERVO);

pinMode (REAPER_SERVO, OUTPUT);

Reaper.write (REAPER_DOWN);

Steering.attach (STEER_SERVO);

pinMode (STEER_SERVO, OUTPUT);

Steering.write(90);

pinMode (ELEV_DIR, OUTPUT);

pinMode (ELEV_SPEED, OUTPUT);

pinMode (ENGINE_DIR, OUTPUT);

pinMode (ENGINE_SPEED, OUTPUT);

analogWrite (ELEV_SPEED, 0);

analogWrite (ENGINE_SPEED, 0);

pinMode (MAGN_SENS, INPUT);

pinMode (LIGHT_SENS, INPUT);

pinMode (LED, OUTPUT);

digitalWrite (LED, LOW);

tracktor = false;}

void loop() { // Свитч для команд прямого управления

if (WiFly.available()) {

curByte = WiFly.read();

switch (curByte) {

case 'w':

digitalWrite (ENGINE_DIR, DIR_FWD);

analogWrite (ENGINE_SPEED, MAX_ENGINE);

break;

case 'W':

analogWrite (ENGINE_SPEED, 0);

break;

case 's':

digitalWrite (ENGINE_DIR, DIR_BWD);

analogWrite (ENGINE_SPEED, MAX_ENGINE);

break;

case 'S':

analogWrite (ENGINE_SPEED, 0);

break;

case 'a':

Steering.write (STEER_LEFT);

delay(15);

break;

case 'A':

Steering.write (STEER_MID);

delay(15);

break;

case 'd':

Steering.write (STEER_RIGHT);

delay(15);

break;

case 'D':

Steering.write (STEER_MID);

delay(15);

break;

case 'r':

Reaper.write (REAPER_DOWN);

delay(15);

break;

case 'R':

Reaper.write (REAPER_UP);

delay(15);

break;

case 'e':

Elevator.write (ELEV_OPEN);

break;

case 'E':

Elevator.write (ELEV_CLOSED);

delay(15);

break;

case 'l':

digitalWrite (ELEV_DIR, DIR_LIFT);

analogWrite (ELEV_SPEED, MAX_ELEV);

break;

case 'L':

analogWrite (ELEV_SPEED, 0);

break;

case 'm':

WiFly.print (digitalRead(MAGN_SENS));

break;

case 'q':

WiFly.print (analogRead(LIGHT_SENS));

break;

case 'u':

for (int i=0; i<4; i++)

Ultrasonic.write (DMcmd[i]);

delay(75);

header = Ultrasonic.read(); // Should be 0x22

highbyte = Ultrasonic.read();

lowbyte = Ultrasonic.read();

sum = Ultrasonic.read();

if (header == 0x22) { // Коррекция курса согласно данным ультразвукового // датчика

if (highbyte == 255)

dist = 65535; //if highbyte = 255, reading is invalid

else

dist = highbyte * 255 + lowbyte;

}

else {

dist = 65535; // reading is invalid

while (Ultrasonic.available())

Ultrasonic.read();

}

WiFly.print(dist);

break;

case 'z':

Elevator.write (ELEV_OPEN);

time = millis();

digitalWrite (LED, HIGH);

tracktor = true;

break;

}

}

if ((tracktor) && (millis() - time >= 5000)) { // Обработка события «потеря // связи»

digitalWrite (ELEV_DIR, DIR_LIFT);

analogWrite (ELEV_SPEED, MAX_ELEV);

digitalWrite (LED, LOW);

tracktor = false;

}

}

3. Разработка программной и эксплуатационной документации АСУ зерноуборочного комбайна

3.1 Руководство программиста

Среда программирования - Arduino 1.0 (более старые\новые версии тоже можно использовать) используется для написания кода и его загрузки в целевую плату - Arduino Mega 2560.

Для загрузки кода надо выбрать в меню среды разработки тип платы (рис. ХХ), последовательный порт, к которому присоединена плата, и нажать кнопку «Загрузка» рис. 13.

Рис. 37 - Выбор платы микроконтроллера

На рис. 14 цифрами 1 и 2 показаны кнопки компиляции и загрузки программы в микроконтроллер.

Управляющая программа написана на С++ c фреймворком Qt версии 4.8. Для соединения по протоколу telnet использована библиотека qtelnetperso (распространяется под лицензией GNU GPL v2). Проект на персональном компьютере состоит из следующих файлов: <DIR> Icons, mainwindow.h, mainwindow.ui, Combine.pro, main.cpp, resource.qrc, Combine.pro.user, mainwindow.cpp, qtelnetperso.cpp, qtelnetperso.h.

Рис. 38 - Загрузка программы в плату Arduino Mega 2560

Qt - кросс-платформенный инструментарий разработки ПО на языке программирования C++. Есть также «привязки» ко многим другим языкам программирования: Python - PyQt, PySide; Ruby - QtRuby[6]; Java - Qt Jambi; PHP - PHP-Qt и другие.

Позволяет запускать написанное с его помощью ПО в большинстве современных операционных систем путём простой компиляции программы для каждой ОС без изменения исходного кода. Включает в себя все основные классы, которые могут потребоваться при разработке прикладного программного обеспечения, начиная от элементов графического интерфейса и заканчивая классами для работы с сетью, базами данных и XML. Qt является полностью объектно-ориентированным, легко расширяемым и поддерживающим технику компонентного программирования.

Рис. 39 - интерфейс среды программирования Qt

Существуют версии библиотеки для Microsoft Windows, систем класса UNIX с графической подсистемой X11, iOS, Mac OS X, Microsoft Windows CE, QNX, встраиваемых Linux-систем и платформы S60. В данный момент рассматривается возможность внедрения поддержки Qt в Windows Phone. Также идёт портирование на Haiku.

До недавнего времени библиотека Qt также распространялась ещё в одной версии: Qt/Embedded. Теперь эта платформа переименована в Qtopia Core и распространяется как отдельный продукт. Qtopia Core обеспечивает базовую функциональность для всей линейки платформ, предназначенных для разработки приложений для встраиваемых и мобильных устройств (КПК, смартфонов и т.п.).

Начиная с версии 4.5 Qt распространяется по 3 лицензиям (независимо от лицензии, исходный код Qt один и тот же):

· Qt Commercial - для разработки ПО с собственнической лицензией, допускающая модификацию самой Qt без раскрытия изменений;

· GNU GPL - для разработки ПО с открытыми исходниками, распространяемыми на условиях GNU GPL;

· GNU LGPL - для разработки ПО с собственнической лицензией, но без внесения изменений в Qt.

До версии 4.0.0 под свободной лицензией распространялись лишь Qt/Mac, Qt/X11, Qt/Embedded, но, начиная с 4.0.0 (выпущенной в конце июня 2005), Qt Software «освободили» и Qt/Windows. Следует отметить, что существовали сторонние свободные версии Qt/Windows < 4.0.0, сделанные на основе Qt/X11.

Со времени своего появления в 1996 году библиотека Qt легла в основу тысяч успешных проектов во всём мире. Кроме того, Qt является фундаментом популярной рабочей среды KDE, входящей в состав многих дистрибутивов Linux.

Отличительная особенность Qt от других библиотек - использование Meta Object Compiler (MOC) - предварительной системы обработки исходного кода (в общем-то, Qt - это библиотека не для чистого C++, а для его особого наречия, с которого и «переводит» MOC для последующей компиляции любым стандартным C++ компилятором). MOC позволяет во много раз увеличить мощь библиотек, вводя такие понятия, как слоты и сигналы. Кроме того, это позволяет сделать код более лаконичным. Утилита MOC ищет в заголовочных файлах на C++ описания классов, содержащие макрос Q_OBJECT, и создаёт дополнительный исходный файл на C++, содержащий метаобъектный код.

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

Рис. 40 - модули среды разработки Qt

Qt комплектуется визуальной средой разработки графического интерфейса «Qt Designer», позволяющей создавать диалоги и формы в режиме WYSIWYG. В поставке Qt есть «Qt Linguist» - графическая утилита, позволяющая упростить локализацию и перевод программы на многие языки; и «Qt Assistant» - справочная система Qt, упрощающая работу с документацией по библиотеке, а также позволяющая создавать кросс-платформенную справку для разрабатываемого на основе Qt ПО. Начиная с версии 4.5.0 в комплект Qt включена среда разработки «Qt Creator», которая включает в себя редактор кода, справку, графические средства «Qt Designer» и возможность отладки приложений. «Qt Creator» может использовать GCC или Microsoft VC++ в качестве компилятора и GDB в качестве отладчика. Для Windows версий библиотека комплектуется компилятором, заголовочными и объектными файлами MinGW.

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.