山姆的編程實作分享。。。

Sam Blog, Sam Sharing, Sam Studio

2020年9月27日

[WSL] 實測 WSL Mount Command


  [WSL] 實測 WSL Mount Command


透過不斷的升級,花費一上午的時間,迎來的 Mount Command,當然要實測一下喽!


首先是透過 wmic command 取得硬碟路徑


接著按照說明文件,省略 --partition 的指派 (說明文件說可以省略),卻得到錯誤的訊息。


這是加上 --partition 的指派

EXT4 partition 就真的掛接上 Linux Subsystem 了 :-)


在 Linux Subsystem ,可以看到 EXT4 硬碟是被掛接在 //mnt/wsl 目錄下


接著,在掛接的 EXT4 硬碟上建立目錄,開檔案,也一切正常!

 接下來就等 Mount Command 正式的 Release 了!


[WSL] WSL Mount Command


 [WSL] WSL Mount Command


之前在研發大型專案, 如 Android 系統,都是在 Ubuntu OS Terminal 的環境下做開發,

但是平時常用的 Apps,卻又是在 Windows 系統下 ,如 Office, Outlook...;在只有一台

電腦的情況下,一般的解法不外乎就是 1) 裝 VM 或是 2) 安裝 Windows Ubuntu 雙系統,

不停地切換,工作效率真的很差!


知道有 WSL ( Windows Subsystem for Linux ) 後,就迫不及待的安裝來使用,使用後的

心得是 "很棒"!真的可以解決 1) VM 拖慢系統速度以及 2) 雙系統不停切換的問題了。


但是有一點就是它 ( Linux System ) 只能安裝在開機硬碟,佔用了 SSD 的空間;

Linux Subsystem 安裝在 SSD 是可以被接受的,但是 Development Code 佔用開機硬碟的

空間就真的無法接受了。


所幸,Windows 的開發人員也看到了這個問題,在 Window 10 Insider Preview 20221 build

就帶來了好消息!User 可以掛接 ext4 的硬碟供 Linux Subsystem 使用。



但因為是 Preview 版本,只有加入Windows 測試人員計畫才能正規取得



畢竟是 Preview 的版本,還未通過穩定以及安全性的測試,所以我採用的方法是 “Dual Boot”,也就是不直接升級平時用的 Windows,而是將 Preview 的版本安裝在另一顆硬碟 ( PS : 試用 Preview 版本後的心得是 : 還好我有這樣做 😁😁😁 ,因為 "Dual Boot” 還一度失效,我平時用的 Windows 差點回不來 )。


這是 Window 10 Insider Preview 20221 build 安裝完成的畫面



透過不斷的升級,最終迎來我要的 WSL "Mount" Command, 20221 build 才有的喔! 



[咖啡烘培] 不要小看風量的控制


將 Quest M3 與 Artisan 結合後,從烘培曲線發現, "風力" 的影響比我想像的來的大啊!

下圖是 "哥斯大黎加紅蜜處理豆"的兩次烘培曲線圖,這兩次烘培的火力都是一樣的,主要的差異就在進入梅納反應的風量調整,分別是風量 8 和 7,而最終呈獻出 “風量 7” 的烘培曲線,在烘培時間以及曲線上升幅度的表現,都比“風量 8” 的曲線,明顯來的短以及大,圖 3 就是兩曲線的比較圖。


另外,我標記的 A 點,可以明顯看到豆子的溫升曲線有一個急遽的溫降,那是我透過取樣棒觀察是否要下豆,這樣的"小"動作所造成的。


之前,只是透過書本得知風力對咖啡烘培的影響,但透過自己的實驗以及 Artisan 烘培曲線幫助,發現風力 (進風 & 抽風) 對咖啡烘培的影響可真是大啊 !比我認知的還來的大啊! 



2020年9月24日

[Error] /usr/bin/env ‘python’ no such file or directory


For this error, please try below 3 possible solutions


# Possible Solution 1

You may not install Python yet, please follow below command to install it

sudo apt install python3.7


# Possible Solution 2

You have installed Python3, but "python" command is not equal to "python3" 

Please follow below command to let them equal (Ubuntu 20.04)

sudo apt install python-is-python3


# Possible Solution 3

Symptom is same as  "Possible Solution 2", but OS is Ubuntu 16.04.

Please follow below commands to create a symlink

whereis python3

run above command to get Python and Python3 installed directory\ies

sudo ln -s /usr/bin/python3 /usr/bin/python

run above command to create a symlink, the /usr/bin/python3 and /usr/bin/python are examples, please instead by the result of "whereis python3" command



2020年9月20日

[Arduino 教學] 為專題加分的好物 - HeliOS


YouTube教學影片



HeliOS 的特點:

  •  Open Source 的 Embedded OS (Operation System),是 GPL-3.0 的License,也就說,對於專題製作而言就是免費的

  • 採用協同式多工 ( Cooperative Multitasking ) 以及事件驅動式多工 (Even Driven Multitasking )  的方式做Task 的切換。

  • Task 之間可以透過 Notification / Messaging 做資料訊息的傳遞。

  • 一般的 Embedded OS 都有的功能,如計時器和記憶體的管理,它也有提供。

以上這幾項特點都是制式說法,不是我主要推薦給大家的原因, 而我推薦的理由有以下三點

小而美 : 

以我改寫咖啡烘培程式的實作為例,HeliOS 佔用的記憶體空間,Program Memory (ROM) 則是約 1400 bytes, Variables (RAM) 則是 230 bytes,這絕對是 embedded OS 最小的;對比於 FreeRTOS 至少需要 5K ROM, 400 bytes RAM (以 2 Tasks 計算),記憶體空間以及複雜度,HeliOS 是絕對小而美,但小歸小,五臟則俱全,Embedded OS 基本該有的 Notification / Messaging / Timer / Memory 的功能,他都有喔,對於專題製作的需求也是綽綽有餘的!

容易上手

再來則是容易上手,沒有負擔;只有 21 個  System Function Call,花 1~2 個小時研究一下,絕對就可以上手使用它。再加上是協同式多工(Cooperative Multitasking ),不是佔先式多工 (Preemptive Multitasking),也就沒有 Mutex, Deadlock, Race Condition 這些擾人難解的疑難雜症了;也因為是協同式多工 , Porting 到不同 CPU ,不須動用到組合語言就可以輕鬆移植到不同的單晶片上,CPU Porting 的困難度相對於 RTOS 就低很多了 !

程式發展不受限  

最後一點則是程式發展不受限;這項優點是 Embedded OS 對比於 Super-loop 模式都有的特點;以Super-loop 模式發展的程式碼,到一定的複雜度後,例如專題製作的後期,Super-loop 的模式絕對會遇到瓶頸;通常是加了一堆 IF…,來做到類似 GoTo 境界;可能兩天沒碰程式碼,就不知道自己在寫甚麼了,不是嗎?


所以擁有

  1. 能把有工作事項以 Task 概念區隔開來的HeliOS 絕對是專題製作的首選。

  2. 加上小而美,容易上手,沒負擔,在專題製作初期就可以導入 了,當然也就不會發生後期才導入OS,騎虎難下,兩難的囧境了。

  3. 對於沒有寫過 Embedded OS 的專題新人而言,小而美,容易上手,也正是想學Embedded OS的最好入門首選。



2020年9月17日

[MicroPython] REPL not responding on ESP8266 / ESP32


I met this issue before. I use Putty, when I changed "Flow Control" from "XON/XOFF" to  "None" under Connection -> Serial setting Category, this issue is gone.

After checked with ESP8266 data sheet, ESP32 / ESP8266 chips do not support the "Flow Control", that is why I changed "Flow Control" from "XON/XOFF" to  "None", the issue is gone.

Hope this information can help someone.



熱門文章