MaixSense 开发板是Sipeed公司基于全志 R329-N4 打造的堪称最小Linux 卡片电脑, 整个套件加上3D打印的外壳,尺寸大约35mm x 55mm。

全志 R329-N4芯片,含有双核 ARM Cortex™-A53@1.5GHz(ARM v8 架构),搭载周易TZ1AIPU(最大支持0.25TOPS@600MHz),芯片内集成两颗HIFI4 DSP@400MHz(32KB L1 I-cache + 32KB L1 D-cache per core,2MB SRAM),可以做音频的预处理和后处理,片上集成SIP 256MB DDR3,减少BOM成本,便于PCB制板。

套件包含一个搭载的高度集成 SOM 核心板,以及一个多功能 IO 扩展底板,可以运行 Linux 系统, 并具备出色的扩展功能,套件包含两个模拟MEMS麦克风(平均灵敏度91dB SPL@1kHz),一个小喇叭,一个摄像头(出厂默认OV9732,最高支持720P@30fps HD,采用USB-C连接器,支持正反插,可分别用作前后摄),1.5寸SPI总线屏幕(接口采用0.5mm 12P FPC,分辨率240*240)。

可以将它用于搭建个人服务器、开发智能语音助手、设计机器人等场景。它通过内置的周易 AIPU 处理器同时支持智能语音和视频图像处理,开发者可以直接在开发板上跑通相关 CV , NLP 等 AI 模型。

1. 烧录配置系统

按照 MaixSense 简介 - Sipeed Wiki 步骤,在Windows 10下,使用Etcher,烧录armbian 系统。

插入烧录好的SD卡,连接USB串口线,作为电源和串口连接。打开串口终端,进行连接:

使用 nmtui 指令,进入可视化的WIFI配置界面, 选择自己的 SSID ,输入连接密码,确认即可。

使用 ifconfig 指令,查看本机的网络参数。

当WIFI配置好后,可以通过WIFI进行新的 PuTTY 连接,速度更快。

使用 armbian-config 指令,设置armbian 的国内 APT源。

选中Personal,选择Mirrors,找到国内的apt源,选清华大学的镜像。

安装Neofetch,

apt install neofetch

运行Neofetch,查看系统基本信息。

使用SFTP在上位机和开发板之间传递文件。

2. 测试摄像头和屏幕

固件里带有ffmpeg,可以采用该命令从摄像头采集100帧视频,并在屏幕上显示:

ffmpeg -i /dev/video0 -vframes 100  -s 240*240 -pix_fmt rgb565le  -vf transpose=2,transpose=2 -f fbdev /dev/fb0

屏幕上显示摄像头采集的视频,说明这两个设备工作正常。PuTTY终端显示如下:

root@maixsense:~# ffmpeg -i /dev/video0 -vframes 10  -s 240*240 -pix_fmt rgb565le  -vf transpose=2,transpose=2 -f fbdev /dev/fb0
ffmpeg version 4.3.2-0+deb11u2 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --extra-version=0+deb11u2 --toolchain=hardened --libdir=/usr/lib/aarch64-linux-gnu --incdir=/usr/include/aarch64-linux-gnu --arch=arm64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 2774.270943, bitrate: 147456 kb/s
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1280x720, 147456 kb/s, 10 fps, 10 tbr, 1000k tbn, 1000k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> rawvideo (native))
Press [q] to stop, [?] for help
[swscaler @ 0xaaaadac902f0] full chroma interpolation for destination format 'rgb565le' not yet implemented
Output #0, fbdev, to '/dev/fb0':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0: Video: rawvideo (RGB[16] / 0x10424752), rgb565le, 240x240, q=2-31, 9216 kb/s, 10 fps, 10 tbn, 10 tbc
    Metadata:
      encoder         : Lavc58.91.100 rawvideo
frame=   10 fps=7.2 q=-0.0 Lsize=N/A time=00:00:01.70 bitrate=N/A speed=1.23x
video:1125kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
root@maixsense:~#

3. 测试麦克风和喇叭

使用 arecord 和 aplay 录制和播放音频。

#使用麦克风录音
arecord test.wav#使用喇叭播放录音
aplay test.wav#录制48KHz采样音频
arecord -f dat test48.wav

缺省情况下,录音和播放的声音都很小,需要通过 alsamixer 调整音量。

查看arecord的使用帮助,

root@maixsense:~# arecord
Usage: arecord [OPTION]... [FILE]...

-h, --help              help
    --version           print current version
-l, --list-devices      list all soundcards and digital audio devices
-L, --list-pcms         list device names
-D, --device=NAME       select PCM by name
-q, --quiet             quiet mode
-t, --file-type TYPE    file type (voc, wav, raw or au)
-c, --channels=#        channels
-f, --format=FORMAT     sample format (case insensitive)
-r, --rate=#            sample rate
-d, --duration=#        interrupt after # seconds
-s, --samples=#         interrupt after # samples per channel
-M, --mmap              mmap stream
-N, --nonblock          nonblocking mode
-F, --period-time=#     distance between interrupts is # microseconds
-B, --buffer-time=#     buffer duration is # microseconds
    --period-size=#     distance between interrupts is # frames
    --buffer-size=#     buffer duration is # frames
-A, --avail-min=#       min available space for wakeup is # microseconds
-R, --start-delay=#     delay for automatic PCM start is # microseconds
                        (relative to buffer size if <= 0)
-T, --stop-delay=#      delay for automatic PCM stop is # microseconds from xrun
-v, --verbose           show PCM structure and setup (accumulative)
-V, --vumeter=TYPE      enable VU meter (TYPE: mono or stereo)
-I, --separate-channels one file for each channel
-i, --interactive       allow interactive operation from stdin
-m, --chmap=ch1,ch2,..  Give the channel map to override or follow
    --disable-resample  disable automatic rate resample
    --disable-channels  disable automatic channel conversions
    --disable-format    disable automatic format conversions
    --disable-softvol   disable software volume control (softvol)
    --test-position     test ring buffer position
    --test-coef=#       test coefficient for ring buffer position (default 8)
                        expression for validation is: coef * (buffer_size / 2)
    --test-nowait       do not wait for ring buffer - eats whole CPU
    --max-file-time=#   start another output file when the old file has recorded
                        for this many seconds
    --process-id-file   write the process ID here
    --use-strftime      apply the strftime facility to the output file name
    --dump-hw-params    dump hw_params of the device
    --fatal-errors      treat all errors as fatal
Recognized sample formats are: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE IEC958_SUBFRAME_LE IEC958_SUBFRAME_BE MU_LAW A_LAW IMA_ADPCM MPEG GSM S20_LE S20_BE U20_LE U20_BE SPECIAL S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE U18_3BE G723_24 G723_24_1B G723_40 G723_40_1B DSD_U8 DSD_U16_LE DSD_U32_LE DSD_U16_BE DSD_U32_BE
Some of these may not be available on selected hardware
The available format shortcuts are:
-f cd (16 bit little endian, 44100, stereo)
-f cdr (16 bit big endian, 44100, stereo)
-f dat (16 bit little endian, 48000, stereo)

4. mplayer播放音视频

mplayer 可以播放 MP3 和 MP4 格式的文件。

固件里没有mplayer,需要自己安装:

root@maixsense:~#  apt install mplayer
root@maixsense:~#  mplayer gsls.mp3
MPlayer 1.4 (Debian), built with gcc-10 (C) 2000-2019 MPlayer Team
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.Playing gsls.mp3.
libavformat version 58.45.100 (external)
Audio only file format detected.
Load subtitles in ./
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 44100 Hz, 2 ch, s16le, 64.0 kbit/4.54% (ratio: 8000->176400)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 152.1 (02:32.1) of 152.0 (02:32.0)  0.8%Exiting... (End of file)

播放MP3文件正常。

播放MP4报错,回头有空再查查是什么原因。

root@maixsense:~# mplayer record2.mp4
MPlayer 1.4 (Debian), built with gcc-10 (C) 2000-2019 MPlayer Team
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing record2.mp4.
libavformat version 58.45.100 (external)
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xffffac1f8020]moov atom not found
LAVF_header: av_open_input_stream() failed

Exiting... (End of file)

5. 小结

这款板子采用全志的R329芯片,主打音频处理,SIP的DDR3只有256MB,做音频应该够用;做小尺寸的视频处理还行,想做大尺寸、复杂算法,估计就有些捉襟见肘了。

试了一下,板子的麦克风录音效果还好,噪音比较小,录音最大采样率支持到48KHz;喇叭的效果就很一般了,用来做做算法就得了,就不要追求享受了,想要享受的话,可以试试 Xiaomi Sound智能音箱,用的是同一款芯片,据说效果很好。

老徐 2021/9/26

MaixSense R329板开箱 - 音频视频测试相关推荐

  1. STM32WL开发之LM401评估板开箱及PingPong测试

    前言:在前一篇<STM32WL开发之LORA产品选型>中确定了选用STM32WL方案后,随即购买了两块易智联(西安)科技有限公司的LM401-Pro-Kit评估板,开始进行验证测试及产品设 ...

  2. 在线音频/视频测试地址

    ​音频在线测试地址:http://downsc.chinaz.net/Files/DownLoad/sound1/201906/11582.mp3http://downsc.chinaz.net/fi ...

  3. html5视频播放怎么结束,html5设置或返回音频/视频是否应该在结束时再次播放的属性loop...

    实例 将视频设置为循环播放:myVid=document.getElementById("video1");myVid.loop=true; 定义和用法 loop 属性设置或返回音 ...

  4. 如何做好 Android 端音视频测试?

    在用户眼中,优秀的音视频产品应该具有清晰.低延时.流畅.秒开.抗丢包.高音效等特征.为了满足用户以上要求,网易云信的工程师通过自建源站,在SDK端为了适应网络优化进行QoS优化,对视频编码器进行优化, ...

  5. 蓝色版苹果iPhone 12开箱上手视频流出;谷歌回应司法部反垄断诉讼:存在严重漏洞;​Git 2.29 稳定版发布|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 国内要闻 移动端光线追踪来了:华为将推出凤凰引擎 根据华为开 ...

  6. iOS 音频视频图像合成那点事

    代码地址如下: http://www.demodashi.com/demo/13420.html 人而无信不知其可 前言 很久很久没有写点什么了,只因为最近事情太多了,这几天终于闲下来了,趁此机会,记 ...

  7. 从入门到入土:Python实现爬取某站视频|根据视频编号|支持通过视频名称和创作者名称寻找编号|以及python moviepy合并音频视频

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) Python实现爬取某站视频|根据视频编号|支持通过视频名称 ...

  8. 关于音视频测试的一点建议

    作者:罗必达,腾讯音视频实验室质量平台组组长,高级工程师.早年在微软从事移动测试开发,先后参与了 Windows Live Messenger 和 Bing Mobile 两个项目的测试工作.2011 ...

  9. 计算机网络(第7版) - 第八章 互联网上的音频/视频服务 - 习题

    第八章.互联网上的音频/视频服务 本章的习题 视频数据在因特网上传送所用的协议有哪些影响?既然现有的电信网能够传送音频/视频数据,并且能够保证质量,为什么还要用因特网来传送音频/视频数据呢?  区别: ...

最新文章

  1. Mrtg搭建流量监控服务器
  2. android eclipse 环境
  3. facl:文件访问控制列表
  4. 【知识图谱】知识推理,知识图谱里最“人工智能”的一段
  5. JavaScript版几种常见排序算法
  6. linux 进程通信 消息队列
  7. 中西方对时间的差异_中西方时间观念差异 英文
  8. C# 实现在线软件自动升级自动下载更新文件
  9. 网易邮箱大师如何添加Word附件 添加附件方法步骤详细介绍
  10. Apple商务管理分发
  11. 【Poco学习笔记】Poco库介绍
  12. 纯代码蓝色理想的logo
  13. Perfmon监控Windows进程性能
  14. 7月生日会|清凉的惊喜与祝福
  15. 第 13 章 一 垃圾回收概述
  16. PHP Redis使用手册
  17. 零基础学浙大翁恺C语言(2):计算
  18. 安全合规/GDPR--14--通用数据保护条例简介(GDPR简介)
  19. MongoDB的基本操作(创建数据库,数据表,查询数据表信息)
  20. python程序中如何合理处理[WinError 5]拒绝访问的错误

热门文章

  1. RK3568平台开发系列讲解(音频篇)Android音量控制流程
  2. 金融应用系统上线部署实施方案 AIX P570 + EMC DMX4-950
  3. 超级计算机学校,超级计算机排名_计算机院校排名_计算机学校排名
  4. 从安全气囊到标配EDR,TOP10控制器供应商领跑市场
  5. 如何从官网下载jdk_如何从官网下载itunes
  6. 两个不同空间三维直角坐标转换(附软件下载)
  7. 弱口令到底是什么牛马?
  8. fick第二定律matlab求解,(最新整理)实验二MATLAB数值计算常微分方程(组)的求解
  9. 数学各个分支(借花献佛)——数论,拓扑,射影几何,常微分方程,非欧几何
  10. java 求导函数_求导程序编写(oo-java编程)