Paoyung Chang

@PaoyungChang

Joined on Apr 9, 2022

  • [color=#58f][name=Paoyung][time=Jun 17, 2022]:snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 [color=green] <span class="c_maroon">相關主題 👉 微控制器上字庫的選擇</span> 選擇 從沒想過自己會和字庫這個主題糾纏這麼久呀!🤷‍♂️ 自前陣子接觸到適合 MicroPython 使用的字型後,陸陸續續做了幾番測試,也查詢到一些資料,例如黑大就寫了不少篇與字型相關的文章,而在「閒聊中文點陣字型授權-黑暗執行緒」的文章中更提到了授權這個頭疼的問題,讓我意會到可使用於商業用途的重要性,然後找啊找就發現了Cubic 俐方體,它允許商業或非商業性質修改及使用,雖然只有 11x11,但放在 SSD1306 這類的小螢幕上還滿搭的,相較於 15x16 的字體可以顯示更多的內容,或許字體稱不上美觀,甚至要用呆萌來形容,但重點是不用再擔心授權的因素而踩到雷,於是馬上就在 github 向作者投上我的星星:star:。 [color=green]<span class="f_sz11">俐方體11號 github</span> <span class="f_sz11">俐方體字型授權內容</span>
     Like 2 Bookmark
  • MicroPython 入坑記 [color=#58f][name=Paoyung][time=Jun 01, 2022] :snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 開端 Python 接觸得早,20 多年前把 Python 拿來做開發,就一直受質疑它能放在產品裡嗎? 許多人嫌它打包起來佔空間,執行佔記憶體又速度慢。不過後來的電腦規格和性能都已大幅提升,以現在的時間點來看應該是多慮了。但既然自己是個 Python 咖,進到 MCU 的世界裡還是想能和 Python 沾個邊,於是發現了 MicroPython。 端得辛苦 而如今拿 MicroPython 來寫韌體,還是面臨到類似的疑慮,我只能說受眾不同、需求不同,總是會有它適合的場域。再者,許多 IoT Maker 除了要做硬體端,搞不好連前端、後端都得自己來,如果能讓操作的語言數量減少或簡化,似乎也不失為是工程師的一種浪漫。
     Like  Bookmark
  • [color=#58f][name=Paoyung][time=Jul 17, 2022]:snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 前言 前陣子開始聽到有在擷取環保署空氣品質 AQI 資料的夥伴們在討論,說是資料只到 2022/05/30 就沒有再更新了^old_aqi_js,原因是環保署環境資料開放平臺已經更新 API 版本[^epa_api2],新版 API 必需要申請 API Key,且要求使用 SSL 才能讀取,而在通訊需加密資料量又大增的情況下,有夥伴就好奇我使用一般 WROOM 版 ESP32 的 MicroPython,是如何在「陳大 ming.py ESP32 字量極限」中載入950個中文字的同時,還能連上環保署網站讀取資料? http://opendata2.epa.gov.tw/AQI.json [^epa_api2]: 郵件通知API更新並重新註冊 👉會員註冊 ![郵件通知API更新](https://i.imgur.com/tHq1qbt.jpg =240x) 江湖一點訣
     Like 2 Bookmark
  • ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 字庫 [color=gray] 字庫的選擇 全字庫楷體 俐方體11號中文點陣字體 陳大 ming.py 系列
     Like  Bookmark
  • [color=#58f][name=Paoyung][time=Jun 28, 2022]:snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 引以為鑑 2018 年發生了華康字型與 Youtuber 間的版權問題,争議已釐清但使用者付費為既定的事實,也是必須遵守的觀念。可從以下影片中稍微瞭解其內容。 如何正確使用字型 Joeman 與華康開會確定了字體版權細節 另有選擇 Makers 在自己的作品中,一旦有螢幕要顯示就有字型字體的需求,若是樹莓或是其它 Arm linux 則不會有什麼問題,但其他小型的 MCU 往往配搭的是單色點陣的 LCD,在其上顯示英文和符號容易,要秀出中文就必須以字庫產生 bitmap 再繪製,而小螢幕的中文顯示字體不但小也談不上美觀,若使用一般常見的字型却有可能踩到版權的風險,若是在生產數量不多獲利不足的情況下,仍要付一筆字體的費用,這並非 Makers 所能承擔的。而以下為其他可選擇的替代方案,供需要的人來參考:
     Like 1 Bookmark
  • [color=#58f][name=Paoyung][time=Jun 21, 2022]:snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 [color=green] 相關主題 👉 微控制器上字庫的選擇 前言 🏃🏃‍♂️🏃🏃‍♂️ 忙碌中... 先釋出一個尚未全優化的版本,細節的部份日後再補充。 大部份的內容可參考之前的文章: MicroPython feat. 俐方體11號 下載
     Like  Bookmark
  • 陳大的 ming.py 試玩筆記 [color=#58f][name=Paoyung][time=Jun 05, 2022] :snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 [color=green] 相關主題 👉 微控制器上字庫的選擇 寫在前面 因為陳大昨日(2022/06/05)的線上同學會來不及上線,因此這個明體中文字庫正確用法還沒公佈,或許已經有配套的工具和套件了。而我礙於撿到寶心急先做了一番測試。待陳大下週講解教學後,如有需要我再把一些內容記錄出來。也想要試試的人可以到 LINE 群組或共學筆記中尋找 ming.py 這個檔回來玩玩。:relaxed: u8g2顯示中文
     Like 6 Bookmark
  • [color=#58f][name=Paoyung][time=Jul 02, 2022]:snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 [color=green] 相關文章 👉 MicroPython GIF 動態圖 前情提要 前篇「GIF 動態圖」主要的目的是致敬原作的發想,而一旦照著實作後會發現其實用性不佳,因為整個主流程都為了顯示動態圖而困在迴圈裡了。但前篇的一些概念和技巧也是本篇不可或缺的基礎,所以 GIF 圖的轉換程序和其他在閱讀本篇有不清楚之處,請再到前篇「GIF 動態圖」查閱內容。 不要理我 動態圖的理想狀態就是一旦宣告執行後,不需再理會它就能自行動作,主流程即可去執行其他的運算和控制,後續再依情況要求動態圖停止、繼續或清除,如此才能真正運用在程式裡,而原本依序繪製圖片的流程則轉由 Timer 來替代,並可將相同速度的動態圖交給同一個 Timer 來執行,若播放速度不相同則另外再啟用不同的 Timer,前提是以資源為考量的情況下。按前所述可以將程式撰寫如下:
     Like  Bookmark
  • [color=#58f][name=Paoyung][time=Jun 29, 2022]:snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 [color=green] 相關文章 👉 MicroPython 真動態圖 前言 [color=skyblue]這是一篇致敬文。目的是用 MicroPython 以更為簡捷的方式達成與 Arduino IDE 相同的程式效果。 先看一段影片:(前段為静態圖的說明,動態的部份請從 03:55 開始觀賞) {%youtube 0KGMFhFQ0YY %}
     Like  Bookmark
  • 陳大 ming.py ESP32 字量極限 [color=#58f][name=Paoyung][time=Jun 15, 2022] :snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 [color=green] 相關主題 👉 微控制器上字庫的選擇 Pinyin 在玩轉了幾回陳大 ming.py 後,突然想起之前的某個 POC 要顯示台灣 368 個行政區名稱和郵遞區號,本來打算要用 SSD1306 來顯示中文,但因為不想把手上僅剩不多的字庫 IC 給出去,索性將其換成 LCD1602,中文就轉成拼音(pinyin)。而現在有了字庫檔,於是重新思考該如何將其應用在類似的需求上了。 [color=orange]使用字庫時需留意其授權之使用範圍,並依規定使用。
     Like  Bookmark
  • 陳大的 ming.py 試完筆記 [color=#58f][name=Paoyung][time=Jun 08, 2022] :snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 [color=green] 相關主題 👉 微控制器上字庫的選擇 前言 ming.py 是陳大分享的明體字庫模組,適合 Python 的資料型態使之能輕鬆取字,是目前我遇過最容易操作、最適合來產生適用於 MicroPython 的中文字檔。此字檔之智權為陳大,因時機之故因此前篇僅展示取字及顯示之結果,此篇為後續顯示之實作。 [color=orange][name=Paoyung Chang][time=Sun, Jun 12, 2022 9:31 PM]:loudspeaker: 陳瑞隆大大已釋出完整的取字和秀字、秀圖程式喔!請到共學筆記中找找。
     Like 1 Bookmark
  • ESP32 with NUS [color=#58f][name=Paoyung][time=May 29, 2022]:snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 {%hackmd pnhyxEaXRauTCbvY_8k1tQ %} 聽程式在說話 剛開始使用 MicroPython 的時候,發現它與 Python 還是有著很大的差別,MicroPython 為了節省空間和記憶體,許多模組的功能都是 lite 版的,好在 REPL 可以邊試邊學,對於功力不夠的我實在是很便利,因此讓程式邊跑邊吐訊息成為我的日常... 但一旦把 ESP32 和其它電路擺在一起,或甚至已經裝設在會移動的設備上了,想監看它的運作狀態便成了難題。雖然可以把數據寫在 log 檔裡事後再行查看,可惜不能即時且得再接線連電腦下指令,多少還是有些不方便。 查詢文件後得知 WebRepl、Wifi Terminal、TCP Client/Server...等方法可以達到,不過對於我來說操作上還是不太順手,所以今天就換個角度,要提供的方法是使用 REPL over BLE UART 來完成。ESP32 自身就有藍牙功能,而且也能和 REPL 結合,用手機 APP 即能達到監看的效果。若加上多重開機和 KeyValue 後也可以選擇性的打開或關閉,如果你有以下的需求,就可以試試這個方法。
     Like  Bookmark
  • [color=#58f][name=Paoyung][time=May 23, 2022] :snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 {%hackmd pnhyxEaXRauTCbvY_8k1tQ %} 記不住的金魚腦 因為原本就喜歡用 Python 寫些小程式,所以 Arduino IDE 還沒有摸熟,就跑去玩 MicroPython了。之後接觸到 IoT 時,發現 MCU 除了要處理週邊訊號,還得搞定網路各種通訊。網路問題幸有諸多高手分享得以找到解答,但接著就遇到本機參數或資料儲存的問題了。ESP32有 4MB 的 Flash Memroy,而 MicroPython 也可以輕鬆的以檔案的方式讀取,但需要儲存的參數或資料一旦多了,一直 open 覺得實在很煩瑣,若能用 KeyValue 的方式存取豈不美哉!因此寫了個簡單的 KeyValue 模組,方便儲存小型的資料,只要 import 進來就可以簡單的操作了。 :book: 例如: import KeyValue as kv
     Like 1 Bookmark
  • MicroPython 在 ESP32 的多重開機 [color=#58f][name=Paoyung][time=May 24, 2022] :snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ 隨手記 [color=orange] ESP32 的開發板有很多種,本文配搭 MicroPython 使用的 ESP32 開發板按鈕為 GPIO_0、LED 為 GPIO_2,脚位相同的應該可運作,ESP32-S2 或 ESP32-C3 請自行查詢脚位修改程式。CircuitPython 的指令略有不同,且預設情況下檔案區為唯讀, 不適合以下的範例,但概念是一樣的,需自行修改。 其它 MicroPython 支援的 MCU 也適用此概念。 模組載入時機
     Like  Bookmark
  • MicroPython 與有採樣間距需求的感測器 [color=#58f][name=Paoyung][time=Jun 06, 2022] :snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 前言 在 MicroPython 的創作中,常常要用上多種感測或顯示元件,以標準的撰寫風格會以 while 讓任務輪詢,當遇上有採樣間距的元件則以 sleep 稍做停等,但一旦遇上多種感測元件却有著不同停等間隔時,就很容易造成干擾或卡頓。若每個被調用元件的模組都能做好時間的管理,令人困擾的問題或許就能得以改善。在此以坊間經常使用的 DHT11 溫濕度傳感器配搭 ESP32 做為例子。 Timer MicroPython 在 ESP32 上有 4 組 Timer 可用,模式有 ONE_SHOT 和 PERIODIC,相當於 Javascript 中的 setTimeout 和 setInterval。相關文件可參閱官方說明。而在下方的範例中,要做時間管理就必須佔用一組,預設是 Timer3,也可視情況自行指定。
     Like  Bookmark
  • [color=#58f][name=Paoyung][time=Jun 03, 2022] :snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 ntptime module MicroPython因為開源之故,所以有多種版本,因此在一些模組的操作與在網路上找到的使用範例並不一致。以 ntptime 這個模組來說,為了校正時差想到的屬性就是 timezone,但目前從官網下載的 ESP32 v1.18 firmware 並沒有 ntptime.timezone,可以用 help 指令得知: >>> help(ntptime) object <module 'ntptime' from 'ntptime.py'> is of type module socket -- <module 'usocket'> NTP_DELTA -- 3155673600 struct -- <module 'ustruct'>
     Like 1 Bookmark
  • MicroPython 繪製歷史曲線 [color=#58f][name=Paoyung][time=Jun 04, 2022] :snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記 前言 [color=skyblue]這是一篇致敬文 阿好伯的文章在這裡喔! 在 Line 的 益師傅 MicroPython 同學會中,某位大神提供了明體中文字庫模組,一看內容眼晴為之一亮,趕快找出我封塵已久的 SSD1306 想要來試試。然後突然阿好伯的「micropython 讀取ADC繪製歷史曲線」的這篇也讓我感到興趣,於是決定先轉個彎來致敬一下。 :rolling_on_the_floor_laughing:
     Like  Bookmark