Self driving cars are often in the news, being cited as an impressive new innovation and the future of transportation. Our team recognized the value of this automation in many sectors other than the main roads that we frequently drive in. Automated vehicles could also be used on a smaller scale, in warehouses, hospitals, homes, and grocery stores. However, the full suite of electronics in a self driving car would prove to be extremely costly in these situations, where there would be significantly less need for precision driving. In response, our team looked towards a more modest, affordable, and flexible method of introducing automated vehicles to various sectors of life.
What it does
Our solution to this problem is a small, but flexible robot with various levels of control capability corresponding to need. The first level is a simple line sensor, where our vehicle is able to move along predetermined paths. This would be useful in places such as warehouses or home security, where there are predicable paths, and easily programmable stopping points. We hope to include an GUI that would let warehouse owners easily implement these routes in the future.
The second level is a smartphone controlled Bluetooth robot, where we have used the Arduino bluetooth module along with a simple smartphone app to manually control the robot. This level of implementation, along with various sensors such a camera could prove valuable for remote home monitoring, from interacting with pets to observing small children.
Lastly, we introduced the possibility of interfacing with Google Assistant with the use of voice commands. Right now, the extent of our implementation is controlling the direction of travel of our robot, but the code could easily be expended. Our code turned out to be quite modular with the use of IFTTT, which can easily be expanded to an app GUI that the user could program in their own features, such as a kitchen assistant or robotic nurse in a hospital, where the need for hands-off interaction is needed
How we built it
The base of our project is a simple car chassis, where we used the standard Arduino motor control and Bluetooth module. Navigation at this level is aided by two line sensors and an ultrasonic sensor. Power is provided through a makeshift power bank, which allows for easy and fast charging. The Google assistant implementation is a bit more complicated. We used a particle photon kit to send commands to the Arduino through wifi, aided by IFTTT.
Challenges we ran into
The main challenge we faced was our implementation of the voice commands. Since we were inexperienced with Google home and wi-fi modules, we were challenged to start from the bottom. We were originally going to use the ESP8266 Board, but due to the lack of components, we went with the particle photon instead. It was easy to set up the voice recognition on it's own, but it was more challenging to actually send the data to the Arduino and in turn the motors, since the Photon is not that well documented at the moment, but we eventually solved this problem by making an intermediate circuit and using Serial commands.
Accomplishments that we're proud of
In terms of our mechanical design, we did not need to make any major modifications since our first model, apart from a few circuity changes. We also managed to make the whole package relatively compact, allowing for easy expansion in the future. Along the software side, we were proud that we were able to integrate so many control capabilities into a simple motor car, as well as making different programs and hardware interface with each other.
What we learned
Since the theme for this Hackathon is connectivity, all of us learned a great deal of how different devices interacted with each other. Since we used Arduino, Particle Photon, Google Assistant and Bluetooth in our project, we had to spend a great deal of time learning how to write code and design circuits that worked with all four aspects. This was ultimately beneficiary to us, since we also realized the endless possibilities that different IoT device combinations could bring.
What's next for BoundlessBot:
We imagine BoundlessBot to be a basis for a wide range of consumer implementations, and taking this to an entrepreneurial level, we would ideally like our hardware and software to be extremely easy to personalize and use. People could design their own robot based on their own needs, and companies could have small fleets of these robots perform jobs based on cloud networks. We hope to host our own mini-programs store for developers to get creative.