2016-10-20

Visual Studio Community 2015 找不到 SignTool.exe 簽署工具錯誤的解決之道

Visual Studio Community 2015 找不到 SignTool.exe
簽署工具錯誤的解決之道

原本 Visual Studio Community 2015 安裝在 Windows 7 64-bit
一切正常,重新安裝在 Windows 10 64-bit 後,編譯時發生
找不到 SignTool.exe 簽署工具的錯誤. 如附圖.



解決方法是加裝 ClickOnce Publishing Tools.
1) 再重新安裝 Visual Studio Community 2015, 並選定 Modify.
如附圖.


 2) 加裝 ClickOnce Publishing Tools 功能.如附圖.





2016-10-16

BOSCH BMP180 Chip ID 及校正資料讀取測試

BOSCH BMP180 Chip ID 及校正資料讀取測試

在淘寶上買 BMP180 模塊約 RMB 7.60.
其為 I2C slave device, VCC 及3.3V 腳位均需供電.
用 USBee AX I2C Controller 可簡單
進行 Chip ID 及校正資料讀取測試.

1) 先由 0xD0 location 讀取 Chip ID
其值固定為 0x55. 結果如附圖.
2) 再由 0xAA to 0xBF location 連續讀出
11 個校正係數 (共22 個 bytes).

運用 BMP180 搭配 壓高公式 (hypsometric equation) 計算海平面氣壓

運用 BMP180 搭配 壓高公式 (hypsometric equation) 計算海平面氣壓.

1) 首先依 BMP180 data sheet 第15頁公式, 逐步計算
溫度及氣壓值, 確保每個步驟的數值均與範例完全相同無誤.
(如下圖).


2) 依壓高公式 (hypsometric equation)
(0.0065 * h / (T + 273.15) + 1) ^ 5.257 = P0 / P
    分別實施三個副程式:
    
    a) float BMP180_PressureToAltitude (float fSeaLevelPressure, float fAtmophericPressure, float fTemperature);
        由海平面氣壓, 測得的大氣壓力及溫度,得出海拔高度.
        
    b) float BMP180_AltitudeToAtmospheric(float fSeaLevelPressure, float fAltitude, float fTemperature);
        由海平面氣壓, 海拔高度及溫度,得出大氣壓力.
    
    c) float BMP180_AltitudeToSeaLevel(float fAtmosphericPressure, float fAltitude, float fTemperature);
        由海拔高度, 測得的大氣壓力及溫度,得出海平面氣壓.
   
    實例驗算如下:
            Sea-level pressure   P0= 1013.25 hPa
            Atmospheric pressure P = 1009.32 hPa
            Temperature          T =   30.4  DegC
            Altitude             h =   34.53 m

    (如下圖).


3) 實測大氣壓力及溫度,得出海平面氣壓. 結果如附圖.

經詢問中央氣象局, 其答覆如下:

///////////////

測站氣壓與海平面氣壓進行轉換時,皆是使用壓高公式(Hypsometric equation)進行換算,原始公式及使用常數值如下所示,與您附件所提之公式一樣,只是形式上會略做調整,以方便作業上使用。

P=Psea/exp(gh/RT) 
P:海拔高度為h處的氣壓(測站氣壓)
Psea:海平面(高度為0)氣壓
R:氣體常數=287.05278 J/K*Kg
T:空氣層(Psea~P)的平均溫度
g:重力加速度=9.80665 m/s*s

氣象站所使用的壓高公式之形式如下所示:

Psea=P*10^m
Psea:海平面氣壓(hPa)
P:測站氣壓(hPa)
m:公式中除氣壓值以外的參數及常數值之整理值
m=h/(18400(1+aT)),h為測站高度(公尺),T為測站氣溫(度C),a為1/273

其中T應該為測站高度至海平面間的平均氣溫,依照溫度遞減率每上升1000公尺氣溫下降約5~6度,但是於計算時影響不大,因此計算上直接使用測站氣溫。

謝謝您的來信。敬祝 安康
中央氣象局 敬復


///////////////

2016-10-13

如何修改 Windows 10 的使用者概況目錄 (profile folder) 名稱

如何修改 Windows 10 的使用者概況目錄 (profile folder) 名稱

1) 由start menu 中選 Command Prompt (Admin)
2) Command prompt
    C:\Windows\system32>net user administrator /active:yes
3) Sign out    後,用Administrator 登入.
4) 用 File manager 將 C:\Users\boltn folder
    改為 C:\Users\boltnut folder
5) 由start menu 中選 Run, 執行 regedit
6) 修改 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/
Windows NT/CurrentVersion/ProfileList
    其中 S-1-5-xxxx 的 ProfileImagePath 原有值 C:\Users\boltn
    改為 C:\Users\boltnut 即可.
7) 用 boltnut 登入.   
8) 由start menu 中選 Command Prompt (Admin)
9) Command prompt

    C:\Windows\system32>net user administrator /active:no

2016-10-09

Sensirion SHT20 溫濕度量測

Sensirion SHT20 溫濕度量測

1) 首先用 NuEdu-SDK-Nano130 開發板搭配 NuEdu-Basic01 v2.0 子板.
使用其 I2C1  (NU6_10 SCL /NU6_9 SDA) 當 I2C master.
因 I2C1 已有上拉電阻 (2.2k Ohm). 由 NU1_4 (3V3) 對SHT20 供電.


2) 依據 SHT20 datasheet 文件第10 頁之公式, 使用浮點及固定點運算得到相同溫濕度結果. 採用固定點運算時, 應注意四捨五入計算原則.



2016-10-06

Sensirion SHT20 序號讀取測試

在淘寶上買 SHT20 模塊約 RMB49.
其為 I2C slave device, 3.3V 供電.
用 USBee AX I2C Controller 可簡單
進行序號 (Serial number) 讀取測試.


1) 先由 0xFA 0x0F location 讀取
Serial number B (SNB). 含 CRC 共8 個 bytes.


2) 再由 0xFC 0xC9 location 讀取
Serial number C/A (SNC/SNA). 
含 CRC 共6 個 bytes.

3) 用 NuEdu-SDK-Nano130 將 SHT20 序號
的 SNB, SNC 及 SNA 讀出後重組
依 little endian 次序列出.


新唐 (Nuvoton) NuTiny-SDK-NUC505 開發板 MDK-ARM 燒錄問題

收到 新唐 (Nuvoton) 提供的  NuTiny-SDK-NUC505 開發板,
搭配使用 NUC505 BSP v3.01 (GPIO 例程), 結果燒錄時 MDK-ARM 出現
ICE: Cmd error - Wait mcu reset timeout 

Error : Flash Download failed - Target DLL has been cancelled.
二個錯誤訊息.



解法是將 SW1 的 S1/S2/S3/S4 分別設為 OFF/OFF/OFF/ON 即可.