Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
products:laboratory_iot:exp47 [2020/05/26 12:27] – создано labuser29products:laboratory_iot:exp47 [2024/11/30 21:22] (текущий) – [Программный код эксперимента] labuser30
Строка 1: Строка 1:
 ===== Эксперимент 47. Графические примитивы ===== ===== Эксперимент 47. Графические примитивы =====
  
 +Чтобы освоить работу с дисплеем попробуем написать текст и нарисовать различные примитивы: линии, прямоугольники.
  
  
Строка 8: Строка 8:
  
 {{ :products:esp-iot:exp23_mont.png?direct&600 |}} {{ :products:esp-iot:exp23_mont.png?direct&600 |}}
-//Рисунок 1. Монтажная схема эксперимента//+//Рисунок 1. Монтажная схема эксперимента для дисплея с 8 выводами// 
 + 
 +{{ :products:esp-iot:exp23_mont_11pin.png?direct&600 |}} 
 +//Рисунок 2. Монтажная схема эксперимента для дисплея с 11 выводами// 
 +==== Программный код эксперимента ==== 
 +Выведем на дисплей различные примитивы. 
 + 
 +<file python Exp47.py[enable_line_numbers="2", start_line_numbers_at="1"]> 
 +from machine import Pin, SPI 
 +from tft import TFT_GREEN 
 +import font 
 +_init() 
 + 
 + 
 +dc  = Pin(4, Pin.OUT) 
 +cs  = Pin(2, Pin.OUT) 
 +rst = Pin(5, Pin.OUT) 
 +spi = SPI(1, baudrate=40000000, polarity=0, phase=0) 
 + 
 +tft = TFT_GREEN(128, 160, spi, dc, cs, rst, rotate=0) 
 + 
 +tft.initr(tft.BGR) # tft.initr(tft.RGB) #Если вместо синего цвета отображается красный, а вместо красного синий 
 + 
 +# Заливка всего дисплея черным цветом 
 +tft.clear(tft.COLOR_BLACK)  
 + 
 +# Отображаем текст "Size 1" синим цветом, размером 1 с началом в точке с координатой 0, 0 
 +tft.text(0,0,"Size 1", font.terminalfont, tft.COLOR_BLUE, 1) 
 + 
 +# Отображаем текст "Long text, Long text, Long text" красным цветом, размером 1 с началом в точке с координатой 0, 10.  
 +# Длинный текст автоматически переносится на новую строку 
 +tft.text(0,10,"Long text, Long text, Long text", font.terminalfont, tft.COLOR_RED, 1) 
 + 
 +# Отображаем текст "Size 2" зеленым цветом, размером 2 с началом в точке с координатой 0, 30 
 +tft.text(0,30,"Size 2", font.terminalfont, tft.COLOR_GREEN, 2) 
 + 
 +# Отображаем текст "Size 4" голубым цветом, размером 4 с началом в точке с координатой 0, 50 
 +tft.text(0,50,"Size4", font.terminalfont, tft.rgbcolor(0, 255, 255), 4) 
 + 
 +# Отображаем точку красным цветом с координатой 20, 80 
 +tft.pixel(20, 80, tft.COLOR_RED) 
 + 
 +# Отображаем закрашенный прямоугольник фиолетовым цветом, началом в точке с координатой 30, 80, шириной 60 и высотой 10 
 +tft.rect(30, 80, 60, 10, tft.COLOR_MAGENTA) 
 + 
 +# Отображаем горизонтальную линию синим цветом с началом в точке с координатой 20, 95 и шириной 60 
 +tft.hline(20, 95, 60, tft.COLOR_BLUE) 
 + 
 +# Отображаем вертикальную линию зеленого цвета с началом в точке 10, 95 и высотой 30 
 +tft.vline(10, 95, 30, tft.COLOR_GREEN) 
 + 
 +# Отображаем линию произвольной направленности красного цвета с началом в точке 15, 100 и концом в точке 100, 160 
 +tft.line(15, 100, 100, 160, tft.COLOR_RED) 
 +</file> 
 + 
 + 
 +''tft.clear'' — очищает дисплей. Закрашивает его целиком одним цветом. Значение цвета передается в качестве параметра. 
 +  
 +''tft.text'' — выводит на дисплей текст. Первые два параметра — координаты, третий — строка текст для вывода, четвертый — шрифт, пятый — цвет, шестой — размер шрифта. 
 + 
 + 
 +''tft.pixel'' — отображает точку на дисплее. Первые два параметра — координаты, третий — цвет. 
 +  
 +''tft.rect'' — рисует на дисплее прямоугольник. Первые два параметра — координаты угла, третий и четвертый — ширину и высоту прямоугольника, пятый — цвет 
 +  
 + 
 +''tft.hline'' — рисует горизонтальную линию. Первые два параметра — координаты левого конца линии, третий — ширина и четвертый — цвет линии. 
 +  
 +''tft.vline'' — рисует вертикальную линию.  Первые два параметра — координаты верхнего конца линии, третий — высота и четвертый — цвет линии. 
 +  
 + 
 +''tft.line'' — рисует линию произвольно направленности. Первые два параметра — координаты одного конца линии, третий и четвертый — координаты второго конца линии, пятый — цвет.  
 + 
 +<WRAP center round important 60%> 
 +Дисплеи, которые могут быть в комплекте набора MAXI, отличаются не только количеством выводов, но и встроенными настройками, которые влияют на передачу цвета. Функция ''tft.initr'' инициализирует дисплей, подготавливает его к работе. В качестве параметра данная функция принимает настройку цвета — **tft.BGR** или **tft.RGB**. Если вместо красного цвета на дисплее отображается синий, а вместо синего- красный, то необходимо сменить настройку цвета на другую. 
 +</WRAP> 
 + 
 +==== Дополнительное задание ==== 
 +<WRAP center round tip 60%> 
 +  - Нарисуй треугольник 
 +</WRAP>