Microsoft has just released the “Virtual Shield for Arduino” that allows you to use the sensors on a Windows 10 device (ie Phone) as devices for an Arduino, via Bluetooth.
Given that you can buy a Windows phone for for less than $60 outright, and it has GPS, microphone, camera, and a full touchscreen, this is rather interesting, even if it is just a front end for a Spark device.
The example code that they give turns ON/OFF an LED connected to an Arduino UNO, by voice command on the phone.
Interesting… Shall haven’t fully understood what this can do.
Here is a scenario:
Build a box with a lock, that will only unlock under the following conditions:
a) There must be proximity to a specific device, such as a cellphone.
b) The box must be located within 100 feet of a specific geographical area.
c) There must be facial recognition of the person asking to open the box.
d) A pin must be entered for the box to open.
e) No external devices (camera, keypad) on the box.
f) The box only opens during certain time windows.
As you can see, you need bluetooth for the proximity sensing, GPS for the location sensing, a very complex algorithm with a camera for facial recognition, a keypad for entering the PIN, and (the clincher) no keypad or camera on the box.
It would take a fairly complex system to implement this into the device on the box itself. Expensive and lots of memory required.
But what if the box were provided with the following data:
a) This is the device ID.
b) This is the GPS location.
c) This is the user ID according to facial recognition.
d) This is the PIN.
e) This is the time.
Then you only have 5 variables to worry about comparing, and any Arduino can do that!
All of the data is collected and/or provided by the phone.
That kind of scenario is what the “virtual shield” provides. And Microsoft is making it VERY easy to implement.
Imagine then that you wanted to add a level of interactivity, using a Spark ‘Electron’ to say to a central office "I have a valid ‘box open’ command, please confirm’. Almost trivial.
Sounds interesting but i’m still trying to understand better. For now it looks like communicating via Bluetooth to arduino for me.
I think of it like being a but on a Windows 10 machine…hmmm
Let’s say that you have an Arduino project that needs GPS location. In the past, you would either buy an Arduino board with GPS built in or buy an Arduino Shield that you plug into your programmed Arduino board to give you the GPS info that you need. So, now, with the Arduino Virtual Shield technology, you would not need to buy a hardware shield for GPS functionality. You could get the GPS info from your Windows 10 device, e.g. phone, over bluetooth or other wireless protocol. The virtual in Virtual Shield is meant to emphasize that you don’t have a hardware shield connected to your Arduino board. You are virtually getting the data you need from some other device, e.g. phone.
Here is one huge implication for this kind of technology.
So you build a robot to navigate your home. Your robot is super smart and capable. But, guess what. Your robot doesn’t have to have the super number crunching, image processing and other technology that it may need to navigate and interact within your home. No, using the Arduino Virtual Shield, it gets access to an Optical Super Computer sitting under your desk, which you may be able to buy, around the year 2020 for about $2000. The Virtual Shield in your super computer is providing your robot with all the realtime processing that it needs.
@Awake and @cucotx: Thanks for the explanations. I was scratching my head a little bit over what it was exactly.
For everyone else, there’s an official announcement on blog.arduino.cc.
It looks like this is sort of equivalent to the Spark webhooks feature, except that you’re calling a function on a phone or computer via Bluetooth. It looks like it works both ways, too. A phone or computer could call a function on an Arduino to read sensor data or whatever else on-demand, much like Spark.function().
It looks like there are some pros and cons to each implementation to access external devices. With a sufficient abstraction layer, I bet that this new-fangled virtual shield stuff could work on a Spark device too.
Wow! Read the comments on the announcement. Villagers with pitchforks and torches are at the gates over there.
To my eye, this looks similar to the Yun architecture except it is distributed across two things, Uno and phone, linked by a Bluetooth connection. Sure, that is an interesting model, but the price point is quite high relative to Spark. The feature set is higher than just a Spark without a cloud too, but Spark does have a cloud and that completely changes the economics in favor of Spark.
Guys, is this not very much like Blynk on Kickstarter but on Windows Phone. I guess this is a way to get Windows phones sales up!
Microsoft is pushing all of their newer tech pretty hard, and giving a ton of it away for free or greatly discounted. I think their fiscal year end is in either June or July, so they’re trying to grow their customer base even if it doesn’t grow their bottom line (yet). Heck, I signed up for their BizSpark program earlier this week for a little independent side project of mine.