基于stm32的JQ8900组合播报

 前言

  为了能够播报变量,如可实时播报温湿度,电压电流电阻值,参考JQ8900语音模块采用其组合模块播报,现对该功能实现及注意点进行记录。

一、硬件连接部分

  1. 电压最好为稳定的5v,建议外接供电,不要直接通过单片机电压引脚引出,可能造成喇叭电压供电不足发出滋滋滋的声音
  2. SPK+、SPK-接喇叭正负极
  3. RX、TX接单片机串口

二、JQ8900存放音频

  通过Micro线连接电脑和JQ8900,电脑会出现一个可移动磁盘,由于我们是组合模式播报,所以需要将生成的音频放到以ZH命名的文件夹里,注意生成的音频以wav或mp3格式,命名方式以两位的英文或数字形式,注意个位数的数字应为两个字节,即如00mp3,01mp3....  

(提醒:将音频移到U盘后需要拔掉Micro线再去使用串口调试上位机,否则会使JQ8900无法接收到串口发送的数据)

文字转语音软件

JQ8900串口上位机

芯片通信采用全双工串口通信;

波特率为 9600,数据位:8 ,停止位 1 位,检验位 N

三、JQ8900通信格式

其中需要注意的就是数据长度和和校验的计算,以及数据的发送形式

1.数据长度

JQ8900输出模式为十六进制。其中长度为曲目字节之和,一个曲目占两个字节,如“01”对应的是0x30,0x31两个字节,“dz”对应的是0x64, 0x7A

这里如果我想播报1049,则

1  >>01 >>0x30,0x31

0  >>00 >>0x30,0x30

4  >>04 >>0x30,0x34

9  >>09 >>0x30,0x39

需要在拆分后的每个单独数值前面加上 '0'

   // 4. 数值部分(拆分每个数字为 2 字节)

    char num_str[6];  // 存储字符串(最大 5 位数值)

    snprintf(num_str, sizeof(num_str), "%d", value);  // 将数值转换为字符串

    // 每个数字转换为 2 字节,0x30 是 '0',后面是数字字符

    for (int i = 0; num_str[i] != '\0'; i++) {

        frame[index++] = 0x30;  // '0'

        frame[index++] = num_str[i];  // 数字字符(例如 '1', '0', '2' 等)

    }

2.数据发送形式

因此计算数据长度(所占字节)为

    // 计算数值部分的字节数,每个数字占 2 字节

    int num_digits = 0;

    int temp_value = value;

    while (temp_value > 0) {

        temp_value /= 10;

        num_digits++;

}

其中num_digits(1049的长度为4)为数值长度,num_digits*2数据长度( 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x30, 0x39的字节数为8)

3.计算校验和

和校验为之前所有字节之和的低 8 ,即起始码到数据相加后取低 8

// 校验和计算函数

uint8_t calculateChecksum(uint8_t *frame, uint8_t length) {

    uint8_t checksum = 0;

    for (int i = 0; i < length; i++) {

        checksum += frame[i];  // 累加每个字节

    }

    return checksum & 0xFF;  // 取低 8 位

}

然后将数据帧通过串口发送即可实现语音播报

<think>好的,用户现在问的是用STM32F407实现人脸识别需要买什么器件。之前他们问过整个毕设的制作流程,我给出了详细的硬件选型、开发流程等。现在用户可能已经进入具体实施阶段,需要具体的器件清单去采购了。需要确保这次的回答更具体,直接列出必须的模块和相关型号,可能还要包括一些推荐的品牌或具体参数。 首先回顾之前的回答,硬件部分提到了核心控制器、图像采集模块、显示模块、存储和交互模块。这次要细化每个部分的具体型号和购买建议。比如STM32F407开发板,可能推荐正点原子或野火的,因为这两个品牌在国内比较常见,资料多,适合学生。 摄像头部分,之前提到OV7670、OV2640或者树莓派摄像头。现在需要具体说明每个摄像头的优缺点,比如OV7670成本低但像素低,OV2640像素高一些,但驱动可能复杂。还要考虑是否需要带FIFO的模块,这样能减少STM32的处理压力。 显示模块方面,ILI9341屏幕的尺寸和分辨率,是否需要触摸功能,这些都要说明。存储部分,SD卡模块和SPI接口的推荐,比如使用FATFS系统。交互模块如按键、蜂鸣器,这些可能用户已经有了,但还是要列出来。 另外,电源部分可能需要稳压模块,特别是如果使用多个外设的话,3.3V和5V的转换。调试工具如ST-Link和USB转串口模块也是必须的,特别是对于学生来说,调试是必不可少的。 可能还需要考虑扩展模块,比如外部SRAM,如果图像处理需要更大内存的话。以及是否推荐使用现有的开发板,比如正点原子的探索者系列,因为集成了一些外设,方便学生使用。 用户可能忽略的一些点,比如杜邦线、面包板这些连接线材,还有是否需要额外的支架或外壳。这些细节在采购时也很重要,但容易被忽略。 需要确保推荐的器件都是市场上容易买到的,并且有足够的资料和支持。比如OV系列摄像头在淘宝上有很多卖家,而正点原子或野火的开发板配套资料丰富,适合毕设项目。 最后,提醒用户在购买时注意兼容性,比如摄像头模块是否支持DCMI接口,是否需要额外的电平转换电路。以及是否需要提前准备SD卡,并格式化为合适的文件系统。</think>以下是基于STM32F407实现人脸识别系统所需的**核心器件清单及选型建议**(附关键参数和典型型号),适用于本科毕设开发: --- ### **一、核心必购器件** #### 1. **主控模块** - **STM32F407开发板** - 推荐型号:正点原子探索者/野火F407开发板 - 关键要求: - 必须包含 **DCMI接口**(用于摄像头直接连接) - 至少 **1MB Flash + 192KB RAM**(如STM32F407ZGT6) - 支持 **FSMC接口**(驱动大屏LCD) #### 2. **图像采集** - **摄像头模块**(二选一): - **OV7670 + FIFO模块** - 分辨率:640x480(实际可用320x240以降低计算量) - 优点:成本低(约¥30),直接输出RGB565格式 - 注意:需选择带 **AL422B FIFO芯片** 的版本(缓解STM32时序压力) - **OV2640模块** - 分辨率:1600x1200(可降采样至800x600使用) - 优点:支持JPEG压缩输出,节省RAM(推荐用于复杂算法) - 价格:约¥50-80 #### 3. **显示模块** - **TFT-LCD屏幕** - 型号:ILI9341(320x240)或SSD1963(800x480) - 接口:建议选择 **FSMC并口屏**(刷新率更高) - 触控:如需交互可选用电阻/电容触摸版本 #### 4. **存储模块** - **SD卡模块** - 接口:SPI协议(占用引脚少) - 容量:≥4GB(存储人脸特征库和配置文件) - 推荐:带电平转换的MicroSD卡槽模块(约¥10) #### 5. **交互与反馈** - **按键模块**:4x4矩阵键盘或独立按键(用于触发采集/训练) - **蜂鸣器/指示灯**:反馈识别状态(如成功/失败) - **可选**:JQ8900语音模块(播报识别结果,¥15-20) --- ### **二、辅助器件** #### 1. **电源管理** - **稳压模块**:AMS1117-3.3V(为摄像头/LCD供电) - **移动电源/5V适配器**:需提供≥2A电流(摄像头功耗约200mA) #### 2. **调试工具** - **ST-Link V2仿真器**:下载程序+调试(约¥25) - **USB转TTL模块**:CH340G芯片(输出调试日志,¥8) #### 3. **扩展模块(按需选配)** - **外部SRAM**:IS62WV51216(512KB,缓解内存不足问题,¥15) - **WiFi模块**:ESP8266-01S(上传识别记录到服务器,¥12) --- ### **三、推荐组合方案** #### **低成本方案**(总预算约¥300-400) ``` STM32F407开发板(¥150) OV7670+FIFO模块(¥35) 3.2寸ILI9341屏幕(¥45) SD卡模块+16GB卡(¥20) ST-Link V2+杜邦线(¥30) ``` #### **高性能方案**(支持复杂算法) ``` STM32F407核心板+底板(¥200) OV2640摄像头(¥80) 4.3寸800x480电容屏(¥90) 外部SRAM+ESP8266(¥30) ``` --- ### **四、采购注意事项** 1. **摄像头兼容性** - 确认OV7670模块是否包含 **SCCB协议** 电路(STM32需通过I2C模拟SCCB配置寄存器) - 优先选择提供 **STM32示例代码** 的卖家(如正点原子/野火配套模块) 2. **显示接口匹配** - 若使用FSMC接口屏,需确保开发板已引出FSMC数据线(如D0-D15) 3. **功耗测试** - 多设备同时工作时需测量总电流(建议5V电源输出≥2A) --- ### **五、替代方案建议** - **快速验证**:直接购买 **OpenMV4 H7摄像头模块**(内置人脸识别算法,通过串口与STM32通信,¥400+) - **扩展升级**:增加 **红外摄像头**(如OV9281)实现活体检测 实际开发中建议先从OV7670灰度识别入手,逐步优化算法复杂度。具体代码可参考ST官方库 **STM32CubeF4** 中的DCMI示例工程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值