今日偶見google group的openni-dev上nicolas tisserand的一枚神帖:hit me 「easy way to control kinect motor through openni」。文中他成功的使用xnusb.h(openni標頭檔案之一)完成馬達的控制,他把kinect motor封裝成乙個類再操作,有冗餘的傳送控制資訊的**,只能在kinect沒有初始化開啟的情況下工作,無法在攝像頭已開啟的情況下工作,故修改見如下函式:
1 #include2011/12/15 17:38 重要更新:2bool _isopen = false;34
bool tilttoangle(int angle) //
angle: -27 to 27
5 19 }
20//
get device path
21 res = xnusbenumeratedevices(0x045e
/*vendorid
*/, 0x02b0
/*productid
*/, &paths, &count);
22if (res != xn_status_ok)
26//
open first found device
27 res = xnusbopendevicebypath(paths[0], &m_dev);
28if (res != xn_status_ok)
32//
send control command
33 res = xnusbsendcontrol(m_dev, xn_usb_control_type_vendor , 0x31, angle, 0x00, null, 0, 0);
34if (res != xn_status_ok)
38 xnusbclosedevice(m_dev);
3940
//shutdown usb
41if (_isopen == false)
42
48 }
4950
return
true;
51 }
5253
//tilttoangle(0) : normal state
54//
tilttoangle(27) : up
55//
tilttoangle(-27) : down
剛剛在執行程式時,手持著kinect。發現這個旋轉角度與底座是否水平放置無關(當選擇旋轉0時,它總是能夠讓攝像頭水平向前)。這也證實了kinect內部確實存在乙個陀螺儀。
本作品採用知識共享署名-非商業性使用 2.5 中國大陸許可協議
即可。
linux usb 使用者控制驅動載入,驅動延時載入
當連線的usb裝置需要進行協議或是安全相關認證後才能進行後續通訊,可以採用預設不載入inte ce的驅動的方式。操作方法 將usb 介面的預設授權關閉 echo 0 sys bus usb devices usbx inte ce authorized default 需要載入驅動時再開啟授權 ec...
Linux裝置驅動之控制台驅動
一 前言 我們在之前分析過input子系統和tty裝置驅動架構.今天需要將兩者結合起來.看看linux中的控制台是怎麼樣實現的.二 控制台驅動的初始化 之前在分析tty驅動架構的時候曾分析到.主裝置為4,次裝置為0的裝置節點,即 dev tty0為當前的控制終端.有tty init 中,有以下 段 ...
USB驅動之主機控制器驅動
usb 主機驅動的整體結構 usb 主機控制器有 34種規格 ohci open host controller inte ce uhci universal host controllerinte ce 和 ehci enhanced host controller inte ce ohci 驅動...