Skip to content

机器人外设套件测试

目前犀牛派A1已内部测试通过了如下机器人外设套件,但实际支持不限于如下表格套件,更多套件使用等您探索。

序号设备类型设备名称
1USB转串口设备USB TO 4CH TTL
USB TO 8CH TTL
CH9102
CP2102
2深度相机Intel RealSense D415
3激光雷达Laser LDS-50C-E
4音频套装思必驰麦克风、鱼亮功放板、HSY 1.5寸带音腔全频喇叭
5超声波传感器电应普DYP-A02YY-V2.0不带壳
9TOF传感器Nooploop TOFSense系列
10温湿度传感器搜博SM7820B

USB TO 4CH TTL

准备

  • 犀牛派A1
  • USB TO 4CH TTL 串口设备
  • CH340 USB TO TTL 测试板
  • 杜邦线若干
  • Windows电脑

硬件连接

  • 开发板通过USB接口连接CH344设备 alt text

  • CH340测试板连接Windows电脑USB口和CH344设备

其中:CH344的RXD、TXD、GND接入CH340的TXD、RXD、GND

alt text

测试

💡注意

在AidLux桌面的终端中执行命令时,如需输入aidlux密码,请输入:aidlux

  • 获取到阿加犀开发板的IP后,通过浏览器登录到AidLux Web桌面,具体登录方法可参照硬件指南中登录章节

  • 登录后,AidLux终端中输入如下命令,查看CH344串口设备是否已被识别。

shell
ls -l /dev/ttyC*

alt text

💡注意

CH344多路串口设备名与实际物理UART接口名一一对应,即:/dev/ttyCH343USB0 对应设备UART0;/dev/ttyCH343USB1 对应设备UART1, 以此类推。

  • 在AidLux终端使用stty工具对设备UART口进行设置。
shell
stty -F /dev/ttyCH343USB0 115200   # 设置ttyCH343USB0波特率为115200
stty -F /dev/ttyCH343USB0 -isig -icanon iexten -echo

alt text

  • Windows电脑端打开"串口调试工具",并打开对应串口和设置波特率(保持与在AidLux终端设置的一致) alt text

  • 在Windows电脑测的"串口调试工具"和AidLux测的终端上都设置好后,即可进行发送和接受信息测试。

  • AidLux端接收信息测试

在AidLux终端执行命令,查看接收的消息。

shell
sudo cat /dev/ttyCH343USB0

alt text

在Windows电脑的"串口调式工具"上发送信息,同时可查看AidLux上能接收到信息。 alt text

  • AidLux端发送信息测试:

在AidLux终端上执行命令进行发送信息,同时可查看"串口调试工具"上能接受到信息。

shell
echo 123abc > /dev/ttyCH343USB0

💡注意

如果提示无权限,请执行命令:"sudo su",切换到root用户后再进行测试,需输入密码:aidlux

alt text

USB TO 8CH TTL

准备

  • 犀牛派A1
  • USB TO 8CH TTL 串口设备
  • CH340 USB TO TTL 测试板
  • 杜邦线若干
  • Windows电脑

硬件连接

  • 开发板通过USB接口连接CH348设备,CH340测试板连接Windows电脑USB口和CH348设备

其中:CH348的RXD、TXD、GND接入CH340的TXD、RXD、GND

alt text

测试

💡注意

在AidLux桌面的终端中执行命令时,如需输入aidlux密码,请输入:aidlux

  • 获取到阿加犀开发板的IP后,通过浏览器登录到AidLux Web桌面,具体登录方法可参照硬件指南中登录章节

  • 登录后,AidLux终端中输入如下命令,查看CH348串口设备是否已被识别。

shell
ls -l /dev/ttyC*

alt text

💡注意

CH348多路串口设备名与实际物理UART接口名一一对应,即:/dev/ttyCH9344USB0 对应设备UART0;/dev/ttyCH9344USB1 对应设备UART1, 以此类推。

  • 安装minicom工具

AidLux默认未安装minicom,可通过如下命令进行安装:

shell
sudo apt update
sudo apt install minicom
  • 犀牛派A1端使用minicom工具打开串口设备

如当前接入的ch348的uart7口,则执行如下命令打开串口设备:

shell
sudo minicom -D /dev/ttyCH9344USB7 -b 115200
  • Windows端使用串口调试工具打开串口设备

Windows可安装串口调试工具,打开该工具后,选择对应端口并打开,注意:波特率需与犀牛派A1端的minicom工具打开的保持一致,如115200.

  • 两端互相发送信息测试

可在minicom上输入任意字符进行发送测试,Windows的串口调试工具能看到接收信息;反之。

提示

minicom默认不打印输入字符,可依次按 Ctrl-A Z E 键设置显示输入信息。

alt text

CH9102

准备

  • 犀牛派A1
  • CH9102 串口设备
  • CH340 USB TO TTL 测试板
  • 杜邦线若干
  • Windows电脑

硬件连接

  • 开发板通过USB接口连接CH9102设备,CH340测试板连接Windows电脑USB口和CH9102设备

其中:CH9102的RXD、TXD、GND接入CH340的TXD、RXD、GND

alt text

测试

💡注意

在AidLux桌面的终端中执行命令时,如需输入aidlux密码,请输入:aidlux

  • 获取到阿加犀开发板的IP后,通过浏览器登录到AidLux Web桌面,具体登录方法可参照硬件指南中登录章节

  • 登录后,AidLux终端中输入如下命令,查看CH9102串口设备是否已被识别。

shell
ls -l /dev/ttyC*

alt text

  • 使用stty工具配置串口设备号
shell
chmod 777 /dev/ttyCH343USB0                              //给串口设备号赋权限
stty -F /dev/ttyCH343USB0 115200                         //设置串口设备号波特率
stty -F /dev/ttyCH343USB0 -isig -icanon iexten -echo     //设置其他
  • Windows端使用串口调试工具打开串口设备

Windows可安装串口调试工具,打开该工具后,选择对应端口并打开,注意:波特率需与犀牛派A1端的stty工具设置的保持一致,如115200.

  • 两端互相发送信息测试

可通过echo命令向串口设备号发送字符,观察到Windows端的串口工具接收到信息;反之,在Windows端的串口工具发送字符,在犀牛派A1端可通过cat命令接收到信息。 发送命令:

shell
echo 'demo123' > /dev/ttyCH343USB0

接收命令:

shell
cat /dev/ttyCH343USB0

alt text

CP2102

准备

  • 犀牛派A1
  • CP2102 串口设备
  • CH340 USB TO TTL 测试板
  • 杜邦线若干
  • Windows电脑

硬件连接

  • 开发板通过USB接口连接CP2102设备,CH340测试板连接Windows电脑USB口和CP2102设备

其中:CP2102的RXD、TXD、GND接入CH340的TXD、RXD、GND

alt text

测试

💡注意

在AidLux桌面的终端中执行命令时,如需输入aidlux密码,请输入:aidlux

  • 获取到阿加犀开发板的IP后,通过浏览器登录到AidLux Web桌面,具体登录方法可参照硬件指南中登录章节

  • 登录后,AidLux终端中输入如下命令,查看CP2102串口设备是否已被识别。

shell
ls -l /dev/ttyU*

alt text

  • 使用stty工具配置串口设备号
shell
chmod 777 /dev/ttyUSB0                              //给串口设备号赋权限
stty -F /dev/ttyUSB0 115200                         //设置串口设备号波特率
stty -F /dev/ttyUSB0 -isig -icanon iexten -echo     //设置其他
  • Windows端使用串口调试工具打开串口设备

Windows可安装串口调试工具,打开该工具后,选择对应端口并打开,注意:波特率需与犀牛派A1端的stty工具设置的保持一致,如115200.

  • 两端互相发送信息测试

可通过echo命令向串口设备号发送字符,观察到Windows端的串口工具接收到信息;反之,在Windows端的串口工具发送字符,在犀牛派A1端可通过cat命令接收到信息。 发送命令:

shell
echo 'demo111' > /dev/ttyUSB0

接收命令:

shell
cat /dev/ttyUSB0

alt text

Intel RealSense D415 深度相机

准备

  • 犀牛派A1

  • 在AidLux-ubuntu22.04上预装ubuntu desktop、ros2、raviz2 具体安装方法可参照机器人软件安装指南

  • Intel RealSense D415 深度相机及安装驱动 安装方法如下: 在安装完ubuntu desktop并通过vnc工具连接后,可在终端窗口执行如下命令:

shell
sudo apt-get update
sudo apt-get install ros-humble-realsense2-camera

alt text

硬件连接

将深度相机连接到犀牛派的USB接口

测试

  • 连接好后,通过如下命令启动相机驱动
shell
ros2 launch realsense2_camera rs_launch.py

alt text

  • 打开rviz2 打开终端并输入:rviz2
shell
rviz2

alt text

  • 在rviz2中验证打开深度相机图像画面

点击左下角Add按钮

alt text

在弹框中点击By topic

alt text

双击打开/camera节点下的image,观察到左下角的image弹框出现相机拍摄的画面

alt text

alt text

Laser LDS-50C-E蓝海激光雷达

准备

  • 犀牛派A1

  • 在AidLux-ubuntu22.04上预装ubuntu desktop、ros2、raviz2 具体安装方法可参照机器人软件安装指南

  • Laser LDS-50C-E蓝海激光雷达

  • 雷达所用的12V电源

硬件连接及网络配置

雷达接入12v电源,网口接入到犀牛派A1任意网口,配置默认IP(可使用ifconfig 配置临时IP)。

LDS-50C-E 与犀牛派A1之间使用标准以太网接口连接网线。为了保证雷达能够和犀牛派A1正常通讯,需要保证二者在同一个网段。 雷达出厂设置如下:

  • 雷达 IP:192.168.158.98

  • 雷达子网掩码:255.255.255.0

  • 雷达网关:192.168.158.1

  • 雷达默认上传地址:192.168.158.15

犀牛派网络设置如下:

  • 网口 IP:192.168.158.15

  • 网口子网掩码:255.255.255.0

  • 网口网关:192.168.158.1

alt text

网线连接并配置好IP后,请通过Ping命令检查是否网络已接通。

11.6.3 获取并构建蓝海ROS2驱动包

通过vnc工具,打开Ubuntu desktop后,依次执行如下命令:

  • 从github获取蓝海ROS2驱动程序,并部署到对应位置
shell
sudo su  //密码: aidlux

mkdir bluesea2
cd bluesea2 
git clone https://github.com/BlueSeaLidar/bluesea-ros2.git  src
  • 安装依赖
shell
sudo apt update
sudo apt install -y python3-colcon-common-extensions
  • 构建
shell
colcon build
  • 更新当前ROS2包环境
shell
source ./install/setup.sh
  • 使用ROS2 launch运行驱动
shell
ros2 launch bluesea2 udp_lidar.launch

alt text

测试

通过vnc工具,打开Ubuntu desktop后,依次执行如下命令:

  • 数据验证:扫描是否正常输出
shell
ros2 topic echo /scan

alt text

  • 打开可视化工具rviz2
shell
rviz2
  • 打开后依次点击如下按钮,打开可视化界面 LDS50C-keshihua.png alt text

alt text

音频套件

阿加犀推荐的音频套件包含三部分:HSY全频喇叭、鱼亮功放板、思必驰麦克风。如下将介绍这三部分如何进行连接。

准备

  • 犀牛派A1
  • HSY 1.5寸带音腔全频喇叭
  • 鱼亮功放板
  • 思必驰麦克风
  • 其他连接线缆若干

硬件连接

  • 整体连接图: alt text

  • HSY音响连接鱼亮功放板

HSY音响红色线缆为正,黑色线缆为负,分别接入到功放板的L+或R+;L-或R-。如有两个音响,需要分别接入到功放板的左右声道(L+, L-;R+,R- )

alt text

  • 思必驰麦克风一侧连接鱼亮功放板

麦克风的LP, LN, GND, RP, RN 分别接入到功放板的LO+,LO-,GND,RO+,RO-. 注意:功放板上有两个GND,同时接入到麦克风的GND。

LP - LO+

LN - LO-

GND - GND

RP - RO+

RN - RO-

alt text

  • 思必驰麦克风另一侧连接犀牛派A1的USB接口

需DIY线缆。线序:麦克风的5V、DP、DM、GND 分别连接USB线缆剥开后的5V(红色)、Data+(绿色)、Data-(白色)、GND(黑色)

alt text

  • 功放板连接犀牛派A1的USB接口

功放板的3.5mm音频接口接入到USB转3.5mm接口转换器上,再插入到犀牛派A1的usb口。

alt text

测试

录音测试
  • 列出所有录音设备
shell
sudo arecord -l

alt text

找到USB Audio,读取到该设备的声卡编号即card x(x即为声卡编号),读取到该声卡下的设备编号即device y(y即为子设备编号),设备标识格式:hw:X,Y(X 是声卡编号,Y 是子设备编号)。当前示例读取出的设备标识为: hw:2,0

  • 列出设备所支持的各项参数
shell
sudo arecord -D hw:2,0 --dump-hw-params

alt text

注意如下几个参数:

FORMAT:设备支持的采样格式。目前支持的格式为:S16_LE

CHANNELS:表明设备支持的声道数量范围。当前声道数量为:2

RATE:显示设备支持的采样率范围,单位为HZ。目前支持的采样率为:16000

  • 开始录音

注意命令中的参数,需要与上一步骤查出来的值保持一致。如-f 即采样格式, -r即采样率, -c即声道数量,-d即录音时长。

shell
sudo arecord -D hw:2,0 -f S16_LE -r 16000 -c 2 -d 5 output.wav

alt text

播放测试
  • 列出所有播放设备
shell
sudo aplay -l

alt text

找到USB Audio,读取到该播放设备的声卡编号即card x(x即为声卡编号),读取到该声卡下的设备编号即device y(y即为子设备编号),设备标识格式:hw:X,Y(X 是声卡编号,Y 是子设备编号)。当前示例读取出的设备标识为: hw:2,0

  • 列出设备所支持的各项参数
shell
sudo aplay -D hw:1,0 --dump-hw-params /dev/zero

alt text

注意如下几个参数:

FORMAT:设备支持的采样格式。目前支持的格式为:S16_LE S24_3LE

RATE:显示设备支持的采样率范围,单位为HZ。目前支持的采样率为:44100 96000

根据以上参数值可以看到,其中播放设备的采样率与录音设备的采样率不一致,录音设备为16000 播放设备为 44100 96000,因此我们需要将录好的音频转换一下采样率,如转换成44100的采样率,方法如下:

安装转换工具

shell
sudo apt update
sudo apt install sox libsox-fmt-all

开始转换

shell
sudo sox output16k.wav -r 44100 output44k.wav

alt text

  • 开始播放录好的音频

注意命令中的参数,需要与上一步骤查出来的值保持一致。如-f 即采样格式, -r即采样率, -c即声道数量。

shell
sudo aplay -D hw:1,0 -f S16_LE -r 44100 -c 2 output44k.wav

alt text

DYP-A02YY-V2.0超声波传感器

准备

  • 犀牛派A1
  • DYP-A02YY-V2.0超声波传感器(输出方式为RS485,也可选择UART输出)
  • 其他连接线缆若干

硬件连接

  • 传感器需要最低5V供电,但由于犀牛派A1的5vpin以及GND pin脚还在调试中,本实例中通过外部给传感器供电。

  • 超声波传感器的RS485A、RS485B接入犀牛派A1的RS485A、RS485B进行通信。

alt text

测试

电应普超声波传感器,需要手动发送测距指令后,才会得到测距结果。每发送一次,得到一次结果。

1、因测试工具minicom无法设置输入16进制数据来控制传感器测距,因此可以编写脚本进行进制转换后发送数据到串口设备号上来进行控制。脚本内容如下:

shell
#!/bin/bash
# 检查参数数量
if [ "$#" -ne 2 ]; then
    echo "使用方法: $0 [串口设备] [十六进制数据]"
    exit 1
 
fi
# 串口设备,例如 /dev/ttyS2
SERIAL_PORT=$1
 
# 十六进制数据,例如 '1F2E3D4C'
HEX_DATA=$2
 
# 将十六进制数据转换为二进制流并发送到串口
printf "$HEX_DATA" | xxd -r -p > $SERIAL_PORT

2、使用脚本发送控制指令:sudo ./send_hex.sh /dev/ttyHS1 '01030100000185F6'

shell
./send_hex.sh /dev/ttyHS1 '01030100000185F6'

/dev/ttyHS1:犀牛派A1的RS485设备号

01030100000185F6:读取处理值数据,也有其他指令,详情请查看电应普产品说明书

3、在aidlux中使用minicom工具接收数据。(如未安装,请通过sudo apt update; apt install minicom安装)。打开minicom:sudo minicom -D /dev/ttyHS1 -b 9600 -H

shell
sudo minicom -D /dev/ttyHS1  -b 9600 -H

/dev/ttyHS1:犀牛派A1的RS485设备号

-b 9600:设置波特率为9600(传感器的默认波特率为9600)

-H:显示16进制数据

alt text

Nooploop TOF传感器

准备

  • 犀牛派A1
  • Nooploop TOFSense系列 TOF传感器
  • USB TO 4CH TTL 串口扩展设备
  • 其他连接线缆若干

硬件连接

使用CH344串口设备,将TOF传感器的VCC、GND、TX、RX连接CH344设备任意uart口的VCC、GND、RX、TX。当前示例使用的是uart0口。

alt text

测试

连接好后,在aidlux终端中打开minicom工具(如未安装,请使用命令sudo apt update;sudo apt install minicom安装)。

shell
sudo apt update;sudo apt install minicom

安装好后,打开串口:

sudo minicom -D /dev/ttyCH343USB0 -b 921600 -H

shell
sudo minicom -D /dev/ttyCH343USB0 -b 921600 -H

TOF传感器默认的波特率为921600,且需要使用16进制显示。

注意:如果minicom 只显示了一行,请做如下设置:

按CTRL-A Z ,进入到minicom的设置页面,再按W,设置换行显示。

如下是接收到的数据示例。

alt text

搜博SM7820B温湿度传感器

准备

  • 犀牛派A1
  • 搜博 SM7820B 温湿度传感器
  • 其他连接线缆若干
  • 外接5V电源

硬件连接

1、传感器需要最低5V供电,但由于犀牛派A1的5vpin以及GND pin脚还在调试中,本实例中通过外部给传感器供电。

2、温湿度传感器的RS485A、RS485B接入犀牛派A1的RS485A、RS485B进行通信。

alt text

测试

搜博温湿度传感器,需要手动发送测量指令后,才会得到测量结果。每发送一次,得到一次结果。

1、因测试工具minicom无法设置输入16进制数据来控制传感器测量,因此可以编写脚本进行进制转换后发送数据到串口设备号上来进行控制。脚本内容如下:

shell
#!/bin/bash
# 检查参数数量
if [ "$#" -ne 2 ]; then
    echo "使用方法: $0 [串口设备] [十六进制数据]"
    exit 1
 
fi
# 串口设备,例如 /dev/ttyS2
SERIAL_PORT=$1
 
# 十六进制数据,例如 '1F2E3D4C'
HEX_DATA=$2
 
# 将十六进制数据转换为二进制流并发送到串口
printf "$HEX_DATA" | xxd -r -p > $SERIAL_PORT

2、使用脚本发送控制指令:sudo ./send_hex.sh /dev/ttyHS1 '010300000002C40B'

shell
./send_hex.sh /dev/ttyHS1 '010300000002C40B'

/dev/ttyHS1:犀牛派A1的RS485设备号

010300000002C40B:读取温湿度测量数据,也有其他指令如修改波特率,详情请查看搜博产品说明书

3、在aidlux中使用minicom工具接收数据。(如未安装,请通过sudo apt update; apt install minicom安装)。打开minicom:sudo minicom -D /dev/ttyHS1 -b 9600 -H

shell
sudo minicom -D /dev/ttyHS1  -b 9600 -H

/dev/ttyHS1:犀牛派A1的RS485设备号

-b 9600:设置波特率为9600(传感器的默认波特率为9600)

-H:显示16进制数据

alt text

结果分析

通过向温湿度传感器发送问答帧命令后,会返回一个应答帧结果:01 03 04 0a e4 17 65 76 07 响应格式如下图:

alt text

其中数据1为温度、数据2为湿度。根据搜播SM7820B说明书提供的计算方式,以计算温度为例:

将 0a e4 转换为10进制为:2788

数据倍率为100,实际温度则使用2788/100=27.88℃ , 即当前室内温度为27.88℃ 。