Подготовка среды разработки =========================== Эта страница — стартовая для всего раздела «Код». Здесь: - настраиваем Arduino IDE под нашу плату; - даём **сводную карту пинов** — её используют все остальные тестовые скетчи; - фиксируем общие параметры (баудрейт, библиотеки). .. note:: Сборка кубсата уже выполнена по схеме из инструкции, и **разводка фиксирована**. Все тестовые скетчи в этом разделе работают с теми же пинами, что и финальная прошивка ``main_full_arduino`` — перетыкать провода для проверки отдельного модуля не нужно. Установка Arduino IDE --------------------- 1. Скачайте и установите `Arduino IDE `_ (подойдёт версия 1.8.x или 2.x). 2. Подключите Arduino Nano по USB к компьютеру. 3. ``Tools → Board → Arduino AVR Boards → Arduino Nano``. 4. ``Tools → Processor`` — выберите процессор согласно плате (см. подраздел про клоны ниже). 5. ``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``. .. list-table:: :header-rows: 1 :widths: 25 20 55 * - Модуль - Пин(ы) Nano - Назначение * - SD-карта (microSD) - ``D4`` - Chip Select (``CS``) * - nRF24L01+ - ``D9`` / ``D10`` - ``CE`` / ``CSN`` * - WS2812 LED-лента - ``D6`` - Сигнал данных (``DIN``) * - Активный зуммер - ``D3`` - Управление (``LOW`` = звук) * - GPS NEO-6M - ``D0`` (``RX0``) - Аппаратный UART, ``9600`` бод * - Шина I²C (BME280, CCS811, MPU9250) - ``A4`` / ``A5`` - ``SDA`` / ``SCL`` * - Шина SPI (SD + nRF) - ``D11`` / ``D12`` / ``D13`` - ``MOSI`` / ``MISO`` / ``SCK`` * - Питание модулей 3.3 В - ``3V3`` - **Только** для nRF24L01+ * - Питание остальных - ``5V`` - SD, BME280, CCS811, MPU9250, LED, buzzer, GPS I²C-адреса модулей ~~~~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 :widths: 30 20 50 * - Модуль - Адрес - Примечание * - BME280 - ``0x76`` - У некоторых клонов ``0x77`` * - CCS811 - ``0x5A`` - При ``ADD`` к ``VCC`` — ``0x5B`` * - MPU9250 - ``0x68`` или ``0x69`` - Зависит от уровня на ``AD0`` Параметры радио (nRF24L01+) ~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Канал: ``76`` - Pipe: ``TBOY1`` - Скорость: ``250 kbps`` - ``AutoAck``: выключен (вещание один-ко-многим) - Размер пакета: ``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…`` поставьте по одной нужные библиотеки. Каждая страница тестов ниже отдельно перечисляет, что ей нужно. Сразу все ставить не обязательно — но удобно один раз сделать в начале. .. list-table:: :header-rows: 1 :widths: 35 30 35 * - Библиотека - Автор / источник - Где используется * - ``Adafruit BME280 Library`` - Adafruit - BME280 * - ``Adafruit Unified Sensor`` - Adafruit - Зависимость BME280 * - ``Adafruit CCS811 Library`` - Adafruit - CCS811 * - ``Adafruit BusIO`` - Adafruit - Зависимость CCS811 * - ``RF24`` - TMRh20 - nRF24L01+ * - ``TinyGPSPlus`` - Mikal Hart - GPS NEO-6M * - ``SD``, ``SPI``, ``Wire`` - встроены в Arduino IDE - SD, шины SPI/I²C Мини-проверка готовности ------------------------ - Плата определяется в IDE (есть выбранный COM-порт). - Порт не занят другими программами (закройте PuTTY/Serial Monitor других IDE). - Пустой скетч (``File → Examples → 01.Basics → BareMinimum``) компилируется и заливается без ошибок. Если эти три пункта проходят — переходите к странице :doc:`coding-first-check`.