了解如何使用 Microchip 模块对数字输入和数字控制外设进行原型设计

时间:2023-11-14
 我们的设计模式需要提供三个组件: 
 硬件:用于生成数字信号的特定于任务的硬件
 配置: RN487x 模块命令在数据库中分配变量,并将信号映射到变量
 应用程序:工作站上的脚本,用于接受数据库值 
 接下来是组件分解。
 数字输入硬件 
 “数字输入”的作用只是由一个开关提供;SW1。 
 RN487x 模块的引脚上有内部上拉电阻,因此闭合时连接到地的常开开关将为我们提供必要的二态控制。
 RN487x 数字输入设计原理图

 

 由于我们只管理一个信号并且不使用 PWM,因此我们选择了 RN4871。该电路可由一对 AAA 电池甚至纽扣电池供电。
 其余的电路元件是; 
 C1: 旁路电容,稳定电源
 R1、C2:上电时处理器复位的延迟
 J1:配置串口
 数字输入配置
 在为此示例创建配置之前,请确保模块处于已知状态。这在关于常见初始化的附录部分中进行了描述。不要跳过此步骤!
 我们只需要数据库中的一个特征来表示我们的传感器状态。因此,我们创建了一项服务,以及该服务的一项特征。对应的两个命令是:
 PS,59c88760536411e7b114b2f933d5fe66 
 PC,59c889e0536411e7b114b2f933d5fe66,10,01
 个命令 PS 创建服务。第二个命令 PC 创建特征。在这两个命令中,个参数是标识符,它允许我们的外设存在于其他蓝牙外设的宇宙中,并且仍然可以地访问。该参数必须符合UUID标准。您可以使用显示的示例值。创建任意数量的标准 UUID也很容易。 
 在 PC 命令中,第二个参数告诉蓝牙层值的更改应如何到达客户端。在本例中,参数 (10) 表示值的更改会立即通知客户端。这是我们本例意图的重要组成部分。,在PC命令中,第三个参数定义了值的大小(以字节为单位);在本例中只有一个 (01)。 
 我们配置的脚本部分如下所示:
 @PW_ON 
 SW,0A,09 
 @PIO1H 
 SHW,0072,01 
 @PIO1L 
 SHW,0072,00
 该脚本中有三个方法,每个方法都以“@”为前缀。每个方法都在特定的系统事件上运行。 
 PW_ON:上电时运行。该方法将我们感兴趣的引脚 (P1_2) 配置为“触发”数字输入信号。 
 PIO1H:每当触发信号转变为高电平时运行。该方法将“1”写入数据库。 
 PIO1L:每当触发信号转变为低电平时运行。该方法将“0”写入数据库。
 数字输入应用 
 Python 脚本是 switch.py,可以在此处找到。编辑脚本并将示例 MAC 地址替换为您设备的 MAC 地址。然后,为了练习该示例,只需为外围设备通电,然后在具有适当蓝牙功能的系统上运行脚本即可。有关 Linux 中此设置的帮助,请参阅附录。该脚本将发出消息以指示连接到外围设备时的进度。连接外设后,按下并释放开关几次。开关的每个打开/关闭事件都将通过运行脚本中的消息进行记录。 
 该脚本很短,包含所有功能块和 GATT API 调用的注释。
 我们使用的 BLE 功能是本示例独有的,即通知。
 我们使用回调方法来处理来自外设的信号变化发生时的情况。我们不需要轮询外设来了解信号的状态。 
 我们必须通过写入系统特征来告诉外设我们想要这些通知。
上一篇:如何使用数字化音频信号进行频率调制
下一篇:稳定为恒定功率负载供电的 DC/DC 转换器

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料