咸鱼K210体验笔记—LCD应用
写在前面:本人非专业人员,仅为此类爱好者。分享一下新手在体验K210的过程。入门踩坑(各种跳坑),希望大佬帮忙填上一二~。(所选设备都是K210。都想体验一下。欢迎大佬指点。)因为之前有些硬件使用基础所以K210只使用视觉相关功能。
LCD
LCD 是 pyAI-K210 机器视觉应用中显示的重要工具。
功能 | 参数 |
---|---|
供电电压 | 3.3V |
屏幕尺寸 | 2.8 寸 |
分辨率 | 240*320 |
颜色参数 | TFT 彩色 |
驱动芯片 | ST7789V + NS2009 |
触摸方式 | 电阻屏 |
通讯方式 | 8 位并口总线 |
接口定义 | 24Pin-0.5mm-FPC 座 |
整体尺寸 | 7*5 cm |
接线方法:
2.8 寸 LCD 跟 pyAI-K210 通过底部的 24P 排线连接,注意排线均为下接(排线金手指朝下)。将排线塞进座子,扣下即可
本实验用的 LCD 是 2.8 寸,驱动是常见的 ST7789V,使用 8 位接口跟 pyAIK210 通信,按以往嵌入式 C 语言开发,我们需要对 ST7789 进行编程实现驱动,然后再建立各种字符显示及显示图片等函数。 我们管这些函数的集合叫驱动,MaixPy已经将这 LCD.py 驱动写好了,我们学会如何使用即可。其构造函数和使用方法如下:
构造函数
LCD lcd 屏幕显示。导入lcd模块
import lcd
lcd.init(type=1,freq=15000000,color=lcd.BLACK)初始化LCD。
#【type】LCD 类型;
#【freq】通信频率;
#【color】LCD 初始化的颜色。
函数 | 说明 |
---|---|
lcd.deinit() | 注销 LCD 驱动,释放 IO 引脚。 |
lcd.clear(color) | 填充指定颜色。默认是黑色 |
lcd.draw_string(x,y,str,color,bg_color) | 写字符【x,y】起始坐标;【str】字符内容【color】字体颜色【bg_color】字体背景颜色 |
lcd.display(image,roi=Auto) | 显示图片。【image】RGB565 或 GRAYSCALE 图片。【ROI】显示的感兴趣区域,未指定则为图像大小。 |
lcd.rotation(dir) | LCD 屏幕方向设定。【dir】取值范围[0-3],从 0 到 3 依顺时钟旋转。 |
lcd.mirror(invert) | 镜面显示。【invert】=True 则为镜面显示;=False 则否。 |
有了这些我们可以尝试自己挖坑(谢代码了)定一个目标,先在LCD屏上写上自己的名字。
自己写的代码-= =-如下:
'''
名字:LCD显示
日期: 2020.3.17
作者: 咸鱼梦工坊
说明:编程实现 LCD 显示信息。
思路说明:
1.导入lcd模块
2.显示自己名字
'''
import lcd
lcd.init() #初始屏幕
lcd.draw_string(100, 100, "咸鱼梦工坊", lcd.RED, lcd.BLACK)
#在坐标x=100 y=100的位置写上咸鱼梦工坊,字体颜色为红色,屏幕背景为黑色
发现乱码了。2333果然不会那么顺利。查阅资料发现想显示汉字需要字库。那我们退一步先不用汉字再看看效果
import lcd
lcd.init() #初始屏幕
#lcd.draw_string(100, 100, "咸鱼梦工坊", lcd.RED, lcd.BLACK)
lcd.draw_string(100, 100, "xymgf.blog.csdn.net", lcd.RED, lcd.BLACK)
#在坐标x=100 y=100的位置写上xymgf.blog.csdn.net,字体颜色为红色,屏幕背景为黑色
那么问题来了:用坐标显示位置。那么LED屏幕的坐标是多少呢。据说是分辨率我们测测
'''
名字:笨方法测试LCD坐标(没办法的办法)
日期: 2020.3.17
作者: 咸鱼梦工坊
说明:编程实现 LCD 显示信息。
思路说明:用坐标去试...
'''
import lcd
lcd.init() #初始屏幕
lcd1=lcd.draw_string(0, 0, "A", lcd.RED, lcd.BLACK)#确认起始坐标位置
lcd_1=lcd.draw_string(8, 0, "B", lcd.RED, lcd.BLACK)#看看一个字符占多少横坐标 8
lcd_2=lcd.draw_string(0, 12, "C", lcd.RED, lcd.BLACK)#看看一个字符占多少纵坐标坐标 12
lcd2=lcd.draw_string(312, 0, "D", lcd.RED, lcd.BLACK)#横坐标确认312+8=320
lcd2_2=lcd.draw_string(0, 228, "E", lcd.RED, lcd.BLACK)#纵坐标理论应是228+12=240
lcd3=lcd.draw_string(312,224, "F", lcd.RED, lcd.BLACK)#终坐标应是312,228(320*240)横屏时
实际发现纵坐标在225~240之间字母F都不显示;224时则字母下方有明显空余.不知道是什么情况.求大佬解答。不会是我屏幕坏了吧…’’'
知道坐标(我们可用的312~224)就可以通过计算了解文字放什么位置上。