Share via


Соединяем Kinect с Arduino с помощью Visual Basic

Грэг Дункан

Сегодняшнее сообщение имеет отношение к Kinect, но на этот раз использует пару вещей, которые мы не часто видим вместе с Kinect – Ardunio и Visual Basic!

Kinect controls Arduino wired Servos using Visual Basic 2010

clip_image002

В этом проекте я использовал движения левой и правой рукой в Kinect для управления вращением двух сервомоторов, подключенных к Arduino Uno, который в свою очередь двигает левой и правой рукой самодельного человечка. Промежуточный софт написан на Visual Basic 2010 и основывается на Microsoft Kinect SDK beta 2.

Есть достаточно примеров кода на C++ и C# для связывания Kinect с другими гаджетами, но не так много примеров на Visual Basic. Поэтому я ожидаю, что этот проект поможет народу, знакомому главным образом с VB начать хакерствовать с Kinect и Arduino.

КАКЭТОРАБОТАЕТ

Kinect хранит образы 20 каркасов, соединенных с каждым игроком. Чтобы упростить этот проект, я выделил координаты только левой и правой руки. Затем я передал эти координаты Arduino UNO и затем произвел масштабирование в Visual Basic от размера экрана компьютера к углам сервомоторов.

Я изменил код VB из примеров Microsoft Quickstart потому что он хорошо документирован и идет с прекрасным руководством. Поэтому каждый в состоянии изучить эти руководства и узнать, как этот код на VB работает с Kinect.

Внесенные в код изменения связаны главным образом с облегчением последовательных коммуникаций с Arduino, а также с отображением координат экрана в углы сервомоторов. В этом проекте я захватывал Y (вертикальное) движение подсоединенной левой и правой руки. Я мог бы легко изменить свой код и добавить еще сервомоторы и сочленения.

СОЕДИНЕНИЯ

В этом проекте я использовал два микросервомотора TG9e, управляемых Arduino Uno, подключенному к ПК через USB. Для более мощных моторов требуется больше энергии, и ее требуется подвести отдельно, или Arduino будет работать с ошибками.

Я обозначил один сервомотор Левым, а другой Правым. Если сервомоторы вас смущают, проще изменить строки кода, чем делать перемонтаж.

Left Servo ---> Arduino Digital Pin 9
Right Servo ---> Arduino Digital Pin 11

Для отладки можно протестировать сборку с одним сервомотором перед тем, как добавлять другой.

КАК ИСПОЛЬЗОВАТЬ МОЙ КОД

Вдобавок к инструкциям можно посмотреть на сделанные мною пошаговые снимки экранов. Нажмите на "i" в верхнем левом углу каждого фото, чтобы увидеть его в полном разрешении.

...

clip_image004

ЖЕЛЕЗО
- Microsoft Kinect
- Arduino Uno
- Micro Servos X 2 (Я использовал микросервомоторы TG9e)
- Макетная плата и провода
ПРОГРАММНЫЕ КОМПОНЕНТЫ
Arduino IDE 1.0
https://www.arduino.cc/en/Main/software
Microsoft Kinect SDK V1 beta2
https://www.microsoft.com/en-us/kinectforwindows/download/
Coding4Fun Kinect Toolkit 1.1
https://c4fkinect.codeplex.com/releases/view/76271#DownloadId=300233
Microsoft Visual Basic Express 2010
https://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-basic-express
.NET Framework 4
https://msdn.microsoft.com/en-us/netframework/aa569263
Microsoft DirectX SDK - June 2010 or later version
https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812
Runtime for Microsoft DirectX 9
https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=35
Microsoft Kinect Code4Fun Quickstart VB code (You will overwrite this with my modified version)
https://files.ch9.ms/coding4fun/KinectForWindowsSDKQuickstarts.zip

Если вы конструктов на Arduino, хакер Kinect или разработчик на VB, в проекте найдется немного и для вас…