Kinect v2 Initial Thoughts and Resources

I recently acquired the Kinect v2 that was released on July 15th 2014.

 

Kinect v2

After going through the SDK samples i was thoroughly impressed with the capabilities of the Kinect v2 sensor. The projects sampled many of the Kinect v2 features such as Directional Audio, Infrared, Body (Skeletal) Tracking and Depth Sensing.

 

Kinect SDK Samples

 

However, the one thing missing from the SDK is KinectFusion. Kinect Fusion is used for creating 3D models (which you could potentially make a 3d print out of the models you’ve taken from the Kinect). You can request access for the KinectFusion preview by visiting the Kinect Forums.

 

 

Information and Specs:

The Kinect v2 is currently only available on Windows 8 and Windows 8.1 Devices. It is recommended to use a USB 3.0 connection as there is a lot of data to transfer

You can find more information on the Kinect Features here.

 

For programming the Kinect sensor a great resource is the Microsoft Virtual Academy class by Ben Lower and Rob Relyea. The class should be available by the first of August, but if you can’t wait you can  find the slides here.

 

Links:

You can download the SDK here.

You can purchase the Kinect v2 here. (You can get 10$ off the price by applying a 5% Microsoft discount which you can trivially acquire through the Bing Rewards Program)

You can find the Programming Guide here.

ZumoMotors for Netduino

I had purchased a Netduino 2 a few weeks back and wanted to try and make it work with my Zumo chassis for Arduino. Unfortuatenly I couldn’t find an existing ZumoMotors library for the Netduino, after a while for searching i finally gave up and decided to write my own.

The code is availabe on GitHub:

https://github.com/OmarElabd/ZumoNetduino

 

Example Usage:

ZumoMotors zmotors = new ZumoMotors();

//Set Left and Right Motors to go forward with 100% Speed
zmotors.SetSpeeds(100,100); 
Thread.Sleep(1000);
//Stop the Motors
zmotors.SetSpeed(0,0); 
Thread.Sleep(1000);
//Set Left and Right Motors to go in reverse with 100% Speed
zmotors.SetSpeed(-100,-100); 
Thread.Sleep(1000);
//Set Left Motor to 100% forward and Right Motor 50% forward
zmotors.SetSpeed(100,50);

 

If you’re interested in purchasing your own Netduino or Zumo chassis you can find them here on Amazon:

 

 

*Note: While this code should work on the Netduino 2 Plus the ethernet port for it will get in the way of it connecting to the male header pins of the Zumo Chasis, you would need to build an extender to lift it up.

*Note: It might be worthwhile to wait until blackfriday as Pololu will usually put deep discounts on their Zumos and give some away as doorbusters.

MessageBoxes in Windows Phone 8.1

If you want to use MessageBoxes with your Windows Phone 8.1 Applications instead of using MessageBox you’ll need to use MessageDialog.

Make sure to include the following using statement:

using Windows.UI.Popups;

The code to launch a message box is as follows:

MessageDialog msgDialog = new MessageDialog("Works in Windows Phone 8.1");
//launch the dialog
await dialog.ShowAsync();

Hope that helps.

Opening Settings in Windows Phone 8.1 Runtime XAML

I've been frustrated to find that as a result of Microsoft.Phone (and more importantly Microsoft.Phone.Tasks) not being supported in Windows Phone 8.1 XAML launching a specific phone setting from your application has changed. It is however supported in Windows Phone Silverlight 8 and 8.1.

Previously the code for opening a settings page (in this example the Bluetooth Settings Page) would have followed:

ConnectionSettingsTask connectionSettingsTask = new ConnectionSettingsTask();
connectionSettingsTask.ConnectionSettingsType = ConnectionSettingsType.Bluetooth; 
connectionSettingsTask.Show();

or alternatively:

Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-bluetooth"));

 

The new syntax for opening a settings page (again in this example Bluetooth) in Windows 8.1 Phone XAML is as follows:

Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-bluetooth:///"));

*Notice the addition of the :/// (makes all the difference in the world)

 

Hopefully that saves you some time searching because it took me a while before i found anything remotely useful for Windows Phone 8.1.