TouchTouch Arduino 开发环境搭建

TouchTouch使用Arduino进行编程,首先我们需要下载Arduino IDE,这里使用的版本为Arduino  1.6.7。为了能够不发生兼容性问题,请尽量选择与本教程一致的Arduino版本。

下载好了IDE之后,接下来就是安装正确的驱动TouchTouch来对Touchtouch编程。下载Touchtouch的驱动库文件, 你可以访问github代码库手动下载或更简单的办法,直接者点击下面的按钮下载zip压缩包。

下载好了之后,解压到你的Arduino IDE 库文件夹中。再这之前你得先确认你得库文件夹打算放在哪里?TouchTouch驱动库文件里面包含了硬件定义,驱动库和例子代码。是一个完整的项目文件夹,所以我们不推荐放到默认的项目文件夹。

推荐放到另外的目录,比如D:\Arduino

然后将下载好的驱动库文件压缩包解压到当前文件夹,解压后的目录结构如下:

解压完成之后需要设置项目文件夹位置设置成:D:\arduino\ws-touchtouch-master

点击好确定设置,然后重新打开Arduino IDE使设置生效。

点击工具->开发板,可以看到板块列表中包含了TouchTouch。至此开环境搭建成功!

上传一个Blink例子测试一下吧!

Peakduino TouchTouch主控板快速上手

Duinopeak TouchTouch是一款易于使用的的多媒体互动Arduino兼容主控板。一个可以使你的项目变得可交互、有响应、变聪明或是变有趣的工具。每一块TouchTouch板为您提供12个电极,可以用来连接到导电墨水或者其他类型的导体来创建电灯开关,乐器或者自定义交互式的界面,而且这一切通过Arduino IDE就可以实现

TouchTouch配备了专用电容触摸片芯片,支持多达12个电极。有了这个芯片它可以将几乎大多数导体材料转换成一个传感器或者输入设备,它不仅可以感应到触摸甚至可以感应到距离是的就是有这么厉害!然后您就可以利用TouchTouch来改变你周围的世界啦。可以在你的墙上做一个女巫灯,做一个水果钢琴,架子鼓或者创造一些从来没有人想到的东西…

TouchTouch甚至配备了一颗MP3解码器芯片和SD卡读写单元连接任何导电的东西到触摸版的12个电极中的一个,可控制MP3模块播放指定的SD卡文件来发出声音,切换到MIDI模式后还能模拟钢琴和架子鼓等大量的乐器和音符!

板载ATmega32U4芯片不仅是一个完整的Arduino 兼容主板还可以来模拟电脑鼠标键盘,串口或者MIDI设备。

简单的说:它可以比普通的Arduino兼容主控板能干更多的事情。

 

接口和供电

板载一个3.5mm立体声音频插孔用来插入你的立体声耳机或者音频线到你的功放设备。

用于外部锂电池供电的JST连接器,板载电源开关及复位键。

可以使用一根micro USB线或者一颗3.7v锂电池到2pin JST端子就可以给TouchTouch供电。

TouchTouch类似于Arduino Leonardo,支持Arduino IDE 1.56以后的版本。

技术参数:

  • 工作电压:5V DC
  • 外部供电:5v USB或者3.7v外接锂电池
  • 音频输出功率:15mW into 32Ω
  • 最大输出电流:(5V rail) 400mA (100mA at startup) (3.3V rail) 300mA
  • 锂电池充电电流: 200mA
  • 数字端口:20 个(其中被MPR121占用3个,VS1053b占用5个-后者可以通过跳线焊点来解除)
  • 模拟端口:12个(部分和数字端口共用) PWM端口:7个(和数字端口共用) Flash 内存:32 kB (ATmega32U4) 其中 4kB被引导程序占用
  • SRAM:2.5kB (ATmega32U4)
  • EEPROM:1kB (ATmega32U4)
  • 时钟频率:16MHz (ATmega32U4), 12.288MHz (VS1053b)
  • 端口电流: per I/O pin 40mA sink and source (ATmega32U4), 12mA source / 1.2mA sink (MPR121)
  • 模拟输入阻抗:典型 100MΩ (ATmega32U4)

安装驱动程序

首次使用时会提示安装驱动程序,不同的操作系统,安装稍有不同,请注意区别!

将ToutchTouch用Mirco USB线连接到电脑USB插孔,如果没有购买专用的USB线用你的手机自带Micro USB线即可!然后打开电源开关,注意打开电源 开关后,ON 电源LED应该亮起。

WIN10下会自动识别并安装驱动,我们什么都不用做,安装完成后打开设备管理器查看是否安装成功,在Windows运行命令框中输入devmgmt.msc 或者设备管理器,选择设备管理器回车即可。

 

如下图TouchTouch会被识别成USB串行设备,在不同的电脑后面的COM端口号可能会不相同,在这里为COM7。

WIN7则需要手动安装驱动程序,首先我们来看看没有安装驱动程序时是什么样子?

点击这里下载TouchTouch_Driver,下载完成后解压到本地硬盘中待使用。

 

 

BuildTest

 

了解了TouchTouch之后我们来进行buildtest吧,每块板子出厂都进行的完整的功能测试,以确保TouchTouch能够正常工作。下面来进行快速的测试。

如果您购买的套餐包含一块测试专用的128M Micro-SD卡的话就很方便了,这块内存卡内已经预先拷贝了所需的mp3文件。除此之外还需要一个立体声耳机或者立体声音频转接线连接到你的音箱或者功放。这里我们使用立体声耳机进行测试,提醒一下你的手机自带的耳机就可以前提是3.5mm插头的。然后只需要插上Micro USB线并打开电源开关就可以了。注意打开电源 开关后,ON 电源LED是否亮起。

戴上耳机,此时用手去触碰E0-E12之间任何的电极,你应该能够听到耳机开始播放mp3,逐个触摸其他电极会相应切换到不同的mp3。

 

需要提醒的:

  • 由于采用32u4作为主控芯片,此芯片自带usb转串口模块,所以串口操作有些和其他avr芯片(328p, 1284p, 2560au)有所不同。

  • 由于板载触摸芯片的工作机制,TouchTouch板在上电时会对触摸模块进行校准。所以在上电或者复位时不要用手去触碰任何电极,尽量远离TouchTouch板。同理要让TouchTouch板不要靠近任何导体为佳!

如果有问题请参阅FAQ或者单元测试部分。

TouchTouch 多媒体主控板 – 各功能模块单元检测

如果您还没有配置好TouchTouch的Arduino开发环境, 请先搭建开发环境!如果已经搭建好开发环境,测试程序已经包含在驱动库文件中,无需重复下载!

SD卡模块测试

准备好文件格式为FAT32的micro SD卡,最大支持32GB,拷贝MP3文件到micro SD卡的根目录中,SD卡文件列表如图:

将SD卡插入TouchTouch板上,并打开电源开关,如图:

打开Arduino IDE,选择好板卡,工具->开发板:TouchTouch,然后选择相应的串口号。如果你不确定你的TouchTouch的串口号是多少,打开设备管理器查看即可!

在Windows运行命令框中输入devmgmt.msc 或者设备管理器,选择设备管理器回车即可。

如下图TouchTouch会被识别成USB串行设备,在不同的电脑系统显示会有所不同,在这里为COM7。

接下来上传测试程序,选择文件->项目文件夹:ListFiles_Test,点击上传。

注意一定要看到有显示“avrdude done. Thank you. ”才是真正的上传程序成功。上传成功后,打开串口监视器窗口,如果SD初始化成功,显示如下:

代表SD模块完全正常,可以接着进行测试其他模块。

如果SD初始化失败,显示如下:

代表SD模块测试不通过,需要找到具体原因。常见原因如下:

  • SD卡接触不好,可以重新插入SD卡再进行测试。
  • SD卡文件格式不兼容,无法识别,需要格式化成FAT32再拷贝MP3文件测试。
  • SD卡损坏或不兼容,更换SD卡。

触摸模块测试

保持前一步的硬件即可进行触摸模块测试,在Arduino IDE中打开SimpleTouch_Test例子,点击上传程序,如图:

上传成功后,打开串口监视窗口,然后用手依次触摸TouchTouch的12个电极,会有相应的串口输出如图:

如果触摸后没有输出,可以关闭串口监视器后,重新打开TouchTouch电源开关再试,否则需要找到具体原因。

至此触摸模块测试完成,如果没有问题可以进行触摸MP3播放程序测试。

触摸MP3播放测试

保持前一步的硬件,另外插上立体声耳机或者立体声音响插头即可进行触摸模块测试,在Arduino IDE中打开Touch_MP3例子,点击上传程序,如图:

上传成功后,带上耳机或者打开音响,然后用手依次触摸TouchTouch的12个电极,会切换相应的MP3播放。注意每触摸一次电极,红色 L LED会闪烁一次。

如何需要在串口监视窗口打印一些信息来调试程序。

打开你的代码,通常能够看到下面一行代码:

while (!Serial);

此代码位于初始化函数setup()中,用来确保程序处于等待状态直到USB被打开。这使得程序调试变得简单,因为你可以全部的USB数据输出。如果你不想在程序运行时必须打开USB(注意是必须打开USB程序才能往下运行,否者程序会一直处于等待USB打开的状态),那么把这行删除或者注释掉就可以了。

通常这行代码是注释掉的,因此不会被执行。但是如果我们需要调试程序的时候,它将很有用,解开这行代码的注释意味着除非我们手动打开串口监视器,否则程序将一直等待我们。

这里的打开USB也需要特别说明一下,是要手动点击Arduino IDE的串口监视器串口或者用串口调试助手打开相应的串口号进行调试等。

解开这行代码,需要重新上传改动过的代码到TouchTouch中,上传成功后打开串口监视窗口,再进行触摸就会有相应的串口输出如图:

TouchTouch 多媒体主控板 – 常见问题FAQ

需要提醒的:

  • 由于采用32u4作为主控芯片,此芯片自带usb转串口模块,所以串口操作有些和其他avr芯片(328p, 1284p, 2560au)有所不同。
  • 由于板载触摸芯片的工作机制,TouchTouch板在上电时会对触摸模块进行校准。所以在上电或者复位时不要用手去触碰任何电极,尽量远离TouchTouch板。同理要让TouchTouch板不要靠近任何导体为佳!

需要检查的基本点:

  • 电源开关是否打开,检查绿色的Led是否亮起?
  • 你的耳机或者喇叭插头是否插上?
  • 你的音频文件是否正确命名,并且匹配你选择的电极?
  • 导体是否和电极接触良好?
  • 如果使用了电极延长线,检查是否有短路?

FAQ

  • 当我插上USB时我的TouchTouch 不能工作!

打开你的代码,通常能够看到下面一行代码:

while (!Serial);

此代码位于初始化函数setup()中,用来确保程序处于等待状态直到USB被打开。这使得程序调试变得简单,因为你可以全部的USB数据输出。如果你不想在程序运行时必须打开USB(注意是必须打开USB程序才能往下运行,否者程序会一直处于等待USB打开的状态),那么把这行删除或者注释掉就可以了。

这里的打开USB也需要特别说明一下,是要手动点击Arduino IDE的串口监视器串口或者用串口调试助手打开相应的串口号进行调试等。

  • 我的TouchTouch一直在Arduino IDE里不显示COM或者串口号

多数的情况是使用了只能充电的USB充电线而不是USB数据线。

现在市面上有很多USB线只能充电而不能传输数据,所以一定要确保你使用的是原装的优质USB数据线!也有少数质量比较劣质的数据线也会产生问题,或者导致使用不稳定!

  • 我无法理解COM端口号消失,我的Arduino UNO就不会出现这种情况

UNO类型的Arduino有一个专用的USB转串口芯片(例如FTDI芯片或者CH340等)用来专门处理所有的串口任务,和主芯片时分开的。这样的话无论你的主芯片有没有失效你总是可以使用COM端口。

32u4和M0类型的Arduino不具备一个分开的专用USB转串口芯片,而是主芯片来执行这个任务。它是现实了经济性和高效性的配置,但是随之需要付出额外的代价是在某些时候需要手动进入booloader模式。

  • 我承认!我做了“某些不当操作”然后当我插上TouchTouch板,它再也无法像之前一样正常工作了,并且我也不能为它上传代码进行编程,总之搞不定了。。。
  • 没问题!你可以很容易修复一个上传了坏的代码的TouchTouch板。不过这种情况只适用于如果你设置了看门狗定时器或者睡眠模式停用了USB,或者任何使你TouchTouch板崩溃的代码。下面是手动复位上传程序的方法。
    1. 再Arduino IDE设置中打开verbose upload。
    2. 连接TouchTouch板的USB线,可能不会显示为COM/Serial port不过没有关系。
    3. 打开Blink例子(Examples->Basics->Blink)。
    4. 在工具菜单中选择正确的板卡,例如这里应该选择TouchTouch,然后编译Compile它,检查是否正确通过。
    5. 点击上传试着进行代码上传。
    6. IDE将会打印出一批COM端口号,当它试图上传代码的时候。在这个时候,按两下板上的复位按钮,你将看到红色的LED闪烁,代表进入bootloading模式。
    7. 此时TouchTouch板会在设备管理器中会显示出bootloader COM/Serial 端口,如此Arduino IDE也会通过这个端口进行代码上传。
  • 我的TouchTouch板不再显示COM端口号

TouchTouch板会有两个COM端口号,一个是用户端口,一个是bootloader端口,他们并不是同一个端口号。当你上传新代码时它会显示为用户端口,也就时你在程序中使用串口号。

如果你的用户程序崩溃或者由其他问题导致死机或其他问题,用户端口可能会消失不再出现。这时将不能自动进入引导模式上传新程序。所以这种情况请参考上一节,来对板子进行手动复位上传程序。

 

如果你需要分功能模块来测试你的TouchTouch,请查看这里