Эксперимент 47. Графические примитивы

Чтобы освоить работу с дисплеем попробуем написать текст и нарисовать различные примитивы: линии, прямоугольники.

Схема эксперимента

Рисунок 1. Монтажная схема эксперимента для дисплея с 8 выводами

Рисунок 2. Монтажная схема эксперимента для дисплея с 11 выводами

Программный код эксперимента

Выведем на дисплей различные примитивы.

Exp47.py
  1. from machine import Pin, SPI
  2. from tft import TFT_GREEN
  3. import font
  4. _init()
  5.  
  6.  
  7. dc = Pin(4, Pin.OUT)
  8. cs = Pin(2, Pin.OUT)
  9. rst = Pin(5, Pin.OUT)
  10. spi = SPI(1, baudrate=40000000, polarity=0, phase=0)
  11.  
  12. tft = TFT_GREEN(128, 160, spi, dc, cs, rst, rotate=0)
  13.  
  14. tft.initr(tft.BGR) # tft.initr(tft.RGB) #Если вместо синего цвета отображается красный, а вместо красного синий
  15.  
  16. # Заливка всего дисплея черным цветом
  17. tft.clear(tft.COLOR_BLACK)
  18.  
  19. # Отображаем текст "Size 1" синим цветом, размером 1 с началом в точке с координатой 0, 0
  20. tft.text(0,0,"Size 1", font.terminalfont, tft.COLOR_BLUE, 1)
  21.  
  22. # Отображаем текст "Long text, Long text, Long text" красным цветом, размером 1 с началом в точке с координатой 0, 10.
  23. # Длинный текст автоматически переносится на новую строку
  24. tft.text(0,10,"Long text, Long text, Long text", font.terminalfont, tft.COLOR_RED, 1)
  25.  
  26. # Отображаем текст "Size 2" зеленым цветом, размером 2 с началом в точке с координатой 0, 30
  27. tft.text(0,30,"Size 2", font.terminalfont, tft.COLOR_GREEN, 2)
  28.  
  29. # Отображаем текст "Size 4" голубым цветом, размером 4 с началом в точке с координатой 0, 50
  30. tft.text(0,50,"Size4", font.terminalfont, tft.rgbcolor(0, 255, 255), 4)
  31.  
  32. # Отображаем точку красным цветом с координатой 20, 80
  33. tft.pixel(20, 80, tft.COLOR_RED)
  34.  
  35. # Отображаем закрашенный прямоугольник фиолетовым цветом, началом в точке с координатой 30, 80, шириной 60 и высотой 10
  36. tft.rect(30, 80, 60, 10, tft.COLOR_MAGENTA)
  37.  
  38. # Отображаем горизонтальную линию синим цветом с началом в точке с координатой 20, 95 и шириной 60
  39. tft.hline(20, 95, 60, tft.COLOR_BLUE)
  40.  
  41. # Отображаем вертикальную линию зеленого цвета с началом в точке 10, 95 и высотой 30
  42. tft.vline(10, 95, 30, tft.COLOR_GREEN)
  43.  
  44. # Отображаем линию произвольной направленности красного цвета с началом в точке 15, 100 и концом в точке 100, 160
  45. tft.line(15, 100, 100, 160, tft.COLOR_RED)

tft.clear — очищает дисплей. Закрашивает его целиком одним цветом. Значение цвета передается в качестве параметра.

tft.text — выводит на дисплей текст. Первые два параметра — координаты, третий — строка таксты для вывода, четвертый — шрифт, пятый — цвет, шестой — размер шрифта.

tft.pixel — отображает точку на дисплее. Первые два параметра — координаты, третий — цвет.

tft.rect — рисует на дисплее прямоугольник. Первые два параметра — координаты угла, третий и четвертый — ширину и высоту прямоугольника, пятый — цвет

tft.hline — рисует горизонтальную линию. Первые два параметра — координаты левого конца линии, третий — ширина и четвертый — цвет линии.

tft.vline — рисует вертикальную линию. Первые два параметра — координаты верхнего конца линии, третий — высота и четвертый — цвет линии.

tft.line — рисует линию произвольно направленности. Первые два параметра — координаты одного конца линии, третий и четвертый — координаты второго конца линии, пятый — цвет.

Дисплеи, которые могут быть в комплекте набора MAXI, отличаются не только количеством выводов, но и встроеными настройками, которые влияют на передачу цвета. Функция tft.initr инициализирует дисплей, подготавливает его к работе. В качестве параметра данная функция принимает настройку цвета — tft.BGR или tft.RGB. Если вместо красного цвета на дисплее отображается синий, а вместо синего- красный, то необходимо сменить настройку цвета на другую.

Дополнительное задание

  1. Нарисуй треугольник