Skip to main content

通过路由器联网

通过路由器联网

本文以eth0网口为例,介绍开发者套件通过和直连路由器的获取的外部网络的方法。

配置前提

  • 只有eth0和eth1网口支持连接路由器,且网口的IP模式为DHCP。
  • 在保持开发者套件默认IP配置的情况下,eth0默认为DHCP模式,因此可以直接连接路由器,如果eth1网口要通过路由器连接外部网络,需要先参见修改接口IP地址的方法将网口配置为DHCP模式。

配置开发者套件和路由器直连

准备好已联网的路由器,将PC连接对应的WiFi,同时准备好一根网线,一端连接开发者套件的eth0网口,另一端连接路由器的任意一个LAN口。以下以TP-LINK路由器为例,介绍路由器配置方法。

  1. 在浏览器打开路由器管理页面,在管理页面单击“路由设置”。

  2. 如下图所示,单击“LAN口设置”,“LAN口IP设置”选择“自动(推荐)”,再单击“保存”。

    图1 配置开发者套件和路由器直连界面

  3. 如下图所示,打开“DHCP服务器”,修改DHCP服务器选项为“开”,单击“保存”。开发者套件的IP地址将由路由器进行分配,从下图可以看到地址区间开始地址和结束地址分别为192.168.1.2和192.168.1.254,开发者套件的IP地址可为192.168.1.x,其中x的值在2~254之间。

    图2 配置开发者套件和路由器直连界面

  4. 刷新路由器管理界面,单击“设备管理”,单击匿名主机的“管理”,如下所示,在本示例中,分配给开发者套件的IP地址为192.168.1.107。若没有看到“匿名主机”(开发者套件的连接名称也可能为其它名字),可尝试拔插网线再刷新界面,。

    图3 配置开发者套件和路由器直连界面

  5. 测试PC与开发者套件是否已连通。同时按键盘的“Win”键+“R”键,在运行窗口输入cmd进入命令行窗口,输入命令以下(IP地址按实际情况修改)。

    ping 192.168.1.107

    回显如下说明PC与开发者套件已连通。

    正在 Ping 192.168.1.107 具有 32 字节的数据:
    来自 192.168.1.107 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.1.107 的回复: 字节=32 时间<1ms TTL=64
  6. 使用当前开发者套件IP192.168.1.107远程登录开发者套件,执行以下命令验证是否成功连接外部网络。

    curl www.baidu.com

    显示以下内容表示开发者套件已连接外部网络。

    图4 共享网络成功界面

:::note 说明 配置网络后无法联网请参见正确配置网络后仍无法联网解决。 :::

父主题: 配置网络

对接USB摄像头

开发者套件支持接入UVC协议的USB摄像头,本节介绍如何接入并测试USB摄像头。

  1. 将USB摄像头接入开发者套件任意一个空闲USB接口(USB 3.0 Type-A)。

  2. root用户登录开发者套件,执行命令,可以通过回显看到通过USB接口接入的摄像头。

    lsusb

    回显如下:

    Bus 005 Device 003: ID 0bda:9143 Realtek Semiconductor Corp. USB Camera
  3. 开发者套件可自动检测USB摄像头接入并创建设备节点“/dev/video0”。用户可通过v4l2命令确认USB摄像头工作是否正常,执行以下命令。

    sudo v4l2-ctl -d /dev/video0 --all

    系统回显如下,包含摄像机帧率、分辨率等信息:

    Driver Info:
    Driver name : uvcvideo
    Card type : USB Camera: USB Camera
    Bus info : usb-a5100000.usb_2-1
    Driver version : 5.10.0
    Capabilities : 0x84a00001
    Video Capture
    Metadata Capture
    Streaming
    Extended Pix Format
    Device Capabilities
    Device Caps : 0x04200001
    Video Capture
    Streaming
    Extended Pix Format
    Media Driver Info:
    Driver name : uvcvideo
    Model : USB Camera: USB Camera
    Serial : 200901010001
    Bus info : usb-a5100000.usb_2-1
    Media version : 5.10.0
    Hardware revision: 0x00002021 (8225)
    Driver version : 5.10.0
    Interface Info:
    ID : 0x03000002
    Type : V4L Video
    Entity Info:
    ID : 0x00000001 (1)
    Name : USB Camera: USB Camera
    Function : V4L2 I/O
    Flags : default
    Pad 0x01000007 : 0: Sink
    Link 0x02000013: from remote pad 0x100000a of entity 'Realtek Extended Controls Unit' (Video Pixel Formatter): Data, Enabled, Immutable
    Priority: 2
    Video input : 0 (Camera 1: ok)
    Format Video Capture:
    Width/Height : 1280/720
    Pixel Format : 'MJPG' (Motion-JPEG)
    Field : None
    Bytes per Line : 0
    Size Image : 1843200
    Colorspace : sRGB
    Transfer Function : Rec. 709
    YCbCr/HSV Encoding: ITU-R 601
    Quantization : Default (maps to Full Range)
    Flags :
    Crop Capability Video Capture:
    Bounds : Left 0, Top 0, Width 1280, Height 720
    Default : Left 0, Top 0, Width 1280, Height 720
    Pixel Aspect: 1/1
    Selection Video Capture: crop_default, Left 0, Top 0, Width 1280, Height 720, Flags:
    Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1280, Height 720, Flags:
    Streaming Parameters Video Capture:
    Capabilities : timeperframe
    Frames per second: 30.000 (30/1)
    Read buffers : 0

命令行

开发者套件支持接入USB音频设备,如麦克风或扬声器并使用命令行进行录音和播放。

:::note 说明 开发者套件默认仅root用户可访问声卡,普通用户若需使用,请通过root用户将普通用户添加到对应用户组,以HwHiAiUser用户为例。

usermod -a -G audio HwHiAiUser

:::

录音设备

  1. 将录音设备接入开发者套件任意一个空闲USB接口(USB 3.0 Type-A)。

  2. 执行以下命令查询设备ID。

    arecord -l

    回显如下:

    (base) root@davinci-mini:~# arecord -l
    **** List of CAPTURE Hardware Devices ****
    card 0: XFMDPV0018 [XFM-DP-V0.0.18], device 0: USB Audio [USB Audio]
    Subdevices: 1/1
    Subdevice #0: subdevice #0

    当card为i,device为j时,ID编号表示为”hw:i,j”,如回显所示内容,设备的ID为"hw:0,0"。

  3. 执行以下命令进行录音,使用设备为"hw:0,0",通道数为1,采样率16000,格式S16_LE,录音文件名为test.wav。

    arecord -D hw:0,0 -c 1 -r 16000 -f S16_LE test.wav

    回显如下:

    Recording WAVE 'test.wav' Signed 16 bit Little Endian, Rate 16000 Hz, Mono

    :::note 说明 通道数和采样率视设备而定,常见采样率包括44100、48000、16000,常见通道数为1、2。 :::

  4. 按下键盘“Ctrl”+“C”键停止录音,结束后在当前目录生成录音文件test.wav。

播放设备

  1. 将播放设备接入开发者套件任意一个空闲USB接口(USB 3.0 Type-A)。

  2. 执行以下命令查询设备ID。

    aplay -l

    回显如下:

    (base) root@davinci-mini:~# aplay -l
    **** List of CAPTURE Hardware Devices ****
    card 1: Device [USB PnP Audio Device], device 0: USB Audio [USB Audio]
    Subdevices: 1/1
    Subdevice #0: subdevice #0

    当card为i,device为j时,ID编号表示为”hw:i,j”,如回显所示内容,设备的ID为"hw:1,0"。

  3. 执行以下命令进行播放,使用设备为"hw:1,0",录音文件名为test.wav。

    aplay -D plughw:1,0 test.wav

    回显如下:

    Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
  4. 按下键盘“Ctrl”+“C”键停止播放。

父主题: 对接USB音频设备

Python脚本

开发者套件支持接入USB音频设备,如麦克风或扬声器并调用Python脚本进行录音和播放,Python脚本可集成至其他使用USB音频设备的场景,方便用户进行二次开发。

:::note 说明 开发者套件默认仅root用户可访问声卡,普通用户若需使用,请通过root用户将普通用户添加到对应用户组,以HwHiAiUser用户为例。

usermod -a -G audio HwHiAiUser

:::

准备依赖

  • Ubuntu22.04镜像:

    pip3 install sounddevice soundfile
    apt-get install libportaudio2
  • OpenEuler22.03镜像:

    pip3 install sounddevice soundfile
    yum install portaudio portaudio-devel

录音设备样例代码

  1. 编写录音样例代码。

    import sounddevice as sd
    from scipy.io import wavfile

    # 设置录音时长(以秒为单位)
    duration = 5
    # 设置采样率,采样率根据设备而定,常见采样率有44100, 48000,16000等
    sample_rate = 16000
    # 录音设备ID,即对应 arecord -l 回显中每个设备的card编号
    device_index = 0
    # 录音通道数,根据设备而定,常见通道数为1,2
    channels = 1
    # 设置输出音频文件名称
    output_file = "output.wav"

    # 开始录音
    print("Recording started...")
    audio = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=channels, blocking=True, device=device_index)
    print("Recording finished.")

    # 将录音保存为wav格式的文件
    wavfile.write(output_file, sample_rate, audio)
    print("Audio saved to", output_file)
  2. 执行脚本录制音频。

    python3 record.py

    回显如下:

    Recording started...
    Recording finished.
    Audio saved to output.wav

播放设备样例代码

  1. 编写播放音频样例代码。

    import sounddevice as sd
    import soundfile as sf

    # 播放设备ID,即对应 aplay -l 回显中每个设备的card编号
    device_index = 0
    # 设置录音文件路径
    filepath = "output.wav"

    # 读取录音数据和采样率
    data, sample_rate = sf.read(filepath)

    print("Playing recorded audio...")
    sd.play(data, samplerate=sample_rate, blocking=True, device=device_index)
    print("Playback finished.")
  2. 执行脚本播放音频。

    python3 play.py

    回显如下:

    Playing recorded audio...
    Playback finished.

父主题: 对接USB音频设备

对接USB拓展坞

当前开发者套件的USB接口仅支持扩展USB 3.0 Type-A的拓展坞 ,不支持扩展以太网口、HDMI、USB Type-C接口等其他接口。

图1 拓展坞样例图

  1. 将拓展坞接入开发者套件任意一个空闲USB接口(USB 3.0 Type-A)。
  2. 参见对接USB摄像头对接USB音频设备将设备接入USB拓展坞,并验证设备是否可用。

在线提单