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

news2024/7/6 20:56:00

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()

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows下安装使用Kafka(使用Kafka内置的ZooKeeper)

Windows下安装使用Kafka(使用Kafka内置的ZooKeeper) Kafka2.8版本才开始自带了Zookeeper,所以注意下版本 kafka官网:https://kafka.apache.org kafka配置快速入门:https://kafka.apache.org/quickstart kafka下载页面:https:/…

找出1-1000中的所有完美数

再次练习查找完美数,找出 1-1000 中的所有完美数。 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… 地址:https://l…

【LeetCode】剑指 Offer 62. 圆圈中最后剩下的数字(约瑟夫环问题) p300 -- Java Version

题目链接:https://leetcode.cn/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/ 1. 题目介绍(62. 圆圈中最后剩下的数字) 0,1,,n-1 这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字&a…

人工标注或成过去式?SSA语义分割框架、SSA-engine自动类别标注引擎,大幅提升细粒度语义标注效率

推荐语 4月5日,Meta发布 Segment Anything 模型和 SA-1B 数据集,引发CV届“地震”,其凭借一己之力,成功改写了物体检测、数据标注、图像分割等任务的游戏规则。 复旦大学ZVG实验室团队基于此最新开源了SSA语义分割框架和SSA-engin…

javaEE初阶 — Servlet API 详解

文章目录 HttpServlet1 Servlet 的生命周期2 代码示例3 使用 postman 构造请求4 使用 ajax 构造请求 HttpServletRequest1 代码示例 前端如何给后端传参1 通过 GET 里的 query string 传参2 通过 POST 借助 form 表单传参3 通过 json 格式传参 HttpServletResponse1 代码示例1.…

ChatGPT会取代RPA?ta自己可不是这么说的!

先说一个AI热知识:ChatGPT 的推出在科技界引发了一场狂潮。 聊天机器人ChatGPT以及其背后的AI大模型GPT,在2023年引爆全球。GPT 全称为 Generative Pre-trained Transformer,是一种使用人工神经网络的深度学习技术,能够使机器像人…

Transformer and Self-attention

一谈到 NLP,大家都听说过 Transformer, Self-attention 这些词汇,以及 Attension is all you need 这篇论文。 大家可能多多少少看过这类博客,对这些概念有一些了解,什么 QKV呀, encoder, decod…

贪心-刷杂技的牛

题意 农民约翰的 N 头奶牛(编号为 1..N)计划逃跑并加入马戏团,为此它们决定练习表演杂技。 奶牛们不是非常有创意,只提出了一个杂技表演: 叠罗汉,表演时,奶牛们站在彼此的身上,形成一…

Revit中如何绘制轴线?CAD图纸转轴网操作

一、如何用revit来制作这么一个简单的轴线呢? 01 、新建项目 绘制轴线,首先新建项目建筑样板 02 、轴线快捷键 绘制轴线的快捷键需要牢记,因为经常使用GR 03 、编辑轴线类型 当你画好第一条轴线,需要对轴线类型属性进行调节,一般…

基于vivado(语言Verilog)的FPGA学习(5)——跨时钟处理

基于vivado(语言Verilog)的FPGA学习(5)——跨时钟处理 1. 为什么要解决跨时钟处理问题 慢时钟到快时钟一般都不需要处理,关键需要解决从快时钟到慢时钟的问题,因为可能会漏信号或者失真,比如&…

基于HTML5智慧监所三维可视化安防管控系统

前言 物联网技术的发展使云计算技术得到了迅猛的发展及广泛的应用,智能体系的创建已经成为监狱发展的必然趋势。 智慧监狱的创建、智能化管理的推行是监狱管理的创新,也是监狱整体工作水平提升的具体体现。 建设背景 近年来,司法部不断加大…

jumpserver设置密码强度

1、点击系统设置 – 点击安全设置 2、设置密码强弱规则

【SVN】window SVN安装使用教程(服务器4.3.4版本/客户端1.11.0版本)

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

为什么建企业网站对企业来说非常重要?

随着互联网的飞速发展,建企业网站已经成为了企业重要的一部分。企业网站是企业与外界沟通的重要渠道,对于企业的品牌形象、市场推广和销售业绩都有着不可替代的作用。本文将从以下几个方面,阐述为什么建企业网站对企业来说非常重要&#xff0…

Spring5学习总结(五)Spring5的新特性Log4j2@Nullable注解支持函数式风格支持JUnit5

Spring5学习总结(五)Spring5的新特性/Log4j2/Nullable注解/支持函数式风格/支持JUnit5 整个 Spring5 框架的代码基于 Java8,运行时兼容 JDK9,许多不建议使用的类和方法在代码库中删除 一、支持整合Log4j2 Spring 5.0 框架自带了…

【Java笔试强训】day26编程题

目录 编程题快到碗里来跳台阶问题 编程题 快到碗里来 import java.math.BigDecimal; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);while (sc.hasNext()) {BigDecimal n sc.nextBigDecimal();B…

【leetcode速通java版】04——哈希表

前 言 🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 ☕专栏简介:代码随想录leetcode速通训练营java版本 🌰 文章简介:哈希表理论,leetcodeT242,T3…

jekyll+GithubPage搭建一个免费的个人网站

文章目录 Jekyll环境搭建windows安装RUBY、gem、Jekyll用Jekyll搭建本地博客 用jekyll模板搭建githubpage Jekyll环境搭建 windows安装RUBY、gem、Jekyll 安装ruby RUBY安装包下载地址:https://rubyinstaller.org/downloads/,一路默认选项next即可。 最…

热闻丨ChatGPT会替代你我吗?让它写了封情书后,我得到答案

ChatGPT毕竟不是人 2023年的科技圈儿被ChatGPT占据,上线仅仅两个月,活跃用户就突破一亿。上知天文下知地理,ChatGPT以它的强大功能让许多人生出疑问:ChatGPT会替代你我吗? 记者挑选了一些尖锐问题进行询问&#xff0…

【碳达峰碳中和】高校用电智慧监管平台的构建

摘 要:介绍了当前高校用电存在的问题,进行了原因分析,由此提出建立高校用电智慧监管平台。对高校用电智慧监管平台的构架进行设计,运用物联网技术,实现各回路实时自主控制,并细化管理权限,实现…