上文向大家简要介绍了主要的元器件的使用和连接。那么今天就要向大家介绍无线Tally的核心——无线传输的实现。
首先要说的就是我选用的通讯协议——UART。UART是一种串行通讯协议,传输速率较低,对于硬件的要求也比较低。非常适合用来作为遥控的通讯协议。那么落实在Arduino平台上,我们使用TTL电平标准,即3.3V或以上为高电平0V为低电平。一般来说UART设备有四个针脚。分别是VCC、GND、TXD、RXD。VCC用于供电,GND为接地。TXD为发送,RXD为接收。其传输速度则由波特率表示。我们比较常用的波特率是9600baud。足以满足Tally信号的需求。另外在串口的设置中,我们要选择正确的帧格式,即起始位,数据位,校验位和停止位的设定。我们这里选择8N1即代表1个起始位,8个数据位,无校验位和一个停止位。也就是每一帧有10位,实际的比特率为96000bit/s。
那么落实到实际硬件上,我们就需要购买无线串口模块,我选用了一块2.4GHz频率基于nRF24L01P芯片的无线串口模块。100mW的发射功率,可以实现空旷室外2100米的传输距离。需要注意的是我们需要选择支持透明传输的无线串口模块以实现一发多收的功能。购买时还要注意同时购买配套的天线以达到最远的传输距离。
实际的连接非常简单,只需要将Arduino的TX0连接到无线串口模块的RXD,将Arduino的RX0连接到无线串口模块的TXD,然后连接无线串口模块的VCC和GND分别到Arduino的5V和GND接口即可。无论是主控端还是终端的Arduino和无线串口模块都是以这种方式进行连接。
连接示意图
我们还需要购买厂家提供的无线串口模块配置器,来对无线串口进行配置,需要将所有的无线串口都设为8N1 9600baud 并且确定所有串口模块都处在同一频段和信道上面。只有这样才能确保主控端发出的信号能够被所有终端接收。
实际上以上所述就是用无线串口模块取代有线链路,同时以最简便快捷的方式对无线串口模块进行配置,而无需使用单片机向无线串口模块发送数据进行配置。
经过这样的连接和配置后,我们就完成了所有硬件部分的准备。此时可以下载Arduino软件开始真正的编程工作了。实际上Arduino的编程是非常简单和只管的。在主控端我们只需要完成采集数据、判断Tally是否亮起、将处理后的Tally信号编码最后通过串口发送到无线串口模块。在接收端我们只需要设置接口模式、接受串口数据、解码、判断是否亮起Tally灯最后控制数字输出以点亮或熄灭Led即可。那么下一期就将为大家带来实际的代码和注释。
|