| 
  
 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的难度。 |