ARPI600 用户手册 产品概述 ARPI600 是一款兼容树莓派 Arduino 和 XBee 的扩展板, 用户无需考虑繁杂的软硬件知识, 即可扩展常用的接口资源 板载 USB 转串口 ( 支持树莓派串口调试 ) RTC 和 ADC 等常用资源 支持 Arduino 接口 ( 带 AD 功能 ), 方便树莓派接入各种 Arduino 扩展板 (Shield) 支持树莓派通过 XBee 通信模块进行无线数据传输, 并支持 XBee USB 适配器功能 支持传感器接口, 方便树莓派接入各种传感器 资源介绍 图 1. 板载资源 1
[ 接口简介 ] 1. Arduino 接口方便接入各种 Arduino 扩展板 (Shield) 2. ICSP 接口 Arduino 的 ICSP 接口 3. XBee 接口方便接入各种 XBee 通信模块 4. 传感器接口方便接入各类传感器模块 5. RPi 连接口方便接入树莓派 6. USB TO UART 接口 [ 器件简介 ] 7. TLC1543 AD 转换芯片 8. PCF8563 RTC 实时时钟芯片 9. CP2102 10. 32.768KHZ 晶振 RTC 实时时钟晶振 11. 电源指示灯 12. XBee 状态指示灯 13. XBee 和 Arduino 接口复位按键 14. XBee EASYLINK 按键 15. RTC 实时时钟供电电池座接 CR1220 纽扣电池 [ 跳线说明 ] 16. TLC1543 参考电压配置跳线 17. RTC 跳线 18. UART 跳线 P_RX 接 CP_TX,P_TX 接 CP_RX: USB TO UART 接树莓派串口 XB_RX 接 CP_TX,XB_TX 接 CP_RX: USB TO UART 接 XBee 串口 XB_RX 接 P_TX,XB_TX 接 P_RX: 树莓派串口接 XBee 串口 19. Arduino AD 选择跳线短接 2 与 3:Arduino 的 A0-A5 作为 AD 输入脚短接 1 与 2:Arduino 的 A0-A5 作为数字控制脚 20. Arduino I2C 选择跳线短接后,Arduino 的 A4 和 A5 作为 I2C 控制脚 (Arduino AD 选择跳线的 A4 和 A5 需要悬空 ) 21. Arduino SPI 选择跳线短接 1 与 2:Arduino 的 D11-D13 作为 SPI 控制脚 ( 默认 ) 短接 2 与 3:Arduino 的 D11-D13 作为数字控制脚 2
目录 ARPI600 用户手册... 1 产品概述... 1 资源介绍... 1 1 开启树莓派串口调试功能... 4 2 树莓派串口控制外设... 6 2.1 配置系统串口... 6 2.2 安装相应的库... 6 2.3 树莓派串口打印数据... 7 3 组建 2 个 XBee 的无线传输网络... 7 3.1 准备工作... 7 3.2 安装 X-CTU 工具... 7 3.3 测试电脑是否连上 XBee... 8 3.4 对 XBee-A 模块进行配置... 9 3.5 对 XBee-B 模块进行配置... 11 4 树莓派通过 XBee 无线传输数据... 12 4.1 配置模块... 12 5 RTC 时钟... 13 6 AD 转换 (ARPI600 板载 TLC1543 芯片 )... 13 6.1 配置 A0 管脚为 AD 管脚... 13 6.2 配置为其他 AD 管脚... 14 7 接口说明... 15 3
1 开启树莓派串口调试功能 1) 使用前需要先安装 USB 转串口驱动 (cp2102 驱动 ), 安装后在设备管理器中查看电脑是否识别到 USB 转串口 2) 把 ARPI600 插入到树莓派后, 需要先把电源插入树莓派供电, 再把 PC 机连接到 ARPI600 的 USB 处, 不能只连接 ARPI600 的 USB 口供电或者先连接 ARPI600 的 USB 口后连接树莓派电源, 因为电脑 USB 供电能力不强, 可能会不能同时供起树莓派和 ARPI600 扩展板 3) 树莓派的 Raspbian 系统默认为串口调试输出, 用户需设置跳线开启串口调试功能 : CP_RX 连接 P_TX CP_TX 连接 P_RX 图 2. 开启串口调试功能 4) 打开 software/putty.exe, 对下图红框位置 : 说明 : Serial line: 选择对应的串口 图中所示是 COM3, 但用户应按照实际设置 ( 通过设备管理器可以查看 ) Speed: 设置波特率为 115200 Connection type: 设置为 Serial 点击 Open 4
图 3. PuTTY 设置 5) 打开后如下图 ( 如打开后没有任何东西显示, 按键盘回车可出现下图 ): 图 4. PuTTY 连接到树莓派 输入用户名 :pi 密码 :raspberry 即可进入串口终端 : 5
2 树莓派串口控制外设 2.1 配置系统串口 1) 进入终端, 执行 : sudo nano /boot/cmdline.txt 把以下行 : wc_otg.lpm_enable=0 console=ttyama0,115200 kgdboc=ttyama0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait 改为如下 : dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait 按下 Ctrl+X, 选择 Y 保存 2) 执行 : sudo nano /etc/inittab 将以下内容 #Spawn a getty on Raspberry Pi serial line T0:23:respawn:/sbin/getty -L ttyama0 115200 vt100 改为 #Spawn a getty on Raspberry Pi serial line #T0:23:respawn:/sbin/getty -L ttyama0 115200 vt100 按下 Ctrl+X, 选择 Y 保存 3) 执行 : sudo reboot 执行完这个命令, 重启树莓派之后, 将无法从串口进入树莓派终端 此时用户 如需进入终端, 须采用 SSH 或是把树莓派外接显示器后进入 LXterminal ( 如 果想要串口重新作为树莓派串口调试输出, 则还原更改后重启即可, 所以更改 前最好备份 ) 2.2 安装相应的库 1) 把 software/wiringpi.tar.gz 库文件复制到树莓派 ( 通过 U 盘等方式 ), 在终端执行 : sudo tar xvf wiringpi.tar.gz cd wiringpi/ chmod 777 build./build 2) 直到安装完后执行 : gpio -v 查看是否安装成功 6
2.3 树莓派串口打印数据 1) 用户需设置跳线开启串口调试功能 : CP_RX 连接 P_TX CP_TX 连接 P_RX 2) 打开 PuTTY 串口调试软件, 进行设置 : Serial line: 选择对应的串口 Speed: 设置波特率为 9600 ( 注意这里 Speed 处改为 9600, 和图 3 不同 ) Connection type: 设置为 Serial 3) 把 program/xbee/send 文件夹复制到树莓派系统, 进入 send 文件夹, 执行 : sudo make sudo./serialtest 串口终端打印出如下 : 图 5. 串口打印数据 3 组建 2 个 XBee 的无线传输网络 3.1 准备工作 1) 两个 XBee 模块 2) 两个 ARPI600 模块 3) 两个树莓派 为了便于阅读, 将它们分为 A B 两组 (XBee-A,ARPI600-A,XBee-B, ARPI600-B) 3.2 安装 X-CTU 工具 1) 电脑端打开 software/x-ctu V5.2.8.6.exe 进行安装, 安装完打开如下图 : 7
图 6. X-CTU 设置 2) 设置 XBee 模块, 出厂里默认的设置为 : Baud: 9600 Data Bite: 8 Parity: NONE Stop: 1 3.3 测试电脑是否连上 XBee 1) 把 XBee-A 接入 ARPI600-A 把 XBee-B 接入 ARPI600-B 2) 设置跳线开启 XBee 的串口调试功能, 如下图所示 : XB_RX 连接 CP_RX CP_TX 连接 XB_TX 图 7. 开启 XBee 的串口调试功能的跳线 3) 接通树莓派电源 ( 供电参考 1 开启树莓派串口调试功能第 2 点 ) 4) 点击 Test/Query 按钮, 测试是否能够正确地连接上 XBee 模块 : 8
图 8. 测试是否连接上 XBee 模块 5) 如果一切正常, 我们将看到如下的对话框, 则说明连接成功 : 图 9. 连接成功 3.4 对 XBee-A 模块进行配置 1) 点击 Modem Configuration 选项卡 点击 Read 按钮读出 XBee 模块中的当前参 数 : 9
图 10. 读出当前参数 2) 在 Function Set 下拉列表中选择 ZIBGEE ROUTER/END DEVICE AT: 图 11. Function Set 下拉列表中选择 ZIBGEE ROUTER/END DEVICE AT 3) 在读出的 Networking 中, 进行设置 : ID: 234 DH: 0 DL: 0 4) 点击 Write 把设置好的参数下载到 XBee-A 模块中 10
3.5 对 XBee-B 模块进行配置 1) 对 XBee-B 模块重复 3.1 和 3.3 的操作 但是在 Function Set 下拉列表中选择为 ZIBGEE COORDINATOR AT: 图 12. Function Set 下拉列表中选择为 ZIBGEE COORDINATOR AT 2) 在读出的 Networking 中, 进行设置 : ID: 234 DH: 0 DL: ffff 3) 点击 Write 把设置好的参数下载到 XBee-B 模块中 4) 为了实现的是一个简单的点对点网络, 请按照以上方式配置好 XBee-A 和 XBee-B, 运行两个 X-CTU, 并在 PC Settings 选项卡中选择不同的通信接口, 分 别对 A 组和 B 组进行控制 5) 在 XBee-A 的 X-CTU 的 Terminal 中, 输入需要 XBee 模块传输的数据, 这些数据 会被自动发送到 XBee-B 模块, 并在另一个 X-CTU 的 Terminal 中显示出来 其 中蓝色的表示发送的数据, 红色的标志接受的数据 图 13. 收发数据示意 11
6) 如果运行状态如上图所示, 则 XBee 模块能够正常的收发数据 4 树莓派通过 XBee 无线传输数据 确保第 3 节组建 2 个 XBee 的无线传输网络正常之后, 现在树莓派可以通 XBee 无 线传输数据 4.1 配置模块 1) 设置 ARPI600 跳线 : 把收发的 2 个树莓派串口都接到 XBee 串口,ARPI600 扩展板按照下图红框跳线 XB_RX 连接 P_TX XB_TX 连接 P_RX 图 14. 设置 ARPI600 跳线 2) 测试树莓派串口 : 复制 program/xbee/getdata 到接收数据端树莓派系统中, 进入 getdata 文件夹 执行 : sudo make sudo./serialtest 串口终端打印出如下 图 15. 串口打印 getdata 再运行发送端代码, 复制 program/xbee/send 到发送端树莓派系统中, 进入 send 文件夹, 执行 sudo make sudo./serialtest 这时接收端就会打印出接收到的数据 : 图 16. 接收端就会打印出接收到的数据 12
5 RTC 时钟 1) 连接 RTC JMP 处的跳线 2) 打开树莓派系统桌面的 LXTerminal, 在 LXTerminal 中输入 i2cdetect -y 1 3) 在 LXTerminal 会打印出 PCF8563 接入树莓派的地址, 我这里显示的 51, 如下 图, 说明树莓派已经识别到 PCF8563 了 图 17. LXTerminal 打印出 PCF8563 接入树莓派的地址 4) 在 LXTerminal 中执行 : modprobei2c-dev echo pcf8563 0x51 > /sys/class/i2c-adapter/i2c-1/new_device hwclock -r( 读接入的 I2C 硬件 RTC 的时间 ) LXTerminal 会打印出 PCF8563 的时间, 与系统时间不同 5) 在 LXTerminal 中执行 : hwclock -w( 把树莓派系统的时间写入到 PCF8563) hwclock -r( 树莓派系统的时间同步到 PCF8563) hwclock -s( 设置系统的时间与硬件的 RCT 时钟同步 ) 6 AD 转换 (ARPI600 板载 TLC1543 芯片 ) 6.1 配置 A0 管脚为 AD 管脚 1) 确保完成库的安装 ( 参见 2.2 安装相应的库 ) 2) 设置跳线, 选择参考电压 : REF 连接 5V, 则 AD 转换参考电压为 5V ( 默认跳线到 5V) REF 连接 3V3, 则 AD 转换参考电压为 3.3V 注意 REF 同一时刻, 只能连接上面的一种 13
图 18. 设置 AD 参考电压 3) 复制 program/ad_tlc1543 到树莓派系统中, 进入 AD_TLC1543 文件夹内, 在终 端执行如下命令 : sudo make sudo./tlc1543 4) 终端会打印出 AD 转换值 程序默认是打印 TLC1543 芯片的 AD0 脚的转换值, 即 ARPI600 上的 T_A0 转换值 5) 将 T_A0 连接到 A0 后,Arduino 接口上的 A0 即可当做 AD 转换脚使用 如下图红框所示 : 图 19. 连接 T_A0 和 A0 6.2 配置为其他 AD 管脚 1) 如果想要打印 TLC1543 其他的 AD 管脚转换值, 需终端编辑 tlc1543.c 文件 : sudo nano tlc1543.c 找到这行代码 : re=adcselchannel(0); 更改代码中的 0 为其他数字, 即可更改为其他管脚 ( 改为 1 则测试 AD1 即 T_A1 转换值, 改为 2 即可测试 AD2 即 T_A2 转换值, 以此类推, 一直可以测试到 AD10 即 T_A10 转换值 ) 更改完后, 按下 Ctrl+X, 选择 Y 保存 2) 继续在终端执行 : sudo make sudo./tlc1543 即可让更改生效 14
7 接口说明 1) 默认情况下,Arduino 接口数字控制脚对应树莓派 IO 如下 : Arduino 接口 树莓派 IO 口 D0 P_RX D1 P_TX D2 P0 D3 P1 D4 P2 D5 P3 D6 P4 D7 P5 D8 P6 D9 P7 D10 CE0 D11 MOSI D12 MISO D13 SCK 表 1. Arduino 接口数字控制脚与树莓派 IO 的对应关系 2) 模块电路板上有配置 APRI600 的 D11, D12, D13 管脚的跳线 它们之间通过 0Ω 电阻短接 如下图所示 : 图 20. 配置 D11, D12, D13 管脚 出厂时跳线连接如下 : SCK 连接 D13 MISO 连接 D12 MOSI 连接 D11 如果连接 : D13 连接 P26 D12 连接 IO_SD D11 连接 IO_SC 则相当于使 D11, D12, D13 管脚接到树莓派普通 IO 控制脚 注意 : 用户可以根据需要更改这些跳线, 但是此操作需要用到焊接器材 在没有我司工作人员指导下擅自更改, 将视为放弃保修 3) APRI600 的 A0-A5 管脚可以配置为 IO 控制功能或者 ADC 功能 15
图 21. 配置 A0-A5 管脚 a) 当 A0-A5 连接到 1 处时, 则 A0-A5 作为 IO 控制管脚, 和树莓派管脚对应 关系参见下表 : APRI600 管脚 树莓派 IO 口 A0 CE1 A1 P21 A2 P22 A3 P23 A4 P24 A5 P25 表 2. A0-A5 作为 IO 控制管脚时对应的树莓派管脚 b) 当 A0-A5 连接到 3 处时, 则 A0-A5 作为 AD 转换脚 4) 用户可以连接 A4 和 P_SCL,A5 和 P_SDA( 如图 22.), 以作为树莓派的 I2C 控制脚, 默认断开 注意 : 用户可以根据更改这些跳线, 但是此操作需要用到焊接器材 在没有我司工作人员指导下擅自更改, 将视为放弃保修 图 22. 设置 A4, 和 A5 作为 I2C 控制脚 5) ARPI600 提供传感器接口, 如图引出 4P 的传感器接口 : 图 23. 4P 传感器接口 16
其中 : A 处接 TLC1543 芯片的 AD 转换 A6-A10 管脚 D 处接树莓派的 P0-P4 IO 控制脚 方便用户接入各种传感器 17