ฉันใช้อูบุนตู 14.04 LTS และกล้อง Kinect Microsoft_Xbox_NUI_Sensor_043367545147-02-Sensor
มีประเภท
ฉันสามารถเข้าถึงกล้องของ Kinect ได้จากโปรแกรม Linux ที่ฉันเขียน แต่ฉันต้องการใช้ไมโครโฟนเพื่อการสื่อสารด้วยเสียง ฉันจะทำสิ่งนั้นได้อย่างไร
ฉันใช้อูบุนตู 14.04 LTS และกล้อง Kinect Microsoft_Xbox_NUI_Sensor_043367545147-02-Sensor
มีประเภท
ฉันสามารถเข้าถึงกล้องของ Kinect ได้จากโปรแกรม Linux ที่ฉันเขียน แต่ฉันต้องการใช้ไมโครโฟนเพื่อการสื่อสารด้วยเสียง ฉันจะทำสิ่งนั้นได้อย่างไร
คำตอบ:
จากสิ่งที่ผู้อื่นพูดในความคิดเห็นและงานวิจัยที่ฉันทำไปนี่เป็นคำแนะนำของฉัน
HARK-KINCETควรทำงานแม้ว่ามันจะต้องมีการติดตั้ง มีความเป็นไปได้ที่คุณสามารถรวมการติดตั้งในเกมของคุณแม้ว่าคุณอาจต้องได้รับอนุญาตจากนักพัฒนา [อ้างอิงจากคำตอบของธีรอท ]
ตัวเลือกอื่น ๆ ที่แสดงในที่นี้คือการใช้ไลบรารีที่นี่และรหัสโปรแกรมที่เชื่อมต่อกับไลบรารีเหล่านั้น [อ้างอิงจากคำตอบของ McLovin ]
วิธีแก้ปัญหาที่ใช้ได้ผลสำหรับคุณคือใช้รหัสที่โพสต์ที่นี่จากนั้นตั้งค่าในเคอร์เนลของคุณ คุณอาจต้องการตรวจสอบสิ่งที่ไซต์พูดเกี่ยวกับไมโครโฟนบางตัวที่มีจุดบกพร่องที่ป้องกันการตั้งค่าแบบเต็ม ถ้าเป็นเช่นนั้นใช้คำสั่งการตั้งค่านี้:
sudo kinect_upload_fw /lib/firmware/kinect/UACFirmware.C9C6E852_35A3_41DC_A57D_BDDEB43DFD04
หากคุณมีข้อผิดพลาดนี้คุณจะได้รับข้อผิดพลาดนี้:
libusbx: error [op_set_configuration] failed, error -1 errno 110
About to send: 09 20 02 06 01 00 00 00 60 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00
libusbx: error [submit_bulk_transfer] submiturb failed error -1 errno=2
Error: res: -1 transferred: 0 (expected 24)
จากสิ่งที่ฉันได้อ่านนี่อาจเป็นปัญหาที่คุณมี คุณสามารถแก้ไขได้โดยดาวน์โหลดแหล่งที่มาและแก้ไขจากนั้นเรียกเฟิร์มแวร์
cd ~/Downloads
wget https://launchpad.net/ubuntu/+archive/primary/+files/kinect-audio-
setup_0.3.orig.tar.gz
จากที่นี่คุณควรทำตามขั้นตอนที่ปรากฏในลิงค์เนื่องจากคำอธิบายของฉันอาจสับสนเล็กน้อย หากคุณต้องการดำเนินการตามคำอธิบายของฉันให้แก้ไขไฟล์ชื่อ“ kinect_upload_fw.c” เพื่อให้อ่านเป็น:
index b2188d6..e3b72db 100644 (file)
b/kinect_upload_fw/kinect_upload_fw.c
@@ -155,9 +155,19 @@ int main(int argc, char** argv) {
goto fail_libusb_open;
}
int current_configuration = 0;
libusb_get_configuration(dev, ¤t_configuration);
if (current_configuration != 1)
libusb_set_configuration(dev, 1);
libusb_claim_interface(dev, 0);
libusb_get_configuration(dev, ¤t_configuration);
if (current_configuration != 1) {
res = -ENODEV;
goto cleanup;
}
seq = 1;
bootloader_command cmd;
บันทึกการเปลี่ยนแปลงจากนั้นสร้างและติดตั้ง สิ่งนี้ควรแก้ไขปัญหา