單片機項目開發紀錄

前陣子,一位深圳的客戶委託我為他的 “吃雞物理外掛”項目編寫單片機程序,核心功能就是通過按鈕根據預設數值控制繼電器的輸出頻率。

需求

項目的需求不多,主要包括三個工作模組:

  1. 有三按鈕,中間按鈕切換工作模式和,左右按鈕控制輸入。
  2. 兩位數據管用作顯示處於何種工作模式,是否處於充電狀態等等。
  3. 繼電器根據預設模式,通過電子按鈕控制輸出頻率。

過程

客戶的公司聘請的電子工程師可能經驗不太足,初始时候我与他沟通起来不太顺利,幸好经过两三次耐心的沟通,后面的合作总算順利。

電子工程師提供給我的第一版電路,採用了現代ABOV 的A94B114FR 芯片作為控制器。我看過後建議採用 STM8,因為從性價比的角度看STM8 更通用和成本更低廉。

為了更快完成單片機程序的開發,我跟客戶要求電子工程師先對原型進行測試,確定各個模塊沒問題後再寄給我。

幾天後,收到了客戶從深圳寄來的包裹,是五塊樣品並不是我要求的原型。我與客戶交流後,對方叫我先測試。我預感,這可能是一個坑了。

後來,我利用預留的燒錄點連結好 ST-LINK 進行測試,發現只有兩塊樣品能和IDE通訊。

利用兩塊可以燒錄的樣品,逐漸寫一些模塊測代碼,分別測試數碼管、電子按鈕、繼電器和鋰電池等模塊的電路。

測試過程中,發現數碼管無法完全點亮度,同時繼電器也沒法驅動。在與客戶溝通之前,我按照電路圖自行搭建了模塊的原型電路测试。

所得测试结果,證明電路圖或者樣品確實存在問題。

我與客戶、電子工程師溝通,原來是那邊的電路圖沒有經過板測!

數碼管沒有完全點亮,是因為客戶沒有把最新的電路圖(也就是用來打印樣品的電路圖)給我。

繼電器不能驅動是因為電子工程師劃錯了圖!

為了節省時間,我給他手繪了繼電器驅動電路讓電子工程師調整原來的電路。

在等待客戶重新打樣的過程中,我用自己搭建的原型把程序整體框架開發出來,主要客戶的新樣品寄過來就可以測試。

過了大概一個多星期,客戶終於把東西寄過來,還把一個燒錄台也順便寄過來給我使用。

經過多次的測試和調整後,上週最後把代碼交付給客戶。

總結

  1. 合作之前,我應該驅車去深圳與客戶面對面溝通,確定好合作的規則。此次,我認為這是一個很簡單的項目,工程師那邊按常理應該在寄給我之前進行測試;
  2. 在打樣之前,我應該強烈要求客戶給我原型電路,讓我自己也同時測試,以確保電路正確性;
  3. 嚴格按我一直以來的溝通原則:使用郵件。一些文書合同和需求,應該以文檔化的郵件溝通;

後記

客戶是認識多年的前同事,所以這次只是幫忙,並沒有賺到錢。所得的報酬將用來購置一台新的3D打印機,為後續的機器人研究使用。

接下來也需要去找一個公司上班,4月底父親被車撞傷住院一段時間,住院後我擔心他身體健康問題,於是把工作辭掉幫助父親康復。

所以,才有剛好有時間幫深圳的客戶開發單片機程序。現在父親的車傷已經沒有大礙了,手頭上的項目也交付了,可以去重新找一份合適的工作。

在Ubuntu 20.04 搭建 Django 开发环境 以及 快速构建一个简单的 Blog 使用 Python 写一个简易版的 Pong 游戏

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×