Microduino 智能体重秤/zh

来自Microduino Wikipedia
跳转至: 导航搜索

概述

  • 项目名称:Microduino智能体重秤
  • 目的:制作一个0-100kg范围的体重秤,能将体重显示在OLED屏幕上,在不同体重范围内发出不同的声音,因为男生和女生不一样,通过按键切换来实现男女在不同体重范围播放不同的语音提示用户,同时在不同体重范围会有不同强度的震动。
  • 难度:中级
  • 耗时:3小时
  • 制作者:Microduino Studio-YLB&&Xiaoyun

材料清单

  • Microduino设备
模块 数量 功能
Microduino-Core+/zh 1 核心板
Microduino-USBTTL/zh 1 下载程序
Microduino-Audio/zh 1 音频模块
Microduino-Amplifier/zh 1 声音放大
Microduino-OLED/zh 1 显示
Microduino-Duo-h/zh 1 扩展,降低高度
Microduino-Weight 1 测量重力
  • 其他设备
0-100KG压力传感器 1 压力传感
USB数据线 1 连接
存储卡 1 存储声音
喇叭 1 发声
按键 1 切换模式

原理

核心通过压力传感器获取到重力,根据不同的体重控制发声和震动。核心根据不同体重发送不同串口(Serial1)指令给Microduino-Audio/zh模块,同时结合Microduino-Amplifier/zh功放模块来播放声音。震动则通过PWM引脚来控制震动马达的震动强弱。然后将需要的信息显示在OLED屏幕上。系统增加了姿态传感器,可以检测体重秤的倾斜,如果大于某个角度,就发出警报音。

调试

准备

  • 准备音频文件,用来语音提示的音频文件。程序中把体重范围分了7类,男女各不相同,因此需要使用了15种声音,包括警报音。玩家可自行更改。注意TF卡里面的文件夹命名必须是 01 02………….99 在文件夹里面的歌曲文件命名必须是 001 002 003………。详细参考JQ6500语音芯片使用说明书:文件:JQ6500.pdf
  • 音频下载:文件:Music.zip
  • 将准备好的音频文件拷贝到存储卡里。

硬件组装

  • 步骤一:将存储卡放在Audio模块上。
  • 步骤二:将用到的Core+、USBTTL、Duo-H2、Audio、Amilifier、10DOF、称重传感器模块叠堆在一起,注意需要将Audio和Amilifier叠在一起,模块之间插紧。
  • 步骤三:将OLED通过转接线接到Duo-H2底下的接口。
  • 步骤四:制作按键,将按键的两个常开引脚分别接上一根杜邦线,一头接到Microduino板子上的D6引脚,另一头接GND。
  • 步骤五:准备两个震动马达,分别接到称重传感器模块的震动马达接口上。
  • 步骤六:准备一个或两个喇叭,接到Amplifier的喇叭接口上。
  • 步骤七:将整个系统放到称重传感器上。压力传感器接到称重模块接口上。

程序

下载好程序打开Weight_Audio,编译通过后选择好板卡和串口下载到核心中。

  • 程序说明:
    • Audio.h:Audio模块的串口控制指令;
    • HX711:称重传感器获取重量;
    • MPU6050.h:姿态检测;
    • OLED.h:OLED显示界面;
    • def.h:定义文件,比如:按键引脚,震动马达引脚,串口使用等;
    • key.h:按键检测。

控制声音方法:在不同体重范围内播放指定歌曲。注意:要先用audio_choose(9);选择指定的歌曲,然后再用audio_play();来播放音乐。为了音乐只播放一次,初始化通过audio_mode(4);设置成只播放一次。

if(!sta)
      {
        //Serial.print("We are the Girl->>>>>>>");
        if(Weight>=25&&Weight<=34.5)
          audio_choose(2);
        else if(Weight>=35&&Weight<=39.5)
          audio_choose(3);
        else if(Weight>=40&&Weight<=44.5)
          audio_choose(4);
        else if(Weight>=45&&Weight<=52)
          audio_choose(5);
        else if(Weight>=52.5&&Weight<=57)
          audio_choose(6);
        else if(Weight>=57.5&&Weight<=62)
          audio_choose(7);
        else if(Weight>=62.5)
          audio_choose(8);
      }
audio_play();

Audio音频模块采用的是串口通讯,默认使用Serial1(D2,D3),玩家可根据需求更改成Serial(D0,D1)或SoftwareSerial(D4,D5),同时你需要修改程序,用到哪个就选择哪个。

//#define Audio_serial Serial 
#define Audio_serial Serial1
//#define Audio_serial mySerial

结果

  • 下载程序后,我们可以看到OLED屏幕上有显示,主要包括:
    • T:体重
    • D:角度
    • Boy或Girl
  • 当你往后倾斜角度大于14度时就会报警提示倾斜幅度过大,可在def.h文件里面的#define Angle 14修改角度大小。
  • 你可通过按键来切换男女模式,每按一次切换一次状态。
  • 当有重物压在秤的面板上,就能显示出物体重量,同时根据男女模式和体重范围就能播放不同的语音。

注意问题

  • Microduino-USBTTL模块下载完程序后,可以取下不用,然后通过Duo-h板子的microUSB接口供电,这样电流会大一点,声音效果也会好一点。
  • 在TF卡里面新建一个01文件夹,里面歌曲命名出001~015.
  • 需要将Audio和Amilifier叠在一起,模块之间插紧。
  • 压力传感器接到称重模块接口上,接口顺序要对,否则初始化程序出现错误。
  • Audio音频模块采用的是串口通讯,默认使用Serial1(D2,D3),如果更改成Serial(D0,D1)每次下载程序都需要取下Audio模块,否则与USBTTL串口冲突。