【雕爷学编程】 MicroPython动手做(38)——控制触摸屏

news2024/9/21 9:14:55

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、触摸屏技术
触摸屏在结构上由一个感应式液晶显示装置组成,这个感应显示器可以接收触控头或者其他触控动作的信号。当这个感应显示器收到了触控信号,整个触控装置会按照事先编写的程序执行不同的指令,实现用户的触控意图。这种技术替代了传统的机械式按钮装置,加上液晶显示器的画面,可以得到十分生动形象的画面和操作享受,受到了越来越多人的欢迎。

触摸屏技术最早出现在一些工业和商业设备中,例如POS终端机、电梯按钮等。触摸屏技术在很大程度上方便了人机交互,触摸屏本身又很坚固耐用,这些特点都让触摸屏技术有了很大的应用和发展。利用触摸屏技术,用户只要用手指点击相应的触控图案,就可以解决过去繁杂的操作问题,极大的方便了用户。由于近些年i Phone手机的推出,更是刺激了触摸屏相关产业的发展,触摸屏技术也由此被应用到不同的产品中。随着移动互联网、云计算等技术的快速发展,人们对触摸屏技术的需求和要求也日益提高,相信触摸屏技术将会越来越多的出现在不同的电子产品中。除此之外,触摸屏在汽车电子领域和零售业也有很大的发展空间,具相关权威调查,到2012年,用于汽车电子和零售业的触摸屏市场将会达到20亿美元,占触摸屏产业总体市场的20%。同时在PC行业,由于微软操作系统的不断发展,触摸屏技术也将占据着十分重要的角色,再加上医疗领域、公共设施领域等方面,触摸屏控制技术将会得到进一步的普及,有着极好的市场前景。

中国的触摸屏消费市场有着极大潜力,尤其在数码电子产品市场中,然而在触摸屏产业中,中国的触摸屏产业主要集中在产业链的中下游,目前辽宁沈阳的沈北新区也建立了手机制造中心,吸引了包括晨讯科技等手机触摸屏生产厂家。一方面体现了手机触摸屏这一强大的市场,另一方面又反映了我国触摸屏产业的技术含量偏低,多以加工代工为主。然而在触摸屏产业链中,触摸屏驱动芯片是核心,决定着触摸屏产品的优劣,全球各大芯片设计公司也都在致力研发高精度、低功耗的触摸屏驱动芯片。

在这里插入图片描述

2、电阻式触摸屏
是一种传感器,基本上是薄膜加上玻璃的结构,薄膜和玻璃相邻的一面上均涂有ITO(纳米铟锡金属氧化物)涂层,ITO具有很好的导电性和透明性。当触摸操作时,薄膜下层的ITO会接触到玻璃上层的ITO,经由感应器传出相应的电信号,经过转换电路送到处理器,通过运算转化为屏幕上的X、Y值,而完成点选的动作,并呈现在屏幕上。它将矩形区域中触摸点(X,Y)的物理位置转换为代表X坐标和Y坐标的电压。很多LCD模块都采用了电阻式触摸屏,这种屏幕可以用四线、五线、七线或八线来产生屏幕偏置电压,同时读回触摸点的电压。

在这里插入图片描述
3、电阻触摸屏的工作原理
主要是通过压力感应原理来实现对屏幕内容的操作和控制的,这种触摸屏屏体部分是一块与显示器表面非常配合的多层复合薄膜,其中第一层为玻璃或有机玻璃底层,第二层为隔层,第三层为多元树脂表层,表面还涂有一层透明的导电层,上面再盖有一层外表面经硬化处理、光滑防刮的塑料层。在多元脂表层表面的传导层及玻璃层感应器是被许多微小的隔层所分隔电流通过表层,轻触表层压下时,接触到底层,控制器同时从四个角读出相称的电流及计算手指位置的距离。这种触摸屏利用两层高透明的导电层组成触摸屏,两层之间距离仅为2.5微米。当手指触摸屏幕时,平常相互绝缘的两层导电层就在触摸点位置有了一个接触,因其中一面导电层接通Y轴方向的5V均匀电压场,使得侦测层的电压由零变为非零,控制器侦测到这个接通后,进行A/D转换,并将得到的电压值与5V相比,即可得触摸点的Y轴坐标,同理得出X轴的坐标,这就是所有电阻技术触摸屏共同的最基本原理。

触摸屏包含上下叠合的两个透明层,四线和八线触摸屏由两层具有相同表面电阻的透明阻性材料组成,五线和七线触摸屏由一个阻性层和一个导电层组成,通常还要用一种弹性材料来将两层隔开。当触摸屏表面受到的压力(如通过笔尖或手指进行按压)足够大时,顶层与底层之间会产生接触。所有的电阻式触摸屏都采用分压器原理来产生代表X坐标和Y坐标的电压。如图3,分压器是通过将两个电阻进行串联来实现的。上面的电阻(R1)连接正参考电压(VREF),下面的电阻(R2)接地。两个电阻连接点处的电压测量值与下面那个电阻的阻值成正比。 为了在电阻式触摸屏上的特定方向测量一个坐标,需要对一个阻性层进行偏置:将它的一边接VREF,另一边接地。同时,将未偏置的那一层连接到一个ADC的高阻抗输入端。当触摸屏上的压力足够大,使两层之间发生接触时,电阻性表面被分隔为两个电阻。它们的阻值与触摸点到偏置边缘的距离成正比。触摸点与接地边之间的电阻相当于分压器中下面的那个电阻。因此,在未偏置层上测得的电压与触摸点到接地边之间的距离成正比。 电阻式触摸屏内部渡涂的透明ITO导电薄膜有工艺要求。涂层不可太厚,否则不但会降低透光率,还会形成内反射层,降低清晰度;涂层也不可太薄,否则容易断裂。在使用过程中,由于触摸屏的工作准确性需要依靠电阻网络的精密性来实现,如果某处电阻网络出现了故障将会使此处触摸屏触摸失灵:触摸屏表面经常被触摸,表层薄薄的一层透明ITO导电薄膜会出现细小裂纹,也会导致触摸失灵;透明ITO导电薄膜的外层采用的是塑胶材料,没有保护层,所以安全性较差。但是,从结构上看,电阻式触摸屏是一个相对封闭的系统,因此相比于其他触摸屏,不受外界污染物的影响,比如灰尘、水汽、油溃等,而且适合配带手套或是不能用手直接触摸的场合,因此能够在恶劣环境下正常工作,适合于航空机载显示系统。

在这里插入图片描述

4、电阻触摸屏优缺点
(1)优点
电阻式触摸屏的优点是它的屏和控制系统都比较便宜,反应灵敏度很好,而且不管是四线电阻触摸屏还是五线电阻触摸屏,它们都是一种对外界完全隔离的工作环境,不怕灰尘和水汽,能适应各种恶劣的环境。它可以用任何物体来触摸,稳定性能较好。电阻式触摸屏的优点可归类为:
a.电阻式触控屏的精确度高,可到像素点的级别,适用的最大分辨率可达4096x4096。
b. 屏幕不受灰尘、水汽和油污的影响,可以在较低或较高温度的环境下使用。
c. 电阻式触控屏使用的是压力感应,可以用任何物体来触摸,即便是带着手套也可以操作,并可以用来进行手写识别。
d. 电阻式触控屏由于成熟的技术和较低的门槛,成本较为廉价。

在这里插入图片描述

(2)缺点
缺点是电阻触摸屏的外层薄膜容易被划伤导致触摸屏不可用,多层结构会导致很大的光损失,对于手持设备通常需要加大背光源来弥补透光性不好的问题,但这样也会增加电池的消耗。电阻式触摸屏的缺点可归类为:
a. 电阻式触控屏能够设计成多点触控,但当两点同时受压时,屏幕的压力变得不平衡,导致触控出现误差,因而多点触控的实现程度较难。
b. 电阻式触控屏较易因为划伤等导致屏幕触控部分受损。

在这里插入图片描述
5、MixPY_ 触摸屏幕的函数库

touchscreen模块包含了基本的读取触摸屏幕操作(import touchscreen as ts)。

(1)初始化触摸屏

ts.init(i2c=None, cal=None)

初始化触摸屏

参数:
i2c: 支持I2C通信的触摸屏, 传入I2C实例对象, 后期这个参数可能会被重命名或者取消
cal: 校准数据, 是一个7个整型值的元组, 可以通过touchscreen.calibrate()函数得到

返回:
None

(2)校准屏幕

ts.calibrate()

校准屏幕,使屏幕显示和触摸屏像素能够对应

参数:

返回:
返回一个7个整型值的元组, 可以保存到文件系统或者flash,在初始化的时候传入,这样就不用每次都校准了

(3)获取触摸数据

ts.read()

读取当前屏幕的状态以及按下的点的坐标值

参数:

返回:
一个由3个整型值组成的元组(status, x, y), 注意这个值会一直保持上一个状态
status: 状态, 取值有touchscreen.STATUS_PRESS,touchscreen.STATUS_MOVE,touchscreen.STATUS_RELEASE
x:x轴坐标
y:y轴坐标

(4)系统默认touchscreen常量:

touchscreen.STATUS\_PRESS 

屏幕被按下,read()函数返回的元组的第一个值

touchscreen.STATUS\_MOVE 

屏幕被按住并移动,即按住移动,read()函数返回的元组的第一个值

touchscreen.STATUS\_RELEASE 

屏幕不再被按住,即没有点击,read()函数返回的元组的第一个值。

6、实验之一:触摸点亮红色屏幕

#MicroPython动手做(38)——控制触摸屏
#实验之一:触摸点亮红色屏幕

import touchscreen as ts
import time
import mixno
import lcd
from machine import I2C


lcd.init(freq=15000000,color=0)
i2c = I2C(I2C.I2C0, freq=400000, scl=30, sda=31)
ts.init(i2c)
LED_G=mixno.pin(6,mixno.GPIO.OUT)
while True:
    if ts.read()[0] == 2:
        lcd.clear(248)
        time.sleep_ms(300)
    else:
        lcd.clear(0)

在这里插入图片描述

MixPY 实验图形编程

在这里插入图片描述

7、实验之二:手动校准触摸屏幕

红灯亮开始校准,校准五点后,绿灯亮结束

#MicroPython动手做(38)——控制触摸屏
#实验之二:手动校准触摸屏幕

import touchscreen as ts
import mixno
import lcd
from machine import I2C


lcd.init(freq=15000000,color=0)
i2c = I2C(I2C.I2C0, freq=400000, scl=30, sda=31)
LED_R=mixno.pin(7,mixno.GPIO.OUT)
ts.init(i2c)
ts.calibrate()
LED_G=mixno.pin(6,mixno.GPIO.OUT)

在这里插入图片描述

MixPY 实验图形编程

在这里插入图片描述

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

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

相关文章

Android 9-- 源码角度: Home键的监听和拦截

在做应用层APP需求的过程中&#xff0c;HOME键的监听&#xff0c;Back键的监听&#xff0c;这都是很常见的问题&#xff0c;那你有试过&#xff0c;去拦截HOME键的事件吗&#xff0c;有去了解过如何处理吗&#xff0c;流程如何 首先大家应该先了解一种情况&#xff0c;就是Andr…

Grafana集成prometheus(2.Grafana安装)

查找镜像 docker search grafana下载指定版本 docker pull grafana/grafana:10.0.1启动容器脚本 docker run -d -p 3000:3000 --namegrafana grafana/grafana:10.0.1查看是否启动 docker ps防火墙开启 检查防火墙3000端口是否开启 默认用户及密码 admin/admin 登录 ht…

Mapping温度分布验证选择数据记录仪时需要考虑的13件事

01 什么是温度分布验证&#xff1f; 温度分布验证是通过在规定的研究时间内测量定义区域内的多个点来确定特定温度控制环境或过程&#xff08;如冷冻柜、冰箱、培养箱、稳定室、仓库或高压灭菌器&#xff09;的温度分布的过程。温度分布验证的目标是确定每个测量点之间的差异&…

PHP客服系统聊天页面-thinkphp加载页面源码解释

PHP workerman客服系统加载聊天页面的代码逻辑流程&#xff0c;可以进行参考。如果想要二开修改的&#xff0c;可以根据这个流程来修改。 thinkphp的router部分 Route::get(kefu/:u/:f?, index/index/chat);查看控制器加载页面逻辑 application/index/controller/Index.php pu…

接口返回 blob 格式怎么转成 json

问题 工作中遇到一个接口逻辑是有时候会返回文件有时候会返回json&#xff0c;为了保证能接收到文件&#xff0c;需要将 responseType 设置为 blob。但是如果此时需要根据返回的是文件还是json来进行后续不同的操作&#xff0c;你在控制台输出返回的结果&#xff0c;会发现输出…

SpringBoot第16讲:如何生成接口文档之Swagger技术栈

SpringBoot第16讲&#xff1a;如何生成接口文档之Swagger技术栈 SpringBoot开发Restful接口&#xff0c;有什么API规范吗&#xff1f;如何快速生成API文档呢&#xff1f;Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲&#xff0c;Swagger 就是将项目…

FANUC机器人SRVO-300机械手断裂故障报警原因分析及处理办法

FANUC机器人SRVO-300机械手断裂故障报警原因分析及处理办法 首先,我们查看报警说明书上的介绍: 总结:即在机械手断裂设置为无效时,机器人检测出了机械手断裂信号(不该有的信号,现在检测到了,所以报警) 使机械手断裂设定为无效/有效的具体方法:  按下示教器的MENU菜单…

springboot()—— swagger

零、一张图读懂swagger 懂了&#xff0c;这玩意就是用swagger搞出来的&#xff01; 就是一个后端开发自测的东西嘛&#xff01; 一、概念 存在即合理&#xff0c;我们看一下swagger诞生的原因&#xff1a;在前后端分离的架构中&#xff0c;前端新增一个字段&#xff0c;后端就…

【Java数据结构】第七章 —— 栈

目录 一、栈 二、栈的主要方法 三、栈的模拟实现 3.1 构造方法和成员属性 3.2 push 方法 3.3 pop 方法 3.4 peek 方法 3.5 size 方法 一、栈 <

工程监测仪器多通道振弦数据记录仪的MODBUS通讯协议解析

工程监测仪器多通道振弦数据记录仪的MODBUS通讯协议解析 多通道振弦数据记录仪是多通道振弦、温度信号采集记录仪&#xff0c; 具备 32 通道传感器接口&#xff0c; 可对最多16 通道振弦频率和 16 通道温度、 32 通道振弦频率进行实时或全自动定时采集记录&#xff08;支持内部…

【C++奇遇记】函数探幽(上)

&#x1f3ac; 博客主页&#xff1a;博主链接 &#x1f3a5; 本文由 M malloc 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;LeetCode刷题集 数据库专栏 初阶数据结构 &#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如…

操作系统 - 小记 230803

文章目录 计算机的硬件组成程序的存储和执行程序语言的设计和进化存储设备的层次结构操作系统 https://www.bilibili.com/video/BV1Q5411w7z5?p2 计算机的硬件组成 CPU CU&#xff0c;控制单元ALU&#xff0c;算数逻辑单元寄存器 IO Bridge 处理器和外部交互的桥梁Main Memory…

redis原理 4:雷厉风行 —— 管道

大多数同学一直以来对 Redis 管道有一个误解&#xff0c;他们以为这是 Redis 服务器提供的一种特别的技术&#xff0c;有了这种技术就可以加速 Redis 的存取效率。但是实际上 Redis 管道 (Pipeline) 本身并不是 Redis 服务器直接提供的技术&#xff0c;这个技术本质上是由客户端…

【LeetCode-简单】剑指 Offer 22. 链表中倒数第k个节点(详解)

题目 输入一个链表&#xff0c;输出该链表中倒数第k个节点。为了符合大多数人的习惯&#xff0c;本题从1开始计数&#xff0c;即链表的尾节点是倒数第1个节点。 例如&#xff0c;一个链表有 6 个节点&#xff0c;从头节点开始&#xff0c;它们的值依次是 1、2、3、4、5、6。这…

2024年杭电MBA项目招生信息全面了解

2024年全国管理类硕士联考备考已经到了最火热的阶段&#xff0c;不少考生开始持续将注意力集中在备考的规划中&#xff01;杭州达立易考教育整合浙江省内的MBA项目信息&#xff0c;为大家详细梳理了相关报考参考内容&#xff0c;方便大家更好完成择校以及针对性的备考工作。本期…

差异对比犀利手册:使用 Partial Diff 插件在 VSCode 中比较代码差异

简介&#xff1a; 在本教程中&#xff0c;我们将介绍如何在 Visual Studio Code&#xff08;VSCode&#xff09;编辑器中安装和使用 Partial Diff 插件来进行源代码文件的差异比较。Partial Diff 插件是一个强大且简单的工具&#xff0c;可以帮助你更容易地查看和理解代码的变…

14.2.2 【Linux】software, hardware RAID

磁盘阵列分为硬件与软件。所谓的硬件磁盘阵列是通过磁盘阵列卡来达成阵列的目的。磁盘阵列卡上面有一块专门的芯片在处理 RAID 的任务&#xff0c;因此在性能方面会比较好。在很多任务 &#xff08;例如 RAID 5 的同位检查码计算&#xff09; 磁盘阵列并不会重复消耗原本系统的…

“已停止访问该网页“ 解决流程,微信外部链接内容管理规范

登录手机管家官网 腾讯安全-网址安全中心 自行处理。 说明&#xff1a; 一直以来&#xff0c;微信致力于为用户提供绿色、健康的网络生态环境。 根据法律法规的规定&#xff0c;微信将落实“以安全为底线”的互联互通&#xff0c;为确保高质量的平台内容和良好的用户体验&a…

Multimodal Learning with Transformer: A Survey

Transformer多模态学习 Abstract1 INTRODUCTION2 BACKGROUND2.1 Multimodal Learning (MML)2.2 Transformers: a Brief History and Milestones2.3 Multimodal Big Data 3 TRANSFORMERS: A GEOMETRICALLY TOPOLOGICAL PERSPECTIVE3.1 Vanilla Transformer3.1.1 Input Tokenizat…

使用手机相机检测电脑屏幕刷新率Hz

使用手机相机检测电脑屏幕刷新率Hz 1、电脑打开https://www.testufo.com/frameskipping 2、相机专业模式&#xff1a;快门1/10、ISO自动&#xff0c;拍摄一张照片。120Hz至少要有12个亮块&#xff0c;50Hz至少有6个亮块。 更改刷新速率 1、选择 “开始>设置>系统>显示…