Our finalized project!
All of the parts prototyped during the process
The circuit for each individual car
Our project idea comes from our love of interactive games and our diverse technical skillset. Our team, which consists of an aerospace engineering student, a computer engineering student, and an electrical engineering student, decided that creating a hardware project that would incorporate each of our areas of expertise. Originally, we wanted to create an IoT project, particularly an IRL version of Angry Birds controlled with a Muse but Muses were unfortunately unavailable at this hackathon. On the car ride to the hackathon, we talked about how much fun it would be if we created battling robots. We started on the idea of creating a sumo robot competition only to experience difficulties because the stepper motors provided by MLH were too weak and slow. This lead to us eventually settling for a laser tag version, where robot cars attempt to fire lasers at each other.
What it does
We created two robotic cars that are controllable through an Android application. Utilizing this app, the user can maneuver their tank in addition to position their laser in an attempt to hit their opponent. When their opponent is hit in their critical spot, their LED flashes off, indicating that they have been shot. Players can then decide on their own how many shots are required to conclude the game.
How we built it
Because we had different skill areas, we were able to effectively delegate tasks and separate work. We separated our application into three separate portions - the high-level Android application, the low-level Arduino code, and the base mechanical core binding our project together.
On the high-level software side, Antony created the phone application which communicated with the robot. Because of prior experience with Android Studio, he decided to create the application for Android devices exclusively despite the fact that we only had one Android phone amongst our group. He utilized the BluetoothSPP library in order to send bytes over to the Arduino powering the robotic car. Aside from that, he simply made a bunch of buttons to send the bytes over.
Android Studio was selected because of prior experience
William, being an Electrical Engineer, worked primarily on the Arduino code. To move our car, he utilized the built in Stepper.h library to control stepper motors. Additionally, William wrote code in order to fire an Arduino laser module, light up an LED, and read from a photo-resistor. The area that gave him the most trouble, however, was the Bluetooth module. Due to a scarcity in parts, we had to utilize two separate Bluetooth modules. Antony helped out with figuring out how to control the HC-06 bluetooth module but the HC-05 bluetooth module gave us significantly more trouble. More can be read about this later in our challenges section. Aside from that, we all collectively worked together to create the circuits. William would prototype the circuit while Antony and Ysabelle would finalize it by cleaning it up and soldering together wires.
Being able to solder at Hacktech really helped out a lot!
Our finalized, color-coded circuit
Ysabelle, the aerospace engineer in the group, attended a hackathon for the first time this weekend. To highlight her unique skillset, she brought along a 3D printer, the Dremel Digilab, in order to CAD parts in Solidworks. This was vital to our idea; the parts formed the base for both cars.
Our 3D Printer which created a ton of different parts for our product
Challenges we ran into
The largest issue we ran into was our shortage of parts. Unfortunately, we arrived at the hackathon late in the evening because we all had meetings to attend to earlier in the day. By the time we arrived, many parts from the hardware lab were already claimed. To make up for this, we ended up making 3 separate trips to buy electronic parts from various stores including Fry's Electronics and All Electronics. We had to buy an additional bluetooth module, wires, light sensors, LEDs, screws, and resistors.
We did a two hour trip just for these resistors because the Hardware lab didn't have high enough resistances
Additionally we planned on utilizing the Seed Studio Arduino shield in combination with the Seed Studio Light Sensor (both of which were provided by the MLH Hardware Lab) but unfortunately, it was only compatible with the Arduino 101. While this version of Arduino was provided by MLH, our Android bluetooth library was not compatible with this Arduino model, Therefore, we had to utilize our own Arduino Unos which we brought along. However, it took several hours of trial and error to realize this.
Another major issue we ran into included sizing our parts. We lacked any form of measurement tools (we forgot to bring rulers) and so we had to either estimate by utilizing other objects as references or refer to datasheets online. This lead to several unsuccessful 3D prints and plenty of trial and error.
Our 3D printer was on the constant grind from the moment hacking started
Finally, a big problem we ran into was our inability to power the Arduino wirelessly. We designed our entire project with the intention of making our robot wireless but unfortunately we did not think carefully our how we were going to supply it with power. We tried to utilize 9 Volt batteries and plug them directly into the Arduino's VIN port but this proved to be pointless. We simply had no way of supplying enough power. For the sake of demoing, we are likely going to be connecting our cars to our laptops but we'll be making an attempt in the last remaining hour.
Accomplishments that we're proud of
We are really proud of our ability to overcome the challenge of integrating both the HC-05 and the HC-06 Bluetooth modules. We struggled significantly, in particular with the HC_05, because we needed to supply a very specific amount of voltage to the module. We had to buy specific resistors and plan the circuit out carefully for this specific Bluetooth module. We even made a trip to Fry's to buy a second HC-06 Bluetooth module for a whopping $22 but we're happy to say that since we figured out how to get the HC-05 working, we are able to make a full refund today!
The Bluetooth module that gave us hell
We're also proud of how we were able to incorporate all of our skills into a fun, rewarding project. All of us put in an equal amount of work despite the fact that we were so different from each other. Overall, it was a fun project to build and we each learned more about each other's skillsets.
What we learned
Coming from a wide variety of backgrounds (aerospace, electrical, and software), we were all able to learn a piece from each others disciplines. For example, this was the first time any of us had produced a 3D print at any hackathon. Additionally, it was Ysabelle's first hackathon and so she definitely learned a lot about hackathon culture, normally reserved to computer science majors, while showing off some of her specialties in mechanical engineering. As for our technical skills, we learned a lot about so many various areas. Integrating the Android application with an Arduino via Bluetooth incorporated both high-level and low-level code. We are probably also one of the few groups who placed a heavy emphasis on mechanical design but we believe that that is extremely vital throughout engineering. We definitely struggled a lot with this project, and it's far from perfect. However, we are proud of the result because we diversified our skillsets and created an application that integrates a broad mix of our interests.
What's next for Laser Tag Robots
Given more time and money, we would have certainly fixed the battery issue, changed our stepper motors to be faster, and create a more polished Android application. We definitely plan on continuing this project (because we spent some of our own money in order to fund parts) and we might eventually be able to make it into a fully functional game. We also intend on implementing a leaderboard system and create multiple robots in order to make it playable for large groups
Aside from continuing on with this project, we also intend on continuing to do more hackathons together. This was a fun group to be a part of because of our varied mix of skills and our friendships. However, immediately after this hackathon, we're of course going to go straight to sleep because it's been a long weekend of work.