你觉得这篇文章怎么样? 帮助我们为您提供更好的内容。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
你觉得这篇文章怎么样?
shield给Arduino项目添加了一个明亮的2.8”多触点显示器
编号为410-317 (136-8068) 的Digilent多触点显示器 shield和相关软件使得添加QVGA分辨率触摸屏到Arduino项目变得容易。在这篇文章中,我们先来看看支持的硬件和软件,然后再尝试一些提供的例子。
硬件
Arduino shield主要配备有:
-
2.8“QVGA分辨率显示器(320×240)
-
2手指电容性触摸板
-
PIC32MZ单片机
接口通过SPI,Arduino库支持的Arduino和chipKIT.
对于引脚分配,原理图和附加的硬件细节,请参见参考手册
多触点显示系统(MTDS)
图片来源: digilentinc.com.
shield利用了Digilent多触点显示系统,通过专用处理器来驱动屏幕,其固件和主机使其容易:
- 使用Arduino库设计一个只有几行代码的UI
- 从存储在microSD的文件中提取二进制透明图像
- 调用直观的函数在下拉按钮上并检查它们的状态
除了支持chipKIT and Arduino,还可以通过Pmod多触点显示模块(410 - 341),PmodMTDS IP 核心和库一起使用带有Arty (Xilinx FPGA/Zynq) platforms的MTDS
软件设置
我们决定用带有chipKIT uC32 (775-7346) Arduino兼容板,Arduino IDE的shield。一旦安装了Arduino软件,就要安装支撑chipKIT板的chipKIT Core。在IDE的后续版本中,只需添加新的Board Manager URL,就能搜索它,并选择安装它。
在MTDS参考网站上,通过ZIP下载多触点显示器Shield 的Arduino库,示例和相关文档。 ZIP还包括一个快速入门指南,加上位图/图像资源,这些资源被复制到嵌入shield中的Micro SD卡上。
Arduino库
有两个Arduino库供 shield使用
MTDS
MTDS提供了API,而库定义了三个对象实例:
-
MTDS mtds; // 用于获取图形和基本服务的对象
-
MTDS mtds; // 用于访问文件系统服务的对象
-
MTDS mtds; // 用于获取窗口系统的对象
一个简单的例子,使用第一个,图形系统功能,在显示器上设置一个像素:
mtds.SetPixel(hdsDisp, 10, 20, clrWhite)
100页的MTDS库程序员参考手册相当全面,不仅涵盖了启动和初始化等主题,还有绘制状态、坐标系统和颜色等核心概念。
MyDisp
MyDisp库提供了建立在MTDS上的高级接口,其功能简单,可以显示图形并创建简单的触控界面。例如,从显示器的左上角绘制一条线到右下角100像素处:
mydisp.drawLine(0, 0, 100, 100);
此外,还提供了一个附带的程序员手册,它涵盖了坐标系统、颜色值、笔模式、触摸面板操作和UI按钮等核心概念。尽管手册的长度只有21页,但是简化了库。
举例
MtdsDemo1其中一个屏幕略图.
为MTDS库提供了7个演示略图:
- 使用大多数图形API功能和通过许多不同的屏幕循环,来演示它们的使用。
- 将图形呈现至显示器上,并从SD卡上的文件中保存和下载位图。
- 从SD卡下载位图,然后显示在显示器上。
- 演示触控面板的使用。
- 和(4)一样,但景观定向而不是肖像。
- 演示了一些图形设施的使用。
- 演示了DrawBitmap()函数的用法
MyDispDemo3略图展示了按钮、触控和进度轮
为MyDisp库附加三个演示草图:
- 演示从存储在SD卡上的位图文件中提取的图像。
- 演示如何使用库创建和使用触摸按钮来构建用户界面。
- 类似于(2),但是为按钮使用不同的位图,并演示了一些其他的功能,包括如何使推动进度轮。
总结
Digilent Shield多点触控显示器是一种便捷的方式,增加了一个QVGA分辨率显示屏,并且具有对arduino兼容平台的电容性、多触点功能。此外,不必担心驱动显示,就能实现原始图形显示并且支持触摸。因此,不仅减少了开发时间,还减少了应用程序MCU上的开销。