Banana Pi BPI-Centi-S3 使用MicroPython编程显示JPG图片

BPI-Centi-S3是我们新推出的一款板载1.9英寸彩屏的小尺寸ESP32-S3开发板!

BPI-Centi-S3 banana-pi wiki

BPI-Centi-S3 bpi-steam wiki 1

关键特性

  • ESP32-S3,Xtensa® 32 bit LX7
  • 2M PSRAM , 8M FLASH
  • 2.4G WIFI ,Bluetooth 5 ,Bluetooth mesh
  • GPIO , PWM , I2C , SPI , RMT , I2S , UART ,USB , JTAG
  • 1 * ST7789 屏幕,1.9英寸,170*320分辨率,8bit 8080并口
  • 1 * 旋转编码器
  • 1 * 蜂鸣器
  • 1 * 全彩色LED
  • 1 * JST SH 1mm 4-Pin I2C连接座
  • 2 * JST SH 1mm 6-Pin
  • 1 * USB Type-C
  • 1 * MX 1.25mm 2-Pin 电池连接座,支持充电
  • 2 * M3螺丝孔

屏幕

BPI-Centi-S3 正面有一块1.9英寸TFT LCD彩屏,分辨率是170*320,驱动芯片为ST7789V3, 采用8bit 并行接口与ESP32S3芯片连接。

出厂固件中已集成ST7789 C模块 驱动,来自于:

russhughes/st7789s3_esp_lcd , The MIT License

感谢 russhughes 的开源,在他的GitHub README中可以查阅编译方法和所有API接口。

前置准备

  1. 配置开发环境 1
  2. 连接开发板
  3. 单独的配置文件

显示jpg图片

sst7789驱动库内有一个显示jpg格式图片的方法,这对于初次上手学习的我们非常友好。

jpg 方法

jpg(jpg_filename, x, y)

在给定的 x 和 y 坐标处绘制一个 JPG 文件,坐标为图片的左上角。

此方法需要额外的 3100 字节内存用于其工作缓冲区。

准备合适大小的jpg文件

任选自己喜欢的图片,裁切为长320像素,宽170像素,或小于此尺寸的图片。

图片编辑工具在各种智能终端设备中和各种操作系统中都有大量可选的,可任意使用自己喜欢的工具来编辑。

这里随意推荐一个能免费使用的 Web 在线图片编辑工具,Pixlr X 。

将裁切好的图片放入我们本地的MicroPython工作文件夹中,重命名为 pic_1.jpg ,上传图片到MicroPython设备中的方法参考 在终端中使用mpbridge 。

这里已准备一张已裁切好尺寸的图片。

jpg 方法用例

在 main.py 脚本中使用 jpg 方法。

在GitHub中查看代码

""" BPI-Centi-S3 170x320 ST7789 display """ import st7789 import tft_config import gc def main(): try: tft = tft_config.config(rotation=1) tft.init() tft.jpg("pic_1.jpg", 0, 0) tft.show() gc.collect() except BaseException as err: err_type = err.__class__.__name__ print('Err type:', err_type) from sys import print_exception print_exception(err) finally: tft.deinit() print("tft deinit") main()

上传 main.py 后,将设备复位,即可在屏幕上看到图片。

我们再多准备几个合适大小的jpg文件,即可设计一个循环,像播放幻灯片一样在BPI-Centi-S3的屏幕上轮播图片了。



 

在GitHub中查看代码

 

""" BPI-Centi-S3 170x320 ST7789 display """ import st7789 import tft_config import gc import time pic_list = ["pic_1.jpg", "pic_2.jpg", "pic_3.jpg", "pic_4.jpg", "pic_5.jpg"] def main(): try: tft = tft_config.config(rotation=1) tft.init() while True: for pic in pic_list: tft.jpg(pic, 0, 0) tft.show() gc.collect() time.sleep(1) except BaseException as err: err_type = err.__class__.__name__ print('Err type:', err_type) from sys import print_exception print_exception(err) finally: tft.deinit() print("tft deinit") main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/13439.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于鲸鱼算法的极限学习机(ELM)回归预测-附代码

基于鲸鱼算法的极限学习机(ELM)回归预测 文章目录 基于鲸鱼算法的极限学习机(ELM)回归预测1.极限学习机原理概述2.ELM学习算法3.回归问题数据处理4.基于鲸鱼算法优化的ELM5.测试结果6.参考文献7.Matlab代码 摘要:本文利用鲸鱼算法对极限学习机进行优化,并…

微服务学习之面试知识相关总结(Nacos、MQ)

文章目录 壹 微服务Nacos1.1 SpringCloud常见组件1.2 Nacos的服务注册表结构1.3 Nacos如何支撑内部数十万服务注册压力1.4 Nacos避免并发读写冲突问1.5 Nacos与Eureka的区别1.6 Sentinel的限流与Gateway的限流的差别1.7 Sentinel的线程隔离与Hystix的线程隔离的差别 贰 MQ知识2…

7款神仙级非常漂亮的 Linux 操作系统UI,你都用过吗

Linux 的发行版有很多,这里罗列7个漂亮的 Linux 发行版,可以说是Linux操作系统界的颜值担当了。 1、elementary OS 网站:https://elementaryos.cn elementary OS操作系统是最漂亮的Linux发行版之一。它基于macOS外观,同时为Linu…

C# 特性(Attribute)

一、特性(Attribute)定义 特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。 特性使用中括号…

AI智能课程第一讲:chatgpt介绍

AI应用现状 用AI艺术创作 一个小女孩打折手电筒在侏罗世纪公园找恐龙。 AI用于医疗行业 AI辅助驾驶 AI广告投放上的应用 什么是chatgpt? chatgpt相关技术的发展 为什么用chatgpt写代码会特别的快呢? 因为它集成了GitHub上所有开发者的库公用资源&…

供需两端催化口腔医疗服务市场增长 未来将呈现线上化、智能化、品质化三大趋势

一、口腔医疗服务行业概述 口腔由唇、颊、舌、腭、涎腺、牙和颌骨等部分组成。口腔疾病种类繁多,伴随人全生命周期,常见疾病有龋病、牙周疾病、牙髓病、根尖周病、牙齿缺损、错颌畸形等,多数口腔疾病的发病率高,诊疗需求大。除此…

原型设计工具即时设计、Axure、Figma、Sketch,哪个更好用?

在线网页原型图设计软件的使用与桌面端相比具备优势,因为在线网页原型图设计软件的使用全程不需要安装,而且在线网页原型图设计软件也没有任何地点上的限制,更主要的是在线网页原型图设计软件在操作系统上也没有限制,不论是现在使…

GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术应用

随着航空、航天、近地空间等多个遥感平台的不断发展,近年来遥感技术突飞猛进。由此,遥感数据的空间、时间、光谱分辨率不断提高,数据量也大幅增长,使其越来越具有大数据特征。对于相关研究而言,遥感大数据的出现为其提…

服务型企业如何使用飞项实现项目化管理?

服务型企业的业务模式一般都是按项目来运作的,其业务分为售前,售中和售后三个阶段,分别由不同部门和人员对客户进行个性化服务。在这个过程中需要对人、流程和知识的高效统筹管理,即项目的整体管理,因此存在着不小的挑…

git lfs简易使用教程

参考资料: https://zzz.buzz/zh/2016/04/19/the-guide-to-git-lfs/ 这篇随笔简单记录一下git lfs的使用教程,只记录最为常用的部分,并阐述原理,方便后面查阅。 首先说明一下git lfs的原理,看名称:git lfs。…

算法:(力扣)(牛客)打印螺旋矩阵题

手撕螺旋矩阵 题目思路解题 题目 描述:给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。数据范围:0 \le n,m \le 100≤n,m≤10,矩阵中任意元素都满足 |val| \le 100∣val…

如何优化语音交友app开发的搜索和匹配算法

语音交友app开发的挑战 在当今社交媒体行业中,语音交友app开发已经成为一个热门的领域。越来越多的人开始使用语音交友app来寻找新的朋友,这也为开发者们带来了许多机会。然而,这个领域也面临着一些挑战。其中一个最大的挑战是如何优化搜索和…

全志v851s uart3 设置成普通串口收发

本文转载自:https://bbs.aw-ol.com/topic/3281/ 由于UART0 被设定为系统dubug 输出(简单来说就是将ttyS0 设定为console),所以使用UART3 作为普通的串口,进行与别的设备通信。 1. 查看硬件电路图SCH_Schematic1_2022…

springboot 接口防刷(根据IP与路径限制)

接口防刷 一、全局接口防刷(通过拦截器方式)1、原理 代码示例 二、个别接口防刷(接口注解方式)1、代码示例 一、全局接口防刷(通过拦截器方式) 1、原理 代码示例 通过ip地址uri拼接用以作为访问者访问接口区分通过…

Vivado中VIO IP核的使用

Vivado中VIO IP核的使用 一、写在前面二、VIO IP核配置三、VIO联调四、写在后面 一、写在前面 Vivado中的VIO(Virtual Input/Output) IP核是一种用于调试和测试FPGA设计的IP核。它允许设计者通过使用JTAG接口读取和写入FPGA内部的寄存器,从而…

复旦大学郁喆隽:网络制造出人的“幻象”,深度思考如何可能?

“人是什么?”这是亘古以来人们反复追问的一个古老命题。从元宇宙到ChatGPT,这个人人都在讨论、理解和实践互联网的时代,对“人”的自我定义和认知产生了哪些影响?    在3月12日复旦大学-华盛顿大学EMBA项目主办的“复调艺文沙龙”上&am…

Keil生成.bin文件

1. 打开OptionsforTarget 对话框: 2 选择User: 3. 根据User页的配置还要配置Output页面,具体如下: 4. 点击OK确定,然后再重新编译则会按照上图中的配置路径生成.bin格式的文件了: Keil自带的fromelf.exe工具…

Python3 OpenCV4 计算机视觉学习手册:6~11

原文:Learning OpenCV 4 Computer Vision with Python 3 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 计算机视觉 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 当别人说你没有底线的时候&a…

Git 时间线管理

Git 时间线管理 这一部分主要讲的是 取消(undo) 变化 和在不同的时间锚点跳来跳去,以 command 为主。 设计到的commits有: checkoutrestoreresetrevert checkout checkout 的一部分作用,即切换分枝在 git 分支操作 中有提到过&#xff0…

【SCI电气】考虑不同充电需求的电动汽车有序充电调度方法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…