In this assignment, we were tasked with modifying the Ultimate 2.0, an Arduino-based modular robot to remotely grab and bring a bomb towards a safe location. The code for the robot was done inside mBlock's block-based programming (similar to Scratch). The Controls for the robot use a MakeyMakey attatched onto a 3D-printed controller. Because the robot is controlled via Bluetooth and not any kind of radio signal, the bomb zone and control area are partitioned by cardboard.
We were fist given Ultimate 2.0s that were in previously used condition. For me, this meant that I first had to start with removing any pieces that I found to be unsuited for the design I was going for. This previously used robot gave me insight into some of the design ideas I could use/ should avoid, such as a phone case made using bendable wire. I first decided to streamline the robot chassis by integrating the battery into the bottom of the chassis. Although I first thought of this as a simple task, this took much longer than anticipated due to the little room I had to make the battery fit under. Next, I decided to keep the previous arm design, but allow it to rotate around the robot freely. To make sure the motor could move the heavy arm smoothly, I put a large gear ratio onto it so that the arm would rotate slower but with an increased torque. Finally, I contenplated where to add my phone onto the robot as its eyes, but I looked back to where it was placed in its used condition (the back left side) after finding it to be the only area that would not interact with the rotating arm.
The code was edited from a default Ultimate 2.0 code online to take into account the controller inputs of a MakeyMakey. I added the variable "type" into the code so that when certain buttons are held on the MakeyMakey, the arrow keys do differing functions:
type=0: Arrow keys are assigned to the basic robot movement
type=1: Up and down arrows control the vertical movement of the arm, with the left and right arrows controlling arm rotation.
type=2: Arrow keys are assigned to the basic robot movement but at a lower motor power for precise movement
Also, there is a distance sensor placed on the front of the robot, which prevents the robot from being too close to the base on which the bomb is placed, like an emergency brake.
The original design for the controller was meant to have a joystick to control movement and a phone mount in between, the outcome of the print and low time meant that I had to compromise and create a simpler design. On each side consists four buttons. On the left side, each is for movement, and is directly mapped to the arrow keys. The buttons on the right side have two buttons that change the function type (as written above), with the other two mapped to opening/closing the arm. On the backside, there is copper tape that you must hold onto to complete the circuit, as this is the ground for the MakeyMakey.