文章

顯示從 2012 起發佈的文章

Install Kinect SDK to VS2010

圖片
Environment VS2010 Kinect Driver 5.1.0.25 OpenNI  1.5.2.23 OpenCV  2.4.0 NITE  1.3.1.3-dev 先安裝OpenNI (Select OpenNI Binaries - Unstable) 再安裝NITE (Select OpenNI Compliant Middleware Binaries - Unstable) http://www.openni.org/Downloads/OpenNIModules.aspx 最後到Kinect Driver https://github.com/avin2/SensorKinect 完成的話可以用 OpenNI\Sample\Bin\Release 的 NIViewer.exe 或 NiSimpleViewer.exe 測試 Depth 和 Camera 小心Kinect diver和OpenNI 之間版本的問題 版本錯誤會出現「無法找到程序輸入點」 之後用 OpenNI\Sample\Bin\Release 的 NiUserTracker.exe 測試middleware - NITE NITE, Kinect diver和OpenNI 之間版本的問題的話 會彈出 can't create any node of the requested type 或 One or more of the following nodes could not be enumerated 發生這個問題需要檢查一下OpenNI, NITE的版本問題 有可能需要重裝全部Driver, OpenNI 和 NITE 安裝library從來都是最浪費時間的工作......

喇叭維修

圖片
うるさい!うるさい!うるさい! 家中的喇叭調節聲音和bass出現了一點問題 聲音和bass時大時小, 有時只有一邊喇叭有聲音 今天終於到了忍耐力的極限! 先把外殼拆開, 跟預想一樣, 是兩個一般的VR, 一個控制聲音的大小, 另一個控制bass 一般的variable resistor的工作原理是這樣 紅色 : resistor track      以一定長度一定阻值作為resistor 藍色 : connection A (Ra)      完成complete circuit 的point  數值可以用比例算出 綠色 : connection B (Rb)      完成complete circuit 的point 數值是 R-Ra  黑色 : wiper      以非固定的方式連接resistor track. 以在resistor track不同的位置 令得出的resistance改變 也是今次做成故障的地方 故障的原因應該是接觸不良  image from : http://www.tumblr.com/tagged/variable-resistor 左邊的是喇叭的VR, 因為是雙聲道, 所以有5點, 但結構還是一樣 為免歷史重演, 打算把兩個points 焊接, 一了百了. 要把兩個points 焊起來, 先要知道 它的連接方法 要測試很簡單, 開啟喇叭, 用電線連接兩點(W-A, W-B), 聽到有聲音就可以 這樣 電路就會長期在最低電阻(最大聲)的狀態 焊起來  一切問題都解決了 ヾ(〃^∇^)ノ 完成圖 

[OpenCV] Connect to IP Camera by RTSP steaming | 運用RTSP串流連接網絡攝像機(IP Camera)

圖片
USB WebCam is supported by openCV library. OpenCV can connected to webcam by call function cvCaptureFromCAM(). Beacuse OpenCV do not have internet steaming function, if we want to make a connection between IP Camera and OpenCV, we needed to do a bit more.  The IP Camera model that I bought is IPUX 1330. It have video streaming output thought RTSP. OpenCV可以運用cvCaptureFromCAM()去連接USB網絡攝影機(WebCam)。但OpenCV不支援網絡串流,我們再做多一點以連接網絡攝像機(IP Camera)。 這裡用的網絡攝像機型號是IPUX 1330, 它可以用RTSP串流視訊。 There is a C++ library called The mobile robot programming toolkit which extend the area of openCV to the internet. I will not spend time on how to install this library(It has a detail manual .) and other powerful function in this library. To connect IP camera by rstp, first we needed to enable RTSP function and find out the rtsp link. The link of my IPUX 1330 is rtsp://192.168.0.30/mpeg4. (I suggested you to fix the IP of the camera). We can proof the connection of rtsp streaming is success by VLC

Console non-Blocking Input | 控制台非阻隔輸入

有些時候(特別是控制台遊戲)並不希望程式因為等待用家的輸入而停止執行,這時可以使用_kbhit() 檢查鍵盤輸入和 getchar()取得輸入字元。 Sometime, input is needed without any stop when the program running loop(e.g. cmd-line game). At this time, we may try to use _kbhit() with getchar(). #include <conio.h>  while (true) {         if (_kbhit())             ch_keyPressed = getchar();         /* Your code*/ }

續:突如奇來的高科技電子零件

圖片
改做的步驟太約是這樣: 1. 利用IDA分析DPFMate.exe, 找出儲存bmp的地址 2. 寫一個新的exe去取代DPFMate.exe LanguageUnicode.ini是用來儲存button上的文字 應該成為分析用的flag LanguageUnicode.ini [Language] Lan_1=English Lan_2=Chinese Lan_3=French [English] IDC_STATIC_PREVIEW=Preview: IDC_STATIC_PICSINDPF=Pictures In Preview Album: IDC_BTN_ADDTODPF=Add IDC_BUTTON_DRAWRECT=Rect IDC_BUTTON_CLEARRECT=Clear IDC_BUTTON_CHANGE_L=RotateL IDC_BUTTON_CHANGE=RotateR IDC_BUTTON_SEND=Download IDC_BUTTON_SELECTALL=All IDC_BUTTON_DELECT=Delete IDC_BUTTON_SAVE=Save IDC_BUTTON_SAVEALL=SaveAll ID_EXIT=Exit IDC_BTN_SETTING=Setting IDC_STATIC_HIDSTATUS=Total Pictures IDC_BUTTON_ZOOMINTIPS=Zoom In IDC_BUTTON_ZOOMOUTTIPS=Zoom Out IDC_BUTTON_DRAWRECTTIPS=Draw Rect IDC_BUTTON_CLEARRECTTIPS=Clear Rect IDC_BTN_ADDTODPFTIPS=Add Photo IDC_BUTTON_SAVEALLTIPS=Save all IDC_BUTTON_SELECTALLTIPS=Select All IDC_BUTTON_CHANGE_LTIPS=Rotate Left IDC_BUTTON_CHANGETIPS=Rotate Right IDC_BUTTON_SENDTIPS=download to synchronize IDC_BUTTON_DELECTTIPS=Delete IDC_BUTTON_SAV

突如奇來的高科技電子零件

圖片
從公司的垃圾箱找到一個高科技電子零件 有LCD Screen, mini USB port, 4個 buttons 回家就著手將這個新玩具解體 4個buttons 的功能(): 1.選擇+ 2. 確定 3.選擇- 4.ReBoot 當device 與 mini USB, 連接後 一個相片photo upload software(DPFMate.exe)會自動打開  打開device 的drive發現幾個file 包括autorun(真是一個超危險的傢伙)在內有4個file, 1個folder. 但是沒有一個存放相片的folder 暫時來看 把它改成其他用途要花的功夫應該不太大 先把 DPFMate.exe 和 MacDPFmate.zip 研究一下再下結論

[OpenCV] RAW rgb data to IplImage | 以rgb原始資料建立IplImage指標

Sometime we may only got rgb data from source, so we have to build valid IplImage pointer. This sample shows that how to change rgb data to IplImage. 有時我們只會收到rgb資料,所以要自己建立有效的IplImage,以下是將rgb資料轉成IplImage。 VARIABLE DEFINITION 變量定義 rgbtexture    raw rgb data get from the camera | 由視訊傳來的rgb原始資料 cpimg          IplImage to store the RAW rgb data | 用來存rgb原始資料的IplImage變量 arr                simple opencv data format | 基本的opencv的資料格式 According  to IplImage definition | 根據IplImage的定義 typedef struct _IplImage {     int  nSize;             /* sizeof(IplImage) */     int  ID;                /* version (=0)*/     int  nChannels;    /* Most of OpenCV functions support 1,2,3 or 4 channels */     int  alphaChannel;      /* Ignored by OpenCV */     int  depth;             /* Pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S,                       IPL_DEPTH_16S,IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported.  */     char colorModel[4];     /* Ignored by OpenCV */    

Monitoring System Spec.& IO Mapping

This is the sophie SEM2012 Monitoring System Spec.& IO Mapping sheet I/O Number of I/O Measure point Solar panel 6 VI Converter 3 VI Battery 1 VI Motor driver 1 VI Motor 1 V, speed( by reed switch ) Total 12 23+1 Arduino Number of Analog I/O Mega2560 16 X2 Total Mega2560 x2 32 Because of Arduino x2, need 2 analog I/O for I2C communication Total Analog I/O used Number of analog I/O 27+1 32 Radio Frequency Features ( data rate ) 4800bps -> 600Bps ->75chars ps 1 point of measurement( e.g. 15.34 ) = 4 digits + dot + space = 6 chars Total Measurement (chars) Data to stream (chars) 2