1. 快速开始
1.1. 准备工作
在使用旭日X3派开发板前,需要做下述准备工作:
供电
旭日X3派开发板通过USB Type C接口供电,并兼容QC、PD快充协议。推荐使用支持QC、PD快充协议的电源适配器,或者至少搭配5V 直流 2A的电源适配器为开发板供电。
注意,请不要使用PC机USB接口为开发板供电,否则会因供电不足造成开发板工作异常。
存储
旭日X3派开发板采用TF存储卡作为系统启动介质,推荐使用至少8GB容量、速率C10以上的TF存储卡,以便满足Ubuntu系统及更多应用功能包对存储空间的需求。
显示
旭日X3派开发板支持HDMI显示接口,通过HDMI线缆连接开发板和显示器设备,可实时查看系统状态。
网络连接
旭日X3派开发板支持以太网、Wi-Fi功能,开发板通过连接以太网、Wi-Fi热点,可实现网络连接功能。
常见问题
上电反复重启:请确保开发板使用适配器供电,且供电能力满足至少5V 直流 2A要求
上电不开机:请确保开发板正常插入烧录过镜像的TF存储卡
USB Host接口无反应:请确保开发板Micro USB没有接入数据线
TF卡使用中热插拔:系统运行中热插拔TF卡会导致系统异常,请重新上电开发板
更多问题的处理,请访问 地平线开发者官方论坛 获得帮助。
1.2. 安装系统
旭日X3派开发板目前支持Ubuntu 20.04 Server、Desktop两个系统版本,镜像文件可从 地平线开发者社区发布页面,X3派资料包子栏目中获取。
注意,由于旭日X3芯片不支持GPU硬件加速,因此使用Ubuntu Desktop版本时,可能会因CPU渲染图形桌面而造成系统负载过大,如对系统性能有较高要求,推荐使用不带图形桌面的Ubuntu Server版本。
1.2.1. 准备工作
SD卡、读卡器。
从地平线开发者社区的 资源中心 X3 派资料包板块下载
旭日X3派系统镜像
,下载的文件是压缩包,请解压提取里面的system_sdcard.img
文件。下载SD卡烧录工具
1.2.2. 系统烧写
1.2.2.1. 使用balenaEtcher烧写
balenaEtcher是一款支持Windows/Mac/Linux等多平台的启动盘制作工具,制作流程如下:
在PC端插入TF卡,并打开
balenaEtcher
,点击Flash frome file
按钮,选择解压出来的system_sdcard.img
文件作为烧录镜像点击
Select target
按钮,选择TF卡对应的磁盘作为目标存储设备点击
Flash
按钮开始烧录,待工具提示Flash Comple
时,表示TF卡镜像制作完成,您可以关闭 balenaEtcher,从PC上取下TF卡
1.2.2.2. 使用Rufus烧写
Rufus是一款Windows平台的启动盘制作工具。其制作流程如下:
在PC端插入TF卡,并打开rufus,确认工具的
设备
栏可以正确识别到插入的TF卡点击
选择
按钮,在弹出的文件选择对话框中选择解压出来的system_sdcard.img
镜像文件点击
开始
按钮,工具弹出提示窗,点击确定
开始TF卡镜像制作当工具进度条完成并提示
准备就绪
后,表示TF卡镜像制作完成,您可以关闭 Rufus工具,从PC上取下TF卡
如TF卡制作过程发生中断,用户可按照上述步骤重新制作TF卡。
1.2.3. 启动系统
保持旭日X3派开发板断电,将制作好的TF存储卡插入旭日X3派开发板的TF卡槽,并将显示器接入开发板HDMI接口,然后给开发板上电,如果开发板红色指示灯亮起,说明板子上电开机正常。
系统首次启动时会安装镜像中预置的工具包,整个过程大概需要1~2分钟,安装过程中HDMI无显示输出,待安装完成后系统会自动重启打开HDMI显示输出,并显示开机画面(Server系统显示地平线logo、Desktop版本显示系统桌面)。
开机画面正常显示后,说明系统启动完成,此时可通过串口登录、SSH登录方式登录开发板,登录用户名:sunrise
密码:sunrise
ubuntu login: sunrise
Password:
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 4.14.87 aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Last login: Tue Apr 12 16:29:39 UTC 2022 on ttyS0
sunrise@ubuntu:~$
如果开发板上电后,HDMI长时间(2分钟以上)没有显示输出,说明开发板启动异常。此时用户可通过串口登录开发板,查看启动过程中串口的打印,确认开发板启动状态,TF存储卡镜像异常时log如下:
Warning: ethernet@A5014000 (eth0) using random MAC address - b6:d4:80:47:64:9b
eth0: ethernet@A5014000
Disable cnn cores ..
dtb_name:hobot-x3-pi.dtb
base board type: X3 SDB
bootmode: NAND
board_id = 31520124
hb_boot_args_cmd_set custom_bootargs 0 ubuntu_boot 1
Hit any key to stop autoboot: 0
enable watchdog success !
disable watchdog success !
Hobot>
此时,用户可重新制作TF存储卡进行系统恢复。
1.3. 远程登录
本章节面向使用Ubuntu Server版本操作系统(无图形桌面)或者有远程访问设备的需求用户,介绍如何通过串口、VNC、SSH等方式远程登录开发板。
使用VNC、SSH远程登录时要用到设备IP,因此用户需要提前获取开发板IP地址,此时推荐用户使用串口登录开发板并进行网络参数确认,登录用户名:sunrise 密码:sunrise。
1.3.1. 串口登录
在使用串口登录前,需要确认开发板串口线跟PC机正确连接,连接方法可参考调试串口章节。串口登录需要借助PC终端工具,目前常用的工具有Putty
、SecureCRT
、MobaXterm
等,用户可根据自身使用习惯来选择。不同工具的端口配置流程基本类似,下面以MobaXterm
为例,介绍新建串口连接过程:
打开
MobaXterm
工具,点击Session
,然后选择Serial
配置端口号,例如
COM3
,然后设置波特率为921600
点击OK,输入用户名、密码即可完成登录。
当串口USB转接板插入PC机,设备管理器提示未知USB设备时,说明PC机未安装串口驱动。用户需要根据串口转接板类型安装相应驱动,驱动程序可从地平线开发者社区发布页面https://developer.horizon.ai/resource,工具子栏目中获取。
驱动安装完成后,设备管理器可正常识别串口板端口,如下图:
如需确认开发板的网络配置,可通过串口登录设备后,使用ifconfig命令查询,例如:
sunrise@ubuntu:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::211:22ff:feaa:7637 prefixlen 64 scopeid 0x20<link>
ether 00:11:22:aa:76:37 txqueuelen 1000 (Ethernet)
RX packets 767 bytes 54006 (54.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5766 bytes 246466 (246.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 43 base 0xa000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 3847 bytes 339115 (339.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3847 bytes 339115 (339.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 08:e9:f6:ae:f8:8a txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
其中eth0、wlan0分别代表以太网、Wi-Fi网络。
1.3.2. 网络配置
当开发板通过以太网、Wi-Fi等方式接入网络后,用户可以通过网络进行远程登录。在使用远程登录前,需要确保PC机、开发板能够能够相互ping通。如无法ping通,则无法使用网络进行远程登录,用户可按如下步骤检查网络配置:
开发板、PC机IP地址前三段相同,例如开发板:
192.168.1.10
PC机:192.168.1.100
开发板、PC机的子网掩码、网关保持一致
PC机网络防火墙处于关闭状态
开发板以太网默认采用静态IP地址(192.168.1.10),以方便固定网络环境下的使用,例如开发板与PC机直连场景。此时用户只需要修改PC机的静态IP地址,并保证配置跟开发板位于同一网段即可。PC机静态IP修改方法如下:
在网络连接中找到对应的以太网设备并双击打开
找到Internet协议版本4选项并双击打开
在下图红框位置填入对应的网络参数,然后点击确定
如需将开发板以太网配置为DHCP模式,可参考有线网络。
1.3.3. VNC登录
本章节面向使用Ubuntu Desktop系统版本的用户,介绍如何通过VNC Viewer
实现远程桌面登录功能。
VNC Viewer
是一个图形桌面共享软件,可在PC机、移动设备上实现设备远程登录和控制桌面。VNC Viewer
可以传输PC机、移动设备的鼠标、键盘操作到远程桌面,并通过PC机显示器实时显示运行结果。
用户在PC机、移动设备上通过VNC Viewer
操作开发板桌面,可以获得跟本地操作相同的效果。
连接开发板
目前VNC支持直接、云端两种连接方式,用户可以根据自身情况选择。本文中推荐使用简单、快速的直接连接方式。
直接连接
直接连接是一种简单、快速的方式,适用于开发板、PC机处于同一本地网络的情况,例如家庭、学校、办公室的有线、无线网络。连接步骤如下:
确认开发板IP地址:可通过串口登录、SSH登录登录设备后,使用
ifconfig
命令查询,有图形化界面的系统,可以通过给设备接上鼠标后,打开网络设置软件获取IP地址。在PC机、移动设备中下载VNC Viewer客户端,请点击 VNC Viewer 下载对应平台的软件。
打开VNC Viewer,输入开发板IP地址和VNC登录密码,默认密码为
sunrise
输入设备ip地址,例如:192.168.1.10
输入完地址后回车
,弹出链接未加密的提示,不用管,点击 Continue
。
输入密码 sunrise
,勾选 Remember password
, 点击 OK
连接。
云端连接
云端连接是一种通过RealVNC
云服务实现的远程加密连接,适用于开发板、PC需要通过互联网连接的情况。此时不需要防火墙、路由器的重新配置,也不需要知道开发板的IP地址。连接步骤如下:
登录
RealVNC
官方账户在开发板上,使用新的
RealVNC
账户证书登录VNC Server
在PC机、移动设备中下载VNC Viewer客户端,请点击 VNC Viewer 下载对应平台的软件。
使用相同的
RealVNC
账户证书登录VNC Viewer
,然后点击连接开发板
关于RealVNC
更多使用信息,可参考官方网站https://www.realvnc.com/en/。
1.3.4. SSH登录
用户在PC机上,可以通过SSH连接实现开发板命令行的远程登录。SSH连接的创建方式,主要有终端软件、PC机命令行两种方式。下面介绍两种连接方法的创建步骤。
终端软件
目前常用终端工具有Putty
、SecureCRT
、MobaXterm
等,用户可根据自身使用习惯来选择。不同工具的端口配置流程基本类似,下面以MobaXterm
为例,介绍新建SSH连接过程:
打开
MobaXterm
工具,点击Session
,然后选择SSH
输入开发板IP地址,例如
192.168.1.10
选中
specify username
,输入sunrise
点击OK后,输入用户名、密码即可完成登录
PC机命令行
如果PC机未安装终端软件,用户也可通过命令行方式进行SSH登录,步骤如下:
打开终端窗口,输入SSH登录命令,例如
ssh sunrise@192.168.1.10
弹出连接确认提示,输入YES
输入密码即可完成登录
1.4. 快速体验
开发板系统默认预置了GPIO操作、LED点灯、图像采集AI推理等多个基础功能示例,用于帮助用户快速确认开发板环境安装的完整性。
1.4.1. LED指示灯控制
在旭日X3派上有一个LED指示绿灯(接口总览 10号绿色灯),默认情况上电后闪烁。本节将通过运行程序控制这个LED的闪烁状态,作为使用旭日X3派的hello world
程序。
环境准备:旭日X3派上电,LED指示绿灯闪烁,用户可以通过 远程登录中介绍的其中一种方式连接上设备
运行方式:执行
led_blinks
程序
sunrise@ubuntu:~$ sudo led_blinks
预期效果:旭日X3派的指示绿灯开始闪烁,每一秒钟切换状态。
led_blinks
是一个shell脚本程序,通过控制LED指示绿灯的GPIO管脚来使绿灯亮和灭。除了不带参数的运行外,它还支持以下三个参数选项:
normal:与不加参数是的效果一样,指示灯亮灭间隔1秒钟
fast:指示灯亮灭间隔300毫秒,闪烁较快
slowly:指示灯亮灭间隔2秒钟,闪烁较慢
1.4.2. GPIO读写操作
在开发板的 /app/40pin_samples/
目录下预置了40pin管脚的功能测试代码,包括gpio的输入、输出测试,pwm、i2c、spi、uart等总线的测试,所有测试代码都使用python3编写,详细信息可以查阅 [40PIN 功能使用][../40pin_user_guide.md]。
其中 /app/40pin_samples/button_led.py
实现38
号管脚配置为输入,可以外接一个按键来控制其输出高、低电平,36
号管脚配置为输出,可以外接一个LED灯,通过控制36
号管脚的电平使LED亮灭。
环境准备:
38
号管脚外接一个按键,36
号管脚外接一个LED灯,如果没有按键,可以使用导线连接38
号管脚到3.3v拉高,连接到GND拉低。运行方式:
sunrise@ubuntu:~$ cd /app/40pin_samples/
sunrise@ubuntu:/app/40pin_samples$ sudo python3 ./button_led.py
预期效果:通过控制按键的开、关使LED灯亮、灭,运行程序过程中,可以看到当前输出给
36
号管脚的电平值。
sunrise@ubuntu:/app/40pin_samples$ sudo python3 ./button_led.py
Starting demo now! Press CTRL+C to exit
Outputting 0 to Pin 36
Outputting 1 to Pin 36
Outputting 0 to Pin 36
1.4.3. AI图像分类算法演示
开发板上安装了test_mobilenetv1.py
程序用于测试基本的AI算法推理功能,该程序读取 zebra_cls.jpg
静态图片作为模型的输入,并在命令行终端打印出分类的结果为cls id: 340 Confidence: 0.991851
环境准备:旭日X3派上电,LED指示绿灯闪烁,用户可以通过 远程登录中介绍的其中一种方式连接上设备
运行方式:执行
test_mobilenetv1.py
程序
sunrise@ubuntu:~$ cd /app/ai_inference/01_basic_sample/
sunrise@ubuntu:/app/ai_inference/01_basic_sample$ sudo ./test_mobilenetv1.py
预期效果:zebra_cls.jpg
是一张斑马的图片,所以按照ImageNet
数据集的分类,返回结果id应该为340。
========== Classification result ==========
cls id: 340 Confidence: 0.991851
1.4.4. USB摄像头AI推理
开发板上安装了 usb_camera_fcos.py
程序用于测试USB摄像头的数据通路,该测试程序会实时读取USB摄像头的图像数据,然后运行视觉检测算法,最后把视频和算法结果通过HDMI输出。
环境准备:1) USB摄像头正确连接到开发板上,确认生成
/dev/video8
设备节点。2) 通过HDMI线缆连接开发板和显示器运行方式:按照以下命令执行程序,具体代码的实现说明请查阅 AI推理示例-图像目标检测算法
sunrise@ubuntu:~$ cd /app/ai_inference/02_usb_camera_sample/ sunrise@ubuntu:/app/ai_inference/02_usb_camera_sample$ sudo python3 ./usb_camera_fcos.py
预期效果:程序执行后,命令行会输出
DNN
模块的版本信息、Open usb camera successfully
和视觉检测算法的结果输出(目标类型、置信度),如下所示:
sunrise@ubuntu:/app/ai_inference/02_usb_camera_sample$ sudo python3 ./usb_camera_fcos.py
[C][15441][05-03][13:55:12:959][configuration.cpp:51][EasyDNN]EasyDNN version: 0.3.5
[BPU_PLAT]BPU Platform Version(1.3.1)!
[HBRT] set log level as 0. version = 3.13.27
[DNN] Runtime version = 1.8.4_(3.13.27 HBRT)
[HorizonRT] The model builder version = 1.5.2
... ...
Open usb camera successfully
bottle is in the picture with confidence:0.5859
bottle is in the picture with confidence:0.7126
cup is in the picture with confidence:0.7186
... ...
算法渲染结果的HDMI输出如下图,示例图像中检测到了bottle
和cup
。
提示:执行以上程序后,hdmi会显示视频画面,图像化功能会隐藏,请执行以下两条命令恢复图像化界面
sudo echo start > /sys/devices/virtual/graphics/iar_cdev/iar_test_attr
sudo echo enable2 > /sys/devices/virtual/graphics/iar_cdev/iar_test_attr
1.4.5. MIPI摄像头AI推理
开发板上安装了mipi_camera.py
程序用于测试MIPI摄像头的数据通路,该测试程序实时从MIPI摄像头读取图像数据,然后运行视觉检测算法,最后把视频和算法结果通过HDMI输出。相对于USB摄像头的示例程序,本示例会使用X3芯片的图像、多媒体硬件加速模块,因此拥有更高的运行性能。
环境准备:1)将JXF37摄像头模组通过FPC排线接到开发板MIPI CSI接口上。2) 通过HDMI线缆连接开发板和显示器
运行方式:按照以下命令执行程序,具体代码的实现说明请查阅 AI推理示例-基于MIPI Camera的目标检测
sunrise@ubuntu:~$ cd /app/ai_inference/03_mipi_camera_sample/ sunrise@ubuntu:/app/ai_inference/03_mipi_camera_sample$ sudo python3 ./mipi_camera.py
预期效果:程序执行后,命令行会输出
DNN
模块的版本信息、Sensor初始化信息和视觉检测算法的结果输出(目标类型、置信度),如下所示:
sunrise@ubuntu:/app/ai_inference/03_mipi_camera_sample$ sudo python3 ./mipi_camera.py
[C][15441][05-03][13:55:12:959][configuration.cpp:51][EasyDNN]EasyDNN version: 0.3.5
[BPU_PLAT]BPU Platform Version(1.3.1)!
[HBRT] set log level as 0. version = 3.13.27
[DNN] Runtime version = 1.8.4_(3.13.27 HBRT)
[HorizonRT] The model builder version = 1.5.2
match sensor:f37
bus_num 2
bus_type 0
sensor_name f37
reg_width 8
sensor_mode 1
sensor_addr 0x40
serial_addr 0x0
resolution 1080
start linear mode, sensor_name f37, setting_size = 3
cup is in the picture with confidence:0.6189, bbox:[ 309 62 1240 915]
bottle is in the picture with confidence:0.5112, bbox:[1645 347 1921 1009]
...
算法渲染结果的HDMI输出如下图,示例图像中检测到了bottle
和cup
。
提示:执行以上程序后,hdmi会显示视频画面,图像化功能会隐藏,请执行以下两条命令恢复图像化界面
sudo echo start > /sys/devices/virtual/graphics/iar_cdev/iar_test_attr
sudo echo enable2 > /sys/devices/virtual/graphics/iar_cdev/iar_test_attr
1.5. 接口说明
1.5.1. 接口总览
旭日X3派开发板外围提供了以太网、USB、摄像头、LCD、HDMI、40PIN等外围接口,方便用户进行图像多媒体、AI算法的开发和测试。开发板接口布局如下:
序号 |
功能 |
序号 |
功能 |
序号 |
功能 |
---|---|---|---|---|---|
1 | USB Type C电源接口 | 5 | USB 2.0 Type A接口 | 9 | HDMI接口 |
2 | MIPI CSI接口 | 6 | USB 3.0 Type A接口 | 10 | 电源LED指示灯 |
3 | 调试串口 | 7 | 以太网口 | 11 | TF卡接口 |
4 | Micro USB 2.0接口 | 8 | 40PIN接口 |
1.5.2. 电源接口
开发板支持USB Type C接口供电方式(接口1),兼容QC、PD快充协议。推荐使用支持QC、PD协议的电源适配器,或者至少搭配支持5V/2A的电源适配器使用。将电源适配器接入开发板USB Type C接口后,开发板红色电源指示灯亮起,说明开发板供电正常。
注意,请不要使用PC机USB接口为开发板供电,否则会因供电不足造成开发板工作异常。
1.5.3. 调试串口
开发板提供一路调试串口(接口3),波特率为921600。用户使用开发板套件中的串口USB转接板、杜邦线,将开发板串口与PC机进行连接后,可在PC端通过终端工具访问开发板。开发板串口连接方式如下图:
1.5.4. 以太网
开发板提供一路千兆以太网接口(接口7),支持1000BASE-T、100BASE-T和10BASE-T标准,默认采用静态IP模式。如需确认设备当前IP配置,可通过串口登录设备,并用ifconfig命令进行查询,默认IP配置如下:
sunrise@ubuntu:/# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::211:22ff:fe6f:de17 prefixlen 64 scopeid 0x20<link>
ether 00:11:22:6f:de:17 txqueuelen 1000 (Ethernet)
RX packets 112 bytes 7327 (7.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 197 bytes 8678 (8.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 39 base 0xc000
开发板插入网线后,以太网驱动会建立连接,如果系统有如下打印,说明网线连接正常:
[13293.952661] st_gmac a5014000.ethernet eth0: Link is Down
[13295.062996] st_gmac a5014000.ethernet: Link is Up - 1000/Full
[13296.000750] st_gmac a5014000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
1.5.5. 显示
开发板提供HDMI(接口9)、MIPI DSI(接口2背面)两种显示接口,两种显示方式互斥。开发板上电后,会根据Ubuntu系统版本显示不同的开机画面,Server版本显示地平线logo,Desktop版本显示Ubuntu登录界面。
切换HDMI显示的方法如下:
sed -i "/^f=/c f=\"video=hobot:x3sdb-hdmi\"" /etc/init.d/x3dispinit
reboot
切换MIPI DSI(LCD)显示的方法如下:
sed -i "/^f=/c f=\"video=hobot:x3sdb-mipi720p\"" /etc/init.d/x3dispinit
reboot
除显示开机画面外,开发板显示接口还支持实时显示摄像头、网络流画面功能,具体可以参考Sample示例章节。
1.5.6. USB
USB接口说明
开发板通过USB Hub、硬件开关电路扩展了多路USB接口,满足用户多路USB设备接入的需求。开发板USB接口描述如下:
接口类型 | 接口序号 | 接口数量 | 接口描述 |
---|---|---|---|
Micro USB 2.0 | 接口4 | 1路 | USB Device模式,用于连接主机实现ADB、Fastboot、UVC等功能 |
USB 2.0 Type A | 接口5 | 2路 | USB Host模式,用于接入USB 2.0外设 |
USB 3.0 Type A | 接口6 | 1路 | USB Host模式,用于接入USB 3.0外设 |
由于旭日X3芯片只提供一路USB接口,因此开发板通过硬件电路实现USB主从模式自动切换,用户无需关心USB主从模式,只需按照上表的逻辑连接设备即可。需要注意的是,开发板禁止同时使用USB Host、Device接口,否则会造成功能异常。
接入U盘
开发板USB 2.0/3.0 Type A接口支持U盘功能,可自动检测U盘接入并挂载,默认挂载目录为/media/sda1
。用户可通过touch命令确认U盘工作正常,如下:
sunrise@ubuntu:/media/sda1$ sudo touch test
[sudo] password for sunrise:
sunrise@ubuntu:/media/sda1$ ls -l test
-rwxr-xr-x 1 root root 0 Apr 30 21:19 test
sunrise@ubuntu:/media/sda1$
接入USB串口转接板
开发板USB 2.0/3.0 Type A接口支持USB串口转接板功能,可自动检测USB串口转接板接入并创建设备节点/dev/ttyUSB*
或者 /dev/ttyACM*
(星号代表0开始的数字)。用户可参考 使用串口 章节对串口进行使用。
1.5.7. USB摄像头
开发板USB 2.0/3.0 Type A接口(接口5和6)支持USB摄像头功能,可自动检测USB摄像头接入并创建设备节点/dev/video8
。用户可通过v4l2命令确认USB摄像头工作正常,如下:
sunrise@ubuntu:/media/sda1$ sudo v4l2-ctl -d /dev/video8 --all
Driver Info:
Driver name : uvcvideo
Card type : FHD Camera: FHD Camera
Bus info : usb-xhci-hcd.0.auto-1.2
Driver version : 4.14.87
Capabilities : 0x84200001
Video Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : uvcvideo
Model : FHD Camera: FHD Camera
Serial : 12345
Bus info : 1.2
Media version : 4.14.87
Hardware revision: 0x00000020 (32)
Driver version : 4.14.87
Interface Info:
ID : 0x03000002
Type : V4L Video
Entity Info:
ID : 0x00000001 (1)
Name : FHD Camera: FHD Camera
Function : V4L2 I/O
Pad 0x01000004 : Sink
Link 0x0200000a: from remote pad 0x1000007 of entity 'Processing 2': Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
Width/Height : 1920/1080
Pixel Format : 'MJPG' (Motion-JPEG)
Field : None
Bytes per Line : 0
Size Image : 4147200
Colorspace : Default
Transfer Function : Default (maps to Rec. 709)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
Crop Capability Video Capture:
Bounds : Left 0, Top 0, Width 1920, Height 1080
Default : Left 0, Top 0, Width 1920, Height 1080
Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
Streaming Parameters Video Capture:
Capabilities : timeperframe
Frames per second: 30.000 (30/1)
Read buffers : 0
1.5.8. MIPI摄像头
开发板提供1路MIPI CSI接口(接口2),可实现MIPI摄像头的接入。目前开发板配件提供了2种规格的摄像头模组,以满足不同用户的功能需求。模组型号、规格如下:
序号 | Sensor | 分辨率 | FOV | I2C ID |
---|---|---|---|---|
1 | GC4663 | 400W | H:104 V:70 D:113 | 0x29 |
2 | JXF37 | 200W | H:62 V:37 D:68 | 0x40 |
摄像头模组通过24pin异面FPC排线跟开发板连接,注意排线两端蓝面向上插入连接器。
以JXF37摄像头模组为例,安装完成后如下图:
安装完成后,用户可以通过i2cdetect命令确认模组I2C地址能否正常检测到。如检测不到,用户需要检查FPC排线连接是否正常。成功探测到I2C地址时,log打印如下所示:
sunrise@ubuntu:~# sudo i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
1.5.9. TF卡
旭日X3派开发板提供1路TF卡接口(接口11)。由于开发板系统需要从TF卡加载并运行,用户在使用开发板前,需要先完成TF卡镜像制作。推荐使用至少8GB容量的TF存储卡,以便满足Ubuntu操作系统及相关功能包的安装要求。
旭日X3派开发板使用中禁止热插拔TF存储卡,否则会造成系统运行异常,甚至造成存储卡文件系统损坏。
1.5.10. 40PIN
旭日X3派开发板提供40PIN标准接口,方便用户进行外围扩展,其中数字IO采用3.3V电平设计。40PIN接口定义如下:
开发板40PIN接口位置提供了丝印网表,方便用户对照操作,PIN1、PIN40位置如下:
40PIN各功能的使用方法请查看 40PIN 功能使用 章节。
1.5.11. 蓝牙
1.5.11.1. 初始化
执行以下脚本程序完成初始化:
sudo startbt6212.sh
这个脚本完成以下工作:
复位蓝牙
创建
messagebus
用户和用户组,dbus-daemon
程序运行时需要使用该用户运行
brcm_patchram_plus
完成蓝牙的驱动加载和固件加载循环检查
/sys/class/bluetooth/hci0
目录是否存在,确认蓝牙驱动已经正常运行出现 Done setting line discpline 表示蓝牙启用成功
执行
hciconfig hci0 up
完成蓝牙的Link Up执行
hciconfig hci0 piscan
进行蓝牙扫描,本步骤可以根据情况去掉
执行成功后,确认以下进程是否正常运行:
/usr/bin/dbus-daemon
brcm_patchram_plus
/usr/lib/bluetooth/bluetoothd
1.5.11.2. 配网连接
执行sudo bluetoothctl
进入交互模式下的蓝牙配置界面,出现了类似下图的设备信息表示蓝牙被识别到了,然后用show
来查看蓝牙信息,留意蓝牙的powered
和discoverable
状态。
执行 power on
使能蓝牙,如下图所示:
为了能够使蓝牙被附近的设备发现,需要执行discoverable on
使能蓝牙并打开蓝牙可发现属性,如下图所示:
此时使用手机或者电脑扫描蓝牙就可以发现 ubuntu
这个名称的蓝牙设备:
接下来测试蓝牙的主动扫描功能,在bluetoothctl
的交互界面输入scan on
即可打开主动扫描,它会周期性地打印附近的设备,可以看到已经发现了我的手机设备,scan off
关闭扫描功能并汇总打印扫描到的蓝牙设备:
然后就是和其他蓝牙的配对:
配对命令:
pair [targetMAC]
,输入该命令后,根据提示输入yes
,对端蓝牙设备选择配对
选项完成配对。配对成功后可以使用
trust [targetMAC]
来让下次自动连接
经过以上操作后,蓝牙的扫描、配对的基本功能就完成了,如需使用更多功能,可查阅 BlueZ
的官方帮助说明。