Соединяем Kinect с Arduino с помощью Visual Basic
Сегодняшнее сообщение имеет отношение к Kinect, но на этот раз использует пару вещей, которые мы не часто видим вместе с Kinect – Ardunio и Visual Basic!
Kinect controls Arduino wired Servos using Visual Basic 2010
В этом проекте я использовал движения левой и правой рукой в 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" в верхнем левом углу каждого фото, чтобы увидеть его в полном разрешении.
...
ЖЕЛЕЗО
- 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, в проекте найдется немного и для вас…