快轉到主要內容

再進化!輝光管時鐘第二代 | 設計動機與前言

·2421 字·5 分鐘· loading
Habonroof
作者
Habonroof
一位漂流在軟體與硬體之間的邊緣行者,COVID期間被觸發想做技術部落格,目前還是剛出社會的新鮮人,除了工作也希望能在閒暇之餘撰寫教學文章與製作影片。現在正努力豐富網站內容中

沉寂了好一陣子,很榮幸跟大家宣布,第二代的輝光管時鐘已經在設計了!

有鑑於第一代時鐘是純粹手工設計焊接電路,不管是在製作上還是韌體的學習上都有很高的門檻,有很多朋友也不停地詢問我是否有出第二代的打算,我自己也有想把它當成一個產品來試試看的打算。

最主要改進的地方除了輝光管時鐘線路雜亂的問題之外,還有功能比較單一,沒有LED背光燈,成本太高的問題。

為了降低成本,我預計先開發一款IN-4的輝光管時鐘,但可以更換顯示模組變成可愛的直立式IN-14版本。

這個版本預計會使用 CC BY-NC-SA 4.0 授權,大家可以自由地下載,改造,並以相同方式分享。

另外也感謝這次專案的贊助商 JLCPCB 贊助電路板製作與SMT組裝的部分費用,讓這次專案製作可以更順利! {alertInfo}

目錄
#

契機
#

回想最早看到輝光管應該是在我高中參加比賽,順便逛MakeFair展覽的時候,那時候看到橘色的數字管覺得很復古,很經典,他的樣子就在我心裡揮之不去。

後來大學時看了動畫’命運石之門’(Stein’s Gate)後,覺得自己也是有能力做到,只是管子太貴一直不敢買罷了。

但當時台灣疫情比較嚴重,也不能出門,很多娛樂支出都大幅減少,也多了很多在家的時間,不找點事情做會失去生活的意義。因此,我開始用影片來記錄過去製作過的專案。

雖然現在回去看都是一些小到不能再小的小玩具,但他們充實我的疫情生活,並且讓我有不一樣的經驗,也歡迎大家支持我的頻道:HabonroofPlayground

我開始搜尋網路上各種文章後,拜讀前輩們留下的作品,手工打造了第一台相似,但又有些差異的輝光管時鐘。

當然這台缺點太多了,除了全部線路都是用ok線焊接,很容易有斷線的問題之外,當時選用的RTC時鐘非常不準確,平均一個月就會有3秒左右的誤差,累積起來半年就有快半分鐘。此外,缺乏連線能力也是他的硬傷,不能聯網進行NTP校時,也不能快速連線手機設定時間等等讓人覺得:如果有這功能就太棒了! 的遺憾。

雖然缺點很多,但還是讓我學到很多東西,像是boost converter的設計,韌體掃描電路的設計,還有一些平常不會學的小知識。

第二代的規劃其實從很早就有了,在看到 Omnixie製作的時鐘之後,就覺得我好像沒有把輝光管的完美質感發揮出來,雖然第一代更保有手作的溫度,但從功能面還有量產面而言,都只是一個prototype,如果我未來想要成為一個販賣模組的自營業者,這個作品並沒辦法讓我打響名號,也會佔用我太多時間,沒辦法當成副業來經營。

為了達成如他這樣的精緻作品,我開始規畫下一代需要的功能。改進的地方就是加入上面想到的:更精準的時鐘,更有趣的UI,更有特色的背光功能之外,我也還在構思其他對使用者而言會眼睛一亮且實用的功能。

只不過目前我還只是一人團隊,在開發速度上還是有侷限性。夢想很大,但也要築夢踏實才有意義。

現在以這篇文章來勉勵我自己加緊開發腳步XD。

主要更動
#

目前V0.9的電路板上增加了這些功能:

  • 使用ESP32作為主控制器,提供內建的Wifi連線功能

  • 使用PCA9685驅動輝光管陰極,實現管子的亮度調變功能

  • 加入DFPlayer MP3播放模組,讓時鐘變成鬧鐘

  • 加入RGB LED背光燈,實現多色背光燈效

  • 改用DS3231 RTC時鐘,更精確,自動校正溫度影響

  • 其他…待發想…

而在軟體跟開發方面,我做了這些大變更:

  • 捨棄Arduino IDE 改用VSCode + PlatformIO

  • 使用ESPIDF 作為PlatformIO的Framework

  • 導入OS系統(FreeRTOS)作為開發架構而非Bare Metal Programming

老實說,把原本在Atmega328P的第一代程式碼移植到ESP32上,從邏輯上來說其實並不難,因為第一代的程式就是掃描程式+簡單的多工器控制,就的架構非常淺顯易懂。

但我心想,既然使用了ESP32,不能殺雞用牛刀,要幫他增加更多功能才行。(這就是傳說中的慣老闆心態,這人這麼厲害,讓他作更多事吧???)

也不是這樣啦,主要是在ESP32上,要使用Wifi功能,不論是當AP (Access Point),還是當Client,ESP32在底層都是需要運行FreeRTOS的Task, 沒有RTOS的協助,他會無法處理大量的非同步事件,如這裡的範例程式碼,Wifi連線產生了很多Event, 每個Event之間是非同步的出現,也不一定同時結束,且很多會需要在背景持續運作。

source: https://controllerstech.com/freertos-esp32-esp-idf-task-management/

這麼複雜的事情如果還使用裸機開發,不僅開發難度更高,且對於我們這種業餘玩家來說,效益也不大。

就直接用別人做好的輪子裝上去,不僅縮短開發時間,在維護上也有強力的社群可以支持。

source: https://www.instructa.ai/blog/cursor-ai/cursor-step-by-step

另外一個我認為值得一提的改變之處是,我將Cursor加入到我的workflow,目前為止大概有90%的程式碼都是由AI撰寫的。

我並不避諱把這件事情說出來,雖然我目前的觀念還是認為,如果全部的東西都由AI來操刀,那人類最終存在的意義大概就只剩下當AI的物理界面了。

但Cursor/ Claude最適合我們這種一人團隊,本來一個人需要兩年才能夠將產品從發想變成現實,但有了他的幫助,我可以去設計電路圖,畫Layout,AI幫忙寫韌體,做簡易測試。這樣分工合作的模式真的可以大幅增加生產力。

換句話說,就是一天要做的事情又更多了。。。

題外話,我也在想,在目前全球少子化的趨勢下,是否AI就是勞動力縮減的解決方案呢?

還是他只是讓人類變得越來越白癡,最後什麼都不會而已?

目標
#

對於這個版本的目標,我其實有草擬過一個量產計畫,以販售50套作為開始。但現在做到一半又覺得,好像要花太多錢了呢…

我想第二代的時鐘,目標只要先能夠先通過品質檢驗,然後真正的上架,販售出去應該就是功德圓滿了。

因為販售要考慮的還不僅僅只有設計跟製造這麼簡單,除了成本要如何更低,品質要確保穩定之外,後續產品的維護,客戶服務的窗口,網站的維持與營運都會是另外一門非工程的學問。

但人生,總是要做點不一樣的事情才算真正走過吧!

參考資料
#