前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(六)MicroPython——240*240显示屏

(六)MicroPython——240*240显示屏

作者头像
小点点
发布2022-12-12 15:25:34
8920
发布2022-12-12 15:25:34
举报
文章被收录于专栏:小点点

目录

学习目标

成果展示 

硬件知识

代码 

总结 


学习目标

        本次实验主要是学习使用显示器以及SPI,SPI在之前介绍过,在此就不再介绍了,也是疯狂调库就行了,但是有关显示图片的东西还是比较新颖的,需要把图片解码然后再显示,这个过程使用到了Python程序,然后把解码之后的文件也使用到了我们之前学的WIFI通信的知识,但是这部分原理我不太懂,目前只会使用,到时候再来研究一下。

成果展示 

https://player.bilibili.com/player.html?aid=432587740

显示屏1

https://player.bilibili.com/player.html?aid=945092540

显示屏2

硬件知识

(1条消息) (32)STM32——SPI实验_花园宝宝小点点的博客-CSDN博客

https://blog.csdn.net/weixin_66578482/article/details/126538043(1条消息) (十七)51单片机——AD/DA转换_花园宝宝小点点的博客-CSDN博客_51ad转换

https://blog.csdn.net/weixin_66578482/article/details/126165033

        这些是有关SPI的原理部分,在此就不再介绍了。

代码 

        用到了许多库和文件,这样肯定跑不通的,有需要的同学可以找我或者去B站看视频。 

代码语言:javascript
复制
# 显示文字,实验1
import random
from machine import Pin, SPI
import st7789
import st7789py
from romfonts import vga2_bold_16x32 as font


# 解决第1次启动时,不亮的问题
st7789.ST7789(SPI(2, 60000000), dc=Pin(2), cs=Pin(5), rst=Pin(15))

# 创建显示屏对象
tft = st7789.ST7889_Image(SPI(2, 60000000), dc=Pin(2), cs=Pin(5), rst=Pin(15))

# 屏幕显示黑色
tft.fill(st7789py.color565(0, 0, 0))




def show_text():
    for rotation in range(4):
        tft.rotation(rotation)
        tft.fill(0)
        col_max = tft.width - font.WIDTH*6
        row_max = tft.height - font.HEIGHT

        for _ in range(100):
            tft.text(
                font,
                "ChenYi!",
                random.randint(0, col_max),
                random.randint(0, row_max),
                st7789py.color565(random.getrandbits(8),random.getrandbits(8),random.getrandbits(8)),
                st7789py.color565(random.getrandbits(8),random.getrandbits(8),random.getrandbits(8))
            )

# 随机显示Hello!
while True:
    show_text()
代码语言:javascript
复制
# 显示图片
from machine import Pin, SPI
import st7789


tft = st7789.ST7889_Image(SPI(2, 60000000), dc=Pin(2), cs=Pin(5), rst=Pin(15))
tft.fill(st7789.color565(0, 0, 0))  # 背景设置为黑色


def show_img():
    with open("text_img.dat", "rb") as f:
        for row in range(240):
            buffer = f.read(480)
            tft.show_img(0, row, 239, row, buffer)


show_img()
代码语言:javascript
复制
# 显示GIF
from machine import Pin, SPI
import st7789
import time


tft = st7789.ST7889_Image(SPI(2, 80000000), dc=Pin(2), cs=Pin(5), rst=Pin(15))
tft.fill(st7789.color565(0, 0, 0))  # 背景设置为黑色

# 因为用到了13张图片,所以这里创建13个文件对象
f_list = [open("img{}.dat".format(i), "rb") for i in range(1, 14)]


def show_img():
    while True:
        for f in f_list:  # 遍历14个文件,显示图片
            f.seek(0)
            for row in range(0, 240, 24):
                buffer = f.read(11520)
                tft.show_img(0, row, 239, row+24, buffer)


show_img()

总结 

        学到了许多之前不了解的东西,也意识到了Python的强大之处,虽然慢一点,但是却十分方便。 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 学习目标
  • 成果展示 
  • 硬件知识
  • 代码 
  • 总结 
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档