Печатная плата изготавливается любым удобным способом. Все они многократно и подробно описаны в Интернете и радиолюбительской литературе, поэтому здесь мы не будем останавливаться на технологических подробностях. Отметим лишь, что ширина проводников и зазоры между контактными площадками позволяют использовать "лазерно-утюжную технологию" (ЛУТ). Ч Контактные площадки под монтаж модуля Arduino выполнены без отверстий. Для качественной пайки достаточно смазать флюсом площадки и отверстия модуля. Припой легко затекает в отверстие модуля Arduino й надежно припаивает его к расширяющей плате.
Принципиальная электрическая схема изображена на рис. 6.29. Исходный файл схемы, а также рисунок печатной платы в формате DipTrace можно скачать на сайте издательства (см.
Рис. 6.29.
Резисторы R1-R4 предназначены для взаимного согласования логических уровней между модулями. Дело в том, что хоть общее напряжение питания конструкции 5 В, но внутреннее рабочее напряжение питания дисплейного модуля — 3,3 В, вырабатывается встроенным стабилизатором. А рабочее напряжение модуля Arduino — 5 В. Соответственно различаются напряжения логических уровней двух модулей. Если выходы Arduino Pro Mini соединить напрямую со входами контроллера дисплея, то он может выйти из строя. Резисторы R1-R4 ограничивают ток в цепи и в сочетании с внутренним сопротивлением входов работают, как делители напряжения.
Дисплейный модуль содержит слот для подключения карты SD, разведенный на отдельные выводы. Причем согласующие резисторы уже установлены на плате модуля. В схеме устройства предусмотрено подключение карты SD к микроконтроллеру, это позволяет в будущем использовать дисплей и для записи логов (журналов) полета. Но в настоящее время функция ведения лога в прошивке не реализована.
Для подключения дисплея к полетному контроллеру, а также для записи прошивки используется разъем J1. По разводке выводов он совпадает с популярной платой MinimOSD и совместим с фирменным адаптером FTDI USB-COM и его клонами. Поэтому один и тот же адаптер пригодится для записи прошивок в разные модули. Поскольку дисплей подключается к порту SERIAL0, то для подключения по USB дисплей следует отключать.
Запись прошивки в контроллер дисплея
В прошивке дисплея используется свободно распространяемая графическая библиотека для работы с драйвером дисплейного модуля. Для тех, кто раньше не сталкивался с программированием, коротко поясним, что библиотека — это заранее написанный набор стандартных процедур для работы с чем-либо. В нашем случае с дисплеем. Любое стандартное действие, будь то очистка экрана, вывод текста или рисование прямоугольника, выполняется через обращение к готовой процедуре библиотеки.
Но в стандартном наборе библиотек Arduino IDE нужной нам библиотеки нет, ее следует установить отдельно. В скачанном с сайта издательства архиве найдите папку с названием Adafruit_ST7735 и скопируйте ее полностью, не меняя название, в папку для библиотек Arduino — C:\Program Files\Arduino\libraries. Затем скопируйте туда же библиотеку графического ядра AdafruitGFX. Содержимое папки библиотек должно выглядеть приблизительно так, как на рис. 6.30.
Рис. 6.30.
Теперь запустите Arduino IDE и откройте меню Файл | Образцы. В списке должна появиться строка Adafruit_ST7735. Это означает, что графическая библиотека установлена правильно. Номер в ее названии соответствует номеру микросхемы драйвера дисплея.
Примечание
В некоторых случаях в модуле дисплея может быть установлен драйвер Samsung S6D02A1. К сожалению, по внешнему виду модуля это невозможно распознать, а продавцы заранее не предупреждают. Поэтому, если правильно собранный дисплей не подает признаков жизни, необходимо установить библиотеку Adafruit_QDTech и внести исправления в прошивку.
Настройка прошивки
По умолчанию прошивка готова к использованию без каких-либо изменений. Тем не менее, при желании пользователь может настроить под себя содержимое выводимых данных и их размещение на экране, даже не имея навыков программирования.
Вывод данных разбит на страницы. За формирование каждой страницы отвечает отдельный файл page1.ino, page2.ino и т. д. Всего страниц семь. Строка главного файла программы
#define START_PAGE 1