Saturday, 27 September 2014

Saying hello to the Internet of Things!

A while back I signed up for Microsoft Developer Program for Internet of Things ( #iot for more info ). As much as I love exploring new things this was extremely exciting thing for me.

I have always had the curiosity to know more and try to hack things my own way. Even as a kid I had an investigative mind which always tried to discover more about how everything works. You can imagine this curiosity by the fact that I got severe electric shock as a kid, when I tried to cut a live wire from "Clothes Iron". This curiosity grew more and more in me, to a point that I did an engineering degree (Yes! I was born with an engineer's mind). I have always been interested in hacking different devices to make something more useful out of it.

So a few weeks back I received an email from Microsoft Dev Program telling me that I have been selected for Internet of Things developer program and that I will be receiving a kit for making amazing things happen. This was an exciting news for me!!

To those of you who still dont know about Internet of Things, its a new way to design intelligent devices around us which are connected and/or operated through internet. The number of possible things you can do with this idea are limitless.

A week after receiving the first email, I got the kit in post. It was complete with the Intel Galileo SOC and all the accessories required to make things happen. Here is what was inside the box:

1. Intel Galileo SOC with power adapter
2. Usb to Ethernet Adapter for executing and debugging using a PC
3. 16GB SD Card with a Modified Windows version preloaded
4. LED to build a HelloWorld Application
5. Ethernet cable
6. Welcome guide
7. LOTS OF BUBBLEWRAP (my favourite and not in the picture)

So after wasting lots of hours popping bubble wrap (this thing is so addicting, why would they ship it when they want me to make something awesome???), I got on to the website and tried compiling my HelloWorld app. Unfortunately it was not long afterwards I found out that I need an updated version of Windows which, considering how lazy I am, I still have not done. I cannot wait to try this, just need to fix my windows first.

Anyways, I have lots of ideas on what I would do with it. For starter lets just look back on what I have done in the past and then I can comeback and relate that to the internet!!

- One of my first hacks was to use electro-mechanics of a toy car and make an autonomous line following robot. I designed all the circuits with very simple electronics logic, to make the robot 'think' about its whereabouts. Of course this was very limited in terms of how much it could 'think' and make decisions. There were only three decisions to make, 1) go forward, 2) turn left or 3) turn right and this all required a line being drawn on the floor (which was a really big limitation).

- I also worked on a guidance robot which was able to operate without lines. This used straight paths as visual queues and was much more sophisticated in terms of technology as all the controls and decision making was done through a laptop.

- A traffic flow estimation project on a BeagleBoard SOC. It was very basic implementation using OpenCV and some preloaded traffic videos.

- Some other small projects with Arduino which got me a grip of how it works.

So, whats different about IoT?

Imagine the robots connected to the internet. Perhaps with some kind of application specific onboard sensors and processing. The amazing and exciting thing about this would be that these devices have a proper CPU, which has ample power to process the data and make sensible decisions before transmitting anything over the web. A simple backend web application can then be used to control and/or monitor the robot specific to that application.

Some other scenarios can include Human-Computer interaction, especially using visual cues from a webcam (YES! You can connect potentially any device to it, since it has Windows). Even applications as simple as counting people in a room become more exciting with powerful over-the-internet analytics. To me IoT opens a whole new meaning to what has already been existing!!

Now the only thing I need is an updated version of Windows and I will get my fingers moving!! IoT FTW!

So what do you think about the Internet of Things? Or a better question will be, what will you make??