Проект Arduino GPS и TFT-сенсорного экрана: отображение местоположения в реальном времени
Компоненты и материалы
| Arduino UNO | × | 1 |
| Makerfabs GPS Shield | × | 1 |
| ILI9341 2.4" TFT Touchscreen Shield для Arduino | × | 1 |
Приложения и онлайн-сервисы
| Visuino — графическая среда разработки для Arduino |
| Arduino IDE |
О проекте

Недавно ребята из Makerfabs прислали мне Arduino GPS Shield для поддержки разработки Visuino и создания новых туториалов. Я также хотел сделать больше уроков с моим ILI9341 TFT Touchscreen Display Shield, и решил объединить два щита в один проект.
В этом туториале я покажу, как легко подключить щиты к Arduino и запрограммировать их в Visuino для отображения GPS-координат на дисплее.
Шаг 1: Компоненты

- Одна плата Arduino UNO (может работать с Mega, но не тестировалось);
- Один Makerfabs Arduino GPS Shield (обратная сторона на фото 2);
- Один ILI9341 2.4" TFT Touchscreen Shield для Arduino.
После публикации Makerfabs выпустили специальный набор со всеми компонентами для этого проекта!
Шаг 2: Запуск Visuino, добавление и настройка TFT-щита

Так как у Arduino UNO только один аппаратный Serial-порт, который нужен для прошивки, Arduino нужно запрограммировать до подключения GPS-щита.
Для программирования понадобятся:
- Arduino IDE версии 1.6.7 или выше (обязательно!);
- Visuino: visuino.com.
- Запустите Visuino (скриншот 1).
- Нажмите стрелку вниз у компонента Arduino, чтобы открыть меню (скриншот 1).
- Выберите «Add Shields...» (скриншот 1).
- В диалоге «Shields» разверните категорию «Displays», выберите «TFT Color Touch Screen Display ILI9341 Shield», нажмите кнопку добавления (скриншот 2).
- В Object Inspector раскройте свойство «Text» (скриншот 3).
- Установите подсвойство «Size» = «2» (скриншот 3) — увеличит размер текста по умолчанию.
Шаг 3: В Visuino — добавление текстовых полей для GPS-данных

Добавим графические элементы для отображения широты, долготы и высоты от GPS:
- В Object Inspector нажмите «...» у свойства «Elements» компонента «TFT Display» (скриншот 1).
- В редакторе элементов выберите «Text Field», трижды нажмите кнопку добавления (скриншот 2) — добавятся 3 элемента (скриншот 2).
- Выделите все 3 элемента «Text Field» (скриншот 3).
- Установите свойство «Auto Size» = «False» для всех трех (скриншот 3).
- Установите свойство «Width» = «10» для всех трех (скриншот 3).
- Установите свойство «X» = «10» для всех трех (скриншот 3).
Шаг 4: Настройка остальных свойств текстовых полей

- Выберите элемент «Text Field1» (скриншот 1).
- Свойство «Initial Value» = «Update» (скриншот 1) — будет отображаться до прихода первых данных от GPS.
- Свойство «Y» = «20» (скриншот 2).
- Выберите «Text Field2» (скриншот 3).
- Свойство «Y» = «40» (скриншот 3).
- Выберите «Text Field3» (скриншот 4).
- Свойство «Y» = «60» (скриншот 4).
Шаг 5: В Visuino — добавление и подключение компонента Serial GPS

Для декодирования GPS-данных от щита добавим и соединим GPS-компонент в Visuino:
- Введите «GPS» в фильтре Component Toolbox, выберите «Serial GPS» (скриншот 1), перетащите в область дизайна.
- Соедините выход «Latitude» в блоке «Location» компонента GPS1 с входом «In» элемента «Shields.TFT Display.Elements.Text Field1» компонента Arduino (скриншот 2).
- Соедините выход «Longitude» блока «Location» GPS1 с входом «In» элемента «Text Field2» (скриншот 3).
- Соедините выход «Altitude» блока «Location» GPS1 с входом «In» элемента «Text Field3» (скриншот 4).
- Соедините выход «Out» компонента GPS1 (скриншот 5) с входом «In» компонента «Serial[0]» Arduino (скриншот 6).
Шаг 6: Генерация, компиляция и загрузка кода в Arduino

- В Visuino нажмите F9 или кнопку на скриншоте 1 — сгенерируется код и откроется Arduino IDE.
- В Arduino IDE нажмите «Upload» для компиляции и загрузки (скриншот 2).
Шаг 7: Настройка и подключение GPS-щита к Arduino

Arduino запрограммирован, теперь устанавливаем щиты.
Makerfabs GPS Shield имеет джамперы для настройки пинов последовательного обмена с GPS-чипом (скриншот 1). Настроим на Hardware Serial пины 0 и 1 Arduino UNO:
- Джампер TX → соединить TX с Pin 0 (скриншот 1);
- Джампер RX → соединить RX с Pin 1 (скриншот 1);
- Установить TFT Shield сверху на Arduino Uno (скриншоты 2-5).
Шаг 8: Подключение ILI9341 TFT Touchscreen Display Shield к Arduino

Установите TFT Shield сверху на Arduino Uno как показано на фото.
Шаг 9: Запуск и проверка

Поздравляем! Проект завершен.
Скриншоты 2-5 и видео показывают подключенный и включенный проект.
- Подайте питание на Arduino UNO;
- Изначально на TFT дисплее отобразится «Update» (скриншот 1);
- Через некоторое время (смотрите сбоку, скриншот 2) синий LED на Makerfabs GPS Shield начнет мигать — значит, щит нашел GPS-спутники (скриншот 3);
- Вскоре после этого GPS-координаты появятся на TFT дисплее (скриншот 4).
В зависимости от местоположения, получение данных может занять несколько минут. Если через несколько минут данные не появились, выключите питание, подождите минуту и включите снова для сброса GPS.
На скриншоте 1 показана полная схема Visuino. Скачать и открыть в Visuino: visuino.com
Если нужны компоненты, Makerfabs сделали специальный набор со всем необходимым!
FJV6QQLIWMR2MVJ.zip (файл проекта Visuino)
Производственный процесс
- Профессиональное руководство по анимации битмапов на TFT-экране ILI9341 2.4" с Visuino
- Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2"
- Вывод JPEG-фото и RGB565-видео на 2.8″ TFT SPI дисплей с Arduino Nano
- Интерактивный HMI-проект на Nextion с Arduino Mega и датчиками
- Сборка вольтметра на Arduino с дисплеем Nokia 5110 — Пошаговое руководство
- Вывод изображений на 1.17-дюймовый TFT LCD с Arduino UNO
- Вывод данных BME280 (температура, влажность, давление) на сенсорный экран Nextion
- Точное управление сервоприводом через MPU6050 (Arduino, SG90, MG996R)
- Модуль GPS u-blox LEA-6H 02: Интеграция с Arduino и Python
- Освоение распознавания и синтеза речи на Arduino Due