将SmartCarToolKits工程放到/root/workspace/下
串口或者网口进入Edgeboard中linux系统。(具体详见 FZ3B可视化访问的方法说明手册)
SmartCarToolKits/c++/demo中:camera2video.cpp
将摄像头实时采集到的结果,转换成灰度视频。通过ctrl+c暂停。程序执行时间不宜过长。
将摄像头插入EdgeBoard中。
cd /root/workspace/SmartCarToolKits/c++
mkdir build
cd build
cmake ..
make camera2video -j./
会在 build目录下产生一个 camera2video的应用程序
在build目录下执行 ./camera2video
./camera2video 会在 build目录下得到一个灰度的 camera.avi视频文件。
SmartCarToolKits/c++/demo中的 camera_display.cpp
实时显示,外接显示器直接显示或者通过vnc显示
连接好网口。
将摄像头插入 EdgeBoard上的 USB口中。
连接好显示器,或者通过vnc显示(具体详见 FZ3B可视化访问的方法说明手册)
cd /root/workspace/SmartCarToolKits/c++
mkdir build
cd build
cmake ..
make camera_display -j会在 build目录下产生一个 camera_display的应用程序
在 build目录下执行 :
./camera_display可以在 VNC或者显示器中,看到一个名为 usbcamera的视频框。
SmartCarToolKits/c++/demo中:rgb_mat2gray_array.cpp
将一张 RGB图转换成灰度图
将准备要转换的图片文件夹放到 /root/workspace/路径下,以命名为 train为例(可任意命名)。
假设 train中的图片以0.jpg,1.jpg,2.jpg ...等格式递增。
cd /root/workspace/SmartCarToolKits/c++
mkdir build
cd build
cmake ..
make rgb_mat2gray_array -j会在 build目录下产生一个 rgb_mat2gray_array的应用程序
在 build目录下执行 ./rgb_mat2gray_array 图片的路径
./rgb_mat2gray_array /root/workspace/train/0.jpg会在 build目录下得到 0.jpg灰度的文件,命名为 gray.jpg
SmartCarToolKits/c++/demo中:predict.cpp
查看训练的模型识别情况。
将想要识别的地标放到赛道。
将小车放到赛道上,
连接好网口
将摄像头插入 EdgeBoard上的 USB口中。
连接好显示器,打开VNC。(具体详见 FZ3B可视化访问的方法说明手册)
将准备含有模型的文件夹放到 /root/workspace/路径下,以命名为 mobilenet-ssd为例(可任意命名)。
以 mobilenet-ssd为例,包含四个文件
config.json、label_list.txt、mobilenet_v2_ssd-model、mobilenet_v2_ssd-params
config.json中内容:
{
"model_file_name":"mobilenet_v2_ssd-model",
"params_file_name":"mobilenet_v2_ssd-params",
"labels_file_name":"label_list.txt",
"format":"RGB",
"input_width":300,
"input_height":300,
"mean":[127.5,127.5,127.5],
"scale":[0.007843,0.007843,0.007843],
"threshold":0.5
}参数说明:
model_file_name:指定模型文件的名字
params_file_name:指定模型参数文件的名字
labels_file_name:指定标签文件的名字
label_list.txt中内容:
background
Exit Two
Exit One
Pedestrian
Safety Cone
Gas Station
Prohibitory
Flooded Area按照顺序排列训练的模型标签名字。
cd /root/workspace/SmartCarToolKits/c++
mkdir build
cd build
cmake ..
make predict -j会在 build目录下产生一个 predict的应用程序
在 build目录下执行 ./predict 模型所在文件夹的路径
./predict /root/workspace/SmartCarToolKits/mobilenet-ssd/在 VNC或者显示器中查看自己训练的模型的识别情况。
EdgeBoard支持两种串口通信:USB转 UART和 UART,下面分别描述两种使用方法。
usb_uart_send.cpp
usb_uart_recv.cpp
usb_uart_send:EdgeBoard通过 usb转串口,循环1s发送 00-09的数据
usb_uart_recv:EdgeBoard通过 usb转串口,超时接收一个字节的数据
串口协议规定为下图交叉相连方式。
注意:有的 USB转串口的 TX与 RX标识是转换后的,不需要交叉。
cd /root/workspace/SmartCarToolKits/c++
mkdir build
cd build
cmake ..
make usb_uart_send -j
make usb_uart_recv -j- 按照准备工作中的连接示意图连接并且保证 电脑安装了对应的
USB转串口驱动。 - 打开电脑上的串口调试助手,选择串口号,并在串口调试助手中设置:波特率为115200,8位数据位,无校验位。
-
发送实验:
EdgeBoard发送,电脑接收EdgeBoard:执行./usb_uart_send程序电脑串口调试助手:查看接收结果,接收区会显示
EdgeBoard发过来的数据,十六进制显示为00-09。
-
接收实验:
EdgeBoard接收,电脑发送电脑串口调试助手:发送十六进制数据。以
0x56为例EdgeBoard:执行./usb_uart_recv程序,显示如下结果
EdgeBoard 目前支持的 USB转串口的 控制器芯片: CH341 和 CP210x
- 查看硬件是否连接良好。
lsusb查看是否有新设备 :证明USB设备已经被识别了。
- 执行
lsmod命令,查看驱动是否被加载:
- 查看
USB转串口的设备节点:ls/dev/tty.USB*
uart_send.cpp
uart_recv.cpp
主要有 uart_send、uart_recv应用程序
uart_send:EdgeBoard通过串口,循环1s发送 00-09的数据
uart_recv:EdgeBoard通过串口,超时接收接收一个字节的数据
- 软件:软件:将
SmartCarToolKits工程放到板子上的/root/workspace/文件夹下。 - 硬件:三根杜邦线(
TX,RX,GND)、1个USB转串口工具、电脑上安装串口调试助手
注意:有的 USB转串口的 TX与 RX标识是转换后的,不需要交叉。
cd /root/workspace/SmartCarToolKits/c++
mkdir build
cd build
cmake ..
make uart_send -j
make uart_recv -j同 USB转 UART章节
-
查看硬件是否连接良好。
-
串口
TX、RX是否反接 -
查看设备节点是否存在:
ls /dev/ttyPS1
rs485_send.cpp
rs485_recv.cpp
rs485_send:EdgeBoard通过 485接口,间隔1s发送 0x56的数据
rs485_recv:EdgeBoard通过 485接口,超时5000ms接收,接收一个字节的数据
-
软件:将
SmartCarToolKits工程放到板子上的/root/workspace/文件夹下。 -
硬件:两根杜邦线、1个USB转RS-485转换器、
PC电脑上安装串口调试助手。
RS485协议规定为下图连接方式。
cd /root/workspace/SmartCarToolKits/c++
mkdir build
cd build
cmake ..
make rs485_send -j
make rs485_recv -j-
按照准备工作中的连接示意图连接并且保证电脑安装了对应的
USB转RS485转换器对应的驱动。 -
打开电脑上的串口调试助手,选择串口号,并在串口调试助手中设置:波特率为115200,8位数据位,无校验位。
- 发送实验:
EdgeBoard发送,电脑接收
EdgeBoard:执行 ./rs485_send 程序
电脑串口调试助手:查看接收结果,接收区会显示 EdgeBoard发过来的数据,十六进制显示为 56。
- 接收实验:
EdgeBoard接收,电脑发送
电脑串口调试助手:发送十六进制数据。以 0xAA为例
EdgeBoard:执行 ./rs485_recv 程序,显示如下结果
-
查看硬件是否连接良好。
-
485_A与485_B不需要反接。 -
查看设备节点是否存在:
ls /dev/ttyS2、ls /dev/gpiochip0
EdgeBoard已经预留出6个GPIO口,预留的GPIO接口在44针扩展口上,电平标准为3.3V。
| 硬件管脚 | 软件参数 |
|---|---|
| Pin9 | 82 |
| Pin10 | 83 |
| Pin11 | 84 |
| Pin12 | 85 |
| Pin13 | 86 |
| Pin14 | 87 |
gpioDemo.cpp
gpioDemo:GPIO输出电平,间隔1s翻转。
- 软件:将
SmartCarToolKits工程放到板子上的/root/workspace/文件夹下。 - 硬件:三根杜邦线,一个电阻,一个发光二极管。
连接方式如下图所示。
cd /root/workspace/SmartCarToolKits/c++
mkdir build
cd build
cmake ..
make gpioDemo -j以硬件管脚Pin9为例:
-
EdgeBoard:执行./gpioDemo 82程序。(如果使用不同的GPIO口,改变相应软件参数即可) -
观察发光二极管:间隔1s 闪烁。
- 查看硬件是否连接良好。
- 查看引脚号使用是否正确。
- 查看设备节点是否存在:
ls /dev/gpiochip0
进入到 SmartCarToolKits/python文件夹中,python相关功能属于非必须功能,用户选择性参考即可
cd /root/workspace/SmartCarToolKits/python/
通过摄像头抓取图片并保存到执行目录下
将摄像头插入到 Edgeboard上的 USB口中
cd /root/workspace/SmartCarToolKits/python/
python3 capture.py在 python文件夹当中生成一个 0.jpg的文件,此文件为当前摄像头采集的图片。
测试手柄驱动:
将摄像头插入到 Edgeboard上的 USB口中。
将手柄插入到 Edgeboard上的 USB口中。
由于 Edgeboard资源限制。需要用到 USB扩展口。将 USB扩展口插入到 Edgeboard上。摄像头与手柄在扩展口上插上即可。
关于适配的 USB扩展口与摄像头详见 图像采集与WiFi使用说明
执行此程序前先将小车架起来,因为执行此程序,小车会动起来。
cd /root/workspace/SmartCarToolKits/python/
python3 collect.py双手抓住手柄。
点击右手食指部位的RB键。小车后轮会动起来。
晃动左手侧摇杆,小车前轮左右方向会跟随摇杆左右方向晃动而切换。
前侧左手食指部位的LB键。小车停止运动。
会在当前文件夹生成一个 train文件夹。
train文件夹中包含,执行 python3 collect.py后采集的图片序列,以及一个json文件。

















