Логирование GPS-данных на MicroSD карту с Visuino на Arduino Nano
Компоненты и расходные материалы
- Arduino Nano R3 — 1 шт. (любая совместимая плата подойдёт)
- GPS-приёмник (generic) — 1 шт.
- MicroSD модуль — 1 шт.
- MicroSD карта — 1 шт.
- Беспаечная плата — 1 шт.
- Перемычки: 7 Female-Female, 3 Female-Male
Программное обеспечение и онлайн-сервисы
- Visuino — графическая среда разработки для Arduino
- Arduino IDE
О проекте
MicroSD карты — дешёвое и удобное хранилище для данных датчиков Arduino. Существует много дешёвых MicroSD модулей. Я уже делал урок по логированию ультразвукового датчика и выводу GPS на LCD. Сразу поступил запрос на урок по логированию GPS на MicroSD.
Логирование на MicroSD просто, но файловая система потребляет память и может перегрузить маленькие контроллеры (Uno, Nano). После добавления поддержки SD на Nano/Uno почти не остаётся памяти для остального. Можно использовать Mega или Teensy, но если просто записывать сырые NMEA-данные от GPS в файл — памяти на Nano хватает, а обработку можно сделать позже на компьютере.
Шаг 1: Компоненты
(Список выше, фото компонентов во вложениях)
Шаг 2: Запуск Visuino и выбор платы
У Arduino Nano только один аппаратный Serial-порт, он нужен для прошивки. Поэтому GPS подключается после загрузки скетча.
- Установите Arduino IDE: arduino.cc
- Установите Visuino: visuino.com
- Запустите Visuino, кликните «Tools» на компоненте Arduino, выберите «Arduino Nano».
Шаг 3: Добавление и подключение компонента MicroSD в Visuino
- В Component Toolbox введите «sd», выберите «Micro SD Card Module», перетащите в область дизайна.
- Соедините вывод «Out» компонента SDCard1 с входом «In» канала «SPI» Arduino.
- Соедините вывод «ChipSelect» SDCard1 с входом «Digital» канала «Digital[10]» Arduino.
Шаг 4: Добавление и настройка элемента File в компоненте MicroSD
- Нажмите «Tools» на компоненте SDCard1.
- В редакторе «Elements» выберите «File» справа, нажмите «+» слева для добавления.
- В Object Inspector установите свойство «Path Name» элемента File1 = «GPSLog.txt».
Шаг 5: Подключение последовательного порта к элементу File
- Соедините вывод «Out» канала «Serial[0]» Arduino с входом «In» элемента «Elements.File1» компонента SDCard1.
Теперь все данные, приходящие на Serial0 (RX пин), будут записываться в файл GPSLog.txt на SD-карте.
Шаг 6: Генерация, компиляция и загрузка кода
- В Visuino нажмите F9 или кнопку генерации — откроется Arduino IDE с готовым кодом.
- В Arduino IDE нажмите «Upload» для компиляции и прошивки.
Шаг 7: Подключение MicroSD модуля к Arduino
SPI подключение (MicroSD → Arduino Nano):
- CS (серый) → D10
- SCK (оранжевый) → D13
- MOSI (синий) → D11
- MISO (фиолетовый) → D12
- GND (чёрный) → GND
- VCC (красный) → 5V (через макетную плату, см. ниже)
Шаг 8: Подключение GPS модуля к Arduino
- GND (чёрный) → GND
- TX (жёлтый) → RX (D0) Arduino
- VCC (красный) → 5V (через макетную плату)
Шаг 9: Объединение питания и вставка MicroSD карты
Соедините три красных провода питания (от MicroSD, GPS, Arduino) вместе — например, на макетной плате. Вставьте MicroSD карту в модуль.
Шаг 10: Запуск
Светодиод на D13 (SCK) будет мигать при записи данных. На фото пример записанных NMEA-строк. Полный Visuino-проект для скачивания: FBY57XIIO8U2WS4.zip (открывается в Visuino).
Производственный процесс
- Управление яркостью LED с ШИМ через кнопку на Arduino Mega
- Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
- Проект с датчиком DHT11: индикация температуры светодиодами и пьезо-динамиком на Arduino
- Unopad: Бесшовный Arduino MIDI-контроллер для Ableton Live
- Строим Iron Man на Arduino: компоненты, сенсоры и пошаговый гайд
- Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
- Find Me: Умный поисковик вещей на Arduino и Bluetooth
- Подключение Arduino Mega к GPS-модулю NEO‑6M: пошаговое руководство
- DIY-контроллер увлажнителя на Arduino с реле: безопасная работа с высоким напряжением
- Модуль GPS u-blox LEA-6H 02: Интеграция с Arduino и Python