Платку фрезернул / гравернул. Напаял. Проверил. Засофтил. Цельный вечер на неё потратил. Вряд ли шибко кому интересен промежуточный результат. Но вот он, в коротком видео:
http://www.youtube.com/watch?v=QdlFAQs89UIИтоги разработки пока такие.
Протокол на вход (получение команды).
Всегда три байта:
- первый байт всегда 'c' (старт-байт);
- второй байт - команда;
- третий байт - параметр (один байт всегда, даже если не нужен для команды).
Команды:
- 'm': мотор. Параметр 's' - останов. Параметр 'l' - налево. Параметр 'r' - направо;
- 'l': ток отключения мотора. Параметр - ток в попугаях АЦП (мА?). 8 бит хватает для этого мотора.
Протокол на выход.
Генерится стандартный пакет раз в секунду. Он содержит строку с LN в конце. Элементы строки разделены запятыми:
Была мысль сделать бинарный протокол. Но его отлаживать сложнее. Может потом поменяю, когда устаканится отладка.
- температура BME280;
- давление BME280;
- влажность BME280;
- напряжение АКБ;
- ток мотора;
- ИК температура неба;
- температура за бортом от ИК-датчика;
- команда, этап и параметр.
В пылу былой любви к UART, несколько лет назад я купил GY-MCU90615 платку ИК-датчика с мелким процессором и UART выходом. В итоге сам себе на хвост наступил. Единственный железный UART атмеги пришлось отдать этому ИК-датчику. А через софтовый UART атмега хорошо передаёт, но плохо принимает.
Ещё час провозился с отладкой - слетали тайминги железного UART из-за прерываний программного брата и I2C.
Начинаю продолжать ненавидеть 8битную древнючую атмегу. Буду пробовать платку формата arduino nano, но с STM32 на борту (arduino sam, если не ошибаюсь). Пару лет назад купил зачем-то. Вот и пришло её время
Попутно на али заказал i2c ИК-сенсоры 614 и 615 и нашёл библиотеки под них. Как придут, опробую их. Уж очень хочется, чтобы купол сам закрывался по непогоде. Можно сказать, без этого не вижу для себя смысла в куполе.
Ещё нашёл arduino-cli. Её можно поставить на апельсин и перепрошивать ардуино с него.
В общем, исследовательская работа в рамках проекта кипит