close

Вход

Забыли?

вход по аккаунту

?

poyasnitelnaya zapiska(108)

код для вставкиСкачать
СОДЕРЖАНИЕ
ВВЕДЕНИЕ2
1.ПОСТАНОВКА ЗАДАЧИ4
1.1. Постановка задачи4
1.1.1Требования к устройству4
1.1.2Аналоги4
1.2.Описание предметной области4
1.3. Выбранные программные средства6
2.РЕШЕНИЕ ЗАДАЧИ8
2.1. Исследовательская часть8
2.1.1. Протоколы передачи данных8
2.1.2. Принцип работы GPS9
2.2. Алгоритмы реализации ПТС10
2.3. Реализация ПТС12
2.3.1. Аппаратная часть12
2.3.2. Программная часть15
2.4. Данные ПТС16
3.ОТЛАДКА ПТС17
ЗАКЛЮЧЕНИЕ18
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ19
ВВЕДЕНИЕ
Тема моей выпускной квалификационной работы: "Разработка устройства определения точки позиционирования объекта с помощью GPS-модуля".
Данная тема включает в себя набор задач, касающихся работы с микропроцессорными системами, навигационными устройствами и будет полезна инженерам и специалистам, осваивающим данные технологии.
Среди существующего многообразия электронных устройств важное место занимают различные навигационные модули, используемые во многих областях человеческой деятельности. Вот некоторые из них: военное использование, туризм, пассажирские перевозки, определение точного времени, геодезия и геология, ГИС, сельское хозяйство. Это лишь небольшой перечень, показывающий важность данной технологии в современных реалиях.
Задача определения точки позиционирования объекта сводится к высокоточному определению географических ортогональных координат статичных и движущихся объектов. В некоторых случаях для описания положения точки, находящейся на поверхности планеты, третья координата опускается.
Целью работы является разработка устройства, состоящего из микроконтроллерной платы Seeeduino v3.0., GPS-модуля GPS Shield v1.1. и внешней антенны, получающего текущие координаты объекта и выводящего их пользователю на компьютер по последовательному порту или же записывающего данные на Micro SD карту памяти.
Таким образом, задача работы сводится к изучению совместного функционирования различных составных частей устройства, изучению протоколов передачи и форматов хранения данных и написанию кода, преобразующего поступающие сигналы с GPS-приемника в вид, понятный пользователю. Следует отметить, что работа имеет учебный характер.
Для решения поставленной задачи мной были проделаны следующие виды работ:
Проведено изучение и анализ предметной области.
Составлены общие, функциональные, технические требования качества и надёжности программно-технического средства.
Изучены протоколы RS-232 и NMEA.
Изучен язык разметки KML.
Изучены существующие аналоги.
Разработано и реализовано программно-техническое средство.
При реализации программно-технического средства были использованы следующие средства и технологии:
Terminal
Среда разработки Arduino 1.0.4 для Windows
Язык программирования Arduino
Операционная система Microsoft Windows 8
NMEA Parser 2.3
Google Earth v7.1
ПОСТАНОВКА ЗАДАЧИ
1.1. Постановка задачи
Целью работы является разработка устройства, определяющего точку позиционирования объекта и выводящего её на компьютер по последовательному интерфейсу или записывающего данные о местоположении на SD-карту.
Задачи:
Сборка устройства из составных частей.
Реализация алгоритма получения данных, поступающих от GPS-модуля.
Реализация алгоритма передачи данных по последовательному интерфейсу на компьютер.
Реализация алгоритма записи маршрута на Micro SD карту.
Требования к устройству
К общим техническим требованиям относится следующее:
Питание от JST-Mini USB-кабеля (5.5 В) или от батареи (3 В)
К функциональным средствам относятся:
Передача данных на компьютер по протоколу RS-232
Использование SD-карты, отформатированной в файловой системе FAT16
Запись файлов в формате .kml
Обмен данными с GPS-модулем по протоколу NMEA
Качественные требования:
Корректная обработка данных, поступающих от GPS-модуля
Аналоги
В данное время на рынке существует множество устройств, так или иначе использующих технологию глобального позиционирования. К ним можно отнести мобильные телефоны, планшетные ПК, компасы, GPS-навигаторы и др. Каждое из таких устройств выполняет свою функцию, и отличается от других используемыми микроконтроллерами, программным обеспечением, набором функций, но в основе лежит технология получения координат объекта при помощи специализированных спутников, располагающихся на орбите Земли.
1.2.Описание предметной области
Разрабатываемое мной устройство состоит из следующих компонентов:
Микроконтроллерная плата Seeeduino v3.0
GPS Shield v1.1
Выносная активная антенна, работающая на частоте 1575.42 MHz
Seeeduino является Arduino совместимой платой. Её конструкция основана на схеме Diecimila, поддерживается 100% совместимость с существующей программой IDE и шилдами. В аппаратную часть внесены значительные изменения для улучшения гибкости и ползовательской настройки.
Особенности:
• Построена на Arduino-совместимой архитектуре Seeeduino.
• Наследует все особенности Arduino Diecimila.
• Полная совместимость с расположением контактов Diecimila, идентичные отверстия для винтов и размеры.
• Улучшена расширяемость и удобство подключения.
Характеристики Seeeduino V3.0 (ATmega 328):
Вес (г): 19 I2C порт: 1 Объём EEPROM-памяти (кб): 1 Объём Flash-памяти (кб): 32 Количество аналоговых входов/выходов: 8 Входное напряжение (предельное), В: 6-20 Рабочее напряжение, В: 3.3-5 Производитель: Seeed Studio ISP порт: 1 Питание JST-Mini USB: Авто Тактовая частота (МГц): 16 Объём SRAM-памяти (кб): 2 Количество ШИМ выходов: 6 Количество цифровых входов/выходов: 14 Входное напряжение (рекомендуемое), В: 7-12 Микроконтроллер: ATmega 328P
AVR - семейство восьмибитных микроконтроллеров фирмы Atmel. В используемой мной плате Seeeduino находится контроллер ATMega320P, его характеристики ниже:
Количество пинов: 32
Максимальная частота: 20 KHz
Процессор: 8 бит AVR
Количество памяти программ: 32 кб
Интерфейсы: I2C, SPI, UART
GPS Shield v1.1. служит для принятия сигналов со спутника и передачи данных на микроконтроллерную плату, также он имеет интерфейс для подключения SD карты. Основой модуля является компактный, высокопроизводительный с низким энергопотреблением GPS чип на базе SiRF Star III, который может отслеживать до 20 спутников одновременно.
Особенности:
Arduino совместимость.
Micro SD интерфейс.
Низкое энергопотребление.
3х пиновые выводы для датчиков и сенсоров .
Температурный режим: - 40℃ ~ + 85℃
1.3. Выбранные программные средства
Для решения поставленной задачи были выбраны следующие программные средства:
Приложение Terminal использовано в качестве эмулятора верхнего уровня для приема данных через последовательный порт и дальнейшего их изучения на этапе тестирования.
Интегрированная среда разработки Arduino 1.0.4 для Windows - это кроссплатформенное приложение на Java, включающее в себя редактор кода, компилятор и модуль передачи прошивки в плату. Среда разработки основана на языке программирования Processing и спроектирована для программирования новичками, не знакомыми близко с разработкой программного обеспечения.
Язык программирования Arduino аналогичен C++, дополненному некоторыми библиотеками. Программы обрабатываются с помощью препроцессора, а затем компилируется с помощью AVR-GCC.
Операционная система Microsoft Windows 8 - операционная система, принадлежащая к семейству ОС Microsoft Windows, в линейке следующая за Windows 7 и разработанная транснациональной корпорацией Microsoft. Содержит все необходимые драйвера, используемые при отладке ПТС и поддерживает запуск и стабильную работу интегрированной среды разработки Arduino.
Программное средство NMEA Parser 2.3 служит для обработки данных, поступающих от GPS-модуля по стандарту NMEA и их выводу в понятной для пользователя форме.
С помощью программы Google Earth v7.1 возможно загружать файлы, сохраненные устройством на карту памяти в формате .kml и получать визуальное отображение точек и маршрута на карте.
РЕШЕНИЕ ЗАДАЧИ
2.1. Исследовательская часть
2.1.1. Протоколы передачи данных
Для передачи данных с платы Seeeduino на компьютер служит протокол физического уровня RS-232. Он обеспечивает передачу данных и некоторых специальных сигналов между терминалом и коммуникационным устройством на расстояние до 15 метров. В случае с Seeeduino v3.0., на компьютер устанавливается FTDI драйвер для преобразования последовательной передачи данных по RS-232 в сигналы шины USB, для того, чтобы дать возможность компьютеру обмениваться данными с платой через USB-кабель. При этом устанавливается скорость 9600 бит/с.
Для передачи данных от GPS-модуля на плату Seeeduino служит универсальный последовательный синхронно-асинхронный приемо-передатчик (USART). Формат передачи представлен в таблице 1.
Таб. 1.
Скорость порта, бит/с9600Биты данных8Стоповые биты1ЧётностьНечетные GPS-модуль может передавать данные по протоколу Binary Sirf или же по NMEA 0183. Мной был выбран второй по причине более удобного отображения данных и более простой расшифровки. NMEA 0183 - текстовый протокол связи навигационного оборудования между собой.
Общий вид строк в NMEA 0183:
символ "$".
5-буквенный идентификатор сообщения. Первые две буквы - идентификатор источника сообщения, следующие три буквы - идентификатор формата сообщения, согласно протоколу NMEA 0183 определённой версии.
список данных (буквы, цифры и точки), разделённых запятыми. Если какие-либо данные отсутствуют внутри строки, запятые всё равно ставятся (например ",,"). Некоторые поля в конце строки могут отсутствовать вовсе.
символ "*".
2-значное 16-ричное число - контрольная XOR-сумма всех байт в строке между "$" и "*".
<CR><LF> (конец строки).
Сообщения от GPS-модуля в моем случае приходят с частотой 1 Hz. Ниже приведены основные из них:
$GPGGA - Сообщение содержит GPS данные о местоположении, времени местоопределения, качестве данных, количестве использованных спутников, HDOP (Фактор Ухудшения Точности Плановых Координат), информацию о дифференциальных поправках и их возраст.
$GPRMC - Сообщение RMC содержит данные о времени, местоположении, курсе и скорости, передаваемые навигационным GPS приёмником. Контрольная сумма обязательна для этого сообщения, интервалы передачи не должны превышать 2 секунды. Все поля данных должны быть подготовлены, пока ещё нет самих данных. Недействительные поля могут быть использованы, пока данные временно не готовы.
$GPGLL - Сообщение содержит GPS-данные о географической широте, долготе и времени определения координат.
$GPGSA - В этом сообщении отображается режим работы GPS приёмника, параметры спутников, используемых при решении навигационной задачи, результаты которой отображены в сообщении $GPGGA и значения факторов точности определения координат.
$GPGSV - В сообщении указывается количество видимых спутников, их номера, возвышение, азимут, и значение отношения сигнал/шум для каждого из них.
$GPVTG - Сообщение VTG передает текущее истинное направление курса (COG) и скорость относительно земли (SOG).
Контрольная сумма рассчитывается в соответствии со стандартом NMEA: над 8 битами каждого байта данных в сообщении (до символа '*') выполняется операция "исключающее ИЛИ"; сам символ '*' в расчет контрольной суммы не включается. Шестнадцатеричные значения 4 старших и 4 младших битов результата преобразуются в два символа ASCII (0-9, A-F) для передачи. Старший символ передается первым.
Пример данных NMEA, передаваемых GPS-приемником, приведен в приложении 1.
2.1.2. Принцип работы GPS
Основной принцип использования системы - определение местоположения путём измерения моментов времени приема синхронизированного сигнала от навигационных спутников антенной потребителя. Для определения трёхмерных координат GPS-приёмнику нужно иметь четыре уравнения: "расстояние равно произведению скорости света на разность моментов приема сигнала потребителя и момента его синхронного излучения от спутников":
|x-a_j |=c(t_j-τ),
где a_j - местоположение -го спутника, t_j - момент времени приема сигнала от j-го спутника по часам потребителя, τ - неизвестный момент времени синхронного излучения сигнала всеми спутниками по часам потребителя, c - скорость света, x - неизвестное трехмерное положение потребителя.
GPS состоит из трёх основных сегментов: космического, управляющего и пользовательского. Спутники GPS транслируют сигнал из космоса, и все приёмники GPS используют этот сигнал для вычисления своего положения в пространстве по трём координатам в режиме реального времени.
Космический сегмент состоит из 32 спутников, вращающихся на средней орбите Земли.
Управляющий сегмент представляет собой главную управляющую станцию и несколько дополнительных станций, а также наземные антенны и станции мониторинга, ресурсы некоторых из упомянутых являются общими с другими проектами.
Пользовательский сегмент представлен тысячами приемников GPS, находящихся в ведении военных США и десятками миллионов устройств, владельцами которых являются обычные пользователи.
Радиочастотные характеристики таковы: спутники излучают открытые для использования сигналы в диапазонах: L1 = 1575,42 МГц и L2 = 1227,60 МГц, а модели IIF будут излучать также на L5 = 1176,45 МГц . Навигационная информация может быть принята антенной (обычно в условиях прямой видимости спутников) и обработана при помощи GPS-приёмника.
2.2. Алгоритмы реализации ПТС
В ходе работы мной был написан алгоритм, позволяющий отправлять данные о местоположении пользователю и записывающий маршрут на Micro SD карту. На рисунке 1. представлена блок-схема алгоритма.
Рис. 1.
На рисунке отмечены следующие переменные:
j - Счетчик количества секунд, прошедших с момента, когда объект остановился.
Serial - Порт для связи платы Seeeduino с компьютером.
SoftwareSerial - программный порт для связи модуля GPS с микроконтроллерной платой. По этому порту приходят данные по протоколу NMEA.
В приложении 2. приведен исходный код на языке Arduino, готовый к компиляции и переносу в память микроконтроллерной платы.
2.3. Реализация ПТС
2.3.1. Аппаратная часть
Программно-техническое средство состоит из микроконтроллерной платы Seeeduino с присоединенным к ней GPS-модулем с подключенной по необходимости выносной антенной.
Общий вид платы представлен на рисунке 2.
Рис. 2.
На рисунке 2 изображены:
Цифровые порты ввода/вывода
Кварцевый резонатор R160JAC4E
Микроконтроллер ATMega 328P
Аналоговые порты ввода/вывода
Кнопка перезагрузки
Линейный регулятор 78M05
Порт для подключения JST-Mini USB кабеля
Преобразователь FTDI FT232RL
Принципиальная схема микроконтроллера ATMega 320P приведена на рисунке 3.
Рис. 3.
Линейный регулятор 78M05 служит для стабилизации напряжения, подаваемого на плату. Допустимый диапазон напряжений - от 5 до 40В при номинальном токе 0.5А. Принципиальная схема элемента приведена на рисунке 4.
Рис. 4.
Элемент FT232RL служит для преобразования последовательной передачи данных по RS-232 в сигналы шины USB. Его схема изображена на рисунке 5.
Рис. 5.
К плате Seeeduino подключается GPS Shield v1.1., при этом контакты модуля совпадают с контактами платы, но используются всего три: Digital Pin 2, Digital Pin 3 и GND - для организации передачи данных по протоколу USART. Принципиальная схема модуля приведена на рисунке 6. Черным цветом отмечено расположение перемычек, необходимое для корректной передачи данных по USART, указывающее, что: Rx=D2, Tx=D3. Рис. 6.
2.3.2. Программная часть
Программная часть включает в себя код, написанный на языке Arduino и зашитый в память микроконтроллера. Основные выполняемые функции:
Ожидание и получение данных от GPS-приемника.
Передача данных на компьютер по протоколу RS-232.
Запись маршрута на присоединяемую к GPS-модулю карту памяти Micro SD.
При разработке программной части мной были использованы следующие библиотеки:
-TinyGPS v12, простой парсер поступающих по протоколу NMEA текстовых данных и позволяющий по ним определить широту, долготу и высоту объекта, текущее время и количество спутников, с которыми работает модуль.
-SD - библиотека для работы с SD картой с поддержкой файловой системы FAT16.
-Библиотека SoftwareSerial, позволяющая организовать программный последовательный порт. Для этого при инициализации указывается скорость передачи и цифровые вход и выход, используемые для передачи и приема данных по протоколу USART, и, таким образом, эмулируется аппаратный последовательный порт для дальнейшей с ним работы.
Исходный код, исключая перечисленные выше стандартные библиотеки, приведен в приложении 2.
2.4. Данные ПТС
Запись маршрута движущегося объекта ведется на Micro SD карту в файл с расширением .kml, содержащий фразы на языке KML (Keyhole Markup Language - язык разметки Keyhole) - язык разметки на основе XML для представления трёхмерных геопространственных данных.
Сам файл имеет следующую структуру:
Заголовок XML. Это первая строка в каждом файле KML. Перед этой строкой не должно быть пробелов или символов. Объявление пространства имен KML. Это вторая строка в каждом файле KML 2.2.
Объект Document, являющийся контейнером для объектов Placemark и служебных данных.
Объект Placemark, содержащий следующие элементы: Элемент name, название метки.
Элемент description, который появляется во всплывающем окне для метки.
Point - точка, описывающая положение метки на земной поверхности (широта, долгота, а также дополнительно высота).
styleUrl - идентификатор стиля, задающий визуальное отображение объекта.
TimeStamp - время, в которое была зафиксирована точка.
Элемент gx:Track, содержащий в себе описание маршрута, представленного набором точек:
Элемент when, содержащий дату и время фиксации точки.
Элемент gx:coord, аналогичный элементу Point и содержащий координаты точки.
ОТЛАДКА ПТС
Отладка состоит из двух стадий, на каждой из которых проверяется корректность работы и отсутствие ошибок в выходных данных.
На первой стадии в память микроконтроллерной платы зашивается тестовый код, напрямую передающий данные, поступающие с GPS-модуля, через последовательный порт на компьютер. Далее, данные анализируются с помощью программы NMEA Parser на предмет корректности полученных координат, времени и числа спутников. Также, на данном этапе тестируется правильное распознавание библиотекой TinyGPS ключевых фраз, полученных ей по протоколу NMEA.
На второй стадии в память микроконтроллерной платы зашивается рабочий код, она отсоединяется от компьютера, к ней подключается батарея. В таком мобильном виде устройство тестируется на корректность записи маршрутов при изменении координат в то время, пока устройство находится в движении. Полученные после теста файлы анализируются в приложении Google Maps и выявляются погрешности. Визуальное совпадение маршрута, видимого в программе с реальным маршрутом, по которому двигалось устройство, является показателем корректности работы устройства.
Скриншот экрана программы Google Maps с загруженным в нее файлом, записанным устройством на второй стадии тестирования, находится в приложении 3.
ЗАКЛЮЧЕНИЕ
В ходе выполнения выпускной квалификационной работы мной было сделано следующее:
Изучены протоколы NMEA и RS-232.
Изучены базовые принципы функционирования систем глобального позиционирования.
Улучшены навыки программирования на языке Arduino.
Изучен язык разметки KML.
Освоены принципы управления микроконтроллерами.
Разработано и реализовано устройство определения точки позиционирования объекта.
Поставленная передо мной задача выполнена полностью. Устройство работает корректно при условиях, определяемых аппаратными особенностями GPS-модуля: отсутствие облачности и преград, мешающих фиксированию точки расположения объекта.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Улли Соммер. Программирование микроконтроллерных плат Arduino/Freeduino - СПб: БХВ-Петербург, 2012. - 256c.
Интерфейс RS-232 [Электрон. ресурс]:
http://novosoft.by/Ency/rs-232.htm [10.06.13]
Seeeduino v3.0., вики-страница [Электрон. ресурс]:
http://www.seeedstudio.com/wiki/Seeeduino_v3.0 [9.06.13]
KML Documentation [Электрон. ресурс]:
https://developers.google.com/kml/ [10.06.13]
Глобальные Навигационные Спутниковые Системы (GNSS) [Электрон. ресурс]:
http://gps-club.ru/gps_think/detail.php?ID=20187 [25.05.13]
The NMEA 0183 Protocol [Электрон. ресурс]:
http://www.tronico.fi/OH6NT/docs/NMEA0183.pdf [10.06.13]
ATMega328P [Электрон. ресурс]:
http://www.atmel.com/devices/ATMEGA328P.aspx [25.05.13]
GPS Shield v1.1. [ Электрон. ресурс]:
http://iteadstudio.com/store/images/produce/Shield/Shields/gpsshield/ArduinoGPSshield_DS.pdf [10.06.13]
Документ
Категория
Рефераты
Просмотров
199
Размер файла
528 Кб
Теги
poyasnitelnaya, zapiska, 108
1/--страниц
Пожаловаться на содержимое документа