Выбрать главу

#define LCD_CONF

Чтобы разрешить изменение привязки переключателей AUX, раскомментируйте еще одну строку:

#define LCD_CONF_AUX

Для входа в меню конфигурации надо левый стик переместить вправо вниз, а правый стик — вверх. Эти движения следует делать одновременно, иначе вместо входа в меню вы можете левым стиком активировать моторы. Полный перечень движений стиков для настройки через дисплей приведен в приложении 3.

Проблемы с подключением дисплеев CRIUS OLED и их решение

Дисплеям CRIUS CO-16 версии 1.0 присущи конструктивные недостатки, которые устранены в более новых версиях. Но дисплеев первой версии и их клонов было изготовлено очень много, поэтому вероятность купить неустойчиво работающий модуль довольно велика. Прежде всего, упомянутым дисплеям присуща проблема неустойчивого сброса, так называемое "звездное небо". При включении питания встроенный контроллер дисплея не сбрасывается, очищая видеопамять, и экран хаотично покрывается одиночными светящимися пикселами. Далее дисплей уже не реагирует на команды и данные с полетного контроллера. Некоторые экземпляры дисплеев зависают изредка, некоторые при каждом включении.

Простым и широко известным способом решения этой проблемы является включение резистора с номиналом 150–200 Ом в разрыв плюсового провода питания. Резистор маломощный, затягивается вместе с проводом и местом пайки в термоусадочную трубку. Может потребоваться подобрать номинал резистора для более устойчивой работы. У автора дисплей работает с сопротивлением 180 Ом. Этот способ хорош тем, что требует минимальные навыки пайки.

Если включение резистора не помогает, попробуйте подключить RC-цепь к выводу сброса контроллера дисплея, как показано на рис. 6.24 и 6.25. Этот способ требует наличия соответствующих инструментов и навыка пайки миниатюрных компонентов.

Рис. 6.24. Схема подключения RC-цепи сброса

Рис. 6.25. Монтаж компонентов цепи сброса

В сочетании определенных экземпляров полетного контроллера и дисплея может возникнуть ситуация, когда при подключении дисплея резко возрастает количество ошибок на шине I2С, полетный контроллер неустойчиво читает данные с датчиков либо вообще зависает. Предположительно, это вызвано чрезмерной "подтяжкой" линий SCL и SDA к напряжению питания встроенным контроллером дисплея, что приводит к неустойчивой работе отдельных экземпляров сенсоров на плате полетного контроллера. Проблема может быть устранена последовательным включением резисторов с сопротивлением 560–750 Ом в разрыв проводов SCL и SDA, соединяющих дисплей и полетный контроллер. Точное значение номинала резисторов надо подобрать опытным путем.

Самодельный цветной дисплей

Вниманию читателей, имеющих некоторый опыт самостоятельного изготовления печатных плат, предлагается авторская конструкция цветного дисплея для MultiWii. Дисплей построен на основе готового дисплейного модуля с разрешением 128x160 точек, диагональю 1,8 дюйма и цветовой палитрой 262 000 оттенков. Обмен данными с дисплеем происходит по последовательному протоколу SPI. Поскольку в прошивке MultiWii поддержка этого протокола не реализована, в дисплее используется дополнительный микроконтроллер ATmega328. Он обменивается данными с полетным контроллером по внутреннему протоколу MSP (MultiWii Serial Protocol) и пересылает обработанные данные собственно в графическую память дисплея по SPI. Дисплей кроме графической матрицы содержит в себе специальную микросхему, так называемый драйвер дисплея. Драйвер содержит цепи управления ЖК-матрицей и буферную память изображения. Он подчиняется внешним командам и позволяет извне обращаться к отдельным пикселам изображения.

Иными словами, микроконтроллер ATmega328 служит посредником между полетным контроллером и драйвером дисплея, обрабатывая данные и пересылая их драйверу.

Конструктивно дисплей выполнен в виде "бутерброда", состоящего из собственно дисплейного модуля и самодельной платы расширения, которая припаяна прямо на выводы платы дисплея (рис. 6.26 и 6.27).