一板网电子技术论坛

风筝
发表于: 2017-11-22 17:03:04 | 显示全部楼层

Main6.jpg


Digilent Multi-Touch Display扩展板和相关软件可以轻松地为Arduino项目添加一个QVGA分辨率的触摸屏。在这篇文章中,我们首先看一下硬件和软件支持,然后再尝试一些提供的例子。


硬件


MTDS1.jpg


这款Arduino扩展板的主要特点是:

■    2.8寸QVGA分辨率显示屏(320×240)

■    2个手指电容式触摸面板

■    PIC32MZ微控制器


接口是SPI,通过提供的Arduino库支持Arduino和chipKIT。

MTDS2.jpg

有关引脚,原理图和附加硬件的详细信息,请参阅参考手册


多点触控显示系统(MTDS)

MTDS_BD.jpg


扩展板使用的是Digilent的多点触摸显示系统,由一个专用的处理器负责驱动屏幕,其固件与主机支持一起使得以下方面变得容易:

■    使用Arduino库设计一个只有几行代码的UI

■    使用存储在microSD上的文件以二进制透明度绘制图像

■    放下按钮,并使用直观的函数调用来检查他们的状态


除了支持chipKIT和Arduino之外,MTDS还可以通过Pmod Multi-Touch Display Module板与Arty(Xilinx FPGA / Zynq)平台一起使用,以及PmodMTDS IP内核和库。


软件设置

uC32.jpg

我们决定用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; //用于访问窗口系统的对象


使用第一个图形系统函数的简单示例在显示器上设置像素:

  1. mtds.SetPixel(hdsDisp,10,20,clrWhite)
复制代码

所提供的“MTDS库程序员参考手册”相当全面,共100页,涵盖了启动和初始化等主题,以及绘图状态,坐标系和颜色等核心概念。


MyDisp

MyDisp库提供了基于MTDS的高级界面,使用简单的功能来渲染图形并创建简单的触摸界面。例如,要从显示屏的左上角画一条直线向下,向右100点:

  1. mydisp.drawLine(0,0,100,100);
复制代码

提供了附带的程序员手册,其中涵盖了坐标系统,颜色值,笔型,触摸面板操作和UI按钮等核心概念。虽然这次手册只有21页,反映了图书馆的简化性质。


示例

MtdsDemo1.jpg


为MTDS库提供了七个演示示例:

1.   使用大多数图形API函数并通过许多不同的屏幕显示其使用循环。

2.   将图形渲染到显示器上,并保存和加载SD卡上文件的位图。

3.   从SD卡加载位图,然后在显示器上渲染它们。

4.   演示使用触摸面板。

5.   和(4)一样,而不是纵向而是横向。

6.   演示一些图形设备的使用。

7.   演示使用DrawBitmap()函数

MyDispDemo3.jpg


另外还有三个MyDisp库的示例:

1.  其中还包括绘制SD卡上存储的位图文件的图像。

2.  演示如何使用库来创建和使用触摸按钮来构建用户界面。

3.  与(2)类似,但为按钮使用不同的位图,然后演示了其他一些功能,其中包括如何为进度轮设置动画的示例。


第一个想法

Digilent 多点触控显示屏巧妙地为兼容Arduino平台增加了一个具有电容式多点触控功能的QVGA分辨率屏幕。此外,不必担心驱动该显示屏,实现图形和支持触摸。因此,不仅减少了开发时间,而且降低了应用MCU的难度。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 184 | 回复: 303



Archiver|手机版|小黑屋|

GMT+8, 2018-12-16 03:06 , Processed in 0.031250 second(s), 34 queries . Powered by Discuz! X3.4

YiBoard一板网 © 2015-2018 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表