【雕爷学编程】MicroPython动手做(37)——驱动LCD与图文显示

MixPY——让爱(AI)触手可及

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MixPY布局

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

主控芯片:K210(64位双核带硬件FPU和卷积加速器的 RISC-V CPU)
显示屏:LCD_2.8寸 320*240分辨率,支持电阻触摸
摄像头:OV2640,200W像素
扬声器:3W单声道喇叭,及2.5mm双声道耳机孔
麦克风:一颗数字高灵敏MEMS硅麦
存储介质:16MBFlash,可外接<32G calss10 TF内存卡
板载功能:RGB三色灯,自定义2颗按键,重力感应
电池管理:PMU电源管理,3重电池保护电路及550mah锂电池
无线网卡:ESP8285,WiFi无线网卡
下载驱动:CH340,USB转TTL串口驱动电路
外接拓展:3个 Type-C扩展接口,可外接18IO口及双电源输出

在这里插入图片描述
1、在屏幕上绘制文本信息

#MicroPython动手做(37)——驱动LCD与图文显示
#在屏幕绘制文本信息import mixno
import lcd
import imagelcd.init(freq=15000000,color=0x0000)
image = image.Image()
image = image.draw_string(0,0,"MixPY",(255,0,0),5,mono_space=0)
lcd.display(image)

在这里插入图片描述

MxiPY 实验图形编程

在这里插入图片描述
2、LCD_显示驱动(import lcd)

屏幕显示2.8‘’ LCD 240*320驱动配置

(1)初始化显示

lcd.init(type=1, freq=15000000, color=lcd.BLACK)

初始化LCD屏幕显示

参数:
type:LCD的类型(保留给未来使用):
0: None
1: lcd shield(默认值)

freq:LCD(实际上指SPI的通讯速率) 的频率

color:LCD初始化的颜色:
RGB56516 位的颜色值,比如0xFFFF
RGB888元组, 比如(236, 36, 36)
系统color常量,默认lcd.BLACK

返回:
None

(2)注销驱动

lcd.deinit()

注销LCD驱动,释放I/O引脚

参数:

返回:
None

(3)获取分辨率宽度

复制
lcd.width()
获取LCD的宽度(水平分辨率)

参数:

返回:
int类型的屏幕分辨率宽度

(4)获取分辨率高度

lcd.height()

获取LCD的高度(垂直分辨率)

参数:

返回:
int类型的屏幕分辨率高度

(5)获取/设置频率

lcd.height()

设置或者获取LCD(SPI) 的频率

参数:
freq: LCD(SPI) 的频率

返回:
int类型的屏幕 (SPI) 的频率

(6)显示图像

lcd.display(image, roi=Auto)

在液晶屏上显示一张image(GRAYSCALE或RGB565)

参数:
image:显示图像image(GRAYSCALE或RGB565)
roi :一个感兴趣区域的矩形元组(x, y, w, h),若未指定,即为图像矩形
若 roi 宽度小于lcd宽度,则用垂直的黑色边框使 roi 居于屏幕中心(即用黑色填充未占用区域)
若 roi 宽度大于lcd宽度,则 roi 居于屏幕中心,且不匹配像素不会显示(即液晶屏以窗口形态显示 roi 的中心)
若 roi 高度小于lcd高度,则用垂直的黑色边框使 roi 居于屏幕中心(即用黑色填充未占用区域)
若 roi 高度大于lcd高度,则 roi 居于屏幕中心,且不匹配像素不会显示(即液晶屏以窗口形态显示 roi 的中心)

返回:
None
roi 是键值参数,必须在函数调用中通过写入 roi= 来显式地调用

(7)屏幕清空

lcd.clear(color)

将液晶屏清空为黑色或者指定的颜色

参数:
color :将屏幕清空为黑(默认值)或者指定的颜色
RGB56516 位的颜色值,比如0xFFFF
RGB888元组, 比如(236, 36, 36)
系统color常量,默认lcd.BLACK

返回:
None

(8)设置屏幕方向

lcd.rotation(dir)

设置LCD屏幕方向

参数:
dir: 取值范围 [0,3], 从0到3依次顺时针旋转

返值:
当前方向,取值[0,3]

(9)设置镜面显示

lcd.mirror(invert)

设置LCD是否镜面显示

参数:
invert: 是否镜面显示,True或者False

返值:
当前设置,是否镜面显示,返回True或者False

(10)显示文本

lcd.draw_string(x, y, text, text_color, color)

在液晶屏上显示文本字符(不支持中文)

参数:
*x,y:图像中的(x, y)位置开始绘制,您可以单独传递x,y,也可以作为元组(x,y)传递

text :写入图像的字符串。\n,\r, 和\r\n结束符将光标移至下一行
text_color:文本字符颜色
RGB56516 位的颜色值,比如0xFFFF
系统color常量,默认lcd.RED
color:屏幕背景颜色
RGB56516 位的颜色值,比如0xFFFF
系统color常量,默认lcd.BLACK

返回:
None

(11)系统默认常量color颜色:
lcd.BLACK0x0000 黑色
lcd.NAVY0x000F 深蓝色
lcd.DARKGREEN0x03E0 深绿色
lcd.DARKCYAN0x03EF 深青色
lcd.MAROON0x7800 褐红色
lcd.PURPLE0x780F 紫色
lcd.OLIVE0x7BE0 橄榄色
lcd.LIGHTGREY0xC618 浅灰色
lcd.DARKGREY0x7BEF 深灰色
lcd.BLUE0x001F 蓝色
lcd.GREEN0x07E0 绿色
lcd.CYAN0x07FF 青色
lcd.RED0xF800 红色
lcd.MAGENTA0xF81F 洋红色
lcd.YELLOW0xFFE0 黄色
lcd.WHITE0xFFFF 白色
lcd.ORANGE0xFD20 橙色
lcd.GREENYELLOW0xAFE5 绿黄色
lcd.PINK0xF81F 粉红色

在这里插入图片描述

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

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

相关文章

【Ajax】笔记-设置CORS响应头实现跨域

CORS CORS CORS是什么&#xff1f; CORS(Cross-Origin Resource Sharing),跨域资源共享。CORS是官方的跨域解决方案&#xff0c;它的特点是不需要在客户端做任何特殊的操作&#xff0c;完全在服务器中进行处理&#xff0c;支持get和post请求。跨域资源共享标准新增了一组HTTP首…

页面技术基础-html

页面技术基础-html 环境准备&#xff1a;在JDBC中项目上完成代码定义 1. 新建一个 Module:filr->右键 -》Module -》Java-》next->名字(html_day1)->finish 2. 在 Moudle上右键-》第二个选项&#xff1a;add framework .. -> 选择JavaEE下第一个选项 Web Apllicat…

Vue系列第六篇:axios封装,登录逻辑优化,404页面实现,Go语言跨域处理

第五篇利用vue实现了登录页面&#xff0c;用go语言开发了服务端并最后在nginx上进行了部署。本篇将axios封装&#xff0c;登录逻辑优化&#xff0c;404页面实现。 目录 1.前端 1.1代码结构 1.2源码 2.服务端 2.1源码 3.运行效果 4.注意事项 4.1webpack.config.js和vue…

Docker安装RabbitMQ集群

一、安装单机版 1、更新yum源安装 vim、net-tools等工具 yum update -yyum install vim -yyum install net-tools -y 2、安装单机版 #创建挂载路径 mkdir /data/rabbitmq -p#拉取镜像 docker pull rabbitmq:3.9-management#创建容器并启动 docker run -d -it --name rabbi…

【ES】使用日志记录

1、修改操作 1、要删除Elasticsearch索引的分区下的数据 <index_name>是要删除数据的索引名称。这个命令会删除该索引下的所有数据。 POST /<index_name>/_delete_by_query {"query": {"match_all": {}} }2、删除特定条件下的数据 要删除a…

从k8s 的声明式API 到 GPT的 提示语

命令式 命令式有时也称为指令式&#xff0c;命令式的场景下&#xff0c;计算机只会机械的完成指定的命令操作&#xff0c;执行的结果就取决于执行的命令是否正确。GPT 之前的人工智能就是这种典型的命令式&#xff0c;通过不断的炼丹&#xff0c;告诉计算机要怎么做&#xff0…

Sheel编写关于mysqldump实现分库分表备份

编写脚本&#xff0c;使用mysqldump实现分库分表备份。 #编辑脚本文件 [rootlocalhost scripts]# vim bak_tb1.sh#脚本内容&#xff1a; #设置变量&#xff0c;减少代码冗余 mysql_cmd-uroot -p123 exclude_dbDatabase|information_schema|-S|mysql|performance_schema|sys ba…

Cesium 加载ArcGIS Server切片服务错级问题

1.首先上官方api说明 ArcGisMapServerImageryProvider - Cesium Documentation 里面没有 zoomoffset参数!!! 2.如果按照互联网栅格切片规则 3857、4326、4490常用切片层级参数,则直接加载显示地图 viewer.imageryLayers.addImageryProvider(new Cesium.ArcGisMapServerI…

词法分析器

词法分析器 在早期编译1.0时代&#xff0c;我们的目标是完成程序语言到机器语言的翻译&#xff0c;所以重点在编译器前端&#xff0c;于是我们花费大量时间研究词法分析、语法分析、语义分析等内容。如今的本科编译原理课程&#xff0c;基本上也就到这一层面吧。 在编译2.0时…

三种方式创建对象的几种方式及new实例化时做了什么?

创建对象的几种方式 利用对象字面量创建对象 const obj {}2.利用 new Object创建对象 const obj new Object()3.使用 构造函数实例化对象 function Fn(name) {this.name name} const obj new Fn(张三) console.log(obj.name); //张三为什么要用构造函数的形式&#xff1…

node.js系列-常见问题处理方案(持续更新)

问题1&#xff1a;nodejs 如何使用 atob、btoa 解决方案&#xff08;base64与uint8array转换&#xff09;&#xff0c;btoa和atob在nodejs中应该怎么写&#xff1f; 浏览器中我们可以这样使用&#xff1a; btoa(123456) MTIzNDU2 atob(MTIzNDU2) 123456node.js中实现方案 con…

Java版Spring Cloud+Spring Boot+Mybatis+uniapp知识付费平台讲解+免费搭建 qt

&#xfeff;Java版知识付费源码 Spring CloudSpring BootMybatisuniapp前后端分离实现知识付费平台 提供职业教育、企业培训、知识付费系统搭建服务。系统功能包含&#xff1a;录播课、直播课、题库、营销、公司组织架构、员工入职培训等。 提供私有化部署&#xff0c;免费售…

c++的类与对象(下)

1.初始化列表 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值&#xff0c;构造函数体中的语句只能将其称作为赋初值&#xff0c;而不能称作初始化&#xff0c;因为初始化只能初始化一次(初始化的本质就是只能初始化一次)&am…

ubuntu2204中vscode无法输入中文

解决方法&#xff1a;重新安装VSCode。 我一开始是在ubuntu商店下载的&#xff0c;结果上网查了了下&#xff0c;商店里的VSCode是阉割版的&#xff0c;想要输入中文就要重新安装。 安装流程&#xff1a;先删除再安装。 1.可以在商店里已安装界面下选择移除&#xff0c;或者…

【1.4】Java微服务:服务注册和调用(Eureka和Ribbon实现)

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a; 微服务 ✨特色专栏&#xff1a; 知识分享 &#x…

如何用python做自然语言处理

如何用python做自然语言处理 使用Python进行自然语言处理&#xff08;NLP&#xff09;是非常常见和强大的。以下是一些基本步骤&#xff1a; 安装所需的库&#xff1a; 首先&#xff0c;您需要安装一些用于自然语言处理的Python库&#xff0c;如NLTK&#xff08;自然语言工具包…

云原生之使用Docker部署homer静态主页

云原生之使用Docker部署homer静态主页 一、homer介绍1.1 homer简介1.2 homer特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载homer镜像五、部署homer静态主页5.1 创建挂…

rust Vec<u8>如何转成字符串?

在Rust中&#xff0c;可以使用标准库中的 String 类型将 Vec 转换为字符串。可以使用 String::from_utf8_lossy 函数将字节向量转换为字符串&#xff0c;如下所示&#xff1a; fn main() {let bytes: Vec<u8> vec![72, 101, 108, 108, 111]; // 字节向量let string St…

2023年信息系统项目管理师-学习计划安排

1. 关注信管网&#xff1a; 信管网 - 考试专业网站&#xff01; (cnitpm.com) 2023年下半年信息系统项目管理师报名时间将于8月14日开始&#xff0c;各地报名时间不同&#xff0c;请考生注意查看当地报名时间&#xff0c;但报名官网入口是统一的&#xff0c;均在中国计算机技术…

【antd】antdv中 Popover 组件内容过多,出现滚动条,滑动滚动条Popover会自动关闭

antdv版本&#xff1a;1.78 vue版本&#xff1a;2.5.2 <a-popover trigger"click" placement"topLeft"><template slot"content"><div wheel.stop""> //关键是这里<a-table:loading"loading":columns&…