微电流刺激参数为20-50uA本期将以咸勺为参考,介绍如何制作咸勺。
一、概述
火锅、烧烤、小龙虾,人们总是想在晚上吃点东西来满足食欲。这些重口味的东西,除了美味,还含有非常高的盐、糖和油,其中高盐食物几乎无处不在,长期高盐饮食的人容易患高血压、心血管疾病等。为了让我们在享受食物的同时避免这些健康风险,我们想出了咸勺子来解决它。
味道 | 电流&温度参数 |
---|---|
咸 | 20-50uA低频电流 |
酸 | 60-180uA20年的电流和舌头温度℃上升到30℃ |
甜 | 反向电流,舌温升至35℃,慢慢降到20℃ |
苦 | 60-140uA的反向电流 |
辣 | 温度从33℃加热至38℃ |
薄荷味 | 温度从22℃下降至19℃ |
二、硬件方案介绍
1、硬件框图
2、硬件设计
(1)原理图(点击下载)
(2)PCB图(点击下载)
3、电路功能
(1)MCU主控电路
(2)电源管理电路
充电管理电路: XT2051 是单芯锂离子电池的恒流/恒压充电电路。该装置包括内部功率晶体管,不需要外部电流检测电阻和阻塞二极管。XT2051需要最少的外部组件,并满足要求USB总线规范。而且功耗低,成本低,非常适合便携式电池供电应用领域。
(3)升压控制电路
输出电压计算:VOUT=1.233*(1 R5/R10)约等于8V。
电感值的选择决定了变换器的最大开关频率,以及满足变换器最大峰值电流的饱和电流。
Ipeak(typ)=400ma Vin/L*100ns。电感器值越小,芯片开关频率越高,但效率越低。电感值对最大负载的可用电流影响较小,仅为二次级(从芯片手册中的计算公式可以看出)。电感值的范围为2.2uH~47uH。
需要反馈电阻R5的前馈电容为误差比较器提供了足够的超速驱动。若无前馈电容或前馈电容过小, TPS61040 在开关节点(SW)双脉冲或脉冲突发,而不是单脉冲,导致输出电压纹波较高。若输出电压纹波较高,则可排除前馈电容。变频器开关频率越低,前馈电容值越大。工作点前馈电容式计算工作点前馈电容所需的值:C3=1/(23.14(fs/20)*R5)
完善线路监管方法: 1.使用较小的电感值来增加开关频率,这将减少输出电压纹波和反馈引脚上的电压纹波。. 从反馈管脚(FB)在地面添加一个小电容器,以减少反馈管脚上的电压纹波到50mv。作为起点,可以使用与前馈电容C相同的电容值。
(4)低频恒流电路
利用单片机IO输出PWM波控制电流频率。
利用 LDO 恒流源由模块稳压和输入电流等于输出电流的功能组成。
Iout=Vout/R11=3.3V/100K=33uA。
电流和频率同时满足人体对咸味的感觉。
(5)无线通信控制电路
无线通信基于涂鸦智能的一款低功耗嵌入式BLE协议的 BTU 模组。
三、外观结构设计
电路分析后,看看勺子的形状和结构。勺子的形状和结构也是一个至关重要的部分,如何使勺子便携、精致、小,但也需要开发者发挥想象力。结构使用勺子、嵌入式电极和人体舌头形成电路,使电流流过人体到舌头。电极和勺子需要是导电材料。
四、产品创造
本demo基于涂鸦IoT平台开发,现有品类中没有百味勺产品,点击找不到品类,蓝牙依次填写产品名称、产品描述和通信协议。BLE模块开发,涂鸦APP设备配对和控制通过蓝牙进行。
五、固件开发
(1)串口的初始化和功能
void UartInit() //9600bps@11.0592MHz { P_SW1 &= ~(3<<6); P_SW1 |= 1<<6; //RXD/P3.2, TXD/P3.3 P3M0 |= 1<<3; P3M1 &= ~(1<<3); //TX推挽输出 SCON = 0x50; 可变波特率//8位数据 AUXR |= 0x40; //定时器时钟1T模式,不分频 AUXR &= 0xFE; //串口1选择定时器1波特率发生器 TMOD &= 0x0F; //设置定时器模式 TL1 = 0xE0; //设置定时初始值 TH1 = 0xFE; //设置定时初始值 ET1 = 0; //禁止定时器1中断 ES=1; //打开接收中断 TR1 = 1; ///定时器1开始计时 } void Uart_PutChar(unsigned char value) { SBUF=value;///将接收到的数据放入发送寄存器 while(!TI); //等待发送数据完成 TI=0; // } void Usart() interrupt 4 { u8 receiveData; receiveData=SBUF;////出去收到的数据 RI = 0.///清除接收中断标志的位置 uart_receive_input(receiveData); }
(2)定时器的初始化和功能
void Timer0Init() //1000微秒@11.0592MHz { P5M0 |=1<<4; P5M1 &=~(1<<4); //P54输出模式 AUXR |= 0x80; //0时钟1定时器T模式 TMOD &= 0xF0; //设置定时器模式 TL0 = 0xCD; //设置定时初始值 TH0 = 0xD4; //设置定时初始值 TF0 = 0; //清除TF0标志 ET0=1.//打开定时器0中断允许 EA=1;//打开总中断 TR0 = 1; ///定时器0开始计时 } void Timer0() interrupt 1 { static u16 i=0; static u16 count=0; if(fre_set>=100)/或等于1000Hz { TL0 = (65535-11059/fre_set*500)%6; TH0 = (65535-11059/fre_set*500)/256; i=0; P54 =~P54; count ; } else if(fre_set<100)//0.1ms { TL0 = 0xAE; //设置定时初始值 TH0 = 0xFB; //设置定时初始值 if(fre_set==0) { P54=1; } else { i ; if(i>(5000/fre_set)) { P54 =~P54; i=0; count ; } } } if(count>(4*fre_set)) { count=0; f_task_ad=1; } }
(3)ADC初始化和功能
void ADCInit() { P5M0 &= ~(1<<5); //设置P5.5为ADC口
P5M1 |= 1<<5;
P_SW2 |= 0X80;
ADCTIM=0X3F;
P_SW2 &= 0X7F;
ADCCFG |= 0x0f; //设置ADC时钟为系统时钟/2/16/16
ADC_CONTR |=5; //设置通道5
ADC_CONTR |= 0x80; //使能ADC模块
}
void TASK_ADC() //1000微秒@11.0592MHz
{
ADC_CONTR |= 0x40; //启动AD转换
while (!(ADC_CONTR & 0x20)) ; //查询ADC完成标志
_nop_();
_nop_();
ADC_CONTR &= ~0x20; //清完成标志
voltage = ADC_RES*4+ADC_RESL/64; //读取ADC结果
voltage = voltage *32/5;
mcu_dp_value_update(DPID_VOLTAGE,voltage);//上报
}
六、小结
大家带着手中的智能勺子,结合涂鸦智能APP,一起去探索那些未知的美味吧。涂鸦物联网开发平台为开发者提供了便捷的 IoT 开发工具与服务,助力开发者更高效的完成设备接入,并为开发者提供物联网应用开发及场景服务能力。