|
Digilent Multi-Touch Display扩展板和相关软件可以轻松地为Arduino项目添加一个QVGA分辨率的触摸屏。在这篇文章中,我们首先看一下硬件和软件支持,然后再尝试一些提供的例子。
硬件
这款Arduino扩展板的主要特点是:
■ 2.8寸QVGA分辨率显示屏(320×240)
■ 2个手指电容式触摸面板
■ PIC32MZ微控制器
接口是SPI,通过提供的Arduino库支持Arduino和chipKIT。
有关引脚,原理图和附加硬件的详细信息,请参阅参考手册。
多点触控显示系统(MTDS)
扩展板使用的是Digilent的多点触摸显示系统,由一个专用的处理器负责驱动屏幕,其固件与主机支持一起使得以下方面变得容易:
■ 使用Arduino库设计一个只有几行代码的UI
■ 使用存储在microSD上的文件以二进制透明度绘制图像
■ 放下按钮,并使用直观的函数调用来检查他们的状态
除了支持chipKIT和Arduino之外,MTDS还可以通过Pmod Multi-Touch Display Module板与Arty(Xilinx FPGA / Zynq)平台一起使用,以及PmodMTDS IP内核和库。
软件设置
我们决定用chipKIT uC32(775-7346)Arduino兼容板和Arduino IDE来试用Shield。一旦安装了Arduino软件,就需要安装chipKIT核心,它增加了对chipKIT板卡的支持。使用更高版本的IDE时,只需添加一个新的Board Manager URL即可进行安装,然后搜索并选择安装。
Multi-Touch Display Shield Arduino库,示例和相关文档在MTDS Reference网站上以ZIP格式下载。 ZIP还包含快速入门指南,以及复制到插入到扩展板中的Micro SD卡的位图/图像资源。
Arduino库
提供有两个Arduino库用于扩展板。
MTDS MTDS提供了核心API,并且库定义了三个对象实例:
■ MTDS mtds; //用于访问图形和基本服务的对象 ■ MTFS MTFS; //用于访问文件系统服务的对象 ■ MTWS mtws; //用于访问窗口系统的对象
使用第一个图形系统函数的简单示例在显示器上设置像素: - mtds.SetPixel(hdsDisp,10,20,clrWhite)
复制代码
所提供的“MTDS库程序员参考手册”相当全面,共100页,涵盖了启动和初始化等主题,以及绘图状态,坐标系和颜色等核心概念。
MyDisp
MyDisp库提供了基于MTDS的高级界面,使用简单的功能来渲染图形并创建简单的触摸界面。例如,要从显示屏的左上角画一条直线向下,向右100点:
- mydisp.drawLine(0,0,100,100);
复制代码
提供了附带的程序员手册,其中涵盖了坐标系统,颜色值,笔型,触摸面板操作和UI按钮等核心概念。虽然这次手册只有21页,反映了图书馆的简化性质。
示例
为MTDS库提供了七个演示示例:
1. 使用大多数图形API函数并通过许多不同的屏幕显示其使用循环。
2. 将图形渲染到显示器上,并保存和加载SD卡上文件的位图。
3. 从SD卡加载位图,然后在显示器上渲染它们。
4. 演示使用触摸面板。
5. 和(4)一样,而不是纵向而是横向。 6. 演示一些图形设备的使用。
7. 演示使用DrawBitmap()函数
另外还有三个MyDisp库的示例:
1. 其中还包括绘制SD卡上存储的位图文件的图像。 2. 演示如何使用库来创建和使用触摸按钮来构建用户界面。
3. 与(2)类似,但为按钮使用不同的位图,然后演示了其他一些功能,其中包括如何为进度轮设置动画的示例。
第一个想法
Digilent 多点触控显示屏巧妙地为兼容Arduino平台增加了一个具有电容式多点触控功能的QVGA分辨率屏幕。此外,不必担心驱动该显示屏,实现图形和支持触摸。因此,不仅减少了开发时间,而且降低了应用MCU的难度。 |