網頁

2018年1月16日 星期二

Point Grey 相機之 FlyCapture 編譯 過程記錄

FlyCapture 有 32 和 64位元兩個版本
32位元安裝在 C:\Program Files (x86)\Point Grey Research\FlyCapture2
64位元安裝在 C:\Program Files\Point Grey Research\FlyCapture2

雖然安裝後有 src, 但因權限的關係,無法直接編譯
另外準備一個目錄 D:\SVN_Repository3\vc\FlyCapture
拷貝 include lib lib64 src_x64 src_x86

build src_x64/Examples_vs2013

雖然是 64位元, 不要改變 Configuration Manager 或 Property Pages 的 Platform 為 x64
雖然可以編譯成功,但是無法執行

VB.Net Examples 的 Project 會產生 Type 'FC2Version' is not defined. 之類的錯誤
開啟 Project 的 Properties 選 References, 可以看到
點選 FlyCapture2Managedd_v120, 在按 Reference Paths
加入目錄 C:\Program Files\Point Grey Research\FlyCapture2\bin64\vs2013
即可解決

CSharp Examples 的 Project 會產生如下的錯誤

開啟 Project 的 Properties 選 Build
改 Output path: bin\Debug\
為 Output path: bin\Debug
即可解決

CSharp Examples 的 Project 還會產生如下的錯誤

開啟 Project 的 Properties 選 Reference Paths 加入目錄
C:\Program Files\Point Grey Research\FlyCapture2\bin64\vs2013\
即可解決

CSharp Examples 的 MultiSyncEx_CSharp_vs2013 Project 還會產生如下的錯誤

點選 MultiSyncEx_CSharp_vs2013/References, 按右鍵選 Add References...
勾選 MultiSyncLibraryManaged_v120.dll 和 FlyCapture2Managed_v120.dll 按 OK
刪除錯誤 References FlyCapture2Managed 和 MultiSyncLibraryManaged
即可解決

C Examples 和 C++ Examples 內的 Project 需要各別 Build
唯一會有錯誤的是 FlyCapture2GUI
修改 FlyCap2CameraControl_ILBridge.h 和 FlyCap2CameraSelection_ILBridge.h
#elif (_MSC_VER == 1800)
#using <..\\..\\bin\\vs2013\\FlyCap2CameraControld_v120.dll>
#using <..\\..\\bin\\vs2013\\FlyCapture2Managedd_v120.dll>
#elif (_MSC_VER == 1700)
#elif (_MSC_VER == 1800)
//#using <..\\..\\bin\\vs2013\\FlyCap2CameraControld_v120.dll>
//#using <..\\..\\bin\\vs2013\\FlyCapture2Managedd_v120.dll>
#using <..\\FlyCap2CameraControl\\bin\\Debug\\FlyCap2CameraControld_v120.dll>
#using <..\\FlyCap2CameraControl\\bin\\Debug\\FlyCapture2Managedd_v120.dll>
#elif (_MSC_VER == 1700)
即可解決

點選 C++ Examples/FlyCap2, 按右鍵選 Set as Startup Project, 嘗試執行, 若產生下列錯誤
是因為 FlyCap2 會用到 FlyCapture2GUI 產生的 FlyCapture2GUId_v120.dll
而 FlyCapture2GUId_v120.dll 會用到 FlyCap2CameraControl 產生的
FlyCap2CameraControld_v120.dll 和 FlyCapture2Managedd_v120.dll
若是刪除 FlyCapture2GUId_v120.dll, 及會使用
C:\Program Files\Point Grey Research\FlyCapture2\bin64\vs2013 目錄下可以執行的程式庫
即可執行,至於什麼原因,就不知道了


2018年1月4日 星期四

使用 MOSFET 產生 PWM 電源

MCU 產生 25kHz PWM
因為 MCU 使用 3.3V, 一些 N通道MOSFET Vgs 甚至要 4V(IRFZ44N)
故用 2N7000(N通道) 推動 IRF5305(P通道)
示波器使用顏色
2N7000 Vg 為黃色
2N7000 Vd 為藍色
IRF5305 Vg 為紫色
IRF5305 Vd(out)為綠色

 一開始的設計R1=10K,並沒有使用R2電阻和223電容,Vd = Vg
加上R2(10K)電阻,因為分壓,使得 IRF5305 Vg 在工作範圍內擺動
加上223電容,加快輸出電壓上升
最後改R1=1K, R2=1K
即可加快輸出電壓的下降
缺最後一張圖


用單節18650產生3.0V

18650 電壓範圍 3.6-4.2V
要產生3.3V, 只有找到 TPS63020, TPS63060, TPS63070

LM1117 要求 Vin - Vout = 1.2V
3.6V - 1.2V = 2.4V

使用 TL431
注意在 750 Ohm, 上有一個較高的電壓(12V)
這裡可不能接 18650
Vout = 2.5 * (1 + 4.7 / 22) = 3.0V
PN2222 的 Vb為 3.0V + 0.7V = 3.7V
Ib = (12 - 3.7) / 750 = 11mA (在TL431 的 Ika 1~100mA 範圍內)
PN2222 的最小 β 為 35
Iout(max) = 11 * 35 = 387mA