智能魔法棒———硬件篇

Posted 三明治开发社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能魔法棒———硬件篇相关的知识,希望对你有一定的参考价值。

一、概述

大家都听过《哈利波特》吧,在《哈利波特》的世界中,魔法物品很多,但是没有任何一样物品能像魔杖一样重要,因为它与巫师建立起了一种难以言表的紧密联系。大家看到魔法世界里的巫师们,轻轻挥动几下他们的魔法棒,就可以施放各种各样的魔法,是不是即惊叹又羡慕。

今天给大家带来一款家庭版的魔法棒,开发者们只要轻轻挥动它,就可以控制家里的智能设备,体验一次当哈利波特的感觉,是不是特别神奇。它还可以充当探照小灯,比如东西掉到狭小又深的地方时,可以将身材修长苗条是魔法棒伸进去,点亮顶部的小灯,来寻找物品。

想拥有这样的魔法棒吗,一起来看看吧。

二、硬件设计

电路主要分为主控板和灯板两部分。

主控板搭载锂电池和充电管理系统,使魔法棒具备可循环的持久续航能力,采用一颗高精度六轴传感器,可以识别用户手势姿态,判断用户指令,还搭载涂鸦智能出品的通信模组,赋予魔法棒联网的能力,可与手机APP通讯,实现设备端,手机端,云端三方数据通信,从而实现用户通过挥动魔法棒控制智能设备,起到魔术一样的神奇效果。

灯板可以根据开发者喜好自由发挥,添加各种颜色,各种规格的灯,使魔法棒在"施法"时显的更加绚丽多彩。

整体硬件框图如下:


2.1 主控板

点击这里查看主控板完整原理图

考虑到便捷环保和重复使用,魔法棒选择3.7V锂电池供电,电池的尺寸和容量可以根据自身需求选择。原理图中的U3为TP4056,是一颗锂电池专用充放电芯片。

这是一款恒定电流/恒定电压线性充电芯片,采用了内部 PMOSFET 架构,内置防倒充电路。芯片具有热反馈功能,可对充电电流进行自动调节,以便在大功率操作或高环境温度条件下对芯片温度加以限制。充电电压固定于4.2V,而充电电流可通过一个电阻器进行外部设置。当充电电流在达到最终浮充电压之后降至设定值 1/10 时,TP4056 将自动终止充电循环。

V_IN为USB输入的5V电压,V_BAT连接锂电池的正极(锂电池的负极记得连GND),CE脚是芯片使能端,只有CE脚高电平的时候,TP4056才会正常工作。

  • STDBY脚是电池充电完成指示端。当电池充电完成时,该脚被内部开关拉到低电平,表示充电完成。除此之外,该管脚都将处于高阻态。
  • CHRG脚是漏极开路输出的充电状态指示端。当充电器向电池充电时, 该管脚被内部开关拉到低电平,表示充电正在进行;否则该管脚处于高阻态。

​ 因此,开发者可以在STDBY和CHRG脚分别加了绿色和红色两个LED。这样,当锂电池正在充电时,红灯点亮,当充电完成,绿灯点亮。

  • PROG脚是恒流充电电流设置和充电电流监测端。从 PROG 管脚连接一个外部电阻到地端可以对充电电流进行编程。在预充电阶段,此管脚的电压被调制在 0.1V;在恒流充电阶段,此管脚的电压被固定在 1V。在充电状态的所有模式,测量该管脚的电压都可以根据下面的公式来估算充电电流Ibat=1200*Vprog/Rprog。

为了防止大电流充电,芯片和电池温度上升,开发者把充电最大电流设置为0.8A。根据公式可知,Rprog=1200*Vprog/Ibat。

其中Ibat取0.8A,Vprog取1V,计算得Rprog=1.5K欧姆。如果开发者想加大电流,在此基础上适当减小Rprog电阻(原理图中的R8)即可。

  • TEMP脚是电池温度检测输入端。将TEMP 管脚接到电池的 NTC 传感器的输出端。如果 TEMP 管脚的电压小于输入电压的45%或者大于输入电压的 80%,意味着电池温度过低或过高,则充电被暂停。如果 TEMP 直接接 GND,电池温度检测功能取消,其他充电功能正常

这里为了减少开发周期,开发者可以将R16或者R14焊0欧姆电阻,取消该功能。如果开发者希望启用,可以联系涂鸦智能,涂鸦智能会提供专业技术支持进行帮助。点击这里查看TP4056数据手册

U4是一颗低功耗型的LDO,型号是MD5333,它的作用将锂电池输出的3.6V电压降压到3.3V,由此给控制器,传感器等设备供电。

MD5333最大的优势在于它的低功耗,它的静态漏电流只有1~2uA,可以大大减少魔法棒在待机情况下的功耗,从而保证魔法棒的续航时间。开发者也可以选择其他型号的LDO芯片,但是静态漏电流建议要在2uA以下哦。

2.1.1 控制器

控制核心依旧是开发者们所熟悉的涂鸦智能云模组。



涂鸦有各种通信协议,各种尺寸规格,各种工作温度,各种焊接方式的一系列超高性价比自研模组,开发者可根据自身的需求进行灵活选择。本次的魔法棒,如果考虑产品化,涉及低功耗等要求,推荐开发者选择低功耗蓝牙模组或者低功耗Zigbee模组。

魔法棒会用到如下几个控制引脚用于控制外设,开发者在设计电路的时候需要注意一下:

引脚名称引脚功能
LEDLED灯控制引脚,用于控制LED灯亮灭或闪烁
KEY按键引脚,用于唤醒涂鸦云模组,退出低功耗模式
MPU_INTMPU6050数据就绪引脚,当数据就绪时会产生高电平以提示主控来读取数据
SCLMPU6050 IIC接口的时钟引脚
SDAMPU6050 IIC接口的数据引脚
CT_POWMPU6050 电源控制引脚

2.1.2 传感器

如何识别用户挥手的手势姿态信息呢?这里就需要一颗姿态采集传感器,本方案采用的是MPU6050。

它是InvenSense公司推出的全球首个整合性6轴运动处理器件,内带3轴陀螺仪和3轴加速度传感器,并且含有一个辅助IIC接口,可用于连接外部磁力传感器,利用数字运动处理器DMP硬件加速引擎,通过主IIC接口,可以向应用端输出完整的9轴姿态融合演算数据。

MPU6050 对陀螺仪和加速度计分别用了三个16 位的ADC(0~65535),将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的。

MPU6050三个独立的振动MEMS速率陀螺仪,可检测旋转角度X轴,Y轴和Z轴。 当陀螺仪围绕任何感应轴旋转时,科里奥利效应就会产生电容式传感器检测到的振动。 所得到的信号被放大,解调和滤波产生与角速度成比例的电压。 该电压使用单独的片内数字化16位模数转换器(ADC)对每个轴进行采样。 陀螺仪传感器可以全面范围的被数字编程为每秒±250,±500,±1000或±2000度(dps)。 ADC样本速率可以从每秒8,000个采样点编程到每秒3.9个采样点,并且可由用户选择低通滤波器可实现广泛的截止频率。

MPU6050的3轴加速度计为每个轴使用单独的检测质量。 加速沿着一条特定轴在相应的检测质量上引起位移,并且电容式传感器检测到该位移位移有差别。MPU6050的架构降低了加速度计的敏感度制造变化以及热漂移。 当设备放置在平坦的表面上时,将进行测量在X和Y轴上为 0g,在Z轴上为+ 1g。 加速度计的比例因子在工厂进行校准并且在名义上与电源电压无关。 每个传感器都有一个专用ADC来提供数字输出。 数字输出的满量程范围可以调整到±2g,±4g,±8g或±16g。

点击这里查看MPU6050数据手册

传感器的引脚功能说明如下:

引脚编号引脚名称说明
1CLKIN可选的外部时钟输入,如果不用则接GND
6AUX_DAI2C主串行数据,用于外接传感器
7AUX_CLI2C主串行时钟,用于外接传感器
8VLOGIC数字I/O供电电压
9AD0I2C Slave 地址 LSB
10REGOUT校准滤波电容连线
11FSYNC帧同步数字输入
12INT中断数字输出(推挽或开漏)
13VDD电源电压及数字I/O供电电压
18GND电源地
19、20、21RESV预留,不接
20CPOUT电荷泵电容连线
23SCLI2C串行时钟SCL
24SDAI2C串行数据SDA
2、3、4、5、14、15、16、17NC悬空

2.2 功能板

这部分的电路,开发者可以任意发挥,给魔法棒附加额外的创意功能,展现各种天马行空的奇思妙想,简单的,比如加个灯,让魔法棒具备探照的功能,也可以加蜂鸣器,当按键按下,可以制造美妙的音乐。这里以灯为例,开发者可以参考下面原理图。

设计时需要注意一下几点:

  • 所选LED灯的压降不能超过供电电压。
  • 需要考虑LED允许的最大持续电流,选择合作阻值的限流电阻。
  • 注意限流电阻的功率,选择合适封装,0603为1/10W,0805为1/8W,1206为1/4W。

三、整机搭建

开发者发挥自己的创意,综合考虑使用情况,调整PCB外形和结构尺寸,制作出一根属于自己的魔法棒。

点击这里查看主控板完整PCB

外形结构

整体效果

以上是关于智能魔法棒———硬件篇的主要内容,如果未能解决你的问题,请参考以下文章

智能魔法棒(手势控制器)———嵌入式篇

智能魔法棒(手势控制器)———嵌入式篇

什么样的魔法棒,能让AI魔法师一夜成名?

Java开发人员必须掌握的两个Linux魔法工具

❤️Android精进之路-06真的有必要说说Intent,Intent就仙女的魔法棒❤️

Python中常见魔法方法介绍