Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot:exp49 [2020/06/01 18:17] – [Эксперимент 49. Графический интерфейс секундомера] labuser29 | products:laboratory_iot:exp49 [2024/12/13 13:34] (текущий) – labuser30 | ||
---|---|---|---|
Строка 12: | Строка 12: | ||
{{ : | {{ : | ||
- | // | + | // |
+ | {{ : | ||
+ | // | ||
==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
- | Напишем приветственную надпись на дисплее. | ||
<file python Exp49.py[enable_line_numbers=" | <file python Exp49.py[enable_line_numbers=" | ||
Строка 33: | Строка 34: | ||
tft = TFT_GREEN(128, | tft = TFT_GREEN(128, | ||
- | tft.initr() | + | tft.initr(tft.BGR) # tft.initr(tft.RGB) #Если вместо синего цвета отображается красный, |
tft.clear(tft.rgbcolor(255, | tft.clear(tft.rgbcolor(255, | ||
tft.draw_bmp(0, | tft.draw_bmp(0, | ||
Строка 46: | Строка 47: | ||
</ | </ | ||
+ | Этот код выводит интерфейс секундомера. | ||
+ | |||
+ | Этой строкой мы переключаем частоту микроконтроллера на максимальные для него | ||
+ | <code python[enable_line_numbers=" | ||
+ | machine.freq(160000000) | ||
+ | </ | ||
+ | |||
+ | Настройка выводов микроконтроллера, | ||
+ | <code python[enable_line_numbers=" | ||
+ | dc = Pin(4, Pin.OUT) | ||
+ | cs = Pin(2, Pin.OUT) | ||
+ | rst = Pin(5, Pin.OUT) | ||
+ | </ | ||
+ | |||
+ | Настраиваем аппаратный контроллер шины SPI и создаем объект дисплея | ||
+ | <code python[enable_line_numbers=" | ||
+ | spi = SPI(1, baudrate=40000000, | ||
+ | tft = TFT_GREEN(128, | ||
+ | </ | ||
+ | |||
+ | Инициализируем дисплей, | ||
+ | <code python[enable_line_numbers=" | ||
+ | tft.initr(tft.BGR) # tft.initr(tft.RGB) #Если вместо синего цвета отображается красный, | ||
+ | tft.clear(tft.rgbcolor(255, | ||
+ | tft.draw_bmp(0, | ||
+ | </ | ||
+ | |||
+ | Объявляем переменную с цветом шрифта | ||
+ | <code python[enable_line_numbers=" | ||
+ | fontcolor = tft.rgbcolor(39, | ||
+ | </ | ||
+ | |||
+ | Отображаем часы шрифтом 3 с началом в координате 5, 125 | ||
+ | <code python[enable_line_numbers=" | ||
+ | tft.text(5, 125, ' | ||
+ | </ | ||
+ | |||
+ | Отображаем двоеточие — разделитель | ||
+ | <code python[enable_line_numbers=" | ||
+ | tft.text(41, | ||
+ | </ | ||
+ | |||
+ | Подобным образом отображаем остальные данные: | ||
+ | <code python[enable_line_numbers=" | ||
+ | tft.text(55, | ||
+ | tft.text(90, | ||
+ | tft.text(98, | ||
+ | </ | ||
+ | |||
+ | Координаты для вывода данных подбирались экспериментально, | ||
+ | Мы намерено разбили данные на части: часы, минуты, | ||
+ | |||
+ | Мы получили интерфейс нашего устройства — секундомера. В следующем эксперименте займемся реализацией логики его работы. |