发新帖本帖赏金 50.00元(功能说明)我要提问
12下一页
返回列表
打印

[MCU方案]+基于mps430低功耗计步器

[复制链接]
3169|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
偏爱番茄酱|  楼主 | 2015-6-15 22:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 偏爱番茄酱 于 2015-6-15 23:11 编辑

      本设计为多功能计步器,采用mps430作为主控制器,系统设计基于uC/OS-II,而界面设计基于uC/GUI。
       作为一款便携式穿戴设备,本设计以高可靠、低功耗为理念,对采集的数据滤波整形,最终实现精准计步;运用多种唤醒机制降低功耗。
       同时,TSI面板与TFTLCD显示,改善了人机交互体验。此外本设计还具有检测环境温、湿度,气压等功能。

基于MPS430低功耗计步器.jpg (19.74 KB )

基于MPS430低功耗计步器.jpg

相关帖子

沙发
偏爱番茄酱|  楼主 | 2015-6-15 23:01 | 只看该作者
系统主要硬件模块如下所述:
1.      主控制器:德州仪器MSP430FR5969。最新一代基于FRAM超低功耗MCU,是目前世界上最低功耗的控制器。具有多种超低功耗模式,灵活而丰富的系统外设。
2.      运动传感器:MPU6050。MPU6050是InvenSense公司生产的6轴传感器。本次设计中,使用了该传感器的三轴陀螺仪和三轴加速度计,用以检测运动状态。该传感器为数字传感器,通过IIC与MCU通讯;
3.      SDHC卡:采用金士顿公司的class10高速卡。通过基于文件系统的方式,MCU可以创建文本文件并写入数据。文本文件可以通过PC读取,方便Matlab等上位机进行分析。SDHC卡通过SPI与MCU通讯;
4.      BLE模块:采用德州仪器CC2541蓝牙模块,可以以较小功耗发送信息。蓝牙模块通过SCI与MCU通讯;
5.      显示器:采用串行128*64 OLED显示器,通过自己构建字库和图标等,可以完成较为丰富的显示功能,同时整体功耗也比较低。

使用特权

评论回复
板凳
偏爱番茄酱|  楼主 | 2015-6-15 23:01 | 只看该作者
原理图及PCB

原理图.png (189.49 KB )

原理图.png

原理图02.png (170.91 KB )

原理图02.png

PCB.png (217.92 KB )

PCB.png

使用特权

评论回复
地板
偏爱番茄酱|  楼主 | 2015-6-15 23:04 | 只看该作者
系统如设计:
系统软件设计分为三部分,即初始化流程、系统主循环功能和中断功能。
系统中断函数负责MPU6050数据的采集和测算,一直到最终的步数计算和运动状态检测。
       系统主循环负责OLED显示器的刷新和蓝牙信息的发送。
       在系统中断函数中,采集MPU6050原始数据以后,通过进行简单的数字滤波,可以认为得到一个较为稳定的数据。在经过一定的数字信号处理,也就是计步器的核心算法,可以得到使用者的运动状态,进而可以得到运动步数。事实上,借助MPU6050可以实现更多种运动状态的检测,包括上楼下楼、起立做下等。
       系统主循环中,如果检测到显示信息需要刷新,则刷新显示信息,同时经过蓝牙向PC发送信息。
系统中断函数负责MPU6050数据的采集和测算,一直到最终的步数计算和运动状态检测。
       系统主循环负责OLED显示器的刷新和蓝牙信息的发送。
       在系统中断函数中,采集MPU6050原始数据以后,通过进行简单的数字滤波,可以认为得到一个较为稳定的数据。在经过一定的数字信号处理,也就是计步器的核心算法,可以得到使用者的运动状态,进而可以得到运动步数。比赛阶段暂时不公开,之后利用寒假进一步完善后可以和大家分享。事实上,借助MPU6050可以实现更多种运动状态的检测,包括上楼下楼、起立做下等。
       系统主循环中,如果检测到显示信息需要刷新,则刷新显示信息,同时经过蓝牙向PC发送信息。
本次设计中使用了TI的BLE,同样保持了很低的工作时间,按照模块的手册中说明,其电流不超过5mA。然后再看MPU6050模块。

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 50.00 元 2015-08-25

评论
21小跑堂 2015-8-25 11:42 回复TA
秀出我的TI MCU方案奖金已发. 
5
偏爱番茄酱|  楼主 | 2015-6-15 23:10 | 只看该作者
部分源码:
1.        void TaskStartA(void *pdata)

2.        {
3.          pdata = pdata; /*无任何意义,防止编译器报警 */
4.       
5.          WDTCTL = WDT_MDLY_32; /*设置时钟节拍间隔为32ms*/
6.          IE1 |= BIT0; /* 开看门狗定时器中断*/
7.       
8.          P2SEL &= BIT1; //引脚功能选择器
9.          P2DIR |= BIT1; //方向寄存器,1为输出模式
10.       
11.          while(1)
12.          {
13.            P2OUT |= BIT1;
14.            OSTimeDly(10); //延时10个时钟节拍,任务挂起,等待延时结束(此时任务B执行)
15.          }
16.        }
17.        void TaskStartB(void *pdata)

18.        {
19.          pdata = pdata; /*无任何意义,防止编译器报警*/
20.       
21.          WDTCTL = WDT_MDLY_32; /*设置时钟节拍间隔为32ms*/
22.          IE1 |= BIT0; /*开看门狗定时器中断*/
23.       
24.          P2SEL &= BIT1; //引脚功能选择器
25.          P2DIR |= BIT1; //方向寄存器,1为输出模式
26.       
27.          while(1)
28.          {
29.            P2OUT &= ~BIT1;
30.            OSTimeDly(20); //延时20个时钟节拍,任务挂起,等待延时结束(此时任务B执行)
31.          }
32.   }

使用特权

评论回复
6
dirtwillfly| | 2015-6-16 07:59 | 只看该作者

使用特权

评论回复
7
JY-DX-JY| | 2015-6-16 16:41 | 只看该作者
顶一个。。。。

使用特权

评论回复
8
smilingangel| | 2015-6-16 19:32 | 只看该作者
本设计以高可靠、低功耗为理念,对采集的数据滤波整形,最终实现精准计步;运用多种唤醒机制降低功耗。

使用特权

评论回复
9
smilingangel| | 2015-6-16 19:33 | 只看该作者
借助MPU6050可以实现更多种运动状态的检测,包括上楼下楼、起立做下等。这个是很不错诶选择。

使用特权

评论回复
10
lgq1542380129| | 2015-6-16 21:18 | 只看该作者
赞一个。

使用特权

评论回复
11
lgq1542380129| | 2015-6-16 21:19 | 只看该作者
但是看楼主的原理图,没看出来怎么低功耗法

使用特权

评论回复
12
baimiaocun2015| | 2015-6-17 21:00 | 只看该作者
MPU6050是InvenSense公司生产的6轴传感器。本次设计中,使用了该传感器的三轴陀螺仪和三轴加速度计,用以检测运动状态。

使用特权

评论回复
13
309030106| | 2015-6-19 16:45 | 只看该作者
mark

使用特权

评论回复
14
zhangbo1985| | 2015-6-19 21:27 | 只看该作者
MPU6050是InvenSense公司生产的6轴传感器。本次设计中,使用了该传感器的三轴陀螺仪和三轴加速度计,用以检测运动状态。

计步器 的话主要用三周的加速度芯片的就可以的吧。

使用特权

评论回复
15
zhangbo1985| | 2015-6-19 21:41 | 只看该作者
关于MPU6050三周加速度与三轴陀螺仪的芯片的应用非常好的。

使用特权

评论回复
16
tongbu2015| | 2015-6-20 13:59 | 只看该作者
这个是5528的开发板的吧。。

使用特权

评论回复
17
偏爱番茄酱|  楼主 | 2015-6-20 18:04 | 只看该作者
下面,我将展示我们的低功耗设计原理及部分源代码

使用特权

评论回复
18
偏爱番茄酱|  楼主 | 2015-6-20 18:05 | 只看该作者
ADXL345应用——计步器设计(低功耗)

使用特权

评论回复
19
偏爱番茄酱|  楼主 | 2015-6-20 18:06 | 只看该作者
三种工作模式:
低功耗模式

    ADXL345自动调节功耗,与输出数据速率成比例,如果需要额外省电,可采用低功耗模式。该模式下,内部采样速率降低,12.5Hz至400Hz数据速率范围内达到省电目的,而噪声略微变大。要进入低功耗模式,在BW_RATE寄存器(地址0x2C)_中设置LOW_POWER位(位4)。



自动休眠模式

    如果ADXL345在静止期间自动切换到休眠模式,可以省电。要使能此功能,在THRESH_INACT寄存器(地址0x25)和TIME_INACT寄存器(地址0x26)设置一个值表示静止(适当值视应用而定),然后在POWER_CTL寄存器(地址0x2D)中设置AUTO_SLEEP位(位D4)和链接位(位D5)。VS为2.5V时,该模式下低于12.5Hz数据速率的功耗通常为23A。



待机模式

    更低功率操作,也可以使用待机模式。待机模式下,功耗降低到0.1A(典型值)。该模式中,无测量发生。在POWER_CTL寄存器(地址0x2D)中,清除测量位(位D3),可进入待机模式。器件在待机模式下保存FIFO内容。



    计步器设计中同时应用了单双击功能:初始画面显示



ADI MEMS     

Workshop

2012/2/9

   单击则显示                                 AT HUST STI

   长时间静止则切换至睡眠模式,显示         sleep mode

   单击后恢复第二幅初始画面。再双击则进入身高体重等参数设定。

使用特权

评论回复
20
偏爱番茄酱|  楼主 | 2015-6-20 18:06 | 只看该作者
if(fifo_flag==0)
    {
        disp_str(0,0,"    ADI MEMS     ");
        disp_str(0,2,"    Workshop     ");
        disp_str(0,4,"    2012/2/9     ");
        if(flag==1)
              disp_str(0,6,"   AT HUST STI   ");
        else if(flag==2)
              disp_str(0,6,"   sleep mode    ");
        ADuC7026_static_rotate_4();
        while(!fifo_flag);
        if(fifo_flag==3)
            fifo_flag= 9;
        else if(fifo_flag==2)
        {
            fifo_flag=0;
            flag=1;
            disp_str(0,6,"   AT HUST STI   ");
        }
        else
        {
            flag=2;
            disp_str(0,6,"   sleep mode    ");
            fifo_flag=0;
        }
    }

使用特权

评论回复
发新帖 本帖赏金 50.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

108

主题

807

帖子

12

粉丝