發表文章

目前顯示的是 7月, 2016的文章

TI - TMP007 簡介

圖片
TMP007 最近,專案上需要使用紅外線來測量溫度,在網路上拚命的找資料。第一個找到的是 MLX90614,有 Arduino 的模組 可以買,相關的 程式碼 或 程式庫 都很容易取得,但是感測器太大了,專案的成品太小,只好再找其他的元件。之後,又在網路上看到多年前的 報導 ,所以決定找上 TI 的 FAE,尋問相關的資料,TI 的FAE 建議使用 TMP007 並協助我申請 TI EASYCALEVM ,空間和功能都符合專案的需要,就決定使用 TMP007。 TMP007 網頁相關資料 TMP007 Easy Calibration Tool  的實體圖 圖片來源 : TMP007 EasyCal User Guide Page #1 使用者說明 - 可在網頁 user guides 下載 軟體部分 - 要先註冊,就可以取得軟體 在組裝方面,記得 USB 轉 I2C 模組和 TMP007 校正模組的 TI 圖形都要朝上,才不會裝錯,都 沒有功能。 圖片來源 : TMP007 EasyCal User Guide Page #5 紅外線測溫度原理 紅外線測量溫度的原理是因為每個物體都會散發紅外線,溫度愈高,分子活動愈活躍,散發出來的紅外線愈多。紅外線感測器只是採集物體散發出來的紅外線,再轉成電的訊號,取得物體的溫度。 太陽光是以紅外線,可見光及紫外線進入地球,有一半以上都是屬於紅外線,所以要使用紅外線測量溫度,並不建議在室外,並減少太陽光造成的誤差。 紅外線測量溫度的裝置,就有分成兩類: 短矩離使用- 紅外線感測器只有接收待測物體或裝置散發出來的紅外線,再轉成電的訊號,取得物體的溫度。所以建議感測器和待測物體距離要近,並且在密閉空間會比較準確。相對的價錢也比較低。一般的測量裝置會看到一個紅點,那是鐳射光,為了讓使用者把感測器的窗口對準待測物體。 TMP007 及 MLX90614 一樣都是使用接收物體紅外線的方式,檢測出物體的溫度,所以最好在密閉空間裡,而且距離測量物體不能太遠,才能提高準確度。 長矩離使用- 紅外線感測器會包含紅外線發射裝置,先把紅外線照射在待測物體或裝置上,使待測物體增加紅外線散發的能量,再使用感測器或

nuvoton - M451 如何除錯

圖片
NuM451 除錯篇 程式設計者的三部曲,首先,尋找資源,建構程式的流程圖;再者,完成程式碼;最後,驗證程式碼有沒有符合構想,依照驗證結果,再回到資源蒐集和程式修改。而程式設計流程的循環次數,會依程式設計者的經驗和構想的了解程度有關。如何加快程式開發者的速度,相關的除錯工具,成了程式開發者最大的需求。新唐有些除錯的輔助工具,怎麼使用,將依序說明。 除錯方式 以 Keil MDK 除錯的方式有二種,一種是軟體模擬(simulator),也就是使用 PC 的資源建構一個虛擬環境來模擬晶片的動作。在 Keil MDK 中,先按下 按鍵,選擇"Debug"選單,選擇"Use Simulator”選項。 再按除錯按鍵,就可以單步模擬晶片的動作,查看晶片的記憶體,暫存器的資料。   除錯的畫面,綠色框是C語言反組譯後的組合語言,紅色框是晶片的暫存器,藍色框是使用 printf 函式的輸出模式。 另一種是使用晶片本身所支援的除錯模組及介面,有 JTAG / SWD 等除錯介面來進行程式碼的除錯。在 Keil MDK 中,先按下 按鍵,選擇"Debug"選單,選擇"Use Nuvoton Nu-Link Debugger”選項。 和軟體模擬一樣,按下除錯按鍵,可以看到相同的畫面。 除錯視窗介紹 晶片暫存器的資料,按下 ,由三角形往下拉,選擇你想查看的暫存器。    查看輸出的除錯訊息,在程式中,使用 printf 的訊息,都會傳送到 UART #1 的除錯視窗。 查看晶片記憶體的資料,輸入16進制的位址 (EX : 0x40000000),按下”Enter”,就可以得到記憶體的資料。 NuTool - PinView , 可以查看到,現在此時,晶片每一根腳的狀態及設定。在 Keil MDK,Debug 的選單,選擇最下方的 NuTool-PinView。 不知,有沒有發現,明明說除錯訊息會送到 UART #1 視窗,但是一直都是空空的,但是看看程式,在 main() 函式,明明有使用 printf。 請依下列步驟 先離開除錯畫面 按下 按鍵

nuvoton - NuEdu M451 學習套件

圖片
NuM451 學習套件 2015-09-16 參加了新唐在台北辦公司舉辦的 M451 初階教學,除了更進一步的了解新唐 M451 的架構及開發程式,還可以獲得這一套學習套件,在這樣不景氣的環境下,還願意大手筆提供程式開發者的公司,真的不多了,值得大家給予掌聲鼓勵。當然,不藏私的個性,將當日所學會陸續張貼在網頁上,讓有志一同開發的朋友一起研究。如果你想購買學習板,在淘寶的 nuvoton新唐旗艦店 安裝開發環境 將陸續安裝 - [1]. Keil MDK 試用版,程式碼需在 32KB 以內,如果超出 32KB,就需要買正版。 [2]. Nu-Link Keil 的驅動程式 [3]. 將新唐提供的 BSP 範例程式碼放到 c:\nuvoton 的目錄下 首先,將新唐提供的光碟放進光碟機,啟動自動執行檔,沒有光碟的機器,可以到百度網路磁碟下載 http://www.nuvoton.com/NuMicroDVD .執行後就可以看到下面的畫面,並選擇”NuEdu-SDK Quick Start”的選項。 然後,選擇你使用的程式碼組譯器,有 Keil 及 IAR 兩種,個人比較熟悉 Keil,所以只能選 Keil 來繼續說明,使用 IAR 的朋友,要請你再找找相關的說明。 於是依照說明,依序的安裝以下的開發程式。 [1]. Install Keil RVMDK Version [2]. Install Nu-Link Keil Driver - 在安裝完, Keil Nu-Link Driver 之後,記得選擇安裝”Nu-Link USB Driver 1.1”,作為之後 USB Device 範例的驅動程式。 [3]. Install M451 Series BSP 建立專案程式儲存空間 在工作磁碟建立一個儲存專案的目錄,( EX : NuM451 ),然後將 C 磁碟的範例 BSP (\Document 及 \Library) 複製到你的專案目錄。 在專案的目錄,建立一個“Project”的目錄,再把 Sample/NuEdu 目錄製到專案目錄。 組譯並燒入程式碼 進入工作磁碟 Keil 專案的目

Python 系統程式模組簡介

圖片
如何取得電腦記憶體資訊 所有的程式都需要搬到系統記憶體才能夠被執行到,因此,系統記憶體的大小,可使用的空間,都會影影響到程式開發者,如何配置應用程式碼和資料都需和作業系統取得應用程式可使用的空間。例如把沒有經常使用的程式放到硬碟而不佔系統記憶體空間。 psutil 系統監按模組 , 能夠讓程式開發者可以輕鬆的監控系統中執行的程序和系統資源的使用率(包含處理器,記憶體,磁碟等)資訊. psutil 模組安裝 $pip3 install psutil 獲得記憶體大小 [psutil 說明文件] psutil. virtual_memory ( ) - 取得系統記憶體靜態使用狀態 total : total physical memory available : the memory that can be given instantly to processes without the system going into swap used : memory used free : memory not being used at all 範例程式 import psutil import os mem = psutil.virtual_memory() print ('總實體記憶體 : %.4f GB' % (mem.total / 1024 / 1024 / 1024)) print ('可用的記憶體 : %.4f GB' % (mem.available / 1024 / 1024 / 1024)) print ('使用的記憶體 : %.4f GB' % (mem.used / 1024 / 1024 / 1024)) print ('完全沒有使用的記憶體 : %.4f GB' % (mem.free / 1024 / 1024 / 1024)) 如何取得電腦的核心處理器的資訊 psutil 系統監按模組能捉到核心處理器的很多監控的資料來有效監控核心處理器的使用效率 ,在此,使用用了另一個 platform 的模組, 可以取得核心處理器的名稱 。 範例程式 import platform import psutil print ("處理器的核心數目 : {0}".