MicroPython:Библиотеки/lcd160cr: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 98: | Строка 98: | ||
=== Методы для продвинутого использования === | === Методы для продвинутого использования === | ||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.set_spi_win()|LCD160CR.set_spi_win(x, y, w, h)]] | |||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.fast_spi()|LCD160CR.fast_spi(flush=True)]] | |||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.show_framebuf()|LCD160CR.show_framebuf(buf)]] | |||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.set_scroll()|LCD160CR.set_scroll(on)]] | |||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.set_scroll_win()|LCD160CR.set_scroll_win(win, x=- 1, y=0, w=0, h=0, vec=0, pat=0, fill=2016, color=0)]] | |||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.set_scroll_win_param()|LCD160CR.set_scroll_win_param(win, param, value)]] | |||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.set_scroll_buf()|LCD160CR.set_scroll_buf(s)]] | |||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.jpeg()|LCD160CR.jpeg(buf)]] | |||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.jpeg_start()|LCD160CR.jpeg_start(total_len)]] | |||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.jpeg_data()|LCD160CR.jpeg_data(buf)]] | |||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.feed_wdt()|LCD160CR.feed_wdt()]] | |||
* [[MicroPython:Библиотеки/lcd160cr/LCD160CR.reset()|LCD160CR.reset()]] | |||
• LCD160CR.set_spi_win(x, y, w, h) – задает окно, в которое будут записаны SPI-данные. | • LCD160CR.set_spi_win(x, y, w, h) – задает окно, в которое будут записаны SPI-данные. | ||
Строка 104: | Строка 117: | ||
• LCD160CR.show_framebuf(buf) – показывает на экране заданный буфер. В аргументе buf должен быть задан массив байтов, содержащий 16-битные пиксельные RGB-значения, и они будут записаны в область, заданную с помощью метода LCD160CR.set_spi_win(), начиная с ее верхнего левого угла. | • LCD160CR.show_framebuf(buf) – показывает на экране заданный буфер. В аргументе buf должен быть задан массив байтов, содержащий 16-битные пиксельные RGB-значения, и они будут записаны в область, заданную с помощью метода LCD160CR.set_spi_win(), начиная с ее верхнего левого угла. | ||
Для создания кадровых буферов можно воспользоваться [http://docs.micropython.org/en/latest/library/framebuf.html модулем framebuf]. В нем также есть инструментарий для рисования примитивов. При использовании кадрового буфера производительность анимаций лучше, чем при рисовании прямо на экране. | Для создания кадровых буферов можно воспользоваться [http://docs.micropython.org/en/latest/library/framebuf.html модулем framebuf]. В нем также есть инструментарий для рисования примитивов. При использовании кадрового буфера производительность анимаций лучше, чем при рисовании прямо на экране. | ||
• LCD160CR. | • LCD160CR.set_scroll(on) – включает и выключает прокрутку. Этот метод глобально управляет прокруткой во всех окнах. | ||
• LCD160CR.set_scroll_win(win, x=- 1, y=0, w=0, h=0, vec=0, pat=0, fill=2016, color=0) – настраивает область (окно) экрана для прокрутки: | • LCD160CR.set_scroll_win(win, x=- 1, y=0, w=0, h=0, vec=0, pat=0, fill=2016, color=0) – настраивает область (окно) экрана для прокрутки: | ||
o win – идентификатор окна, которое надо настроить. Окна с идентификаторами 0-7 – это стандартные окна общего назначения, а окно с идентификатором 8 – это окно текстовой прокрутки (бегущая строка). | o win – идентификатор окна, которое надо настроить. Окна с идентификаторами 0-7 – это стандартные окна общего назначения, а окно с идентификатором 8 – это окно текстовой прокрутки (бегущая строка). |
Версия от 19:09, 19 октября 2020
Модуль lcd160cr – управление дисплеем LCD160CR[1]
В этом модуле реализовано управление дисплеем MicroPython LCD160CR.
По этой ссылке можно найти руководство по дисплею LCD160CR, а по этой – его схему.
Класс LCD160CR
В классе LCD160CR реализован программный интерфейс для дисплея LCD160CR. Создав экземпляр этого класса, вы сможете использовать его методы для рисования на дисплее и считывания статуса сенсорной панели.
Например:
import lcd160cr
lcd = lcd160cr.LCD160CR('X')
lcd.set_orient(lcd160cr.PORTRAIT)
lcd.set_pos(0, 0)
lcd.set_text_color(lcd.rgb(255, 0, 0), lcd.rgb(0, 0, 0))
lcd.set_font(1)
lcd.write('Привет, MicroPython!')
print('touch:', lcd.get_touch())
Конструкторы
Статические методы
Элементы экземпляра
Элементы экземпляра LCD160CR ниже открыты для общего доступа:
Методы для настройки
- LCD160CR.set_power(on)
- LCD160CR.set_orient(orient)
- LCD160CR.set_brightness(value)
- LCD160CR.set_i2c_addr(addr)
- LCD160CR.set_uart_baudrate(baudrate)
- LCD160CR.set_startup_deco(value)
- LCD160CR.save_to_flash()
Методы для работы с пикселями
С помощью методов ниже осуществляется управление отдельными пикселями на экране:
- LCD160CR.set_pixel(x, y, c)
- LCD160CR.get_pixel(x, y)
- LCD160CR.get_line(x, y, buf)
- LCD160CR.screen_dump(buf, x=0, y=0, w=None, h=None)
- LCD160CR.screen_load(buf)
Методы для рисования текста
Чтобы нарисовать текст, необходимо задать его позицию, цвет и шрифт, а затем воспользоваться методом LCD160CR.write().
- LCD160CR.set_pos(x, y)
- LCD160CR.set_text_color(fg, bg)
- LCD160CR.set_font(font, scale=0, bold=0, trans=0, scroll=0)
- LCD160CR.write(s)
Методы для рисования примитивных фигур
Эти методы используют основной и фоновый цвета, заданные с помощью метода set_pen().
- LCD160CR.set_pen(line, fill)
- LCD160CR.erase()
- LCD160CR.dot(x, y)
- LCD160CR.rect(x, y, w, h)
- LCD160CR.rect_outline(x, y, w, h)
- LCD160CR.rect_interior(x, y, w, h)
- LCD160CR.line(x1, y1, x2, y2)
- LCD160CR.dot_no_clip(x, y)
- LCD160CR.rect_no_clip(x, y, w, h)
- LCD160CR.rect_outline_no_clip(x, y, w, h)
- LCD160CR.rect_interior_no_clip(x, y, w, h)
- LCD160CR.line_no_clip(x1, y1, x2, y2)
- LCD160CR.poly_dot(data)
- LCD160CR.poly_line(data)
Методы для работы с тачскрином
Методы для продвинутого использования
- LCD160CR.set_spi_win(x, y, w, h)
- LCD160CR.fast_spi(flush=True)
- LCD160CR.show_framebuf(buf)
- LCD160CR.set_scroll(on)
- LCD160CR.set_scroll_win(win, x=- 1, y=0, w=0, h=0, vec=0, pat=0, fill=2016, color=0)
- LCD160CR.set_scroll_win_param(win, param, value)
- LCD160CR.set_scroll_buf(s)
- LCD160CR.jpeg(buf)
- LCD160CR.jpeg_start(total_len)
- LCD160CR.jpeg_data(buf)
- LCD160CR.feed_wdt()
- LCD160CR.reset()
• LCD160CR.set_spi_win(x, y, w, h) – задает окно, в которое будут записаны SPI-данные. • LCD160CR.fast_spi(flush=True) – подготавливает дисплей к приему пиксельных RGB-данных на SPI-шину, делая так, чтобы позиция первого байта вновь переместилась в левый верхний угол окна, заданного в методе LCD16CR.set_spi_win(). Этот метод возвращает объект SPI, который можно использовать для записи пиксельных данных. Отправляемые пиксели должны быть 16-битными RGB-значениями в формате 5-6-5. Прибытие данных отслеживается с помощью специального счетчика (при каждом прибытии новых данных значение в нем будет увеличиваться), и вы можете отправлять данные любого размера. Когда значение в счетчике достигнет размера окна, заданного в методе LCD160CR.set_spi_win(), оно обнулится до значения, обозначающего верхний левый угол этого окна. • LCD160CR.show_framebuf(buf) – показывает на экране заданный буфер. В аргументе buf должен быть задан массив байтов, содержащий 16-битные пиксельные RGB-значения, и они будут записаны в область, заданную с помощью метода LCD160CR.set_spi_win(), начиная с ее верхнего левого угла. Для создания кадровых буферов можно воспользоваться модулем framebuf. В нем также есть инструментарий для рисования примитивов. При использовании кадрового буфера производительность анимаций лучше, чем при рисовании прямо на экране. • LCD160CR.set_scroll(on) – включает и выключает прокрутку. Этот метод глобально управляет прокруткой во всех окнах. • LCD160CR.set_scroll_win(win, x=- 1, y=0, w=0, h=0, vec=0, pat=0, fill=2016, color=0) – настраивает область (окно) экрана для прокрутки: o win – идентификатор окна, которое надо настроить. Окна с идентификаторами 0-7 – это стандартные окна общего назначения, а окно с идентификатором 8 – это окно текстовой прокрутки (бегущая строка). o x, y, w, h – позиция окна на экране. o vec – направление и скорость прокрутки. Это 16-битное значение в формате 0bF.ddSSSSSSSSSSSS. В dd задается направление прокрутки: «0», «1», «2», «3» – для +x, +y, -x, -y. В F задается формат скорости, и «0» будет значить, что окно будет смещаться со скоростью (S % 256) пикселей за кадр, а «1» – что окно будет смещаться на 1 пиксель каждые S кадров. o pat – 16-битная паттерновая маска для фона. o fill – это цвет заливки. o color – это дополнительный цвет (для текста или основной цвет паттерна). • LCD160CR.set_scroll_win_param(win, param, value) – задает один параметр области прокрутки: o win – идентификатор окна (0-8). o param – номер параметра, который надо настроить. Возможные значения: 0-7. Они соответствуют параметрам в методе set_scroll_win(). o value – значение, которое надо задать. • LCD160CR.set_scroll_buf(s) – задает строку для прокрутки в окне 8. В аргументе s должна быть строка размером не более 32 символов. • LCD160CR.jpeg(buf) – показывает JPEG-изображение. В буфере buf должны содержаться данные всего JPEG-изображения. Эти данные не должны содержать EXIF-информацию. Поддерживаются следующие кодировки: Baseline DCT, код Хаффмана, 8 бит на выборку, RGB, YCbCr4:2:2. Начальная точка JPEG-изображения задается с помощью метода LCD160CR.set_pos(). • LCD160CR.jpeg_start(total_len), LCD160CR.jpeg_data(buf) – показывают JPEG-изображение, чьи данные разбросаны по нескольким разным буферам. Вначале нужно один раз вызвать метод jpeg_start(), указав общее количество байт в JPEG-изображении. Затем это количество байтов нужно передать на дисплей при помощи одного или нескольких вызовов метода jpeg_data(). • LCD160CR.feed_wdt() – первый вызов этого метода запустит внутренний сторожевой таймер дисплея. Последующие вызовы будут сбрасывать этот таймер. Продолжительность таймаута – примерно 30 секунд. • LCD160CR.reset() – сбрасывает дисплей.
Константы
• lcd160cr.PORTRAIT, lcd160cr.LANDSCAPE, lcd160cr.PORTRAIT_UPSIDEDOWN, lcd160cr.LANDSCAPE_UPSIDEDOWN – ориентации дисплея, используемые в методе LCD160CR.set_orient(). • lcd160cr.STARTUP_DECO_NONE, lcd160cr.STARTUP_DECO_MLOGO, lcd160cr.STARTUP_DECO_INFO – типы стартовой заставки. Их можно задать вместе по принципу логического ИЛИ при помощи метода LCD160CR.set_startup_deco().
<syntaxhighlight lang="python" enclose="div">