0. 前言
????????該項目是基于stm32F103和指紋模塊做了一個通過指紋鎖控制電動車的小工具。支持添加指紋、刪除指紋,電動車進入P檔等待時計時,計時超過5min則自動鎖車,計時過程中按剎車可中斷P檔狀態,同時中斷鎖車計時。改項目我稱之為“芝麻”,取自芝麻開門(明明是車,哪里來的“門”,因為插鑰匙的地方被修車師傅稱之為“電門鎖”)。
專欄目錄:快速導航
視頻地址:b站鏈接
軟件、硬件、機械原件存放位置:https://gitee.com/sunkai64/zhima
1. 功能規劃
? ? ? ? 芝麻項目最基本的功能訴求就是能夠通過指紋模塊來打開電動車,在使用過程中,要能夠添加指紋和刪除指紋,這樣能夠確保同一臺電動車,可以給多個人使用。第2個功能就是把電動車的電瓶當做一個大的充電寶。第3個功能就是電動車能夠自動關機。靈感就來源于地鐵口一臺忘記拔掉車鑰匙的車主,還有外賣小哥。外賣小哥為了趕時間,在送上樓送外賣時一般都不會鎖車,也不會拔掉鑰匙,這個行為是基于對大家的信任做出的,大家也沒有辜負這份信任。但是如果電動車能夠在進入P檔后,等待一段時間自動關機,那不更好了。
2. 硬件設計?
? ? ? ? 除了繪制基于芯片的最小系統外,我們還需要繪制如下圖中的幾個關鍵原理圖。電源電路,我的小電車是48V的電瓶,但是實際測量時電壓會達到50+V,所以這部分電路器件選擇就需要考慮50+V的工作電壓,以防出現元器件損壞的場景。指紋模塊電路,指紋模塊需要比較穩定的電壓,否則會影響其工作的準確性。繼電器模塊,通過調研,我選用的是5V控制的繼電器,無法直接通過IO口控制,我設計了基于光耦隔離電路的繼電器控制電路。按鍵模塊,簡單的IO口操作,只需要注意輸入電流即可。P檔輸入識別,電路上同按鍵模塊,無需添加特殊的電路。
?3. 軟件設計
? ? ? ? 軟件設計的開展串在了硬件設計之后。如果需要盡早開展軟件設計,那么至少需要先將硬件設計相關的接口定義好,才能基于已定義的接口編寫程序。從下圖的順序也可以看到,軟件設計時,我是先從最簡的IO口控制開始調試,然后是繼電器、指紋鎖,最后才是產品的功能邏輯代碼編寫。
? ? ? ? 關于產品功能設計,我大致列了一下流程圖,可以參考下圖。不過值得一提的時,在開發產品功能前,我們需要對每個模塊進行單獨的測試,已保障在做功能設計時因為某個小模塊問題增加為題定位時間。這部分測試就是開發者測試,DT。測試部分,除了DT之外,在功能初步設計完成之后還需要做系統測試,ST,這樣就能保證在上車前盡可能多的排查出問題,減少后續問題定位成本。?
4. 機械設計?
? ? ? ? 本專欄【設計-2】項目可行性分析中已經給出了機械設計的整體規劃,電動車控制部分和用戶交互部分分離,這樣電動車控制部分,也就是電路板的主體,可以放置到電車頭當中,不需要設計獨立的外殼。此時只需要考慮將用戶交互的按鍵、撥碼開關和指紋模塊放置到一個獨立的機械結構內就可以。
? ? ? ? 考慮到易用性,最終打算設計一個簡潔的圓形結構,將按鍵和指紋模塊固定在靠近電車把手的地方。除了將按鍵、指紋模塊固定牢靠外,在設計時也需要考慮如果將電路板和電門鎖、電路板和交互界面的接口做成可拔插的,這樣就能在某部件出問題時,方便的拔插后修復。
5. 時間安排?
? ? ? ? 因為都是一個人做,所以所有的事務都是按照串行執行的。硬件設計 -> 電路板制作 -> 元器件采購? -> 硬件測試? -> 軟件設計?-> 軟件測試? -> 機械設計? -> 機械結構測試? -> 視頻制作? -> 視頻宣傳? -> 項目小結。同時在項目推進的過程中記錄關鍵時間節點,最后好方便統計每個關鍵階段花費了多少時間,這樣做的好處就是,以后做項目的時候能夠更好的估算時間成本。
---------------------【芝麻】項目相關文章都會收集在此專欄----------------------
感謝你看到這里,如果不介意的話,幫忙點個贊、關注支持一下~