Display
Singleton — әрқашан бірдей дананы қайтарады.
Негізгі қолдану
display
Экран объектісі импорт кезінде жасалады. Оны импорттап, тікелей қолданыңыз — бұл класс емес,
сондықтан display() немесе Display() деп ешқашан жазбаңыз.
from pibody import display
display.print("Hello")
.print(*args)
args мәнін айналмалы экран консоліне шығарады.
Аргументтер бос орынмен біріктіріледі және ">> " префиксімен қосылады.
Ұзын жолдар дисплей еніне сыйдыру үшін оралады.
\\n таңбалары анық жол үзілімдерін тудырады.
Аргументтер:
*args (Any)—font (Any)— мәтіндік қаріп модулі: font_small, font_medium, font_large немесе font_bold. Әдепкі: display.font_mediumcolor (Display.Color)— мәтін түсі. Әдепкі: display.WHITE
display.print("Сәлем,", "Әлем!") # >> Сәлем, Әлем!
.text(text, x, y)
text мәтінін (x, y) позициясында font қаріпімен жазады.
Аргументтер:
text (str | int | bytes)— шығарылатын параметрx (int)— мәтін бағанының позициясыy (int)— мәтін жолының позициясыfont (Any)— қаріп модулі: font_small, font_medium, font_large немесе font_bold. Әдепкі: display.font_smallfg (Display.Color)— мәтін түсі. Әдепкі: display.WHITEbg (Display.Color)— мәтін фонының түсі. Әдепкі: display.BLACK
display.text("PiBody", 50, 50, font = font_bold) # PiBody
.clear()
Дисплейді тазалап, айналмалы консоль күйін қалпына келтіреді.
display.clear()
Геометриялық фигуралар
.fill(color)
Бүкіл дисплейді color түсімен толтырады.
Аргументтер:
color (Display.Color)— алдын ала орнатылған түсті енгізіңіз немесе өзіңіздікін көрсетіңіз.
display.fill(display.WHITE)
.pixel(x, y, color)
(x, y) нүктесінде бір пикселді color түсіне орнатады.
Аргументтер:
x (int)— пиксел бағаны (0 = сол жақ шет)y (int)— пиксел жолы (0 = жоғарғы шет)color (Display.Color)— пиксел түсі
display.pixel(10, 10, display.WHITE)
.line(x0, y0, x1, y1, color)
(x0, y0) бастап (x1, y1) дейін color түсімен сызық жүргізеді.
Аргументтер:
x0 (int)— бастапқы бағанy0 (int)— бастапқы жолx1 (int)— соңғы бағанy1 (int)— соңғы жолcolor (Display.Color)— сызық түсі
display.line(10, 10, 20, 20, display.BLUE)
.hline(x, y, length, color)
(x, y) бастап ұзындығы length пиксел болатын жылдам көлденең сызық жүргізеді.
Аргументтер:
x (int)— бастапқы бағанy (int)— жол позициясыlength (int)— сызық ұзындығы пикселменcolor (Display.Color)— сызық түсі
display.hline(10, 10, 15, display.BLACK)
.vline(x, y, length, color)
(x, y) бастап ұзындығы length пиксел болатын жылдам тік сызық жүргізеді.
Аргументтер:
x (int)— баған позициясыy (int)— бастапқы жолlength (int)— сызық ұзындығы пикселменcolor (Display.Color)— сызық түсі
display.vline(10, 10, 15, display.BLACK)
.crosshair(x, y, r, x_center, y_center, crosshair_radius)
Ортасында добы бар көздеуіш крестін көрсетеді.
x, y координаттары салыстырмалы және -1 мен 1 аралығында, мұнда 0 — көздеуіштің ортасы.
Аргументтер:
x (float)— салыстырмалы X позициясы (-1 = солға, 0 = орта, 1 = оңға)y (float)— салыстырмалы Y позициясы (-1 = төмен, 0 = орта, 1 = жоғары)r (int)— радиусx_center (int)— сол-орта тірек нүктесінің Xy_center (int)— сол-орта тірек нүктесінің Ycrosshair_radius (int)— ішкі радиус пикселменcolor (Display.Color | None)— көздеуіштің негізгі түсі. Әдепкі: display.REDborder_color (Display.Color | None)— жиек түсі. Әдепкі: display.WHITEbackground_color (Display.Color | None)— фон түсі. Әдепкі: display.BLACK
display.crosshair(50, 50, 20, 0, 0, 5, background_color = display.GREEN)
.rect(x, y, width, height, color)
Жоғарғы сол жақ бұрышы (x, y) болатын тіктөртбұрыштың контурын жүргізеді.
Аргументтер:
x (int)— жоғарғы сол жақ бағанy (int)— жоғарғы сол жақ жолwidth (int)— тіктөртбұрыш еніheight (int)— тіктөртбұрыш биіктігіcolor (Display.Color)— тіктөртбұрыш жиегінің түсі
display.rect(50, 50, 10, 20, display.GREEN)
.fill_rect(x, y, width, height, color)
Жоғарғы сол жақ бұрышы (x, y) болатын толтырылған тіктөртбұрыш жүргізеді.
Аргументтер:
x (int)— жоғарғы сол жақ бағанy (int)— жоғарғы сол жақ жолwidth (int)— тіктөртбұрыш еніheight (int)— тіктөртбұрыш биіктігіcolor (Display.Color)— толтыру түсі
display.fill_rect(50, 50, 10, 20, display.GREEN)
.circle(x, y, r, color)
Центрі (x, y) және радиусы r болатын шеңбер контурын жүргізеді.
Аргументтер:
x (int)— центр бағаныy (int)— центр жолыr (int)— шеңбер радиусыcolor (Display.Color)— шеңбер жиегінің түсі
display.circle(50, 50, 10, display.GREEN)
.fill_circle(x, y, r, color)
Центрі (x, y) және радиусы r болатын толтырылған шеңбер жүргізеді.
Аргументтер:
x (int)— центр бағаныy (int)— центр жолыr (int)— шеңбер радиусыcolor (Display.Color)— толтыру түсі
display.fill_circle(50, 50, 10, display.GREEN)
.arc(color, center_x, center_y, r)
Доға жүргізеді (шеңбердің қалың контур сегменті).
Аргументтер:
color (Display.Color)— доғаның негізгі түсіcenter_x (int)— центрдің Xcenter_y (int)— центрдің Yr (int)— ішкі радиус пикселменwidth (int | None)— радиалды қалыңдық пикселмен. Әдепкі: 1start_angle (int | None)— доғаның басталуы градуспен. Әдепкі: 0end_angle (int | None)— доғаның аяқталуы градуспен. Әдепкі: 360
display.arc(display.WHITE, 50, 50, 20)
Көпбұрыштарды салу
.draw_polygon(center_x, center_y, r, n)
Ретті n-бұрышты опционалды шеткі дөңестікпен жүргізеді.
Аргументтер:
center_x (int)— сол-орта тірек нүктесінің Xcenter_y (int)— сол-орта тірек нүктесінің Yr (int)— сыртқы шеңбер радиусы пикселменn (int)— қабырғалар саныbump (float | None)— r-ге қатысты жиектің дөңестік коэффициенті (1.0 = жазық). Әдепкі: 1.0angle_offset (float | None)— градустағы бұрылу ығысуы; None болса автоматты түрде есептеледі. Әдепкі: Nonecolor (Display.Color | None)— контур/толтыру түсі. Әдепкі: display.WHITEfill (bool | None)— True болса толтырылған көпбұрыш, False болса тек контур. Әдепкі: False
display.draw_polygon(50, 50, 20, 4, color = display.GREEN)
.polygon_center(polygon) -> (int, int)
Тұйық дөңес polygon центрін (x, y) қайтарады.
Аргументтер:
polygon (list[tuple[int, int]])— координаттар тізімі. [(0, 0), (10, 0), (10, 10), (0, 10)]
poly = [(0, 0), (10, 0), (10, 10), (0, 10)]
center_x, center_y = display.polygon_center(poly)
print(center_x, center_y)
.polygon(polygon, x, y, color)
(x, y) нүктесіне жылжытылған көпбұрыш контурын жүргізеді, опционалды түрде (center_x, center_y) айналасында angle радианға бұрылады.
Аргументтер:
polygon (list[tuple[int, int]])— координаттар тізімі. [(0, 0), (10, 0), (10, 10), (0, 10)]x (int)— жылжыту ығысуы бағанy (int)— жылжыту ығысуы жолcolor (Display.Color)— көпбұрыштың негізгі түсіangle (float)— бұрылу бұрышы. Әдепкі: 0.0center_x (int)— бұрылу центрінің бағаны. Әдепкі: 0center_y (int)— бұрылу центрінің жолы. Әдепкі: 0
poly = [(0, 0), (10, 0), (10, 10), (0, 10)]
display.polygon(poly, 0, 0, display.RED, angle = 45)
.fill_polygon(polygon, x, y, color)
(x, y) нүктесіне жылжытылған толтырылған көпбұрышты жүргізеді, опционалды түрде (center_x, center_y) айналасында angle радианға бұрылады.
Аргументтер:
polygon (list[tuple[int, int]])— координаттар тізімі. [(0, 0), (10, 0), (10, 10), (0, 10)]x (int)— жылжыту ығысуы бағанy (int)— жылжыту ығысуы жолcolor (Display.Color)— көпбұрыштың негізгі түсіangle (float)— бұрылу бұрышы. Әдепкі: 0.0center_x (int)— бұрылу центрінің бағаны. Әдепкі: 0center_y (int)— бұрылу центрінің жолы. Әдепкі: 0
poly = [(0, 0), (10, 0), (10, 10), (0, 10)]
display.fill_polygon(poly, 0, 0, display.RED, angle = 45)
.bounding() -> (int, int, int, int)
Dirty-тіктөртбұрышты бақылауды қосу/өшіру және нәтижелерді сұрау.
True немесе False беру бақыланатын тіктөртбұрышты қалпына келтіреді және сәйкесінше бақылауды қосады/өшіреді.
(min_x, min_y, max_x, max_y) немесе, егер as_rect True болса, (min_x, min_y, width, height) қайтарады.
Аргументтер:
status (bool | None)— Әдепкі: Noneas_rect (bool | None)— Әдепкі: False
data = display.bounding()
print(data)
Bitmap
.blit_buffer(buffer, x, y, width, height)
Шикі RGB565 буферін дисплейге (x, y) позициясында көшіреді.
buffer width * height * 2 байттан тұруы керек.
Аргументтер:
buffer (bytes | bytearray)— буферx (int)— жоғарғы сол жақ бағанy (int)— жоғарғы сол жақ жолwidth (int)— тіктөртбұрыш еніheight (int)— тіктөртбұрыш биіктігі
display.blit_buffer(buf, 50, 50, 60, 60)
.bitmap(bitmap, x, y)
(x, y) позициясында bitmap модулін көрсетеді (imgtobitmap.py немесе monofont2bitmap.py көмегімен жасалған). Multi-bitmap модульдерінен таңдау үшін index пайдаланыңыз.
Аргументтер:
bitmap (Any)— bitmapx (int)— жоғарғы сол жақ бағанy (int)— жоғарғы сол жақ жолindex (int | None)— multi-bitmap индексі. Әдепкі: 0
display.bitmap(bitmap, 0, 0)
Суреттер
.jpg(jpg, x, y)
(x, y) позициясында JPEG көрсетеді.
Аргументтер:
jpg (str | bytes | bytearray)— файл атауының жолы немесе JPEG деректері бар буфер болуы мүмкінx (int)— жоғарғы сол жақ бағанy (int)— жоғарғы сол жақ жолmethod (int)— рендеринг әдісі. Бос RAM-нан асатын суреттер үшін display.SLOW пайдаланыңыз. Әдепкі: display.FAST
display.jpg("dog.jpg", 0, 0)
.jpg_decode(jpg) -> (bytearray, int, int)
JPEG декодтап, (buffer, width, height) қайтарады.
Аргументтер:
jpg (str | bytes | bytearray)— blit_buffer үшін қолайлы RGB565 bytearrayx (int | None)— кадрлаудың бастапқы бағаны. Әдепкі: 0y (int | None)— кадрлаудың бастапқы жолы. Әдепкі: 0width (int | None)— декодталған суретті кадрлау ені. Әдепкі: Noneheight (int | None)— декодталған суретті кадрлау биіктігі. Әдепкі: None
display.jpg_decode("dog.jpg")
.png(png, x, y)
(x, y) позициясында PNG файлын көрсетеді. Мөлдірлік қолданылмайды, егер mask True болмаса; бұл жағдайда нөлдік альфасы бар пикселдер өткізіледі (баяулау, жол-жолмен сызылады).
Аргументтер:
png (str | bytes | bytearray)— blit_buffer үшін қолайлы RGB565 bytearrayx (int)— жоғарғы сол жақ бағанy (int)— жоғарғы сол жақ жолmask (bool = False)— мөлдірлік режимі
display.png("dog.jpg", 0, 0, mask = True)
Мәтін
.write(font, s, x, y) -> int
(x, y) позициясында пропорционалды bitmap font қаріпімен UTF-8 s мәтінін жазады. Пропорционалды / TrueType bitmap қаріптері.
Көрсетілген жолдың енін пикселмен қайтарады.
Аргументтер:
font (Any)— bitmap қаріп модулі: font_small, font_medium, font_large немесе font_bold. Әдепкі: display.font_mediums (str)— көрсетілетін мәтінx (int)— мәтін бағанының позициясыy (int)— мәтін жолының позициясы
display.write(display.font_medium, "Сәлем", 10, 10)
.write_len(font, s) -> int
s мәтінінің font қаріпімен көрсетілгендегі пикселдік ұзындығын қайтарады. Пропорционалды / TrueType bitmap қаріптері.
Аргументтер:
font (Any)— bitmap қаріп модулі: font_small, font_medium, font_large немесе font_bold. Әдепкі: display.font_mediums (str)— көрсетілетін мәтін
length = display.write_len(display.font_medium, "PiBody")
print(length)
.draw(font, s, x, y)
s мәтінін Hershey векторлық font қаріпімен жүргізеді, (x, y) мәтіннің төменгі сол жақ бұрышы ретінде. scale > 0 болуы керек. Hershey векторлық қаріптері.
Аргументтер:
font (Any)— bitmap қаріп модулі: font_small, font_medium, font_large немесе font_bold. Әдепкі: display.font_mediums (str)— көрсетілетін мәтінx (int)— төменгі сол жақ бағанy (int)— төменгі сол жақ жолfg (Display.Color | None)— мәтін түсі. Әдепкі: display.WHITEscale (float | None)— масштаб. Әдепкі: 1.0
display.draw(display.font_medium, "PiBody", 15, 15)
.draw_len(font, s)
s мәтінінің font қаріпімен scale масштабында жүргізілгендегі пикселдік ұзындығын қайтарады. Hershey векторлық қаріптері.
Аргументтер:
font (Any)— bitmap қаріп модулі: font_small, font_medium, font_large немесе font_bold. Әдепкі: display.font_mediums (str)— көрсетілетін мәтінscale (float | None)— масштаб. Әдепкі: 1.0
length = display.draw_len(display.font_medium, "PiBody", 15, 15)
print(length)
Прогресс жолағы
.linear_bar(x, y, value, min_value, max_value)
y бойынша тігінен центрленген көлденең прогресс жолағын жүргізеді.
Аргументтер:
x (int)— сол-орта тірек нүктесінің Xy (int)— сол-орта тірек нүктесінің Yvalue (float)— ағымдағы мән (min_value–max_value шегінде)min_value (float)— бос жолаққа сәйкес келетін мәнmax_value (float)— толық жолаққа сәйкес келетін мәнlength (int | None)— жолақтың жалпы ұзындығы пикселмен. Әдепкі: 100height (int | None)— жолақ биіктігі пикселмен. Әдепкі: 5border (bool | None)— True болса, тіктөртбұрышты жиек жүргізіп, бос аймақты толтырады; False болса, шеткі қақпақтар мен центр сызығын жүргізеді. Әдепкі: Falsebar_color (Display.Color | None)— толтырылған бөліктің түсі. Әдепкі: display.GREENborder_color (Display.Color | None)— жиек/шеткі қақпақтар/центр сызығының түсі. Әдепкі: display.WHITEbackground_color (Display.Color | None)— толтырылмаған бөліктің түсі. Әдепкі: display.BLACK
display.linear_bar(50, 50, 5, 0, 10)
.circular_bar(center_x, center_y, r, value, min_value, max_value)
Дөңгелек прогресс жолағын жүргізеді.
Толтырылған доға (-90° бастап есептелген бұрышқа дейін) color түсімен, қалғаны background_color түсімен жүргізіледі.
Аргументтер:
center_x (int)— центрдің Xcenter_y (int)— центрдің Yr (int)— ішкі радиус пикселменvalue (float)— ағымдағы мән (min_value–max_value шегінде)min_value (float)— бос жолаққа сәйкес келетін мәнmax_value (float)— толық жолаққа сәйкес келетін мәнwidth (int | None)— радиалды қалыңдық пикселмен. Әдепкі: 2color (Display.Color | None)— толтырылған бөліктің түсі. Әдепкі: display.GREENbackground_color (Display.Color | None)— толтырылмаған бөліктің түсі. Әдепкі: display.WHITE
display.circular_bar(50, 50, 20, 5, 0, 10)
Басқа функциялар
.sleep_mode(value)
Ұйқы режиміне кіру (True) немесе шығу (False).
Ұйқы кезінде дисплей мазмұны сақталмауы мүмкін.
Аргументтер:
value (bool)— ұйқы режимі қосу/өшіру
display.sleep_mode(True)
.logo()
(x, y) позициясында r радиусымен Artisan Education өнім логотипін жүргізеді.
Жүргізу алдында экранды ақ түспен толтырады.
Аргументтер:
x (int | None)— центр бағаныy (int | None)— центр жолыr (int | None)— логотип радиусы
display.logo()
.hsv(h, s, v) -> Display.Color
HSV мәнін оралған RGB565 түс мәніне түрлендіреді.
color() әдісіне ұқсас, бірақ реңк, қанықтылық, жарықтықты кіріс ретінде пайдаланады.
Аргументтер:
h (float)— реңк [0, 360] диапазонындаs (float)— қанықтылық [0.0, 1.0] диапазонындаv (float)— жарықтық [0.0, 1.0] диапазонында
text_color = display.hsv(200, 0.8, 1.0)
display.print("Сәлем", font = text_color)
Конфигурация
.width() -> int
Ағымдағы логикалық дисплей енін пикселмен қайтарады.
width = display.width()
print(width)
.height() -> int
Ағымдағы логикалық дисплей биіктігін пикселмен қайтарады.
height = display.height()
print(height)
.rotation(r)
Логикалық дисплейді сағат тіліне қарсы бұрады.
0= Портрет (0°)1= Ландшафт (90°)2= Кері портрет (180°)3= Кері ландшафт (270°)
Аргументтер:
r— 0 бастап 3 дейінгі бұру режимі
display.rotation(2)
.offset(x_start, y_start)
Баған/жол бастапқы ығысуын қайта анықтайды.
Стандартты емес панель макеті үшін реттеу қажет болса, rotation() кейін шақырыңыз.
Аргументтер:
x_start (int)— бағанның бастапқы ығысуыy_start (int)— жолдың бастапқы ығысуы
display.offset(10, 10)
.inversion_mode(value)
Дисплей түстерінің инверсиясын қосу (True) немесе өшіру (False).
Аргументтер:
value (bool)— инверсия күйі
display.inversion_mode(True)
.madctl(value | None) -> None | int
MADCTL регистрінің мәнін алу (аргументсіз) немесе орнату (аргументпен).
Аппараттық деңгейде бұрылуды және түс ретін басқарады.
Аргументтер:
value (int)— MADCTL регистрінің мәні
Аргументсіз шақырғанда ағымдағы мәнді қайтарады, әйтпесе мәнді орнатып, None қайтарады.
display.madctl()
Қосымша ақпарат
Display.Color алдын ала орнатылған түстері
Display.Color кез келген сурет салу әдісімен пайдалануға болатын бірнеше алдын ала орнатылған түстерді ұсынады.
| Атауы | Сипаттамасы |
|---|---|
| display.BLACK | таза қара |
| display.BLUE | көк |
| display.RED | қызыл |
| display.GREEN | жасыл |
| display.CYAN | көгілдір |
| display.MAGENTA | қызғылт |
| display.YELLOW | сары |
| display.WHITE | таза ақ |