總網頁瀏覽量

2022年2月17日 星期四

【 DFROBOT SKU:SEN0165 ORP氧化還原度感測器之sample code重點部分分析記錄】

延續上一篇的DFROBOT SKU:SEN0165 ORP氧化還原度感測器之訊號處理電路設計分析文章,這邊主要來延續介紹這款感測器套件之官方sample code重點部分分析記錄,某些較容易看出的部分就先暫時省略過。

註解: 這裡是隨意拿紙來寫的簡單計算過程,下標符號大小寫並不嚴謹,請見諒~

上篇文章主要介紹 的簡易電路分析計算過程 (使用克希荷夫電流定律)

註解: ORP是Oxidation-Reduction Potential的縮寫,表示溶液的氧化還原電位

該感測器套件的MCU端的軟韌體sample code於該DFROBOT SKU:SEN0165 ORP氧化還原度感測器感測器套件之官方說明網頁

(...省略部份)

#define VOLTAGE 5.00    //system voltage

(...省略部份)

orpValue = ((30*(double)VOLTAGE*1000)-(75*avergearray(orpArray, ArrayLenth)*VOLTAGE*1000/1024))/75-OFFSET;

//convert the analog value to orp according the circuit

注意上面的code的VOLTAGE我故意用兩個不同的顏色標記(紅色、藍色)是有原因的,看完下面內容就會知道。

其實可由下圖推導整理看出,上述code的orpValue就是如同其變數名稱,就是要還原出sensor端子輸出電壓訊號 (未經訊號處理電路模組處理的原始感測器輸出電壓訊號值) 的值,並且透過UART印出該值的字串形式以便觀看。

眼尖的看倌一定會發現其實主要是這款感測器套件的官方sample code寫得太長,其實不需要寫這麼長

sample code之中的1000就是K (1K);

sample code之中VOLTAGE/1024的部分,基本上就是ADC step voltage,而avergearray(orpArray, ArrayLenth)就是經過一些平均處理後的Vout

那為何上面的code的VOLTAGE故意用兩個不同的顏色標記?

要注意這個sample code可能比較是針對是Atmage328p(或其它ADC的類比輸入範圍電壓Vref預設為5V的) MCU based 的Arduino,所以sample code是把 提供給感測器輸出訊號處理電路模組的電壓 以及 你使用的ADC step voltage的Vref看成是一樣的。但實際上這兩者在實際應用上可能不同,例如你的嵌入式處理器晶片如果是用吃3.3V的,而卻又供5V給感測器輸出訊號處理電路模組,那麼情況就與sample code去define同一個VOLTAGE的狀況不同了。

舉例來說,從電路分析式子可以看出,假設你所使用的MCU/SoC內的ADC(或者外接的獨立的ADC IC)的Vref是3.3V,而若提供給感測器輸出訊號處理模組的電源則是5V的話,其實上面兩個VOLTAGE可能必須是不同的值

第一個(30*(double)VOLTAGE*1000)VOLTAGE是你提供給感測器訊號模組的電源電壓;

而後面的(75*avergearray(orpArray,ArrayLenth)*VOLTAGE*1000/1024)裡面的VOLTAGE/1024這個部分就是就是你所使用的MCU/SoC內的ADC(或者外接的獨立的ADC IC)的step voltage,所以其實這個(第二個)VOLTAGE就是ADC的類比輸入範圍電壓(Vref)。而1024就是精度10 bits的ADC的狀況 (如果你用的ADC的精度不同就要改)。

但如果 所使用的MCU/SoC內的ADC(或者外接獨立的ADC IC)的類比輸入範圍電壓Vref就 等同提供給感測器輸出訊號處理模組的電源的話 (就如同sample code預設的情況),那就如同sample code一樣去定義VOLTAGE是同一個值即可。

如果這兩篇文章你有看懂,就會發現,說穿了,上述sample code中的((30*(double)VOLTAGE*1000)-(75*avergearray(orpArray, ArrayLenth)*VOLTAGE*1000/1024))/75-OFFSET; 如果理解電路以及sample code的目的、原理和計算,其實sample code的這行code是可以簡化成另一種寫法,不一定要寫成這麼長,看倌們看懂了嗎?

(hint: 重點在上一篇文章的計算結果和這篇文章的計算結果,根本就是一樣的嘛,根本沒必要把這行code寫得如此落落長)。


此外,補充一下,這感測器套件的感測器輸出訊號處理電路模組中的LM2662M是一顆Switched Capacitor Voltage Converter IC(可參見TI的官方Datasheet ,部分如下圖)

 TI LM2662M Datasheet

-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:


本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章




2022年2月9日 星期三

因友人介紹,近期有台大電機系教授洽詢合作! 很歡迎學術界和產業界多方合作交流喔!

如下圖,近期因朋友李博士的介紹,所以有 台灣大學 電機工程學系 的 教授 來討論合作。


回顧這幾年,我大多都是針對業界工程師開課輔導,幾年前自從聯發科(晨星半導體)離開回到南部後,主要回成大幫忙帶產學合作案(同時在他們合作的中小企業公司擔任顧問),當時在成大也有掛計畫下的臨時人員 (同時也算是合作的成大教授的顧問腳色)。

目前也還是有在接觸大學/學術界,多方交流&合作,目標理想還是希望促進減少學用落差、幫助台灣社會及產業發展。同時也推廣技職教育,也希望台灣的技職教育能正常化、特色化,走出自己的一條路。

都很歡迎交流討論任何合作模式,若有合適的合作機會的話,我都會盡量提供真心的建議和實際經驗。


-----

‼本區開設之技術課程的詳情請參見下方blog網頁的課程介紹👇:


本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2022年1月30日 星期日

人生第一次看IC Datasheet(技術資料手冊)的時間點,是在14年前 讀高職電子科二年級的課堂上

在當年,人生第一次看這些IC Datasheet(技術資料手冊)的時間點,是在14年前 讀高職電子科二年級的課堂上,

https://www.keil.com/dd/docs/datashts/atmel/at89s51_ds.pdf 


除了MCU之外,當時還會參考許多TTL系列邏輯閘IC的資料手冊內容。

大學開始之後,基本上就不會有(或者極少有)這種課程會實際帶你看這種專業手冊了,因為許多專任教授自己一輩子也沒看過。


個人簡歷: https://sites.google.com/view/wenliangsun/


2022年1月28日 星期五

分想當年我的成大碩士論文內容的其中一小部分演算法應用推導過程之分享! 許多是基於我在技職教育體系時期的累積

當年在成大做碩士論文的研究內容時,在系統的設計上,應用到了幾個演算法,當時分別將其實作開發在穿戴式裝置(以單晶片微電腦/微控制器MCU為核心) 與 智慧型手機上。

其中使用到的一個演算法是一階RC Low Pass filter演算法 用在將訊號作data smoothing處理(因為這個步驟是實作在MCU上作為處理感測器訊號的資料前處理步驟,所以是數位離散化版本,基本上就是一次指數平均法Exponential Averaging),

在當時過程中有將這些式子做些簡單的推導以便複習和理解其用途效果,如圖片所示,這是當時寫下的推導筆記(寫在某張餐廳菜單紙的背面,因為這張紙是黃色比較顯眼就拿來寫推導),如下圖。



其實這些也是用到個人當年就讀高職修讀基本電學與在科技大學大一修讀電路學時期的相關基礎,無論是理論還是實作開發基礎,這大多是我在技職教育體系之中的累積。

上述這些是大多數從電機電子系出身的資訊工程(計算機)領域的人所極度不熟悉的東西。

所以,誰說技職體系沒有理論基礎?

雖然因為個人當年碩士畢業後到公司服務是負責Embedded Linux on SoC的系統的公版軟韌體開發和維護,因方向性質不同,所以沒啥機會直接用到上述那些內容。

個人簡歷: https://sites.google.com/view/wenliangsun/


高職所學的專業很有用! 舉個最簡單的運算放大基本電路的小例子!

延續之前分享的一篇文章: 【一款感測器套件中的簡易OPA應用電路的計算分析和驗證案例分享。誰說 高職沒有理論基礎? 】

其實用 高職 時期的所學,就可以輕易計算推導出OPA(運算放大器)最基本最簡單的反向放大應用的增益式子,包含畫電路圖,整個過程花費不到一分鐘的時間。



在科技大學讀大一時的電路學,又再學了一次,而之後大二的電子學,又再次接觸到 (其實高職時期就已學過一次電子學)。

(這張紙是在台鐵儲值悠遊卡金額的儲值收據紙的背面,一時興起拿來寫)

誰說高職沒有理論基礎?這些只是高職二年級電子學的理論基礎的內容的百分之一不到。

.個人簡歷: https://sites.google.com/view/wenliangsun/

2022年1月27日 星期四

最近整理email,又看到當年成大電機系羅錦興教授鼓勵我去振興技職教育體系的建言!

最近整理email時,看到五年前(2017年)的1月26日,是從新竹搭車回到南部準備過年,順路回成大去拜訪當時任教於成功大學電機工程學系的羅錦興老師,當時羅老師介紹蠻多他在中醫醫學領域的優異研究成果,以及提到他那幾年規劃成立並擔任高雄的中山大學的醫學科技所所長的事,以及之後要去大陸的大學推廣中醫及其研究的事。在聊完之後,羅老師還很客氣的騎機車載我從成大自強校區到台南火車站。

羅錦興教授網頁:

https://jssmile19921112.wixsite.com/ncku-luolab/blank-2

羅錦興老師的學經歷簡介: https://jssmile19921112.wixsite.com/ncku-luolab/blank-2


在我們更之前的email討論之中,羅老師 提到 技職教育 對於台灣的重要性,並且鼓勵我回到技職教育去振興技職 (如下方圖片所示),至今一直讓我印象深刻。



羅錦興老師和我討論的email之中關於技職教育的相關內容

之後在羅老師轉至大陸廣州的中山大學任教的這幾年的期間,都還有透過email在聯絡,他偶爾會和我提到他的研究方向和成果,還曾經問過我是否有意願加入他主持的研究團隊。

他所樹立的教學研究典範和精神永存。回想起來也是有蠻多感觸,也很感謝他的鼓勵,這些鼓勵支持都是我的極大動力來源。目前我確實也已經走在推廣技職教育體系的志業之路上,而在未來也會繼續堅持下去。

希望技職體系還是要能務實自強。可惜的是,有心的人實在太少。

--------

個人簡歷: https://sites.google.com/view/wenliangsun/



2022年1月26日 星期三

【DFROBOT SKU:SEN0165 ORP氧化還原度感測器之訊號處理簡易OPA應用電路分析&驗證案例。誰說 高職沒有理論基礎? 】

雖然個人在當年碩士班畢業後在產業界所負責的工作內容,大多並不是專門從事純硬體電路開發,但過去在技職教育體系的電路基礎專業知識和技術累積,還是經常能實際用上的。

尤其我們做嵌入式系統設計、IoT系統設計的人,從硬體電路、底層韌體、開機啟動程式、(針對有作業系統的嵌入式系統)作業系統核心space和user space的驅動程式和應用程式、感測器應用、訊號處理、無線通訊技術應用、PC端的應用程式、行動裝置端的應用程式等等,都必須有一定了解,才能比較完整設計和整合系統架構。

-------------------------

最近協助一位業界工程師理解一些感測器套件的整合應用,該套件包含一個感測器輸出訊號的處理電路,如下圖。

                       電路圖來源: ORP氧化還原度感測器套件之訊號處理電路的電路圖
https://image.dfrobot.com/image/data/SEN0165/OPR%20meter%20V1.0%20Schematic.pdf

在此,我用個人在15年前、就讀 高職電子科一年級 上學期的 一點點基本電學基礎(Kirchhoff's current law,克希荷夫電流定律) + 高職二年級的一點點 電子學 基礎 (OPA運算放大器的最基本觀念),

即可簡單分析計算一下 這款ORP氧化還原度感測器 和 pH感測器 套件 的 輸出訊號調整電路 的 第二級 (簡易的計算過程如下方照片所示)。

(誰說高職沒有理論基礎?  我這裡可能只是用到高職所學的所有電學理論的百分之一不到吧)

簡易電路分析計算過程 (使用克希荷夫電流定律)


並且,也使用對於初學者來說相當平易近人且強大的Tinkercad電路軟體模擬一下。


使用Tinkercad軟體進行電路模擬之結果畫面 (2V - 0V = 2 V)



使用Tinkercad軟體進行電路模擬之結果畫面 (2V - 0.5V = 1.5 V)


電學數學計算 + 模擬驗證  + 實際電路  

三個願望一次滿足,全部到位,這個簡單的小例子頗適合做為教材。

至於像是ORP感測器的應用原理 以及pH感測器的基本原理(範圍內接近線性特性與其描述式、校正原理和方式)、廠商提供的sample code是如何搭配等方面的內容較多,未來有機會再分享。

-------------------------

我始終覺得,我們台灣的教育總是學得太多,但實際吸收、在畢業後能實際運用的內容似乎太少。這代表我們的教育的performance太差了。

不要小看這種簡單的小例子,雖然簡單,但是我在成功大學看過許多領域(例如資訊領域,還是很多題目需要硬體整合背景)的 教授們 (電機博士、資工博士、工程科學博士、機械博士等),大多是完全不太會這些東西的 (可能他們在當年修完課就忘光了)。

當然,他們「指導」的研究生們遇到這些狀況大多是只是用這種現成的硬體電路模組套件,而較少分析其原理,加上通常這種模組的官方網頁也不會講解電路設計原理。但是,其實若要將這些感測套件應用得「好」、理解這些訊號確切是對應到什麼感測值,搭配廠商提供的sample code到底在做甚麼,是不一定要自己從頭做啦,但是必須還是要有這些基礎知識背景去做些分析,這就是個很好的例子。


個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:


本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章