一个基于纳芯微温湿压磁芯片设计的桌搭
该项目使用了纳芯微传感器,实现了一个桌面环境基础环境监测和解压玩具的设计,它的主要功能为:采集温度、湿度、压力并进行展示,磁传感器用来捕获任意的箭头方向。。
标签
嵌入式系统
显示
开发板
PORTB
更新2024-12-26
72


一个基于纳芯微温湿压磁芯片设计的桌搭

1.整体思路

本次参加WeDesign第六期的活动主要是因为平时经常听说纳芯微的传感器,但是一直没有用过,特意来白嫖学习一下。首先看下纳芯微的传感器






然后,是整体的思路,因为有十二指神探,上面有个显示屏,那最简单的就是采集-显示了,毕竟现在的电子牛马谁还没有个桌搭呢。


2.电路设计


电路设计就很简单了,参照datasheet画就好了,不过这是第一次使用KiCAD作图,稍微看了一下教程,跟其他EDA软件相差不大。







NSHT30看名字都知道是Pin2Pin的,直接把封装拿过来用一下,IIC通信记得上拉就好了。



NSM3013用它的模拟电压输出,简单快捷。数据手册上都做了简单的滤波,该加就加上。这里,就是有个疑问,就是手册上说测量到的是垂直于芯片表面的磁场分量。






然后下面给的图和角度的输出图,可以看到磁铁都是平行于芯片放置的






那这样放置,以我浅薄的小学二年级的物理知识,磁感线应该是平行于芯片的啊,磁感线的切线方向是磁场的方向,那这个时候应该测量效果最差的也,为什么还推荐这样的使用呢,有路过的高年级的同学可以给我答个疑。不过倒是不影响使用,因为实际测试就是这个角度的效果最好。






压力传感器这里,一样参照数据手册画就好了,不过这里翻大车。输出也是5V的,而十二指神探用的RP2040ADC范围是0~3.3V的。





开始一直输出满量程,检查了半天,用万用表测量发现是4V,(4/5-(-0.00095))/0.008095=98.94kPa,嗯,比较正常。只好在手头找了两个1k电阻分一下压了(下方的v0.1显得那么刺眼)。





然后是温度传感器NST112X,这个确实有点小,焊接了两片都没有成功,直接放弃了,对眼睛不好。0.75mm*0.75mm可不是闹着玩的。




最后是十二指神探的接口,又是一个翻大车,直接在库里面找的一个,原理图是按照逆时针挨着排列的,PCB上是“Z”字形排列的,导致线插的乱七八糟。买的排线也没有用上,还是用的杜邦线一根一根插的。另外还有一个更离谱的事情是,我写这个报告的时候才发现这个封装没有10号引脚。。。还好是NC的








同时这也是第一次生成Gerber文件来进行投板,还好问题不大,凑合凑合能用。PCB上对两个温湿度传感器进行了悬空和不铺地处理,以免影响散热。






3.结构设计


投板之后,就开始设想如何进行把磁传感器方便的用起来,找到了一个轴向充磁的磁铁,Φ5*10mm的。略微思索,做一个大转盘吧。于是就有了





温湿度传感器伸出来,不要被罩在外壳里面了。剩下都在外壳内,磁铁固定在磁传感器正上方,通过一个箭头指示方向,便于旋转。为了旋转得更加顺畅,甚至做了小倒角,但是实际上一点也不丝滑,哈哈哈,只好又改功能,那就随便转一转了。

4.软件设计

软件部分参考源代码吧,micropython的IIC写起来是真的快,两句话就写完了,一直觉得特别是现在的GPT时代,这些标准化底层数据读取不应该多花时间,注意力在应用侧就好了。

while True:
# 温湿度传感器数据读取
temperature, humidity = read_sht30()
# 磁传感器数据读取
nsm301x_value = read_nsm301x()
# 压力传感器数据读取
nspa3_value = read_nspa3()
# 温湿压传感器数据显示
display.text(font2, " T H P ", 0, 180)#16*32 240/16=15 240/32=7.5
display.text(font1, " " + "%.2f" % temperature + " " + "%.2f" % humidity + " " + "%.2f" % nspa3_value, 0, 220)
theta = -(nsm3011_value*2*math.pi/3.3 - 2.3 + math.pi)

# 磁线条清屏
if buttonM.value() == 0:
time.sleep(0.1)
if buttonM.value() == 0:
display.fill_rect(0,60,240,120,st7789.BLACK)
# 此线条画线
display.line(CENTER_X,CENTER_Y,120 + int(60*math.sin(theta)),120 + int(60*math.cos(theta)),st7789.WHITE)



5.效果展示


没啥好说的,具体请看VCR。简单做了个界面分区,最上是LOGO用一个红色线条分割开,最下面是温度、湿度、压力三个主要的监测指标,中间是磁传感器的摩天轮展示。

外壳部分主要是为了固定磁传感器,通过一个可以旋转的箭头进行二维的固定,使得磁铁只能在平面内旋转。

6.一点感悟

项目做完了,还是有很多感悟。

  • 看起来很简单的传感器采集和展示,硬件也是非常简单的,还是有很多的小问题,也花费了超出预期的时间,任何项目一次打板完美还是不容易的;
  • 结构设计总是和想象的略有差距,想象的是丝滑大转盘,实际上是金鸡独立,没考虑重心和重量;
  • 以为买了加热台,自己强的可怕,实则手抖还是手抖,0.75的确实容易翻车。

    当然,也有很多好的方面

  • 纳芯微的传感器还是挺不错的,使用简单可靠,有机会拿到温箱里面去测测看,特别是压力,可能不是很好测,我看别人都有一个抽压的装置;
  • 十二指神探还是停好用的,直接就买了一个Raspberry Pi Pico,一直没有时间去用,借这个项目体验了一下直接拖拽的感觉,用MicroPython写代码还是可以的,整体的十二指神探设计还是很合理,准备以后拿来做个便携式仪器,很多想法还没有去实现。另外就是想尝试一下相同工作量下,python和C的运行效率,有时间尝试一下看看;

    最后,感谢EETREE给个机会,给大家选择好的传感器,出很多的教程,整理了很多的资源,让玩家花少量的时间就可以快速的达到期望的目的,希望活动越办越好。


KiCad文件
使用说明
全屏
附件下载
code-merge.py
代码
团队介绍
莫得团队
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号