Intel® Ultimate Coder Challenge 2016 – Team Update: Whirlwind

Team Whirlwind Looks to Inexpensively Automate Cars

Editor note: This is the fifth in a series of interviews with leaders of the five international teams competing in the Intel® Ultimate Coder Challenge 2016.

Selected from among 180 worldwide entries, five global teams are competing in the Intel® Ultimate Coder Challenge 2016, with a common goal -- to use IoT to help solve real problems. Tackling challenges from transportation to healthcare, coders are using unique approaches with Intel® edge and gateway devices and common sensors, motors and switches that you would find within our standard Grove Sensor Kit*. Whichever team’s solution is judged to best address the problem in their vertical will be named winner of the challenge.

Team Whirlwind – Innovates with Automotive IoT 

Team Whirlwind took on the notion of making cars more secure and safe while staying inexpensive. They are doing so by creating a real time safety score, which other drivers can see, and adjust their own driving habits accordingly. With the power of the cloud, all this becomes possible and interconnected in hopes to increasing safety on our roads. 

Whirlwind is a team of 5 enthusiastic engineers creating a way to do something innovative in the Automotive IOT. We are developing a way to inexpensively automate cars. Our team of Gaurao Chaudhari - Lead, Saurabh Phaltane, Vinit Gaikwad, Veda Nandusekar and Kasturi Dalvi focuses on developing for the public. A combination of high tech hardware and firmware with cloud solutions is the major target of our product. Our team employs a perfect combination of precise hardware and high tech software.

Gaurao Chaudhari is an Embedded Systems professional who has an undergraduate degree in Electronics and Telecommunication from University of Pune and currently is pursuing his Masters in Computer Engineering from San Jose State University with an emphasis on Embedded Systems. He has over two years of professional experience at Cybage Software as a Software Engineer and was involved in the extension of a product at Cybage and refactoring of existing functionality. Gaurao has done a number of innovative projects in the Embedded Systems area and has great interests in IoT projects. He is currently working on several embedded projects and focuses on hardware processing using different controllers.

Q: What does this project mean to you and your team? 

An idea is a hope. A hope to change something, to change the world, to change people, to change everything. And that’s how we got an idea about safe cars. Cars are made safe from all the accessories inside. But did anyone think of making them safe with the help of the cloud? Did anybody think about assigning scores to cars while they are commuting?

On Inspiration for TransitIQ

That’s how we started developing our project from this innovative idea. That idea came from within and a project that comes from within has a lot of meaning. This project is something I would carry with me the rest of my life. It is a true experience to help the world of IOT. When I got the idea about car safety using cloud and IOT, I first thought of people getting into accidents not because of their mistakes but due to others.  - Gaurao Chaudhari

We thought of giving to the transport community from this project. I deny the fact that there is not personal interest in creation of a new idea. A new idea if properly targeted to a bunch of faithful customers would reap huge benefits. And that’s how is one of the reasons behind this idea, The transport market is huge. If that is targeted with this idea of ours would be damn beneficial in the terms of money.

Q: Describe the sensors you’re using and any challenges with them?

A:  They say, setting up these little beasts is not an easy task. And seriously, setting up a sensor to our required expectation might sounds like an easy task, but there are lot of nitty gritty involved. Interfacing a sensor to a controller has been an easy task for me but getting the exact expectation out of them was a difficult task. The following are the sensor we are using for various of our activities.

Sensors used: 

1) Alcohol sensor

We are using this sensor to deal with the alcohol content of the drivers. This is such a wonderful feature that the car won't start if there is some alcohol detected from the drivers.

Difficulties:

As I said earlier, interfacing is easy but the exact configuration is difficult and that's what we are working on now.

2) Motion sensor:

To detect a sudden change in the surrounding of the car, we are using a motion sensor. This would sense a sudden pass-by of a car and would alert the driver about the presence of another car.

Difficulties:

With the motion sensor, any object which can trigger it. There are a lot of false alarms. These false alarms are currently due to the threshold sensitivity of the motion sensor. The sensitivity in combination with other things would reduce the false triggers of the motion sensors.

3) Accelerometer:

One of our use cases is about sensing sudden movements. We are using an accelerometer along with some other configurable parts to sense the sudden changes of the car.

Difficulties:

We did not face any huge difficulties with the accelerometer, but we are trying to make it very useful for more than just this purpose.

Q: What software, programming languages, and cloud services are you using and why?

A:  The entire embedded programming is being done using C++ because that's the best possible language used due to it's portability.

The following are the different modules of the code used at the embedded side of the project:

1) Controller firmware for sensors interfacing

I set up a controller flashing environment using Eclipse* and serial port programming. Using the AVR* g++ compiler, I was able to program the board written in C++.

2) Firmware for communication with Internet or local network via MQTT.

One of the major parts in our whole project was about communication. To communicate with other devices we are using MQTT. The MQTT communication is also written in C++. We could have used some other language for MQTT implementation, but to create a direct communication bridge between the firmware and network we are using C++ to port the communication code into the firmware code.

At the software and cloud side of the device we are using a Kafka* server along with Amazon's AWS* services. 

Q: Share any challenges, funny stories and solutions that you’ve encountered so far.

A:  There are challenges everywhere any dealing with the challenges gives you satisfaction of the achievements. We all the team members are currently pursuing our summer internships from and some of us are researching in our specific areas. Managing all the stuffs along-with the Ultimate Coder project is a challenge. We need to manage our time so that we could make sufficient contribution to TransitIQ*. Though some of the times we lagged behind, we tried to cope up with all the tasks in our pending lists properly and will do the same until the end of the competition.

Project Funding

In the beginning, we did not have sufficient funds. Our project was needing a car to be used for all the sensors interfacing along with the in-car communication. So we rented a car for a day and tested all our things on that car! This would seem really funny to the student population because they understand the pain of investing money into something. But now we are in a comfortable position financially and we are able to test our product properly.

Q: What data are you feeding to the cloud, and how are you using it in your solution?

A:  We have a major dependence on the cloud. To be specific, a huge dependency. We have built our mapping system on the cloud. Mapping system means mapping all the connected cars on the cloud and then analysis would be done on the cloud. We have the updated scores of the cars on the controller and a ping every second would send the score the cloud. The cloud would have the information of the entire map and the current status of connected cars, their position and their scores. If any car requests any score of a car, all the cars would be scanned in the vicinity of the car and the score would be send to the requested car.

We are continuously feeding MQTT messages to the cloud having the information of the car ID and the car score. These are the two important messages but we are also sending some other important car data like the speed of car, acceleration. These would be used for any other important purposes.

 

Challenge Winners Announced in August

The teams have been steadily coding, wiring and assembling their projects. In the final phase, teams will make final presentations, demonstration videos and display the prototypes that were produced. Follow the Ultimate Coder site showing current progress, pictures of their products, and comments from fans and judges.  Judging begins in August with the winners announced soon after.

For more complete information about compiler optimizations, see our Optimization Notice.