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

编程入门 行业动态 更新时间:2024-10-25 00:27:21

【雕爷学编程】 MicroPython动手做(38)——控制<a href=https://www.elefans.com/category/jswz/34/1759133.html style=触摸屏"/>

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

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 I2Clcd.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 I2Clcd.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 实验图形编程

更多推荐

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

本文发布于:2024-02-26 16:09:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1703100.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:触摸屏   动手做   雕爷学   MicroPython

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!