项目概述: 本项目需要在树莓派3B(提供系统和硬件)平台上开发一个QT程序,用于在支持树莓派的外接DSI电容触摸屏上显示动画表情、显示文字等功能。 该QT程序可以通过接收ROS消息,切换动画表情、内容具体显示、播放音频。 具体需求: QT程序: 1. 在指定的树莓派硬件和系统上进行QT程序的开发。(提供的树莓派安装Lubuntu系统、内置ROS、开机自启roscore) 2. QT程序能在树莓派外接电容DSI显示屏(4.3寸,800x480分辨率)上全屏显示动画表情、文字、播放音效(提供800x480的图片素材或GIF)。 3. QT程序通过订阅ROS接收消息,在树莓派外接显示屏上切换对应内容(消息对应的状态列表,见附件),不影响无线VNC连接时的操作。 4. QT程序接收的消息应包含消息代码、音效内容、文字内容、图片地址、图片/文字位置等,不仅可以实现切换固定动画表情,也可以自定义显示图片和文字内容。 5. QT程序在播放动画效果的同时,监听是否有新的消息,如果有新的消息指令,播放完当前动画,再执行新消息中的动画。 6. QT程序接收到自定义屏幕内容消息,可以任意摆放多张图片/多段文字内容,根据消息内的信息可以设置图片/文字显示的位置。 7. QT程序需要在屏幕上全屏显示,不显示系统的工具栏。 8. QT程序需要提供手动开启或关闭的方式。 9. QT程序需要提供开机自启功能,开启和关闭开机自启的方式。 交付要求: QT程序交付包含程序源码、可执行文件、功能测试软件、使用文档、开发文档。 1. 程序源码、可执行文件:最终版程序的源代码,满足需求的可执行文件,可以用测试软件进行测试。 2. 功能测试软件:一个简单的图形界面测试工具,可以用于切换表情、发送自定义图片/文字。 3. 使用文档:该文档源码需要说明QT程序相关的使用,包含:①源码编译方法;②开机自启QT程序的方法;③开启/关闭QT程序的方法; 4. 开发文档:该文档能用于指导修改程序的部分源码,比如:修改某动画对应的ROS消息;替换表情动画素材的方法;修改订阅ROS节点名称的方法;增加/删除接收到消息后显示对应状态的方法。
硬件环境: 乐鑫官方 ESP32-LyraT 开发板。 功能需求: 1.支持 amr,mp3,wav,aac 音频格式播放。 2.支持从 SD 卡中加载音乐播放。 3.可以设置音乐开始播放的起始位置(以字节为单位)。 4.支持暂停播放和取消暂停,取消暂停后继续播放音乐。例如一首音乐播放到第 36 秒处暂 停播放,设置取消暂停后还能从第 36 秒处继续播放。 5.支持随时停止播放音乐(停止后取消音频挂载并释放内存)。 6.支持设置播放音量(音量值 0~100),支持读取当前音量值。 7.能够判断当前是否正在播放音乐,可以获取音乐播放进度(返回时间或字节)。 8.支持录音,支持以 AMR 格式保存音频文件。支持以 16K 和 8K 采样率, 支持单声道和双声 道两种模式采集。 交付内容: 1. 编译好的 bin 固件:能够满足上述功能且能够通过固件功能的稳定性测试,对固件中其 它功能的兼容性测试以及使用的简洁性验证。 2. 源代码:第一阶段交付最终版固件的源代码。 3. 固件使用文档和源代码解释文档:固件使用文档需要描述清楚音频部分功能的使用说明, 源代码解释文档需要记录下固件中音频部分的开发过程,能够指导甲方了解固件中关于 音频源码的设计,理解音频部分源码。
1、需求描述 使用鲲鹏920芯片指令完成X86 Intrinsic函数的适配封装 每个函数以inline函数形式实现。 推荐使用内联汇编指令方式实现。 支持编译器GCC4.8.5以上版本。 提供完整的功能对比(对比X86平台)测试报告,功能100%对等,接口能平滑替代。 按照性能测试模型,提供完整的性能对比(对比X86平台)测试报告。 2、人才要求 精通c、c++、熟悉汇编 3、参考样例 FORCE_INLINE __m128i _mm_div_epi16(__m128i a, __m128i b) { __m128i res_m128i; float32x4_t fa[2], fb[2]; float32x4_t res_lo, res_hi; fa[0] = vcvtq_f32_s32(vmovl_s16(vget_low_s16(a.vect_s16))); fb[0] = vcvtq_f32_s32(vmovl_s16(vget_low_s16(b.vect_s16))); fa[1] = vcvtq_f32_s32(vmovl_s16(vget_high_s16(a.vect_s16))); fb[1] = vcvtq_f32_s32(vmovl_s16(vget_high_s16(b.vect_s16))); res_lo = vdivq_f32(fa[0], fb[0]); res_hi = vdivq_f32(fa[1], fb[1]); res_m128i.vect_s16 = vcombine_s16(vmovn_s32(vcvtq_s32_f32(res_lo)), vmovn_s32(vcvtq_s32_f32(res_hi))); return res_m128i; } 4、合作方式 开发方式:远程开发 开发周期:10-15天