使用Arduino的触摸传感器模块接口库

触摸传感器模块接口库与I2C和Arduino兼容。它是一个基本函数库,可用于处理与传感器模块的通信。该库包含一个示例程序,可帮助学习。

0 Arduino的接口库

用于与 Neonode 触摸传感器模块光学触摸传感器通信的 Arduino 库。处理通过 I2C 通信的基本 BER 编码 ASN.1 消息。

1 使用案例

如果您想轻松地开始使用原型,了解如何使用I2C与传感器模块通信,或者如果您想了解该库是如何实现通信的,则此库非常有用

2 简介

该库提供了一种与触摸传感器模块进行通信的简单方式,以及ASN.1串行消息的一些原始解析。这使得最终用户可以轻松地从触摸通知中获取x和y坐标,或者设置不同的设置,例如正确的触摸活动区域。该库不支持ASN.1协议中的所有可用消息,但是I2C读写功能是公共的,如果需要从传感器模块发送/读取库不支持的任何设置或请求,则可以使用该功能。

3 开源

这个库是在GNU LGPL v2.1开源许可证下分发的,可以在GitHub上获得,还有其他文档和完整的示例程序。

4 如何使用库

主循环
该库是围绕使用 zforce.GetMessage() 作为从传感器读取消息的主要方法而构建的。 GetMessage() 方法检查数据就绪引脚是否为高电平,如果是,则从传感器读取等待消息。然后解析接收到的消息并返回指向消息的指针。
成功调用 GetMessage() 将为新消息动态分配内存。当不再需要消息信息时,最终用户可以通过调用 zforce.DestroyMessage() 来销毁消息。请检查提供的示例代码以获取使用示例。

Message* Zforce::GetMessage()
{
Message* msg = nullptr;
if(GetDataReady() == HIGH)
{
if(!Read(buffer))
{
msg = VirtualParse(buffer);
ClearBuffer(buffer);
}
}
return msg;
}

发送和读取消息
该库支持在传感器中设置一些基本配置参数,例如zforce。SetTouchActiveArea()。当向传感器写入任何消息时,最终用户必须在写入之前确保数据就绪信号为LOW(低)(即,必须没有等待从传感器读取的消息)。如果数据就绪信号为HIGH,则需要调用GetMessage()方法,直到接收到nullptr作为响应,这表明传感器中不再有消息等待。
发送消息后,传感器始终会创建一个必须由主机读取的响应。传感器可能需要一些时间才能创建响应并将其放入 I2C 缓冲区,因此建议在发送请求后在 do-while 循环中调用 GetMessage() 方法。
传感器的配置

// Make sure that there is nothing in the I2C buffer before writing to the sensor module
Message* msg = zforce.GetMessage();
if(msg != NULL)
{
// Here you can read whatever is in the message or just destroy it.
zforce.DestroyMessage(msg);
}
// Send Touch Active Area request
zforce.TouchActiveArea(50,50,2000,4000);
// Wait for the response to arrive
do
{
msg = zforce.GetMessage();
} while (msg == NULL);
// See what the response contains
if(msg->type == MessageType::TOUCHACTIVEAREATYPE)
{
Serial.print("minX is: ");
Serial.println(((TouchActiveAreaMessage*)msg)->minX);
Serial.print("minY is: ");
Serial.println(((TouchActiveAreaMessage*)msg)->minY);
Serial.print("maxX is: ");
Serial.println(((TouchActiveAreaMessage*)msg)->maxX);
Serial.print("maxY is: ");
Serial.println(((TouchActiveAreaMessage*)msg)->maxY);
}
// Destroy the message
zforce.DestroyMessage(msg);
  • 20
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值