前言 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。
因為大多數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選型+編程選型+需求分析+原理圖就完了!
審核編輯 :李倩
-
pcb
+關注
關注
4319文章
23111瀏覽量
398319 -
高精度
+關注
關注
1文章
526瀏覽量
25477 -
測距儀
+關注
關注
0文章
117瀏覽量
18450
原文標題:星火計劃 | 100米±2mm高精度激光測距儀,附開發全流程
文章出處:【微信號:開源硬件平臺,微信公眾號:開源硬件平臺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論