电子说
前言 JLC EDA
星火计划,必出精品!且还是与众不同的精品~
绝大部分开源项目都是开源PCB和代码,好点的再加个结构,但是这些过程是如何从无到有的呢?很少有人会详细解答!
本次工程将手把手教你从硬件选型,原理图PCB,软件编程和结构建模……
我会从几个方面,全方位介绍我们开发一个产品的流程!
包含:
规格书解读、元器件选型;
原理图PCB;
软件编程;
结构建模;
面板绘制。
工程描述 JLC EDA
使用PLS-K-100激光测距仪模块+ESP32做MCU,可以实现100米±2mm高精度激光测距,和其他对比精度是很高的!
了解PLS-K-100激光测距仪 JLC EDA
先简单的看看模块的参数。
参数图
PLS-K-100测量精度高,测量速度快,安装操作简单。已广泛用于家装测量,工业控制等各领域。
产品特点:
体积小巧
重量轻
测距距离远,可达100m
精度高,最高可达1mm
耐高低温-30~+60℃,常温款0-40℃
模块图
从选型到绘制原理图 JLC EDA
元器件选型+MCU选型+编程选型+需求分析+原理图。
这一部分是整个文章最核心部分!!
01确定核心元器件
首先你需要知道你做的这个东西的核心元器件是什么。
不同的产品可能有不同的核心元器件,复杂的产品甚至是有多个核心元器件。
例如:手机的核心元器件就是SOC;蓝牙音响的核心器件是功放和蓝牙芯片。以蓝牙音响举例,你要想好是侧重蓝牙芯片还是侧重功放,再选型。
这个激光测距仪的核心元器件就是——PLS-K-100激光测距仪模块。
这个模块是串口通讯的,所以MCU只要有串口通信都可以使其工作。
其他像电源芯片和MCU都是非核心元器件。原理图上只需要接到MCU的串口脚即可。这里我使用HDR2.54排针连接到主板,此外还需要接上拉电阻。
02预选MCU
因为这个元器件可以通过串口通信,然后接收指令和发送测量数据,因此MCU选有串口通信的MCU,像是ESP32、普通的51单片机、STM32、甚至上树莓派等arm的处理器都是可以的。
但是这都需要功能需求分析后才能选,这里先告诉大家选用的是ESP32。
03选定编程软件
至于选用什么MCU又关系到你选择编程软件的问题。
例如STM32,可以支持keil、ST官方的CUBE mx、IAR arm版、VsCode、arduino。
ESP32也可以用官方的IDE或者arduino等。
如果是简单的做点东西,我还是更推荐使用arduino。
04确定功能需求
那么确定了核心器件和MCU这种主要需求后,剩下的就是其他需求了。
其他需求指的是什么呢?
最简单的就是看系统的输入输出。
我举一些例子:
有无外置电池?是一直插电使用还是随身携带使用?
如果有电池需求,那么电池电压选择?
电池低于系统电压?需要升压芯片
电池高于系统电压?需要降压芯片
有无用户输入?如何输入?使用按键还是摇杆?使用鼠标还是键盘?使用触屏还是语音识别?细分一下又可以分为:按键是IO输入还是ADC输入?摇杆是ADC输入还是编码输入?
有无用户输出?如何输出?使用屏幕还是LED灯?使用震动还是机械反馈?使用蜂鸣器还是语音播报?这里也可以细分:LED灯是否需要呼吸灯?LED灯有几盏,多的话是否需要译码器?屏幕是否需要驱动芯片又或者直接驱动?
05看看别人是怎么做的
我找来了一个优利德的LM150e+ 150m激光测距仪,就看系统的输入输出。
输入:两节AAA电池、按键、激光测距模块
输出:屏幕显示距离、激光测距模块
在这里激光测距仪是输入也是输出,输出了激光然后输入了激光反馈,因此才测得距离。
看完了别人的那我们就仿照它来做吧。
06确定输入按键
首先输入是肯定用按键,因为这种产品有时你是看不见测量的屏幕。
比如测量缝隙的时候你的眼睛就不能盯着触摸屏,如果用触摸屏那不如实体按键来的准确。
然后就是按键数量,优利德的一共有7个按键:
开机兼测量模式的复合按键
测量长宽高算体积面积的按键
储存按键
多组数据加减求和的按键
基准切换的按键
蜂鸣器开关的
关机和清零复合按键
我们简单点,就要个测量,基准切换,开关机,蜂鸣器开关,然后我们再加点其他东西。
比如说优利德的没有单位切换,那我加一个单位切换,我想要一个单纯的激光开关,不测量,我想把测量模式分开……
那么一套下来我们就一共需要至少8个按键:
蜂鸣器开关
激光开关
基准切换
单位切换
连续测量
单次测量
开机
关机
然后这就有一个问题:
我们电池产品的话要考虑低功耗,所以用按键开关机就要做开机电路,关机电路等。
但是想简单点的话直接做一个硬开关,开关电池的供电就好了。
所以以上,就确定要有6个按键,一个开关。
07确定屏幕输出
输出用的屏幕可以用彩色屏,1602屏,也可以用OLED。
但是这种仪器,彩色屏的话成本会高,而1602屏显示的信息就又太少了。如果想要经济又实惠,可以用OLED。
虽然是单色但也足够。
使用带驱动的模块OLED屏幕,可以用SPI或者IIC通讯,这种不是需要快速显示的。
为了节省IO先预选IIC通讯,原理图上需要上拉电阻:
08确定外围
除了主要的输入输出外,我还需要加入其他外围,方便用户指示或者调试用。
①蜂鸣器
用于提示用户,需要加三极管驱动,原理图上只需要当下管,IO驱动即可:
②激光指示灯
用于提示用户前激光是否打开,不需要用眼睛去看,虽然是二类激光产品,但是看久了还是对眼睛不好。
LED想用IO直接驱动:
③串口输入输出
用于方便调试和升级烧录用,这里就用CH340C把。
这个前期可以用,后期产品开发成型后可以做空焊。
看规格书搭好电路。
需要注意的是V3脚,3.3V直接接3.3V,5V要外接退耦电容。
我这里使用的是USB的5V直接供电。
当然如果是STM32可以留JTAG或者SWD,这部分可以等选完MCU再回过来确定,也是可以的。
④电池电量和充电指示
如果要使用到电池电量指示那么首先要检测,很明显需要用ADC检测,而充电器是否插入可以用IO或者ADC检测。
09确定MCU和IO分配
那么输入输出和外围都预选后,就要选择MCU了。
实际上确定MCU可以在前面,也可以在这里,这是一个动态调整的过程。
比如前面选择了资源较少的MCU,后面需求多了,那么就要更换更大资源的MCU。如果一开始就选很多资源的MCU也是可以的,但是这样就不经济,因此需要结合需求综合的确定出MCU。
首先先确定外围,通讯,IO数量:
核心,激光测距仪模块:UART
蜂鸣器:IO
调试:UART
按键:IO6或ADC1或ADC*2?
电池电量检测:ADC
充电器插入检测:ADC或IO?
屏幕:IIC或SPI?
那么需要一个MCU要有两个UART,ADC1~3路,IO2~8或10,IIC或SPI。
最好是硬件的,虽然很多时候软件也能模拟,但是没有硬件效率高。
MCU这部分IO分配需要仔细去看规格书或者IO解读才能知道。
传统8051单片机没有硬件IIC,ADC,直接不看。
ESP8266 IO不够。
经典STM32F103C8T6备选。
ESP32 备选
还有很多很多mcu都是可以的,MCU满足需求后反过来再看看编程环境和现有的库。
第3节推荐过arduino开发。
实际上STM32F103C8T6也是支持arduino的,ESP32也是,都可以使用很多现成的库。
不过综合考虑后还是选择ESP32,主要理由是:
现阶段STM32F103C8T6支持arduino不够完善;
ESP32支持WIFI,后续可以增加联网功能;
外围简单,无需晶振。
然后回过头来在确定按键全部可以用IO,比较好开发,屏幕用IIC。
最后就是MCU分配IO了。
首先先按照那些IO口能输入,能输出,功能复用等先分配。
例如ESP32,有些IO是开机会输出PWM啊,或者只能输入不能输出。
比如说开机会输出PWM最好就不能接LED啊蜂鸣器的,拉高启动失败就不能接上拉的IOKEY等等,这些都需要做调整。
然后除了看以上情况还需要看PCB的布线是否走得通,好不好出现,走不走的顺,走不了只能调换IO,这些是要PCB画到一半再回过头来调整的。
选择好MCU后还需要画上MCU外围,也就是最小系统电路。
对于ESP32最小系统基本上就是电源和复位电路了。
当然我集成到CH340自动下载电路了,因此这两个按钮实际上可以省掉。
如果是STM32等还需要外围晶振电路。
10确定电池和电源系统
首先这种手持产品不可能说接着个AC电,TYPE-C5V来用,这样很不方便,因此电池肯定是要有,那选什么电池?选多大的呢?
主要还是看各个元器件的输入电压范围。
那么我们需要找规格书。
关于如何找规格书,有空我可以写个文章单独讲如何找,这里先直接给出来:
MCU
蜂鸣器
激光测距模块
CH340
OLED屏幕
以上就是主要元器件的工作电压范围,除了MCU和激光测距模块是在3.3V,其他都可以到3.3~5V。
综合考虑各个系统给定3.3V。
然后就是确定电源(电池)。
如果是一节锂电池(4.2V~3.2V,3.7V额定),那么又有两种方法:
1.是升压到5V然后降压到3.3V;
2.是直接降压到3.3V。
实际上锂电池大多数情况到后面压降很厉害了,能用的基本都在3.3V以上,考虑到经济和损耗,不如直接降压到3.3V。
那么降压又有DCDC和LDO,这里更推荐使用DCDC。
因为大多数LDO需要有0.1~1V的压差才可以使用。
例如:1V压差需要4.3V才能降压到3.3V,而我们电池电压会波动,所以大多数LDO都用不了,而且我们希望一个电源降压芯片就给整个系统供电,因此使用DCDC效率更高而且电流带载能力越大。
这里使用我经常用的一颗LP3220。
根据数据手册上典型应用图就可以搭出来电路了。
可以带1.2A电流,而且可以低压差甚至无压差输出。
例如3.4V输出3.3V,3.3V输出3.3V,当然3.2V不可能输出3.3V,这就需要升降压芯片了,但是这里没有必要用到升降压。
如果是两节锂电池串联(8.4V~6.4V,7.4V额定),那么推荐用DCDC直接到3.3V是最好的,但是两节锂电池又需要考虑电池均衡的问题,还有电池的管理芯片和外围也比单节的多得多,因此不如用单节锂电池。
干电池的话也是可以的,但是自己做DIY的话就不推荐了,要经常买,两节干电池串联实际上只有2.几V的电压,基本上是升压了。
综合考虑下来还是使用单节锂电池最为经济。
11电源管理芯片和电源路径
选定电池单节锂电池后要考虑充电问题,充电芯片有很多,我这里选的是TP5100,单节充电可以上到2A,不过我选用的是1A电流。
然后要考虑路径管理,很多电池产品例如手机,可以边用边充电,但是考虑到激光测距仪专用性比较强,也不是24小时都要插电用的,更多是手持的时候,因此没做路径管理。
当然要做路径管理也是可以的,如下:
边用边充,5V给电池充电同时给系统5V供电,没有5V时用电池供电。
那么到这里元器件选型+MCU选型+编程选型+需求分析+原理图就完了!
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !