“Microduino 智能体重秤/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
文档
材料清单
 
(未显示2个用户的19个中间版本)
第25行: 第25行:
 
|[[Microduino-OLED/zh]] ||1||显示
 
|[[Microduino-OLED/zh]] ||1||显示
 
|-
 
|-
|[[Microduino-Duo-H2/zh]] ||1||扩展,降低高度
+
|[[Microduino-Duo-h/zh]] ||1||扩展,降低高度
 
|-
 
|-
|称重模块 ||1||测量重力  
+
|Microduino-Weight ||1||测量重力  
 
|}
 
|}
 
*其他设备
 
*其他设备
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
|USB数据线||1||连接
+
|0-100KG压力传感器||1||压力传感
 
|-
 
|-
 
|USB数据线||1||连接
 
|USB数据线||1||连接
第42行: 第42行:
 
|按键 ||1||切换模式
 
|按键 ||1||切换模式
 
|}
 
|}
[[File:Wight_audio_all. jpg|600px|center|thumb]]
 
  
 
==原理==
 
==原理==
 
核心通过压力传感器获取到重力,根据不同的体重控制发声和震动。核心根据不同体重发送不同串口(Serial1)指令给[[Microduino-Audio/zh]]模块,同时结合[[Microduino-Amplifier/zh]]功放模块来播放声音。震动则通过PWM引脚来控制震动马达的震动强弱。然后将需要的信息显示在OLED屏幕上。系统增加了姿态传感器,可以检测体重秤的倾斜,如果大于某个角度,就发出警报音。
 
核心通过压力传感器获取到重力,根据不同的体重控制发声和震动。核心根据不同体重发送不同串口(Serial1)指令给[[Microduino-Audio/zh]]模块,同时结合[[Microduino-Amplifier/zh]]功放模块来播放声音。震动则通过PWM引脚来控制震动马达的震动强弱。然后将需要的信息显示在OLED屏幕上。系统增加了姿态传感器,可以检测体重秤的倾斜,如果大于某个角度,就发出警报音。
[[File:Wight_audio_sch. jpg|600px|center|thumb]]
+
[[File:Wight_audio_sch.jpg|600px|center|thumb]]
  
 
==调试==
 
==调试==
 
===准备===
 
===准备===
*准备音频文件,用来语音提示的音频文件。程序中把体重范围分了7类,男女各不相同,因此需要使用了15种声音,包括警报音。玩家可自行更改。注意, 在 TF卡里面的文件夹命名必须是 01 02………….99 在文件夹里面的歌曲文件命名必须是 001 002 003………。详细参考JQ6500语音芯片使用说明书:[[File:JQ6500.pdf]]
+
*准备音频文件,用来语音提示的音频文件。程序中把体重范围分了7类,男女各不相同,因此需要使用了15种声音,包括警报音。玩家可自行更改。'''注意TF卡里面的文件夹命名必须是 01 02………….99 在文件夹里面的歌曲文件命名必须是 001 002 003………。详细参考JQ6500语音芯片使用说明书:[[File:JQ6500.pdf]]'''
*音频下载:[[Audio_music.zip|thumb]]
+
*音频下载:[[File:music.zip]]
 
*将准备好的音频文件拷贝到存储卡里。
 
*将准备好的音频文件拷贝到存储卡里。
 +
 
===硬件组装===
 
===硬件组装===
 
*步骤一:将存储卡放在Audio模块上。
 
*步骤一:将存储卡放在Audio模块上。
[[File:Wight_audio_setup_1. jpg|600px|center|thumb]]
+
[[File:Wight_audio_setup_1.jpg|600px|center|thumb]]
  
*步骤二:将用到的Core+、USBTTL、Duo-H2、Audio、Amilifier、10DO、称重传感器模块叠堆在一起,注意需要将Audio和Amilifier叠在一起,需要插紧。
+
*步骤二:将用到的Core+、USBTTL、Duo-H2、Audio、Amilifier、10DOF、称重传感器模块叠堆在一起,'''注意需要将Audio和Amilifier叠在一起,模块之间插紧。'''
[[File:Wight_audio_setup_2. jpg|600px|center|thumb]]
+
[[File:Wight_audio_setup_2.jpg|600px|center|thumb]]
  
 
*步骤三:将OLED通过转接线接到Duo-H2底下的接口。
 
*步骤三:将OLED通过转接线接到Duo-H2底下的接口。
[[File:Wight_audio_setup_3. jpg|600px|center|thumb]]
+
[[File:Wight_audio_setup_3.jpg|600px|center|thumb]]
  
 
*步骤四:制作按键,将按键的两个常开引脚分别接上一根杜邦线,一头接到Microduino板子上的D6引脚,另一头接GND。
 
*步骤四:制作按键,将按键的两个常开引脚分别接上一根杜邦线,一头接到Microduino板子上的D6引脚,另一头接GND。
[[File:Wight_audio_setup_4. jpg|600px|center|thumb]]
+
[[File:Wight_audio_setup_4.jpg|600px|center|thumb]]
[[File:Wight_audio_setup_5. jpg|600px|center|thumb]]
+
[[File:Wight_audio_setup_5.jpg|600px|center|thumb]]
  
 
*步骤五:准备两个震动马达,分别接到称重传感器模块的震动马达接口上。
 
*步骤五:准备两个震动马达,分别接到称重传感器模块的震动马达接口上。
[[File:Wight_audio_setup_6. jpg|600px|center|thumb]]
+
[[File:Wight_audio_setup_6.jpg|600px|center|thumb]]
  
 
*步骤六:准备一个或两个喇叭,接到Amplifier的喇叭接口上。
 
*步骤六:准备一个或两个喇叭,接到Amplifier的喇叭接口上。
[[File:Wight_audio_setup_7. jpg|600px|center|thumb]]
+
[[File:Wight_audio_setup_7.jpg|600px|center|thumb]]
  
 
*步骤七:将整个系统放到称重传感器上。压力传感器接到称重模块接口上。
 
*步骤七:将整个系统放到称重传感器上。压力传感器接到称重模块接口上。
[[File:Wight_audio_setup_8. jpg|600px|center|thumb]]
+
[[File:Wight_audio_setup_8.jpg|600px|center|thumb]]
[[File:Wight_audio_setup_9. jpg|600px|center|thumb]]
+
[[File:Wight_audio_setup_9.jpg|600px|center|thumb]]
  
 
===程序===
 
===程序===
*你需要使用MPU6050库和OLED库支持包,_01_Microduino_OLED_U8glib和_05_Microduino_10DOF,将下载的库文件放到ArduinoIDE编译器的libraries目录中,重启IDE就行。
+
*你需要使用MPU6050库和OLED库支持包,[https://github.com/wasdpkj/Microduino-IDE/tree/master/arduino-1.0.6-windows/libraries/_01_Microduino_OLED_U8glib _01_Microduino_OLED_U8glib]和[https://github.com/wasdpkj/Microduino-IDE/tree/master/arduino-1.0.6-windows/libraries/_05_Microduino_10DOF _05_Microduino_10DOF],将下载的库文件放到ArduinoIDE编译器的libraries目录中,重启IDE就行。
  
*程序下载:
+
*程序下载:[https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced_Tutorial/Weight_Audio Weight_Audio]
  
 
下载好程序打开Weight_Audio,编译通过后选择好板卡和串口下载到核心中。
 
下载好程序打开Weight_Audio,编译通过后选择好板卡和串口下载到核心中。
第94行: 第94行:
 
控制声音方法:在不同体重范围内播放指定歌曲。注意:要先用audio_choose(9);选择指定的歌曲,然后再用audio_play();来播放音乐。为了音乐只播放一次,初始化通过audio_mode(4);设置成只播放一次。
 
控制声音方法:在不同体重范围内播放指定歌曲。注意:要先用audio_choose(9);选择指定的歌曲,然后再用audio_play();来播放音乐。为了音乐只播放一次,初始化通过audio_mode(4);设置成只播放一次。
 
<source lang="cpp">
 
<source lang="cpp">
         if(Weight>=25&&Weight<40)
+
if(!sta)
          j=0;
+
      {
         else if(Weight>=40&&Weight<=45)
+
         //Serial.print("We are the Girl->>>>>>>");
           audio_choose(9);
+
         if(Weight>=25&&Weight<=34.5)
         else if(Weight>=45.5&&Weight<=57.5)
+
           audio_choose(2);
           audio_choose(10);
+
         else if(Weight>=35&&Weight<=39.5)
         else if(Weight>=58&&Weight<=62.5)
+
           audio_choose(3);
           audio_choose(11);
+
         else if(Weight>=40&&Weight<=44.5)
         else if(Weight>=63&&Weight<=67.5)
+
           audio_choose(4);
           audio_choose(12);
+
         else if(Weight>=45&&Weight<=52)
         else if(Weight>=68&&Weight<=77.5)
+
           audio_choose(5);
           audio_choose(13);
+
         else if(Weight>=52.5&&Weight<=57)
         else if(Weight>=78&&Weight<90)
+
           audio_choose(6);
           audio_choose(14);
+
         else if(Weight>=57.5&&Weight<=62)
         else if(Weight>=90)
+
           audio_choose(7);
           audio_choose(15);
+
         else if(Weight>=62.5)
       audio_play();
+
           audio_choose(8);
 +
       }
 +
audio_play();
 
</source>
 
</source>
 
Audio音频模块采用的是串口通讯,默认使用Serial1(D2,D3),玩家可根据需求更改成Serial(D0,D1)或SoftwareSerial(D4,D5),同时你需要修改程序,用到哪个就选择哪个。
 
Audio音频模块采用的是串口通讯,默认使用Serial1(D2,D3),玩家可根据需求更改成Serial(D0,D1)或SoftwareSerial(D4,D5),同时你需要修改程序,用到哪个就选择哪个。
 +
 +
<source lang="cpp">
 
//#define Audio_serial Serial  
 
//#define Audio_serial Serial  
 
#define Audio_serial Serial1
 
#define Audio_serial Serial1
 
//#define Audio_serial mySerial
 
//#define Audio_serial mySerial
 +
</source>
  
 
==结果==
 
==结果==
*下载程序后,我们可以看到OLED屏幕上有显示,组要包括:
+
*下载程序后,我们可以看到OLED屏幕上有显示,主要包括:
 
**T:体重
 
**T:体重
 
**D:角度
 
**D:角度
第125行: 第130行:
 
*你可通过按键来切换男女模式,每按一次切换一次状态。
 
*你可通过按键来切换男女模式,每按一次切换一次状态。
 
*当有重物压在秤的面板上,就能显示出物体重量,同时根据男女模式和体重范围就能播放不同的语音。
 
*当有重物压在秤的面板上,就能显示出物体重量,同时根据男女模式和体重范围就能播放不同的语音。
 +
 +
[[File:Wight_audio_result_1.jpg|600px|center|thumb]]
 +
[[File:Wight_audio_result_2.jpg|600px|center|thumb]]
 +
 
==注意问题==
 
==注意问题==
 +
*Microduino-USBTTL模块下载完程序后,可以取下不用,然后通过Duo-h板子的microUSB接口供电,这样电流会大一点,声音效果也会好一点。
 
*在TF卡里面新建一个01文件夹,里面歌曲命名出001~015.
 
*在TF卡里面新建一个01文件夹,里面歌曲命名出001~015.
*
+
*需要将Audio和Amilifier叠在一起,模块之间插紧。
 +
*压力传感器接到称重模块接口上,接口顺序要对,否则初始化程序出现错误。
 +
* Audio音频模块采用的是串口通讯,默认使用Serial1(D2,D3),如果更改成Serial(D0,D1)每次下载程序都需要取下Audio模块,否则与USBTTL串口冲突。
 
|}
 
|}

2015年12月21日 (一) 03:33的最新版本

概述

  • 项目名称: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串口冲突。