Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Как связать Arduino Mega с GPS-модулем NEO-6M

Компоненты и расходные материалы

Arduino Mega 2560
× 1
GPS-модуль u-blox NEO-6M
× 1

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Я обнаружил, что нет учебника по взаимодействию Arduino Mega с GPS-модулем NEO-6M, поэтому я решил сделать его. Надеюсь, вам понравится!

Необходимые компоненты

Оборудование

  • Arduino Mega ==> 30 долларов США.
  • GPS-модуль Нео-6М ==> 30 долларов

Программное обеспечение

  • IDE Arduino

Общая стоимость проекта 60 долларов.

Информация о GPS

Что такое GPS?

Глобальная система позиционирования (GPS) - это спутниковая навигационная система, состоящая как минимум из 24 спутников. GPS работает в любых погодных условиях, в любой точке мира, 24 часа в сутки, без абонентской платы или платы за установку.

Как работает GPS

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

Чтобы рассчитать ваше двумерное положение (широту и долготу) и отследить движение, приемник GPS должен быть привязан к сигналу как минимум 3 спутников. При наличии 4 или более спутников приемник может определить ваше трехмерное положение (широту, долготу и высоту). Как правило, приемник GPS отслеживает 8 или более спутников, но это зависит от времени суток и вашего местоположения на Земле. После определения вашего местоположения устройство GPS может вычислить другую информацию, например

  • Скорость
  • Подшипник
  • Отследить
  • Расстояние поездки
  • Расстояние до пункта назначения

Что такое сигнал

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

  • Псевдослучайный код

Это I.D. код, определяющий, какой спутник передает информацию. Вы можете увидеть, с каких спутников вы принимаете сигналы, на странице спутников вашего устройства.

  • Данные эфемерид

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

  • Данные альманаха

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

GPS-модуль Нео-6М

GPS-модуль NEO-6M показан на рисунке ниже. Он поставляется с внешней антенной и не имеет контактов разъема. Так что вам нужно будет его припаять.

Обзор GPS-модуля NEO-6M

  • GPS-чип NEO-6M

Сердцем модуля является GPS-чип NEO-6M от u-blox. Он может отслеживать до 22 спутников на 50 каналах и обеспечивает самый высокий в отрасли уровень чувствительности, то есть отслеживание -161 дБ, при потреблении тока питания всего 45 мА. Механизм позиционирования u-blox 6 также может похвастаться временем до первого исправления (TTFF) менее 1 секунды. Одна из лучших функций чипа - это режим энергосбережения (PSM). Это позволяет снизить энергопотребление системы за счет выборочного включения и выключения частей приемника. Это значительно снижает энергопотребление модуля до 11 мА, что делает его подходящим для приложений, чувствительных к энергопотреблению, таких как наручные часы с GPS. Необходимые контакты данных микросхемы NEO-6M GPS разбиты на заголовки с шагом 0,1 дюйма. Это включает в себя контакты, необходимые для связи с микроконтроллером через UART.

Примечание :- Модуль поддерживает скорость передачи от 4800 до 230400 бит / с при скорости передачи по умолчанию 9600 бод.

Светодиодный индикатор фиксации положения

На модуле GPS NEO-6M есть светодиод, который показывает состояние определения местоположения. Он будет мигать с разной частотой в зависимости от того, в каком состоянии он находится

  • Не мигает ==> означает поиск спутников.
  • Мигает раз в секунду - означает, что исправление положения найдено.
  • Регулятор LDO 3,3 В

Рабочее напряжение микросхемы NEO-6M от 2,7 до 3,6В. Но модуль поставляется с регулятором 3V3 со сверхмалым падением напряжения MIC5205 от MICREL. Логические выводы также устойчивы к напряжению 5 В, поэтому мы можем легко подключить их к Arduino или любому логическому микроконтроллеру с напряжением 5 В без использования преобразователя логического уровня.

Батарея и EEPROM

Модуль оснащен двухпроводной последовательной EEPROM HK24C32. Он имеет размер 4 КБ и подключается к микросхеме NEO-6M через I2C. Модуль также содержит аккумуляторную батарею, которая действует как суперконденсатор.

EEPROM вместе с батареей помогает удерживать RAM с батарейным питанием (BBR). BBR содержит данные часов, последние данные о местоположении (GNSS или битовые данные) и конфигурацию модуля. Но он не предназначен для постоянного хранения данных.

Поскольку батарея сохраняет часы и последнее положение, время до первого исправления (TTFF) значительно сокращается до 1 с. Это позволяет намного быстрее блокировать положение.

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

Распиновка

  • GND - это контакт заземления, который необходимо подключить к контакту GND на Arduino.
  • Вывод TxD (передатчик) используется для последовательной связи.
  • Вывод RxD (приемник) используется для последовательной связи.
  • VCC обеспечивает питание модуля. Вы можете напрямую подключить его к выводу 5V на Arduino.

Ардуино Мега

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

Arduino Mega 2560 - это плата микроконтроллера на базе Atmega2560.

  • На плате имеется 54 цифровых входа / выхода и 16 аналоговых контактов, которые делают это устройство уникальным и выделяющимся среди других. Из 54 цифровых входов / выходов 15 используются для ШИМ (широтно-импульсной модуляции).
  • Кварцевый генератор с частотой 16 МГц.
  • Плата поставляется с портом для USB-кабеля, который используется для подключения и передачи кода с компьютера на плату.
  • Разъем питания постоянного тока соединен с платой, которая используется для питания платы.
  • Плата поставляется с двумя регуляторами напряжения, то есть 5 В и 3,3 В, что обеспечивает гибкость для регулирования напряжения в соответствии с требованиями.
  • Есть кнопка сброса и 4 аппаратных последовательных порта, называемых USART, которые обеспечивают максимальную скорость для настройки связи.
  • Есть три способа включить доску. Вы можете использовать USB-кабель для питания платы и передачи кода на плату, или вы можете включить его, используя Vin платы или через разъем питания или батарею.

Технические характеристики

Распиновка

Описание контакта

  • 5 В и 3,3 В ==> Этот вывод используется для обеспечения выходного стабилизированного напряжения около 5 В. Этот регулируемый источник питания питает контроллер и другие компоненты на плате. Его можно получить от Vin платы или кабеля USB или другого регулируемого источника напряжения 5 В. В то время как другое регулирование напряжения обеспечивается контактом 3,3 В. Максимальная мощность, которую он может потреблять, составляет 50 мА.
  • GND ==> На плате доступно 5 контактов заземления, что делает его полезным, когда для проекта требуется более одного контакта заземления.
  • Сброс ==> Этот вывод используется для сброса платы. Установка этого вывода на НИЗКИЙ приведет к сбросу платы.
  • Вин ==> Это входное напряжение, подаваемое на плату, от 7 до 20 В. Через этот контакт можно получить доступ к напряжению, обеспечиваемому разъемом питания. Однако выходное напряжение через этот вывод на плате будет автоматически установлено до 5 В.
  • Последовательная связь ==> RXD и TXD - это последовательные контакты, используемые для передачи и приема последовательных данных, то есть Rx представляет собой передачу данных, а Tx используется для приема данных. Используются четыре комбинации этих последовательных контактов, где Serail 0 содержит RX (0) и TX (1), Serial 1 содержит TX (18) и RX (19), Serial 2 содержит TX (16) и RX (17), а Serial 3 содержит TX (14) и RX (15).
  • Внешние прерывания ==> Шесть контактов используются для создания внешних прерываний, то есть прерывания 0 (0), прерывания 1 (3), прерывания 2 (21), прерывания 3 (20), прерывания 4 (19), прерывания 5 (18). Эти выводы создают прерывания несколькими способами, например, обеспечивают НИЗКОЕ значение, нарастающий или спадающий фронт или изменяют значение на выводах прерывания.
  • Светодиод ==> Эта плата оснащена встроенным светодиодом, подключенным к цифровому выводу 13. ВЫСОКОЕ значение на этом выводе включает светодиод, а низкое - его выключение.
  • AREF ==> AREF означает аналоговое опорное напряжение, которое является опорным напряжением для аналоговых входов.
  • Аналоговые контакты ==> На плате имеется 16 аналоговых контактов, обозначенных как A0 - A15. Важно отметить, что все эти аналоговые выводы могут использоваться как цифровые выводы ввода / вывода. Каждый аналоговый вывод имеет 10-битное разрешение. Эти контакты могут измерять от земли до 5 В. Однако верхнее значение можно изменить с помощью функций AREF и analogReference ().
  • I2C ==> Два контакта 20 и 21 поддерживают связь I2C, где 20 представляет SDA (последовательную линию данных, в основном используемую для хранения данных), а 21 представляет SCL (последовательную линию синхронизации, в основном используемую для обеспечения синхронизации данных между устройствами)
  • Связь SPI ==> SPI означает последовательный периферийный интерфейс, используемый для передачи данных между контроллером и другими компонентами периферийных устройств. Четыре контакта, то есть 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS), используются для связи SPI.

IDE Arduino

Я предполагаю, что вы уже установили Arduino IDE.

1. Загрузите необходимую библиотеку, указанную ниже

Библиотека TinyGPS

2. После скачивания. Извлеките его и переместите в папку C:\ Users \ ... \ Documents \ Arduino \ libraries, убедитесь, что там нет (-).

3. Откройте IDE Arduino и скопируйте код из раздела программы.

4. Затем выберите плату для этого перейдите в Инструменты ==> Платы ==> выберите плату, здесь мы используем Arduino Mega 2560.

5. После выбора платы выберите порт, для чего перейдите в Инструменты ==> Порты.

6. После выбора платы и порта нажмите «Загрузить».

Связи

Arduino MEGA ==> NEO-6M GPS .

  • 3,3 В ==> VCC
  • GND ==> GND
  • Tx1 (18) ==> Rx
  • Rx1 (19) ==> Tx

Вы также можете использовать Serial2 или Serial3 вместо Serial1

Контакты Serial2

  • Tx2 (16) ==> Rx
  • Rx2 (17) ==> Tx

Контакты Serial3

  • Tx3 (14) ==> Rx
  • Rx3 (15) ==> Tx

Результат

Код

  • Arduinomega_GPS
Arduinomega_GPS Arduino
 // Подключение к контактам 18 и 19 # include  // long lat, lon; // создать переменную для широты и долготы objectfloat lat, lon; TinyGPS gps; // создать объект GPSvoid setup () {Serial.begin (57600); // подключаемся к serialSerial.println ("Полученный сигнал GPS:"); Serial1.begin (9600); // подключаем датчик GPS} void loop () {while (Serial1.available ()) {// проверяем данные GPS if (gps.encode (Serial1.read ())) // кодируем данные GPS {gps.f_get_position (&lat , &lon); // получить широту и долготу Serial.print ("Position:"); // Широта Serial.print ("Широта:"); Серийный принт (лат., 6); Serial.print (","); // Долгота Serial.print ("Долгота:"); Serial.println (lon, 6); }}} / * // Подключение к контактам 16 и 17 # include  // long lat, lon; // создать переменную для широты и долготы objectfloat lat, lon; TinyGPS gps; // создать объект GPSvoid setup () {Serial.begin (57600); // подключаемся к serialSerial.println ("Полученный сигнал GPS:"); Serial2.begin (9600); // подключаем датчик GPS} void loop () {while (Serial2.available ()) {// проверяем данные GPS if (gps.encode (Serial2.read ())) // кодируем данные GPS {gps.f_get_position (&lat , &lon); // получить широту и долготу Serial.print ("Position:"); // Широта Serial.print ("Широта:"); Серийный принт (лат., 6); Serial.print (","); // Долгота Serial.print ("Долгота:"); Serial.println (lon, 6); }}} * // * // Подключение к контактам 14 и 15 # include  // long lat, lon; // создать переменную для широты и долготы objectfloat lat, lon; TinyGPS gps; // создать объект GPSvoid setup () {Serial.begin (57600); // подключаемся к serialSerial.println ("Полученный сигнал GPS:"); Serial3.begin (9600); // подключаем датчик GPS} void loop () {while (Serial3.available ()) {// проверяем данные GPS if (gps.encode (Serial3.read ())) // кодируем данные GPS {gps.f_get_position (&lat , &lon); // получить широту и долготу Serial.print ("Position:"); // Широта Serial.print ("Широта:"); Серийный принт (лат., 6); Serial.print (","); // Долгота Serial.print ("Долгота:"); Serial.println (lon, 6); }}} * / 

Схема


Производственный процесс

  1. Захват капель воды с помощью Arduino
  2. Игра с дисплеем Nextion
  3. u-blox LEA-6H 02 GPS-модуль с Arduino и Python
  4. Как читать температуру и влажность на Blynk с DHT11
  5. Как создавать музыку с помощью Arduino
  6. Как использовать NMEA-0183 с Arduino
  7. Отображение местоположения по GPS с помощью экранов GPS и TFT
  8. Как использовать Modbus с Arduino
  9. Записывать информацию GPS на карту MicorSD с помощью Visuino
  10. Модуль Arduino + GPS - средство уведомления о пункте назначения