Arduino gps. GPS-модулі для Arduino: огляд, порівняння та приклади використання

Що таке GPS-модуль для Arduino. Які бувають види GPS-модулів. Як підключити GPS до Arduino. Які переваги використання GPS з Arduino. Які проекти можна реалізувати з GPS та Arduino.

Содержание

Що таке GPS-модуль для Arduino

GPS-модуль для Arduino — це електронний пристрій, який дозволяє отримувати дані про місцезнаходження від супутників системи глобального позиціонування GPS. Такі модулі підключаються до плати Arduino і дають можливість визначати координати, швидкість, висоту та інші параметри.

Основні компоненти GPS-модуля для Arduino:

  • GPS-чіп — головний елемент, що приймає та обробляє сигнали від супутників
  • Антена — для прийому радіосигналів від супутників
  • Контролер — для обміну даними з Arduino
  • Роз’єми — для підключення до Arduino

GPS-модулі для Arduino дозволяють отримувати такі дані:

  • Широта і довгота
  • Висота над рівнем моря
  • Швидкість руху
  • Курс руху
  • Точний час
  • Кількість видимих супутників

Популярні моделі GPS-модулів для Arduino

На ринку представлено багато моделей GPS-модулів, сумісних з Arduino. Розглянемо найпопулярніші з них:


NEO-6M

Один з найпоширеніших GPS-модулів для Arduino. Основні характеристики:

  • Чіпсет u-blox NEO-6M
  • Напруга живлення: 3.3-5В
  • Точність позиціонування: до 2.5 м
  • Швидкість оновлення: до 5 Гц
  • Споживання струму: 45 мА
  • Інтерфейс: UART

NEO-7M

Покращена версія NEO-6M з кращими характеристиками:

  • Чіпсет u-blox NEO-7M
  • Точність позиціонування: до 2 м
  • Швидкість оновлення: до 10 Гц
  • Споживання струму: 40 мА
  • Підтримка GLONASS

NEO-M8N

Високопродуктивний GPS/ГЛОНАСС модуль:

  • Чіпсет u-blox NEO-M8N
  • Точність позиціонування: до 1 м
  • Швидкість оновлення: до 18 Гц
  • Споживання струму: 32 мА
  • Підтримка GPS, ГЛОНАСС, BeiDou, Galileo

Як підключити GPS-модуль до Arduino

Підключення GPS-модуля до Arduino виконується досить просто. Типовий порядок дій:

  1. Підключіть живлення модуля до виводів 5V і GND Arduino
  2. З’єднайте вивід TX модуля з RX Arduino
  3. З’єднайте вивід RX модуля з TX Arduino
  4. За необхідності підключіть антену до модуля

Приклад підключення NEO-6M до Arduino Uno:

  • VCC модуля → 5V Arduino
  • GND модуля → GND Arduino
  • TX модуля → D4 Arduino
  • RX модуля → D3 Arduino

Для роботи з GPS-модулем в Arduino IDE потрібно встановити бібліотеку TinyGPS++ або аналогічну.


Переваги використання GPS з Arduino

Поєднання GPS-модуля та Arduino відкриває широкі можливості для різноманітних проектів. Основні переваги:

  • Доступність — недорогі модулі та плати Arduino
  • Простота використання — готові бібліотеки для Arduino
  • Гнучкість — можливість створювати власні пристрої
  • Точність — сучасні модулі забезпечують високу точність позиціонування
  • Портативність — компактні розміри дозволяють створювати мобільні пристрої

Приклади проектів з використанням GPS та Arduino

GPS-модуль у поєднанні з Arduino дозволяє реалізувати багато цікавих проектів, наприклад:

GPS-трекер

Пристрій для відстеження місцезнаходження об’єктів. Можна використовувати для:

  • Моніторингу переміщення транспорту
  • Відстеження домашніх тварин
  • Пошуку загублених речей

Навігаційна система

Створення власного навігатора на основі Arduino та GPS. Функціональність:

  • Відображення поточних координат
  • Побудова маршрутів
  • Розрахунок відстані до точки призначення

Метеостанція з GPS-синхронізацією

Домашня метеостанція з функцією синхронізації часу по GPS. Можливості:


  • Вимірювання температури, вологості, тиску
  • Точний час і дата з GPS
  • Прогноз погоди на основі атмосферного тиску

Код для роботи з GPS-модулем на Arduino

Розглянемо приклад коду для отримання координат з GPS-модуля NEO-6M:

«`cpp #include #include // Створюємо об’єкт GPS TinyGPSPlus gps; // Визначаємо піни для програмного UART static const int RXPin = 4, TXPin = 3; static const uint32_t GPSBaud = 9600; // Створюємо програмний UART SoftwareSerial ss(RXPin, TXPin); void setup() { // Ініціалізуємо апаратний UART Serial.begin(9600); // Ініціалізуємо програмний UART для GPS ss.begin(GPSBaud); Serial.println(F(«GPS Test»)); } void loop() { // Зчитуємо дані з GPS while (ss.available() > 0) { if (gps.encode(ss.read())) { displayInfo(); } } // Перевіряємо, чи отримані дані від GPS if (millis() >
5000 && gps.charsProcessed() < 10) { Serial.println(F("No GPS detected")); while(true); } } void displayInfo() { if (gps.location.isValid()) { Serial.print(F("Latitude: ")); Serial.println(gps.location.lat(), 6); Serial.print(F("Longitude: ")); Serial.println(gps.location.lng(), 6); } else { Serial.println(F("Location: Not Available")); } Serial.println(); } ```

Цей код дозволяє отримувати координати з GPS-модуля та виводити їх у серійний порт. Для роботи потрібно встановити бібліотеку TinyGPS++.


Поради щодо використання GPS з Arduino

При роботі з GPS-модулем та Arduino варто враховувати такі моменти:

  • Розташування антени — для кращого прийому сигналу антена повинна мати вільний огляд неба
  • Час першого фіксу — після включення модулю може знадобитися кілька хвилин для отримання перших даних
  • Точність — на відкритій місцевості точність вище, ніж у приміщенні або між високими будівлями
  • Споживання енергії — GPS-модуль споживає досить багато енергії, що важливо враховувати для автономних пристроїв
  • Оновлення прошивки — деякі модулі дозволяють оновлювати прошивку для покращення характеристик

Альтернативи GPS для визначення місцезнаходження

Окрім GPS існують й інші технології для визначення місцезнаходження, які можна використовувати з Arduino:

ГЛОНАСС

Російська супутникова система навігації. Особливості:

  • Краща точність на високих широтах
  • Менша кількість супутників порівняно з GPS
  • Деякі модулі підтримують одночасно GPS і ГЛОНАСС

Wi-Fi позиціонування

Визначення місцезнаходження за найближчими точками Wi-Fi. Переваги:


  • Працює у приміщеннях
  • Не потребує прямої видимості неба
  • Менше енергоспоживання порівняно з GPS

Bluetooth-маяки

Використання Bluetooth-пристроїв для локального позиціонування. Особливості:

  • Висока точність у межах приміщення
  • Невеликий радіус дії
  • Потребує розгортання мережі маяків

GPS трекер Arduino: как работает маяк Ардуино

Ардуино – это возможность для каждого создать сложные вещи просто. А также своего рода конструктор, как для взрослых, так и для детей. С помощью Arduino воплощаются мечты, создаются и оживают роботы.

 Загрузка …

Ардуино обладает большим выбором плат, предназначенных для выполнения разного объема и вида работ. Самые популярные из них – Arduino Uno, Ardino Mega, Arduino Nano и Arduino Leonardo. Также есть еще большой выбор вариантов для конкретных случаев.

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

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

Цель создания GPS трекера

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

Геотрекеров сейчас великое множество, однако, как говорит пословица – «Хочешь сделать что-то хорошо – сделай это сам». При наличии понимания как должно это работать, или при желании разобраться во всем самому, шанс создать трекер своими руками выглядит предпочтительным.

К тому же в каждом из нас живет параноик. Иногда он тише, иногда громче. Доверия чужим «жучкам» нет. Лучше сделать самому и точно знать, что прослушивать его будешь только ты, а не пять соседних держав.

Работа

Для создания GPS трекера Arduino были изучены всевозможные материалы в интернете. И принято решение остановиться на таких запчастях:

  • модуль Sim808 – для использования сим-карты;
  • GPS и GSM антенны;
  • непосредственно плата Arduino nano и переходники к ней, для скрепления всего со всем.

Схема, найденная в интернете, оказалась невероятно проста. В качестве учебного занятия в будущем после ознакомления с Arduino самостоятельно имеет смысл создать еще один GPS/GSM трекер со своим ребенком.

Подключив схему Ардуино к модулю сим, подключаем антенны, и обеспечиваем всё это зарядом батареи на 12В. И это всё. Гениально и просто. Далее при помощи Ардуино и имеющегося скретча прошиваем получившийся аппарат и вуаля – готово.

Рекомендуем купить

Результаты

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

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

В интернете существуют статьи про более сложные системы и платы, но целесообразности их использования или замены на них того что есть нет. Как говорится «зачем исправлять то, что и так работает».

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

Судя по отзывам у китайских аналогов и проблем с частотой записи нет, и даже обрывы связи незаметны у некоторых моделей. Хотя по цене они выходят также как то, что сделано из Ардуино. Из этого вытекает рекомендация – если вы не инженер в душе, и тяги к изобретениям у вас нет, проще всё-таки купить готовый китайский продукт, чем делать крупногабаритное свое.

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

GPS трекер Arduino

YouTube responded with an error: The provided API key has an IP address restriction. The originating IP address of the call (87.236.20.136) violates this restriction.

GPS часы на Arduino | Каталог самоделок

Многие автомобилисты хотели бы иметь в машине часы, которые всегда исправно идут без перебоев. Ведь многих работа обязывает постоянно находиться в машине, а время очень ценно. Обычно такие часы – дорогостоящее удовольствие. Но немногие задумываются, что их можно сделать самому. Как собрать такие часы и откуда же брать настройки? Есть несколько вариантов:

  1. GPS;
  2. Интернет;
  3. RDS.

Вариант использовать Интернет не подходит, так как могут появиться сложности с синхронизацией времени, то есть нужно будет приобрести модем в машину, а это лишние ненужные расходы. Остается сделать выбор между GPS и RDS, последний вариант отпадает, так как нужно привязываться к какой-то станции, и не всегда возможна синхронизация. Самый лучший вариант – это GPS.

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

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

Обозначение функций контактов GPS модулем EM-406A

Если имеется маркировка, то обозначения делать не обязательно – вставляются всего два разъема. Но, если маркировки нет, необходимо подключать вывод GND к GND, Rx – к digital pin 2, Tx – к digital pin 3. Нужно внимательно подключать провода, серого цвета идет шестой, а не первый.

Модуль GPS имеет светодиодную индикацию состояний:

  • светится беспрерывно – спутник ищет и определяет координаты;
  • мигает – все координаты уже установлены и данные передаются;
  • не светится, питание подается с плохим контактом.
Модуль GPS

Можно регулировать его работу от 3.5 до 7 Мгц.

Модуль GPSМодуль с одной платой и Ublox-6M с компасом.

QVGA SPI 240×320 с дисплеем, является аналогом Adafruit ILI9341, благодаря этому увеличивается скорость работы и оттуда же идет демо стрелочных часов. Далее объединяем демо стрелочных часов с данными GPS. Картинку часов можно менять, загрузив другие модули.

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

GPS часы на Arduino

P.S. у библиотеки TFT_ILI9341 в файле User_Setup.h лучше сделать так:

 //#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
//#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
//#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:.


Прикрепленные файлы:  СКЕТЧ  – БИБЛИОТЕКА 
Автор: Максим Беляев, Лобня, Россия


GPS маяк для автомобиля на ардуино и модуле SIM800L

GPS маяк для автомобиля на ардуино про мини  и модуле SIM800L предназначен для определения местоположения автомобиля с применением приложения Google maps которое установлено по умолчанию почти на всех андроид смартфонах. Устройство работает следующим образом, при отправке SMS с текстом Gps со своего смартфона на номер SIM карты установленной в модуль SIM800L обратно придет SMS с текстом Gps location  www.google.com/maps/place/ , кликнув на эту ссылку автоматически откроется приложение Google maps на смартфоне и покажет местоположение устройства. Смартфон должен будет подключен к сети Интернет для загрузки карт. Рекомендуется также в приложении Google maps выставить тип карты «Спутник».

      Теперь рассмотрим как работает схема маяка подробнее. При подаче напряжения питания на устройство модуль SIM800L связывается с сотовым оператором, ардуино не получая данных с gps модуля NEO-6M-0-001 через 6 секунд переходит в режим сна, при этом состоянии GPS маяк потребляет ток всего 1,5-2 мА. Как только модуль SIM800L  получает SMS с текстом Gps он будит ардуино и на выходе D6 появляется высокий уровень на 6 минут который открывает транзистор Т1 и на gps модуле NEO-6M-0-001 появляется питание. Далее ардуино получает данные с gps модуля и как только будут получены gps данные с 5 спутников ардуино сформирует SMS с текстом Gps location  www.google.com/maps/place/  и через 6 секунд перейдет в режим сна. Если данные с gps модуля не будут получены или получены данные менее чем c 5 спутников будет сформирована SMS с текстом No Gps location.

По SMS с текстом Bat  маяк пришлет уровень заряда аккумулятора в процентах.
По SMS с текстом Bal состояние баланса на сим карте (работает только с Билайн).

     На схеме маяк питается от преобразователя напряжения LM2596, но лучше применить модуль MP1584EN он меньше по габаритам и дешевле. В обоих случаях на модуле питания предварительно нужно установить потенциометром напряжение 4 вольта. Также маяк можно запитать от аккумулятора 18650 через плату контроля аккумулятора TP4056.  На модуле ардуино необходимо удалить стабилизатор напряжения для экономии питания. Транзистор Т1 smd любой кремневый с током коллектора не менее 100 мА например n2222. Кондесатор С2 лучше увеличить по емкости в 2 раза. Все модули заказаны на Алиэкспресс.
При прошивке ардуино про мини необходимо временно отключить ее от gps модуля NEO-6M-0-001. Залить скетч в ардуино можно при помощи USB UART адаптера (CP2102 или Ch440G). Не забывает что сразу после компиляции скетча в момент загрузки на ардуино про мини нужно нажать кнопку reset.

gps

Список порівняння:

Каталог

  • Новинки магазину
  • Подарункові сертифікати
  • Arduino контролери
  • Міні-компьютери
  • Raspberry Pi
  • Засоби розробки, програматори
  • Карти пам’яті SD, Флешки
  • Набори (DIY Kits), конструктори
  • RF, Wi-Fi, Bluetooth, GSM, GPS, FM, XBee
  • SONOFF Розумний будинок
  • Метеостанції
  • Плати розширень, модулі, шилди
  • TFT, LCD, OLED, E-Ink дисплеЇ
  • Audio, Звук, mp3
  • Датчики
    • Звук, ультразвук
    • Освітлення, ІЧ, вогонь, ультрафіолет
    • Рух, відстань
    • Температура, вологість
    • Акселерометри, гіроскопи
    • Напруга, струм
    • Газ, дим, пил, повітря
    • Тиск
    • Для рідини
    • Ph, хімічний аналіз
    • Механічний вплив
    • Індуктивні датчики
    • Магнітне поле
    • Медицина, здоров’я
    • Інше
  • Робототехніка
  • Радіокеровані іграшки, STEM-конструктори
  • Мотори, крокові двигуни, сервомотори, драйвера
  • Насоси, помпи, електромагнітні клапани
  • Кабелі, дроти, перехідники, шнури живлення, хаби
  • Макетування
  • Роз’єми, конектори, клемники
  • Радіодеталі
  • Реле
  • Генератори сигналів
  • Вимикачі, перемикачі, кнопки, дистанційні перемикачі
  • Конвертори, перетворювачі
  • LED освітлення, фонарики
  • Світлодіоди світлодіодні індикатори, лазери
  • Джерела живлення, подовжувачі
  • Перетворювачі напруги, стабілізатори
  • Диммери, силові ключі, регулятори потужності
  • Зарядні пристрої, зарядні модулі
  • Пристрої введення, клавіатури, джойстики
  • Акумулятори, батарейки, батарейні відсіки
  • Деталі для літаючих апаратів
  • Охолодження
  • Інструменти, обладнання
    • Клеї
    • Кусачки, бокорізи, пасатижі
    • Ножі, скальпелі, ножиці
    • Викрутки, ключі
    • Пінцети, набори для ремонту
    • Шуруповерти, дрилі, свердла
    • Мультитул
    • Клеєві пістолети
    • Ізолента, скотч, термоусадка
    • Лінійки, рулетки
    • Кліщі (обтиск, опресовування), знімачі ізоляції
    • Набори компонентів
    • Інші інструменти
  • Паяльне обладнання
  • Касетниці, органайзери, сортовики
  • Вимірювальні прилади, мультиметри, осцилографи, вимірювальні модулі
  • Готові пристрої
  • 3D принтери і ЧПУ
  • 3D пластик Monofilament
  • 3D пластик Plexiwire Filament
  • Термопластик полікапролактон для ліплення
  • 3D Ручки
  • Магніти неодимові
  • Інше
  • Література
  • Розпродаж
  • Корпуси універсальні, ніжки
  • Xiaomi
  • Архівні товари

Створення робота, який їздить по лінії

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

Аппаратный микшер громкости Windows 10 с использованием Arduino

У многих, мне кажется, бывают ситуации, когда при работе за ПК необходимо отрегулировать звук только одного работающего приложения, не трогая остальные. Например, сбавить громкость музыки во время входящего звонка в скайпе, или подкрутить голос своего →

Наладка лампового усилителя

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

FPV OSD + GPS без використання польотного контролера

Після конструювання свого першого радіокерованого літаючого крила появилося бажання встановити систему FPV. З камерою літати стало цікавіше, але бракувало навігаційної інформації, хотілось дізнатися на якій висоті та з якою швидкістю прямує крило. Виникла →

Индикаторы на китайских светодиодах

В статье проанализирована возможность проектирования и изготовления в домашних условиях больших цифровых индикаторов любой сложности и размера на базе дешёвых (100 штук за 30  грн) сверхъярких китайских светодиодов. В частности, рассмотрен вопрос →

Знайдено 10 товар(ів)

Сортувати: Найменування від А до ЯНайменування від Я до Авід дешевих до дорогихвід дорогих до дешевихРейтинг — зростанняРейтинг — спадання
  • код: FCC178 |

    71 грн

    статус товара: в наявності

  • код: FCC222 |

    624 грн

    статус товара: в наявності

  • код: FCC151 |

    1 114 грн

    статус товара: в наявності

  • код: ASC100 |

    483 грн

    статус товара: в наявності

  • код: DPC197 |

    795 грн
    c ПДВ

    статус товара: товар закінчується

  • код: AOC246 |

    175 грн

    статус товара: в наявності

  • код: DPC259 |

    646 грн

    статус товара: товар закінчується

  • код: DPC425 |

    244 грн

    статус товара: очікується

  • код: DPC426 |

    298 грн

    статус товара: очікується

  • код: DPC453 |

    370 грн

    статус товара: очікується

Поставщики и ресурсы беспроводной связи RF

О компании RF Wireless World

Веб-сайт RF Wireless World является домом для поставщиков и ресурсов радиочастотной и беспроводной связи. На сайте представлены статьи, руководства, поставщики, терминология, исходный код (VHDL, Verilog, MATLAB, Labview), тестирование и измерения, калькуляторы, новости, книги, загрузки и многое другое.

Сайт RF Wireless World охватывает ресурсы по различным темам, таким как RF, беспроводная связь, vsat, спутник, радар, оптоволокно, микроволновая печь, wimax, wlan, zigbee, LTE, 5G NR, GSM, GPRS, GPS, WCDMA, UMTS, TDSCDMA, Bluetooth, Lightwave RF, z-wave, Интернет вещей (IoT), M2M, Ethernet и т. Д.Эти ресурсы основаны на стандартах IEEE и 3GPP. В нем также есть академический раздел, который охватывает колледжи и университеты по инженерным дисциплинам и MBA.

Статьи о системах на основе Интернета вещей

Система обнаружения падений для пожилых людей на основе Интернета вещей : В статье рассматривается архитектура системы обнаружения падений, используемой для пожилых людей. В нем упоминаются преимущества или преимущества системы обнаружения падений Интернета вещей. Читать дальше➤
Также обратитесь к другим статьям о системах на основе Интернета вещей следующим образом:
• Система очистки туалетов самолета. • Система измерения столкновений • Система отслеживания скоропортящихся продуктов и овощей • Система помощи водителю • Система умной торговли • Система мониторинга качества воды. • Система Smart Grid • Система умного освещения на базе Zigbee • Интеллектуальная система парковки на базе Zigbee. • Система умной парковки на основе LoRaWAN


RF Статьи о беспроводной связи

В этом разделе статей представлены статьи о физическом уровне (PHY), уровне MAC, стеке протоколов и сетевой архитектуре на основе WLAN, WiMAX, zigbee, GSM, GPRS, TD-SCDMA, LTE, 5G NR, VSAT, Gigabit Ethernet на основе IEEE / 3GPP и т. Д. .стандарты. Он также охватывает статьи, относящиеся к испытаниям и измерениям, по тестированию на соответствие, используемым для испытаний устройств на соответствие RF / PHY. УКАЗАТЕЛЬ СТАТЬИ ДЛЯ ССЫЛКИ >>.


Физический уровень 5G NR : Обработка физического уровня для канала 5G NR PDSCH и канала 5G NR PUSCH рассмотрена поэтапно. Это описание физического уровня 5G соответствует спецификациям физического уровня 3GPP. Читать дальше➤


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


Основы и типы замирания : В этой статье рассматриваются мелкомасштабные замирания, крупномасштабные замирания, медленные, быстрые и т. Д., Используемые в беспроводной связи. Читать дальше➤


Архитектура сотового телефона 5G : В этой статье рассматривается блок-схема сотового телефона 5G с внутренними модулями 5G. Архитектура сотового телефона. Читать дальше➤


Основы помех и типы помех: В этой статье рассматриваются помехи в соседнем канале, помехи в совмещенном канале, Электромагнитные помехи, ICI, ISI, световые помехи, звуковые помехи и т. Д.Читать дальше➤


5G NR Раздел

В этом разделе рассматриваются функции 5G NR (New Radio), нумерология, диапазоны, архитектура, развертывание, стек протоколов (PHY, MAC, RLC, PDCP, RRC) и т. Д. 5G NR Краткий указатель ссылок >>
• Мини-слот 5G NR • Часть полосы пропускания 5G NR • 5G NR CORESET • Форматы DCI 5G NR • 5G NR UCI • Форматы слотов 5G NR • IE 5G NR RRC • 5G NR SSB, SS, PBCH • 5G NR PRACH • 5G NR PDCCH • 5G NR PUCCH • Эталонные сигналы 5G NR • 5G NR m-последовательность • Золотая последовательность 5G NR • 5G NR Zadoff Chu Sequence • Физический уровень 5G NR • Уровень MAC 5G NR • Уровень 5G NR RLC • Уровень 5G NR PDCP


Учебные пособия по беспроводным технологиям

В этом разделе рассматриваются учебные пособия по радиочастотам и беспроводной связи.Он охватывает учебные пособия по таким темам, как сотовая связь, WLAN (11ac, 11ad), wimax, bluetooth, zigbee, zwave, LTE, DSP, GSM, GPRS, GPS, UMTS, CDMA, UWB, RFID, радар, VSAT, спутник, WLAN, волновод, антенна, фемтосота, тестирование и измерения, IoT и т. Д. См. УКАЗАТЕЛЬ Учебников >>


Учебное пособие по 5G — В этом учебном пособии по 5G также рассматриваются следующие подтемы по технологии 5G:
Учебное пособие по основам 5G. Частотные диапазоны Учебник по миллиметровым волнам Волновая рама 5G мм Зондирование волнового канала 5G мм 4G против 5G Испытательное оборудование 5G Сетевая архитектура 5G Сетевые интерфейсы 5G NR канальное зондирование Типы каналов 5G FDD против TDD Разделение сети 5G NR Что такое 5G NR Режимы развертывания 5G NR Что такое 5G TF


Этот учебник GSM охватывает основы GSM, архитектуру сети, элементы сети, системные спецификации, приложения, Типы пакетов GSM, структура или иерархия кадров GSM, логические каналы, физические каналы, Физический уровень GSM или обработка речи, вход в сеть мобильного телефона GSM, установка вызова или процедура включения питания, MO-вызов, MT-вызов, VAMOS, AMR, MSK, модуляция GMSK, физический уровень, стек протоколов, основы работы с мобильным телефоном, Планирование RF, нисходящая линия связи PS и восходящая линия связи PS.
➤Подробнее.

LTE Tutorial , охватывающий архитектуру системы LTE, охватывающий основы LTE EUTRAN и LTE Evolved Packet Core (EPC). Он обеспечивает связь с обзором системы LTE, радиоинтерфейсом LTE, терминологией LTE, категориями LTE UE, структурой кадра LTE, физическим уровнем LTE, Стек протоколов LTE, каналы LTE (логические, транспортные, физические), пропускная способность LTE, агрегация несущих LTE, передача голоса по LTE, расширенный LTE, Поставщики LTE и LTE vs LTE продвинутые.➤Подробнее.


RF Technology Stuff

Эта страница мира беспроводной радиосвязи описывает пошаговое проектирование преобразователя частоты RF на примере преобразователя RF UP диапазона 70 МГц в диапазон C. для микрополосковой платы с использованием дискретных радиочастотных компонентов, а именно. Смесители, гетеродин, MMIC, синтезатор, опорный генератор OCXO, колодки аттенюатора. ➤Подробнее.
➤Проектирование и разработка радиочастотного трансивера ➤Конструкция RF-фильтра ➤Система VSAT ➤Типы и основы микрополосковой печати ➤ОсновыWaveguide


Секция испытаний и измерений

В этом разделе рассматриваются контрольно-измерительные ресурсы, испытательное и измерительное оборудование для тестирования DUT на основе Стандарты WLAN, WiMAX, Zigbee, Bluetooth, GSM, UMTS, LTE.УКАЗАТЕЛЬ испытаний и измерений >>
➤Система PXI для T&M. ➤ Генерация и анализ сигналов ➤Измерения слоя PHY ➤Тест устройства на соответствие WiMAX ➤ Тест на соответствие Zigbee ➤ Тест на соответствие LTE UE ➤Тест на соответствие TD-SCDMA


Волоконно-оптическая технология

Оптоволоконный компонент , основы, включая детектор, оптический соединитель, изолятор, циркулятор, переключатели, усилитель, фильтр, эквалайзер, мультиплексор, разъемы, демультиплексор и т. д.Эти компоненты используются в оптоволоконной связи. Оптические компоненты INDEX >>
➤Учебное пособие по оптоволоконной связи ➤APS в SDH ➤SONET основы ➤SDH Каркасная конструкция ➤SONET против SDH


Поставщики и производители беспроводных радиочастотных устройств

Сайт RF Wireless World охватывает производителей и поставщиков различных радиочастотных компонентов, систем и подсистем для ярких приложений, см. ИНДЕКС поставщиков >>.

Поставщики радиочастотных компонентов, включая радиочастотный изолятор, радиочастотный циркулятор, радиочастотный смеситель, радиочастотный усилитель, радиочастотный адаптер, радиочастотный разъем, радиочастотный модулятор, радиочастотный трансивер, PLL, VCO, синтезатор, антенну, генератор, делитель мощности, сумматор мощности, фильтр, аттенюатор, диплексор, дуплексер, микросхема резистора, микросхема конденсатора, индуктор микросхемы, ответвитель, оборудование ЭМС, программное обеспечение для проектирования радиочастот, диэлектрический материал, диод и т. д.Производители RF компонентов >>
➤Базовая станция LTE ➤RF Циркулятор ➤RF Изолятор ➤Кристаллический осциллятор


MATLAB, Labview, встроенные исходные коды

Раздел исходного кода RF Wireless World охватывает коды, связанные с языками программирования MATLAB, VHDL, VERILOG и LABVIEW. Эти коды полезны для новичков в этих языках. ИНДЕКС ИСХОДНОГО КОДА >>
➤3-8 декодер кода VHDL ➤Код MATLAB для дескремблера ➤32-битный код ALU Verilog ➤T, D, JK, SR триггеры labview коды


* Общая информация о здоровье населения *

Выполните эти пять простых действий, чтобы остановить коронавирус (COVID-19).
СДЕЛАЙТЕ ПЯТЬ
1. РУКИ: часто мойте их.
2. КОЛЕНО: Откашляйтесь.
3. ЛИЦО: не трогайте его
4. НОГИ: держитесь на расстоянии более 3 футов (1 м) друг от друга.
5. ЧУВСТВОВАТЬ: Болен? Оставайся дома

Используйте технологию отслеживания контактов >>, соблюдайте >> рекомендации по социальному дистанцированию и установить систему видеонаблюдения >> чтобы спасти сотни жизней. Использование концепции телемедицины стало очень популярным в таким странам, как США и Китай, чтобы остановить распространение COVID-19, поскольку это заразное заболевание.


RF Калькуляторы и преобразователи беспроводной связи

Раздел «Калькуляторы и преобразователи» охватывает ВЧ-калькуляторы, беспроводные калькуляторы, а также преобразователи единиц измерения. Сюда входят такие беспроводные технологии, как GSM, UMTS, LTE, 5G NR и т. Д. СПРАВОЧНЫЕ КАЛЬКУЛЯТОРЫ Указатель >>.
➤ Калькулятор пропускной способности 5G NR ➤5G NR ARFCN против преобразования частоты ➤Калькулятор скорости передачи данных LoRa ➤LTE EARFCN для преобразования частоты ➤Калькулятор антенн Яги ➤ Калькулятор времени выборки 5G NR


IoT-Интернет вещей Беспроводные технологии

Раздел IoT охватывает беспроводные технологии Интернета вещей, такие как WLAN, WiMAX, Zigbee, Z-wave, UMTS, LTE, GSM, GPRS, THREAD, EnOcean, LoRa, SIGFOX, WHDI, Ethernet, 6LoWPAN, RF4CE, Bluetooth, Bluetooth Low Power (BLE), NFC, RFID, INSTEON, X10, KNX, ANT +, Wavenis, Dash7, HomePlug и другие.Он также охватывает датчики Интернета вещей, компоненты Интернета вещей и компании Интернета вещей.
См. Главную страницу IoT >> и следующие ссылки.
➤ НИТЬ ➤EnOcean ➤Учебник по LoRa ➤Учебник по SIGFOX ➤WHDI ➤6LoWPAN ➤Zigbee RF4CE ➤NFC ➤Lonworks ➤CEBus ➤UPB



СВЯЗАННЫЕ ЗАПИСИ


RF Wireless Учебники



Различные типы датчиков


Поделиться страницей

Перевести

GPS-часы Arduino с местным временем с использованием модуля NEO-6M

/ *

* GPS-часы Arduino с местным временем с использованием модуля NEO-6M и ЖК-дисплея 20×4.

* Это бесплатное программное обеспечение БЕЗ ГАРАНТИЙ.

* https://simple-circuit.com/

* /

#include // включить библиотеку TinyGPS ++

#include // включить библиотеку времени Arduino

#include // включить последовательную библиотеку программного обеспечения

#include // включить ЖК-библиотеку

TinyGPSPlus gps;

#define S_RX 9 // определение программного последовательного вывода RX

#define S_TX 8 // определение программного последовательного вывода TX

SoftwareSerial SoftSerial (S_RX, S_TX); // настройка библиотеки SoftSerial

// Подключения ЖК-модуля (RS, E, D4, D5, D6, D7)

LiquidCrystal lcd (2, 3, 4, 5, 6, 7);

#define time_offset 3600 // определить смещение часов на 3600 секунд (1 час) ==> UTC + 1

// определения переменных

char Time [] = «TIME: 00:00:00 «;

char Date [] = «ДАТА: 00-00-2000»;

байт последняя_секунда, секунда, минута, час, день, месяц;

int Год;

void setup (void)

{

SoftSerial.begin (9600); // инициализация программного обеспечения на скорости 9600 бод

// установка количества столбцов и строк ЖК-дисплея

lcd.begin (20, 4);

lcd.setCursor (1, 0); // перемещаем курсор ЖК-дисплея в столбец 1, строку 0 [верхнее левое положение (0, 0)]

lcd.print («GPS CLOCK (UTC + 1)»);

}

void loop ()

{

while (SoftSerial.available ()> 0)

{

if (gps.encode (SoftSerial.read ()))

{

// получаем время от модуля GPS

if (gps.time.isValid ())

{

Minute = gps.time.minute ();

Секунда = gps.time.second ();

Час = gps.time.hour ();

}

// получить дату от модуля GPS

if (gps.date.isValid ())

{

Day = gps.date.day ();

Месяц = ​​GPS.date.month ();

Год = gps.date.year ();

}

if (last_second! = Gps.time.second ()) // если время изменилось

{

last_second = gps.time.second ();

// установить текущее время UTC

setTime (час, минута, секунда, день, месяц, год);

// добавляем смещение, чтобы получить местное время

adjustTime (time_offset);

// обновить массив времени

Time [12] = second () / 10 + ‘0’;

Время [13] = секунда ()% 10 + ‘0’;

Время [9] = минута () / 10 + ‘0’;

Время [10] = минута ()% 10 + ‘0’;

Время [6] = час () / 10 + ‘0’;

Время [7] = час ()% 10 + ‘0’;

// обновить массив дат

Date [14] = (year () / 10)% 10 + ‘0’;

Дата [15] = год ()% 10 + ‘0’;

Дата [9] = месяц () / 10 + ‘0’;

Дата [10] = месяц ()% 10 + ‘0’;

Дата [6] = день () / 10 + ‘0’;

Дата [7] = день ()% 10 + ‘0’;

// распечатать время и дату

print_wday (weekday ()); // выводим день недели

lcd.setCursor (0, 2); // перемещаем курсор в столбец 0 строка 2

lcd.print (Time); // время печати (ЧЧ: ММ: СС)

lcd.setCursor (0, 3); // перемещаем курсор в столбец 0 строка 3

lcd.print (Date); // печать даты (ДД-ММ-ГГГГ)

}

}

}

}

// функция отображения дня недели

wday)

{

ЖК.setCursor (5, 1); // перемещаем курсор в столбец 5, строка 1

switch (wday)

{

case 1: lcd.print («SUNDAY»); перерыв;

корпус 2: lcd.print («ПОНЕДЕЛЬНИК»); перерыв;

корпус 3: lcd.print («ВТОРНИК»); перерыв;

корпус 4: lcd.print («СРЕДА»); перерыв;

корпус 5: lcd.print («ЧЕТВЕРГ»); перерыв;

корпус 6: lcd.print («ПЯТНИЦА»); перерыв;

по умолчанию: lcd.print («СУББОТА»);

}

}

// конец кода.

SainSmart Ublox NEO-6M GPS-модуль Uart / IIC для Arduino — SainSmart.com

Описание:
Серия модулей SainSmart NEO-6M — это семейство автономных GPS-приемников с высокопроизводительным механизмом позиционирования u-blox 6. Эти универсальные и экономичные приемники предлагают множество вариантов подключения в миниатюрном корпусе размером 16 x 12,2 x 2,4 мм. Их компактная архитектура, а также возможности питания и памяти делают модули NEO-6 идеальными для мобильных устройств с батарейным питанием с очень жесткими ограничениями по стоимости и пространству.50-канальный механизм позиционирования u-blox 6 может похвастаться временем до первого исправления (TTFF) менее 1 секунды. Специальная система сбора данных с 2 миллионами корреляторов способна выполнять массивные параллельные поиски во времени / частоте в пространстве, что позволяет мгновенно находить спутники. Инновационный дизайн и технология подавляют источники помех и смягчают эффекты многолучевого распространения, обеспечивая GPS-приемникам NEO-6M отличные навигационные характеристики даже в самых сложных условиях.

Спецификация:

Параметр

Спецификация

Тип приемника

50 каналов GPS, частота L1, код C / A: SBAS: WAAS, EGNOS, MSAS

Время-первое исправление

Холодный старт: 27 с

Теплый старт: 27 с

Горячий старт: 1 с

Вспомогательные пуски <3 с

Чувствительность

Отслеживание и навигация: 161 дБм

Повторное обнаружение: 160 дБм

Холодный старт (без помощи): 147 дБм

Горячий старт: 156 дБм

Максимальная частота обновления навигации

5 Гц

Точность горизонтального положения

GPS: 2.5 м

SBAS: 2,0 м

SBAS + PPP: <1 м (2D, R50)

SBAS + PPP: <2 м (3D, R50)

Диапазон частот Timepulse

от 0,25 Гц до 1 кГц

Точность сигнала Timepulse

RMS: 30 нс

99%: <60 нс

Гранулярность: 21 нс

С компенсацией: 15 нс

Точность скорости

0.1 м / с

Точность курса

0,5 градуса

Эксплуатационные ограничения

Динамика 4 г

Высота: 50 000 м

Скорость: 500 м / с

Документ:

Скачать

Список пакетов:
1x GPS-модуль SainSmart Ublox NEO-6M

Smart GPS Tracker с использованием Arduino

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

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

Сначала соберите следующие компоненты.

Компоненты

  • Модуль GPS
  • Ардуино Нано
  • SIM800L
  • 2G SIM-карта
  • OLED-дисплей
  • Маленькая батарея 3 В
  • Провода

Предварительные требования

Сначала нам нужно установить библиотеки «Tiny GPS ++» и «FONA» в Arduino IDE.Для этого перейдите в инструменты → нажмите на диспетчер библиотек → найдите нужную библиотеку → установите библиотеку.

Кодировка

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

После этого мы создадим функцию настройки, в которой скорость передачи модулей SIM800L и GPS для последовательной связи будет установлена ​​на 4800 и 9600 соответственно.

Рис 1. Рис 2.

Здесь мы создали функцию цикла, чтобы проверить, было ли входящее сообщение получено SIM800L или нет. Если сообщение получено, преобразуйте его в читаемую строку. Он проверит сообщение на наличие команды «получить местоположение», после чего собранные данные (в отношении местоположения) будут отправлены обратно на исходное устройство.

В рамках той же функции цикла будет вызвана функция с именем get location (). Эта функция будет продолжать обновлять данные GPS и возвращать результаты в функцию цикла.

Рис 3

Подключение

Теперь подключите компоненты, как показано на рисунке ниже:

Рис 4.Соединение создано в Fritzzing

Testing

Зарядите устройство аккумулятором и подождите несколько минут. После этого устройство будет готово к использованию.

Отправьте сообщение «узнать местоположение» на смарт-устройство, и вы получите сообщение с URL-адресом местоположения, который вы можете проверить на Картах Google.

Рис. 5.

Скачать исходный код

8 лучших GPS-модулей Arduino 2020 года

Заметки редактора

17 ноября 2020 г.:

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

Мы решили добавить к этому списку еще один немного более сложный модуль в виде модуля.Это предложение сочетает в себе 16-канальную чувствительность GPS с доступом к сети 3G для дополнительной точности и функциональности. В умелых руках он может делать то же, что и сотовые телефоны, например, взаимодействовать с помощью текстовых сообщений SMS, а также совершать и принимать звонки. Однако имейте в виду, что для этих функций вам понадобится SIM-карта, и, вероятно, это будет связано с оплатой. Тем не менее, его конфигурация на удивление проста, что делает его идеальным выбором для тех, кто иногда не сталкивается с данными ограничениями.

3 сентября 2019 г.:

Составление надежного списка этих модулей требовало соблюдения баланса между возможностями и полезностью.Большая часть нашего списка содержит модели, разработанные с использованием наборов микросхем Neo-6M, которые технически не являются самыми продвинутыми, но которые предлагают простейшее программирование и использование для самого широкого круга приложений.

Предложения

Neo-7M могут иметь доступ к ГЛОНАСС в дополнение к GPS, но они не могут делать это одновременно, а устройства 8M, способные делать и то, и другое одновременно, являются более сложными и часто менее полезными, или, по крайней мере, нет. намного полезнее. GPS сам по себе отлично подходит для работы с дронами, устройств слежения, а также для молодых любителей, которые только пытаются начать работать на своих досках.

Имея это в виду, мы не позволяли чипсету обязательно влиять на наш рейтинг, особенно когда что-то вроде Icstation Mini Neo-7M даже не имеет антенны. Или когда что-то вроде модели MakerFocus под номером два настолько недорого, надежно, компактно и эффективно.

Как связать GPS-модуль Quectel L80 с Arduino


Обзор

В этом посте мы узнаем о взаимодействии GPS-модуля Quectel L80 с Arduino .Модуль GPS L80 от Quectel — это крошечный, недорогой модуль и с низким энергопотреблением, доступный на рынке. Модуль L80 GPS со встроенной патч-антенной и малошумящим усилителем (LNA) обеспечивает высокую производительность системы позиционирования в промышленных приложениях .

Он может достичь наивысшего в отрасли уровня чувствительности , , точности , и TTFF с наименьшим энергопотреблением в компактном безвыводном корпусе.Он обнаруживает и отслеживает спутники в кратчайшие сроки даже на уровне сигнала внутри помещения. По сравнению с модулем NEO-6M GPS и приемником GPS / GNSS RYS8830 , этот модуль имеет лучшую производительность .

Следовательно, в этом проекте мы будем взаимодействовать с GPS-модулем Quectel L80 с Arduino и создать собственный GPS-приемник . Модуль GPS L80 может выдавать значения Широта, Долгота, Скорость, Высота, Дата и Время после синхронизации со спутником.Сначала мы подключим L80 GPS к плате Arduino Nano и отобразим параметры GPS на последовательном мониторе. Затем мы будем использовать ЖК-дисплей 16×2 для отображения значений широты, долготы, скорости, высоты, даты и времени.


Спецификация

Вам необходимо приобрести следующие компоненты для создания этого проекта.


Quectel L80 GPS-модуль

L80 — идеальное решение для носимых фитнес-устройств из-за его сверхкомпактной конструкции и требований с низким энергопотреблением.Его функция низкого энергопотребления обеспечивает подключение к GPS при примерно половине потребляемой мощности по сравнению с нормальным режимом при статическом режиме приема. В сочетании с точностью и высокой чувствительностью это делает L80 пригодным также для широкого спектра приложений IoT , таких как портативные устройства, автомобильные устройства, персональное слежение, безопасность и промышленные КПК.

L80 имеет патч-антенну сверху размером 16,0 мм × 16,0 мм × 6,45 мм , с 66 каналами сбора данных и 22 канала отслеживания .Он обнаруживает и отслеживает спутники в кратчайшие сроки даже на уровне сигнала внутри помещения. Модуль работает при 2,8 В ~ 4,3 В с типичным потреблением энергии 20 мА , а в режиме ожидания потребляемая мощность составляет около 1,0 мА .


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

1. Потребляемая мощность : Сбор данных 25 мА, отслеживание 20 мА, режим ожидания 1,0 мА, резервное копирование: 7 мкА
2. Тип приемника : GPS L1 1575,42 МГц C / A-код, 66 каналов поиска, 22 канала одновременного отслеживания
3.Чувствительность : захват -148 дБм, повторное получение -160 дБм, отслеживание -165 дБм
4. Источник питания : 2,8 В ~ 4,3 В
5. Частота обновления : До 10 Гц, 1 Гц по умолчанию
6. Точность сигнала 1PPS : Типичная точность: +/- 10 нс, ширина временного импульса 100 мс
7. Точность ускорения : Без помощи 0,1 м / с2
8. Динамические характеристики : Максимум высота 18000 м, максимальная скорость 515 м / с, ускорение 4G
9.Порт UART : TXD1 и RXD1 Поддерживает скорость передачи от 4800 бит / с до 115200 бит / с, 9600 бит / с по умолчанию
10. Точность скорости : 0,1 м / с
11. Диапазон рабочих температур : -40 ~ 85 C
12. Встроенная патч-антенна
13. Встроенный МШУ для лучшей чувствительности


L80 Распиновка

GPS-модуль Quectel L80 имеет 12 контактов, как показано на изображении выше.Функция каждого вывода определена ниже.

S.N. Имя контакта Функция
1 RXD1 Приемник UART
2 TXD1 Передатчик UART
3 GND Ground Logic
4 VCC Питание 2,8 ~ 4,3 В, обычно 3,3 В
5 V_BCKP Резервное питание / питание для RTC
6 1PPS Один импульс в секунду, синхронизируется по нарастающему фронту, ширина импульса составляет 100 мс
7 ТАЙМЕР Выходной сигнал с открытым стоком, используемый для управления включением / выключением основного питания модуля GPS
8 AADET_N Активное обнаружение антенны
9 NC Не подключен
10 СБРОС Сброс системы
11 EX_ANT Внешняя активная антенна ВЧ вход
12 GND Ground Logic

Чтобы узнать больше об этом модуле, вы можете обратиться к L80 Datasheet


L80 — это крошечный модуль SMD-типа, в котором нет штырьков штекера / розетки для тестирования.Таким образом, вы можете использовать штырь вилки разъема с шагом 2,54 и припаять их к плате L80 снизу.

После того, как вы припаяете все 12 контактов на модуле L80, модуль станет совместимым с макетной платой. Теперь вы можете легко вставить модуль на макетную плату.


Взаимодействие модуля Quectel L80 GPS с Arduino

Теперь давайте подключим GPS-модуль L80 к Arduino . Вы можете подключить GPS-модуль L80 к Arduino Nano в соответствии со схемой ниже.

Подключение довольно простое. Подключите VCC / GND к источнику питания и не подавайте более 3,3 В . Аналогичным образом подключите резервный VCC ( V_BCKP ) к VCC или к внешней батарее. Это не сработает, если на этот вывод не подается питание.

Подключите RX / TX L80 к D2 / D3 Arduino. Это для последовательной связи с использованием программного последовательного порта.


Исходный код / ​​Программа и тестирование

Самое лучшее в модуле L80 GPS то, что он поддерживает Tiny GPS ++ Library .Загрузите библиотеку и добавьте ее в папку библиотеки.

Скопируйте следующий код L80 Arduino и загрузите его на плату Arduino.

1

2

3

4

5

6

7

8

9

10

11

12

13

140004

14

18

19

20

21

22

23

24

25

26

27

28

29

30

34

35

36

37

38

39

40

41

42

43

44

45

46

#include

#include

#define rxGPS 3

#define txGPS 2

long lat, lon;

SoftwareSerial gpsSerial (rxGPS, txGPS);

TinyGPSPlus gps;

void setup ()

{

Serial.begin (9600); // подключаем серийник

gpsSerial.begin (9600); // подключаем датчик GPS

}

void loop ()

{

while (gpsSerial.available ()) // проверяем данные GPS

{

if (gps.encode (gpsSerial.read ())) // кодируем данные GPS

{

Serial.print («SATS:»);

Serial.println (gps.satellites.value ());

Serial.print («LAT:»);

Serial.println (gps.location.lat (), 6);

Serial.print («ДЛИННЫЙ:»);

Serial.println (gps.location.lng (), 6);

Serial.print («ALT:»);

Серийный.println (gps.altitude.meters ());

Serial.print («СКОРОСТЬ:»);

Serial.println (gps.speed.mps ());

Serial.print («Дата:»);

Серийный.отпечаток (gps.date.day ()); Serial.print («/»);

Serial.print (gps.date.month ()); Serial.print («/»);

Serial.println (gps.date.year ());

Serial.print («Час:»);

Серийный.принт (gps.time.hour ()); Serial.print («:»);

Серийный.печать (gps.time.minute ()); Serial.print («:»);

Serial.println (gps.time.second ());

Serial.println («—————————«);

задержка (4000);

}

}

}

После загрузки кода откройте Serial Monitor. Первоначально он отображает неверные данные, поскольку модуль GPS не синхронизирован с Satellite .

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


L80 GPS-приемник Arduino с ЖК-дисплеем

Вместо того, чтобы отображать данные на последовательном мониторе , давайте интегрировать ЖК-дисплей 16X2 в указанную выше схему , как показано на изображении ниже. Итак, давайте соединим модуль Quectel L80 GPS с модулем GPS с Arduino .

ЖК-дисплей работает при 5В. Чтобы подключить выводы rs, en, d4, d5, d6, d7 ЖК-дисплея, вы можете выбрать любой вывод Arduino и определить их в коде. Например, мы используем A0, A1, A2, A3, A4, A5 Pin.


Исходный код / ​​Программа и тестирование

Вот код для Интерфейсного модуля Quectel L80 GPS с Arduino и 16×2 LCD Display . Скопируйте код и загрузите его на плату Arduino.

1

2

3

4

5

6

7

8

9

10

11

12

13

140004

14

18

19

20

21

22

23

24

25

26

27

28

29

30

34

35

36

37

38

39

40

41

42

43

44

45

46

48

51

52

53

54

55

56

57

58

59

60

61

62

63

9 0004 64

65

66

67

68

69

70

71

72

73

74

75

76

0004 77

81

82

83

84

85

86

87

88

89

90

91

92

94

#include

#include

#include // включаем код библиотеки

const int rs = A0, en = A1, d4 = A2, d5 = A3, d6 = A4, d7 = A5;

ЖК-дисплей LiquidCrystal (rs, en, d4, d5, d6, d7);

#define txGPS 2

#define rxGPS 3

long lat, lon;

// int counter = 0;

SoftwareSerial gpsSerial (rxGPS, txGPS);

TinyGPSPlus gps;

void setup ()

{

Последовательный.begin (9600); // подключаем серийник

gpsSerial.begin (9600); // подключаем датчик gps

lcd.begin (16, 2);

}

void loop ()

{

while (gpsSerial.available ()) // проверка данных GPS

{

if (gps.encode (gpsSerial.read ())) // кодировать данные GPS

{

Serial.print («SATS:»);

Serial.println (gps.satellites.value ());

Серийный.печать («LAT:»);

Serial.println (gps.location.lat (), 6);

Serial.print («ДЛИННЫЙ:»);

Serial.println (gps.location.lng (), 6);

Serial.print («ALT:»);

Serial.println (gps.altitude.meters ());

Serial.print («СКОРОСТЬ:»);

Serial.println (gps.speed.mps ());

Serial.print («Дата:»);

Серийный.отпечаток (gps.date.day ()); Serial.print («/»);

Серийный.печать (gps.date.month ()); Serial.print («/»);

Serial.println (gps.date.year ());

Serial.print («Час:»);

Серийный.принт (gps.time.hour ()); Serial.print («:»);

Последовательная печать (gps.time.minute ()); Serial.print («:»);

Serial.println (gps.time.second ());

Serial.println («—————————«);

lcd.setCursor (0, 0);

lcd.print («LAT:»);

ЖК.печать (gps.location.lat (), 6);

lcd.setCursor (0, 1);

lcd.print («LON:»);

lcd.print (gps.location.lng (), 6);

задержка (2000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print («ALT:»);

lcd.print (gps.altitude.meters ());

lcd.print («м»);

lcd.setCursor (0, 1);

ЖК.печать («СПД:»);

lcd.print (gps.speed.mps ());

lcd.print («mps»);

задержка (2000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print («Дата:»);

lcd.print (gps.date.day ());

lcd.print («/»);

lcd.print (gps.date.month ());

lcd.print («/»);

lcd.print (gps.date.year ());

ЖК.setCursor (0, 1);

lcd.print («Время:»);

lcd.print (gps.time.hour ());

lcd.print («:»);

lcd.print (gps.time.minute ());

lcd.print («:»);

lcd.print (gps.time.second ());

задержка (2000);

lcd.clear ();

}

}

}

После загрузки кода подождите некоторое время. Когда модуль GPS синхронизируется со спутником, он отображает значение широты и долготы на ЖК-дисплее.

Точно так же на ЖК-экране отображается местное время и дата .

И, наконец, он также отобразит высоту над уровнем моря и скорость , с которой движется объект.


Портативный GPS-приемник с батарейным питанием

Поскольку GPS-модуль L80 работает при напряжении 3,3 В , мы можем легко сделать GPS-приемник с питанием от батареи .Схема может питаться от литий-ионной батареи 3,7 В. .

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

Схема имеет все необходимые компоненты для работы микроконтроллера Atmega328 с кодом Arduino. Вы можете использовать кнопку сброса для сброса всей цепи. Переключатель используется для включения / выключения устройства.Точно так же есть программный вывод, который используется для программирования микроконтроллера Atmega328 с использованием модуля FTDI Module .

Для питания устройства можно напрямую подключить литий-ионный аккумулятор 3,7 В или литий-полимерный аккумулятор. Для чтения выходных данных вы подключаете устройство к телефону с помощью модуля USB-to-TTL . Затем откройте Serial Monitor на Android / iPhone и там вы можете прочитать данные GPS .


Project PCB Gerber File & PCB Заказ онлайн

Если вы не хотите собирать схему на макетной плате и хотите PCB для проекта, то вот печатная плата для вас.Я использовал EasyEDA для разработки печатной платы. Печатная плата для Интерфейсного L80 GPS-модуля Микроконтроллер Arduino выглядит примерно так, как показано ниже.

Файл Gerber для печатной платы приведен ниже. Вы можете просто загрузить файл Gerber и заказать печатную плату по адресу https://www.nextpcb.com/

Загрузить файл Gerber: Portable GPS Receiver

Теперь вы можете посетить официальный сайт NextPCB, щелкнув здесь: https://www.nextpcb.com/ . Таким образом, вы будете перенаправлены на веб-сайт NextPCB .

Теперь вы можете загрузить файл Gerber на веб-сайт и разместить заказ. Качество печатной платы превосходное и высокое. Вот почему большинство людей доверяют NextPCB для PCB и PCBA Services .

Вы можете собрать компоненты на печатной плате.


Видеоуроки и руководство

Подключение GPS-модуля Quectel L80 к Arduino || Крошечный и маломощный GPS-трекер

GPS Guides Роботизированный автомобиль — Circuit Cellar

Arduino UNO в действии

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

В этой статье я излагаю базовый роботизированный автомобиль с дифференциальным приводом для автономной навигации по путевым точкам с использованием глобальной системы позиционирования (GPS). Роботизированная машина получает список GPS-координат и перемещается к путевым точкам в заданном порядке.Чтобы понять, как это работает, я расскажу о концепции GPS, простом подходе к реализации автономной навигации с использованием GPS, аппаратном обеспечении, необходимом для этой задачи, о том, как рассчитывать векторы навигации с помощью «формулы Хаверсинуса» и «формулы прямого азимута», а также простая реализация фильтра скользящего среднего для фильтрации показаний GPS-координат. Я также обсуждаю простой подход к управлению навигацией, сводящий к минимуму расстояние от роботизированной машины и ошибку направления относительно цели.

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

На рисунке 1 показаны основные компоненты системы. Приемник GPS помогает рассчитать расстояние от машины-робота до цели. С помощью цифрового компаса GPS также помогает определить, в каком направлении находится цель.Эти два параметра — расстояние и направление — дают нам вектор навигации, необходимый для управления роботизированной машиной по направлению к цели. Я использовал для автомобиля конфигурацию с полноприводным дифференциалом, который ведет себя почти так же, как полноприводный дифференциал. Код, поставляемый с проектом, должен хорошо работать с обеими конфигурациями.

РИСУНОК 1
Блок-схема роботизированной машины с GPS

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

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

HARDWARE
Как показано на рисунке 1, я использовал плату Arduino UNO в качестве основного контроллера. Я выбрал Arduino, потому что он невероятно интуитивно понятен для начинающих и имеет огромное количество библиотек. Библиотеки позволяют легко реализовывать достаточно сложные проекты без излишних подробностей об аппаратных и программных драйверах для датчиков и исполнительных механизмов.

В качестве GPS-приемника я выбрал модуль HiLetgo GY-GPS6MV2 на базе микросхемы U-blox NEO-6M. Цифровой компас — это модуль GY-271, основанный на микросхеме Honeywell HMC5883L. Оба они недорогие и широко распространены с легкодоступными библиотеками Arduino. U-blox NEO-6M имеет интерфейс последовательной связи UART, а HMC5883L работает с последовательным протоколом I 2 C. Во избежание помех компас следует размещать не менее чем на 15 см над остальной электроникой.

Двигатели постоянного тока приводятся в действие с помощью очень популярного модуля L298N, основанного на двойном полномостовом драйвере STMicroelectronics L298N. Он может управлять двумя двигателями постоянного тока с максимальным током 2 А на канал. Он также может управлять двумя двигателями постоянного тока в каждом канале, если не превышен максимальный ток, — что я и делаю с полноприводным шасси, которое я использовал для своего прототипа. Шасси оснащено алюминиевой платформой 30 см × 20 см, четырьмя стандартными двигателями 12 В постоянного тока, 85 об / мин, и колесами диаметром 13 см.Но можно использовать практически любое универсальное двух- или полноприводное шасси.

Для питания роботизированной машины я использовал литий-полимерный аккумулятор 11,1 В, 2200 мАч (LiPo) со скоростью разряда 25 ° C. Для моего типа шасси батарея вдвое меньшего размера также должна работать нормально. Рисунок 2 показывает принципиальную схему для этого проекта, а Рисунок 3 показывает готовую машину.

РИСУНОК 2
Принципиальная схема для проекта роботизированной машины РИСУНОК 3
Завершенная роботизированная машина с GPS

ГЛОБАЛЬНАЯ СИСТЕМА ПОЗИЦИОНИРОВАНИЯ
Глобальная система позиционирования (GPS) — это глобальная навигационная спутниковая система, принадлежащая правительству Соединенных Штатов.Он предоставляет информацию о геолокации и времени любому приемнику GPS на поверхности Земли, когда он имеет беспрепятственную прямую видимость как минимум с четырьмя спутниками GPS — чем больше, тем лучше [1]. Приемники GPS обычно могут обеспечивать координаты широты и долготы с точностью от 2,5 до 5 м в идеальных условиях, таких как хорошая видимость неба и большое количество видимых спутников. Моя роботизированная машина запрограммирована с одной или несколькими путевыми точками, заданными координатами широты и долготы, а GPS-приемник автомобиля определяет его фактическое положение в том же типе координат.

Рисунок 4 — это блок-схема алгоритма, работающего в роботизированной машине. Я думаю, что большая часть из них не требует пояснений, поэтому я сосредоточусь на вычислении вектора навигации и элементе управления навигацией, которые, возможно, являются наиболее сложной его частью. Как я сказал ранее, я использую формулу Хаверсина для расчета расстояния до цели и формулу прямого азимута для расчета ориентации цели относительно магнитного севера. Если расстояние до цели больше заданной погрешности допуска расстояния, которую я установил на 1 м, алгоритм продолжит движение автомобиля вперед.Более того, если угол курса роботизированной машины по отношению к текущей цели выходит за пределы заданной погрешности допуска по курсу, которую я установил на ± 5 градусов, алгоритм также будет вращать роботизированную машину, пока нос не будет указывать на цель. Алгоритм будет управлять роботом до тех пор, пока не будет достигнута текущая цель, а затем повторить те же шаги, если доступна другая путевая точка. В противном случае машина остановится.

РИСУНОК 4
Блок-схема алгоритма, работающего в роботизированной машине

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

РАСЧЕТ НАВИГАЦИОННОГО ВЕКТОРА
Рисунок 5 графически показывает, как определяется навигационный вектор — расстояние и курс. Эти два компонента вычисляются на основе трех известных параметров: координат цели, координат роботизированной машины и курса машины относительно магнитного севера.Расстояние и направление — это ошибки, которые мы постараемся минимизировать с помощью нашего алгоритма управления. Погрешность расстояния можно уменьшить, задав автомобилю линейную скорость, а угловую погрешность — задав соответствующую угловую скорость. «Формула Хаверсина» позволяет нам вычислить ошибку расстояния «d», а «Формула прямого азимута» позволяет нам вычислить азимут (waypoint_angle), с помощью которого мы можем вычислить ошибку направления «α».

РИСУНОК 5
Расчет вектора навигации

Формула Хаверсинуса — это общая формула сферической тригонометрии, используемая для расчета расстояния между двумя точками на поверхности Земли или любой сфере.Чтобы рассчитать расстояние между двумя точками на поверхности Земли, мы должны иметь координаты — широту и долготу — этих двух точек. Уравнения (1) и (2) дают нам, соответственно, общую формулу Хаверсина и тригонометрическое тождество Хаверсина [2]. Однако уравнения (3), (4) и (5) я реализовал в коде. Они представляют собой просто расшифровку уравнений (1) и (2), которые более удобно выражают вычисления [3].

(1) (2) (3) (4) (5)

Где:

Азимут определяется как «горизонтальный» угол, измеренный по часовой стрелке от северной базовой линии или меридиана до направляющей линии, определяемой двумя точками над поверхность Земли.Если мы возьмем за точку отсчета истинный север, мы получим «истинный азимут». А если мы возьмем магнитный север, мы получим соответствующий «магнитный азимут».

Таким образом, формула прямого азимута — или просто азимута — позволяет нам вычислить угол между этими двумя линиями: линией между положением роботизированной машины и севером и линией между положением роботизированной машины и целью (рис. 5). Уравнение (6) показывает эту формулу [3]. Для расчета азимута нам понадобятся только координаты цели и машины-робота.

(6)

Где:

Когда у нас есть азимут или угол путевой точки, мы должны вычислить ошибку курса, которая представляет собой просто разницу между азимутом и курсом роботизированной машины относительно севера, полученным из цифрового компас:
heading_error = waypoint_angle — robot_car_heading.

УПРАВЛЕНИЕ НАВИГАЦИЕЙ
Алгоритм управления навигацией прост. Во-первых, мы пытаемся уменьшить ошибку направления, поворачивая роботизированную машину вправо, если ошибка угла положительная, и влево, если ошибка отрицательная.Поскольку трудно уменьшить ошибку точно до нуля и поддерживать ее на нуле, я определяю диапазон допуска ± 5 градусов. Так что в принципе будет нормально, если мы уменьшим ошибку до любой величины в этом диапазоне. В то же время мы пытаемся уменьшить ошибку расстояния, давая команду роботизированной машине вперед в приблизительном направлении к цели. Но при этом обычно угловая ошибка имеет тенденцию увеличиваться по величине в положительную или отрицательную сторону. Это происходит из-за ошибок допуска не только в датчиках (GPS-приемнике и цифровом компасе), но и в исполнительных механизмах, а также из-за внешних помех.Имея это в виду, мы должны постоянно перебирать вычисления нового вектора навигации и минимизировать обе ошибки, пока, наконец, не достигнем цели.

Если абсолютное значение ошибки направления составляет от 5 до 45 градусов (25% от 180 градусов), автомобиль будет медленно поворачивать вправо или влево в зависимости от знака ошибки (как указано ранее). Если погрешность составляет от 45 до 180 градусов, автомобиль будет разворачиваться быстрее, чтобы быстрее минимизировать ошибку. Я эмпирически выбрал предел в 45 градусов.Он хорошо работал в тестах, но может быть изменен в коде Arduino.

Эта стратегия управления, насколько я понимаю, является своего рода «ступенчатым пропорциональным контроллером», потому что она делит пространство ошибок на пять шагов: от -180 до -45, от -45 до -5, от -5 до +5, +5 до +45, от +45 до +180. Алгоритм использует управляющий сигнал пропорциональной коррекции, «жестко запрограммированный» в скоростях пяти соответствующих маневров, доступных роботизированной машине, для исправления ошибки и достижения цели. Эти маневры: быстро повернуть направо , повернуть направо медленно , вперед , повернуть налево медленно и быстро повернуть налево .

GPS И ТОЧНОСТЬ КОМПАСА
Точность и точность — два понятия, которые не всегда правильно понимаются даже технически подкованными людьми, включая меня. В инженерном мире обе концепции обычно связаны с измерениями с использованием датчиков и иногда ошибочно используются как взаимозаменяемые. Проще говоря, точность — это насколько близко измеренное значение к фактическому истинному значению, а точность относится к повторяемости измерения, другими словами, насколько близки два или более измерения друг к другу. Рисунок 6 показывает разницу между точностью и прецизионностью. Чтобы легче понять разницу, мы можем использовать следующую иллюстрацию: если при броске баскетбольного мяча вы всегда попадаете в левую сторону щита и почти никогда не получаете корзину, вы точны, но не точны. Таблица данных U-blox NEO-6M дает точность горизонтального положения 2,5 м, CEP (вероятность круговой ошибки) 50%, что означает, что только 50% всех измерений, выполненных за определенный период времени, будут иметь точность 2.5-метровая точность. Причем это в идеальных условиях. В большинстве обычных условий точность (CEP 50%) может быть снижена до 10 м, 20 м или более.

РИСУНОК 6
Разница между точностью и точностью

Итак, точность GPS-навигации в целом не так высока. В нашем случае роботизированная машина достигнет путевых точек более или менее с таким же уровнем точности. Поначалу это не кажется очень впечатляющим, но видеть, как роботизированная машина автоматически перемещается по всем путевым точкам — в пределах диапазона ошибок — все еще очень весело! Вообще говоря, мы получаем более надежное и повторяемое поведение от роботизированной машины на больших открытых пространствах, с небольшим количеством зданий и других препятствий вокруг.В таких местах я видел, как машина достигала цели в радиусе от 1 до 3 метров.

Как вы, возможно, уже знаете, есть несколько способов повысить точность навигации. Например, вы можете использовать гораздо более сложный и дорогой GPS, такой как дифференциальный GPS, или другой тип датчика, такой как одометрия или инерциальный измерительный блок (IMU), который может быть добавлен к автомобилю. В более сложных приложениях можно также использовать камеру или датчик LIDAR.

Что касается цифрового компаса, точность не составляет особого труда.В таблице данных Honeywell HMC5883L указана точность 1-2 градуса. Этого более чем достаточно для достижения цели, поэтому более низкая точность GPS-приемника всегда будет доминирующим фактором. Однако цифровые компасы подвержены магнитным помехам со стороны электронных схем, магнитных материалов и близлежащих металлических предметов, включая металлические конструкции, металлические ограждения и металлические сетки.

ФИЛЬТР ПОДВИЖНОГО СРЕДНЕГО
Чтобы как-то уменьшить обильный шум, присутствующий в данных GPS, то есть шум от присущей им низкой точности и точности приемников GPS, я применил фильтр скользящего среднего, который технически представляет собой конечную импульсную характеристику (FIR). ) фильтр нижних частот.Фильтр скользящего среднего — это, в принципе, просто калькулятор среднего, который принимает N показаний от In 0 до In N-1 и предоставляет отфильтрованный выходной сигнал Out 0 как среднее значение N входов. На следующей итерации он принимает входы от In 1 до In N и предоставляет отфильтрованный выходной сигнал Out 1 и так далее. Уравнения (7) и (8) ниже дают математическое описание этого фильтра [4].

(7) (8)

В коде я реализовал фильтр в виде двух массивов из N чисел с плавающей запятой, один для хранения широты, а другой для хранения долготы.Два массива работают как буферы в порядке очереди (FIFO). Другими словами, каждый раз, когда необходимо сохранить новое показание, самое старое показание сначала выскакивает в хвосте буфера, если буфер уже заполнен, а затем все оставшиеся значения перемещаются в конец. Наконец, новое значение вставляется в заголовок буфера. Таким образом, каждый раз, когда становится доступным новое показание GPS, значения широты и долготы сохраняются в массивах, а затем могут быть получены отфильтрованные значения широты и долготы. Они, в свою очередь, используются для вычисления нового вектора навигации.

Код Arduino, доступный для проекта, по умолчанию распечатывает последовательные данные исходных и отфильтрованных показаний широты. Так, например, вы можете открыть последовательный плоттер в среде Arduino IDE, чтобы графически увидеть влияние фильтра скользящего среднего на данные широты. В функции Print_Data () вы можете комментировать / раскомментировать другие типы данных, которые будут отправлены на последовательный плоттер. Чтобы это работало, к вашему компьютеру должна быть подключена плата Arduino роботизированной машины. Рисунок 7 показывает снимок экрана последовательного плоттера с фильтром скользящего среднего, примененным к широте.Синяя кривая (рисунок 7) показывает нефильтрованные измерения широты, а красная — измерения после прохождения через фильтр нижних частот. Фильтр сглаживает измерения, уменьшая высокочастотные составляющие (небольшие всплески вверх / вниз на синей кривой), обычно связанные с шумом, но он также добавляет некоторую задержку к сигналу (отфильтрованная красная кривая отображается «впереди» синей кривой. один; это означает, что он фактически задерживается во времени).

РИСУНОК 7
Снимок экрана последовательного плоттера с фильтром скользящего среднего, примененным к данным широты

РЕАЛИЗАЦИЯ КОДА
Путевые точки хранятся в коде статически в массиве типа struct t_waypoint.Этот тип структуры хранит значения широты и долготы для данной путевой точки. Вначале первая путевая точка в массиве устанавливается как текущая цель. Как только она будет достигнута, вторая путевая точка устанавливается как текущая цель, и так далее, до последней. Есть функция Get_Waypoint_With_Index (int index), которая возвращает путевую точку из массива для заданного индекса.

В функции loop (), которая является «основной» функцией в Arduino, сначала считывается значение датчика компаса с помощью функции Get_Compass_Heading () для получения курса роботизированной машины.Затем запускается функция Query_Gps (), чтобы узнать, доступны ли данные от приемника GPS. В этом случае вызывается функция Gps_Dump (gps), чтобы получить текущие координаты широты и долготы роботизированного автомобиля. Затем запускается функция Store_Gps_Reading (), чтобы сохранить эти координаты в буферах фильтра. Затем вызывается функция Compute_Filtered_Gps () для получения отфильтрованных значений широты и долготы. Когда у нас есть эти отфильтрованные значения, запускается функция Compute_Navigation_Vector () для получения параметров расстояния и направления для вектора навигации.

Затем вызывается функция Control_Navigation (), чтобы подвигать машину к цели. Эта же функция проверяет, достигнута ли текущая цель. Если это так, переменная waypoint_index, указывающая на текущую цель, будет увеличена, чтобы установить следующую путевую точку в качестве новой цели. Если все путевые точки достигнуты, роботизированная машина остановится.

В коде показания цифрового компаса компенсируются магнитным склонением. Это относится к углу в горизонтальной плоскости между магнитным севером — направлением севера, возвращаемым цифровым компасом, соответствующим направлению линий магнитного поля Земли, — и истинным севером, который является направлением вдоль меридиана к географическому Северному полюсу. .Этот угол, называемый «склонением», меняется не только в зависимости от положения на поверхности Земли, но также меняется со временем. В Интернете есть карты склонения, где вы можете найти соответствующее значение для вашего местоположения и изменить его в коде. В качестве альтернативы вы можете полностью игнорировать его и установить на ноль. В этом случае алгоритм должен работать, хотя, возможно, немного менее эффективно. Зуммер издает два звуковых сигнала при достижении промежуточной путевой точки и трижды при достижении последней точки.

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

Я использовал Google Maps, чтобы определить координаты путевой точки для моих тестовых маршрутов.Вы можете отметить некоторые путевые точки на Google Maps, а затем скопировать их координаты в массив путевых точек в коде, и все готово. Не забудьте изменить путевые точки в коде на свои собственные, иначе ваша роботизированная машина будет пытаться достичь путевых точек в парке в моем родном городе!

ВЫВОДЫ
Рисунок 8 показывает роботизированную машину в действии. Я пробовал несколько разных карт в разных местах, и машина-робот всегда проходила маршруты, достигая всех путевых точек.Но я заметил, что он немного блуждает при переходе между некоторыми путевыми точками, иногда описывая параболу. Когда машина подъезжает к зоне в непосредственной близости от цели, она немного кружит вокруг, прежде чем достичь цели. Особенно это было заметно, когда рядом находились металлические конструкции.

РИСУНОК 8
Автомобиль-робот с GPS в действии. Он был протестирован с использованием нескольких разных карт в разных местах, и машина-робот всегда проходила маршруты, достигая всех путевых точек.

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

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

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

Подробные ссылки на статьи и дополнительные ресурсы можно найти по адресу:
www.circuitcellar.com/article-materials
Ссылки с [1] по [4], отмеченные в статье, можно найти там

РЕСУРСЫ
Arduino | www.arduino.cc
HiLetgo | www.hiletgo.com
Honeywell | www.honeywell.com
STMicroelectronics | www.st.com
U-blox | www.u-blox.com

ОПУБЛИКОВАНО В ЖУРНАЛЕ CIRCUIT CELLAR • ИЮНЬ 2019 № 347 — Получить PDF-файл выпуска

Рауль Альварес Торрико получил степень бакалавра.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *