Подготовка среды разработки
Эта страница — стартовая для всего раздела «Код». Здесь:
настраиваем Arduino IDE под нашу плату;
даём сводную карту пинов — её используют все остальные тестовые скетчи;
фиксируем общие параметры (баудрейт, библиотеки).
Примечание
Сборка кубсата уже выполнена по схеме из инструкции, и разводка
фиксирована. Все тестовые скетчи в этом разделе работают с теми же
пинами, что и финальная прошивка main_full_arduino — перетыкать
провода для проверки отдельного модуля не нужно.
Установка Arduino IDE
Скачайте и установите Arduino IDE (подойдёт версия 1.8.x или 2.x).
Подключите Arduino Nano по USB к компьютеру.
Tools → Board → Arduino AVR Boards → Arduino Nano.Tools → Processor— выберите процессор согласно плате (см. подраздел про клоны ниже).Tools → Port— выберите COM-порт, к которому подключена плата.
Грабли с китайскими клонами Nano
Большинство недорогих Arduino Nano — это клоны на чипе CH340. Две вещи, из-за которых первый запуск чаще всего не работает:
Драйвер CH340. Если Windows/macOS не видит COM-порт, поставьте драйвер CH340 (инструкция и установщики).
Old Bootloader. Если IDE компилирует, но не может загрузить скетч и ругается
avrdude: stk500_getsync(), переключите процессор:Tools → Processor → ATmega328P (Old Bootloader).
Сводная карта пинов CubeSat
Все скетчи раздела «Код» написаны под эту карту. Она же зафиксирована в
финальной прошивке main_full_arduino.
Модуль |
Пин(ы) Nano |
Назначение |
|---|---|---|
SD-карта (microSD) |
|
Chip Select ( |
nRF24L01+ |
|
|
WS2812 LED-лента |
|
Сигнал данных ( |
Активный зуммер |
|
Управление ( |
GPS NEO-6M |
|
Аппаратный UART, |
Шина I²C (BME280, CCS811, MPU9250) |
|
|
Шина SPI (SD + nRF) |
|
|
Питание модулей 3.3 В |
|
Только для nRF24L01+ |
Питание остальных |
|
SD, BME280, CCS811, MPU9250, LED, buzzer, GPS |
I²C-адреса модулей
Модуль |
Адрес |
Примечание |
|---|---|---|
BME280 |
|
У некоторых клонов |
CCS811 |
|
При |
MPU9250 |
|
Зависит от уровня на |
Параметры радио (nRF24L01+)
Канал:
76Pipe:
TBOY1Скорость:
250 kbpsAutoAck: выключен (вещание один-ко-многим)Размер пакета:
32байта (фиксированный)
Стандартный баудрейт
Модульные тесты (BME280, CCS811, MPU, SD, I²C scanner и т.д.) —
Serial.begin(115200). Соответственно, вSerial Monitorнужно поставить115200.Финальная прошивка
main_full—Serial.begin(9600). Это не выбор стиля: на этой скорости работает GPS NEO-6M, а его поток NMEA идёт по тому жеRX0, поэтому Nano и Serial Monitor вынужденно делят одну скорость. Подробности — на странице GPS.
Если в мониторе вместо текста идут «кракозябры» — почти всегда неправильно выставлен баудрейт.
Установка библиотек
Через Tools → Manage Libraries… поставьте по одной нужные библиотеки.
Каждая страница тестов ниже отдельно перечисляет, что ей нужно. Сразу
все ставить не обязательно — но удобно один раз сделать в начале.
Библиотека |
Автор / источник |
Где используется |
|---|---|---|
|
Adafruit |
BME280 |
|
Adafruit |
Зависимость BME280 |
|
Adafruit |
CCS811 |
|
Adafruit |
Зависимость CCS811 |
|
TMRh20 |
nRF24L01+ |
|
Mikal Hart |
GPS NEO-6M |
|
встроены в Arduino IDE |
SD, шины SPI/I²C |
Мини-проверка готовности
Плата определяется в IDE (есть выбранный COM-порт).
Порт не занят другими программами (закройте PuTTY/Serial Monitor других IDE).
Пустой скетч (
File → Examples → 01.Basics → BareMinimum) компилируется и заливается без ошибок.
Если эти три пункта проходят — переходите к странице Первичная проверка платы.