Posts

Semester Wrap-Up

Image
We have a working Laser Battle Bot! After learning what we needed to from the initial controller prototype, we 3D printed our final controller housing. It was a tight fit in there, as seen below, and there are definitely some things we plan to change in the next iteration, but the controller feels comfortable to hold and sends the necessary signals to the robot. We were really proud of the way it turned out. We had to do a last-minute redesign of the tank housing in order to get it printed in time, thinning the walls and bringing it in tighter to the robot base. It turned out looking nice! The IR phototransistors posed a bit more of a problem than we had realized. We had initially planned to place them in an LED shroud, then press fit them into the housing. After looking at the logistics of the wires, we realized that we either had to solder them after pressing them all in the housing or else find a way to get them into the housing with all the wires already soldered together. We c...

PCBs and Controller Progress

Image
Last week, finally got to a position to design PCBs! We finished up some last changes after hooking up the last few LEDs and a dip switch array to the tank. The dip switches will eventually be programmed to allow any controller to be paired with any tank base. By physically configuring the 4 dip switches to a configuration, then matching that configuration on the controller through the LCD menu, we’ll be able to have any two controller and tanks pair properly! The PCBs came in today, so we'll be soldering them and getting them connected this weekend. Tank PCB: Controller PCB: In terms of the mechanical design, we've done quite a bit of refining to the robot base. We changed the motor connection to screw in rather than press fit onto pegs, then realized that our motors weren't actually symmetric, so we modified the design to account for that. We also made a turret to snap onto the servo, and prototyped various snap fit designs for the tank housing connection. Over th...

Button Multiplexing, Redesign, and World-Travelling Packages

Image
R2R Button implementation In an effort to get as much out of as few pins as possible, we decided to try to make our 5 input buttons multiplex into one analog pin using an R-2R ladder Digital to Analog Converter circuit. Our initial implementation failed due to our momentary pushbuttons being single pull single throw switches (R-2R ladders need single pull double throw), however, we implemented a logic NOT gate chip that allows our pushbuttons to output 5V or GND to each input of the ladder. It works pretty nicely! By reading in the analog values for every possible combination of buttons, we saw that each voltage level was distinct and consistent, but not predictable with a formula. So, we put all those analog values in an array where the index of the array containing any particular value corresponds with the sequence of buttons pressed to obtain that value. It works well! Chassis V3 In order to keep iterating on our physical chassis design, we redesigned such that we don’t...

LCDs and New Batteries

Image
We’ve made some significant progress in the past few weeks! The IR protocol came together nicely. We encode each shot with a team number (1-4), damage level, and status effects (currently including slow movement, cannon disable, and stun). For the IR receive we just put the phototransistors in parallel. As we discussed in our design review, this could potentially lead to errors if two phototransistors receive a message simultaneously, but we’re going to ignore that possibility for now. In addition to having the shots encoded, we modified the controller code so that it will display which weapon is selected and how much ammo is remaining. We adjusted it so that the ammo will only decrement if the tank actually fires a shot. The code can be accessed at https://github.com/TylerQuacken/Laser_Battle_Bots. In looking at the different weapons, we realized a few things. For one, we’ll have to allow some time toward the end to adjust parameters to make sure the game is well bal...

Driving The Robot and IR Protocols!

     This week we worked a lot on getting the RF packet sent from the controller to be received correctly by the robot. We attempted to minimize packet size using the Arduino bitWrite and bitRead functions. We also worked a lot with the algorithm to allow for natural control with the joystick, since at first the directionality inverted when we drove backwards. In getting the motors to run how we wanted them, we also ran into some issues with battery power. We started using a 9V battery for prototyping purposes, but we didn’t want to use that as a final fix due to the cost of 9V batteries. We purchased a multi-pack of 3.7V batteries than we plan to use in series to access nearly the full potential of our 12V motors. Our robot being controlled by Landon. You can see that we can drive, turn the servo, and blink an LED.      With most of the base hardware assembled, we were able to fully implement our RC communication. The two websites that were most h...

Slippery Wheels and RC Control

Image
This week we made significant progress on the mobile base for the robot. We 3D printed the CAD model we created last week, then attached the motors and tested functionality. Our prototype base. We made a simple program to control our H-bridge and drive the wheels. It's hard to see them turn, but they do! When we ran the prototype on the ground, we realized that we needed significantly more traction than what we had in order for the robot to drive properly. We attempted to use rubber bands, but the shape of the wheels made them impractical. You can see that our robot wanders a bit in this test. We think that's due to friction differences between the wheels. When the rubber bands we put on for traction fell off, things got a little...janky. As a consequence, we decided to redesign the wheels of the robot. We purchased silicone O-rings to provide additional traction. The two O-rings seat on the wheel, and the wheel press-fits on the shaft...

Final Proposal / Weekly Update

Image
Response to Feedback We’ll be making a pair of laser tag bots. We decided start 3D printing the base next week. This change is reflected in our schedule, and CAD models can be found below. We chose to use RF transceivers. Since neither of us has much experience at all with wireless communication, and because they were an inexpensive option with significant online support, we decided this was the best method. We definitely plan to keep our scope manageable. We assured that the milestones for the last three weeks of the semester before the project fair were all related to features of the advanced design so that if the base design takes longer than planned, we'll still be able to have a functioning product by the time of the fair. We've looked a little bit into IR communication protocols. We researched how laser tag arenas modify their IR signals to extend range and encode shooter data. Tyler also has a little experience with how toy laser tag signals work. We ordered some ...