A REFINED APPLICATION
With careful consideration and deliberations from the previous feedback, our team has developed an alternative application to Ball-E, a vent inspection robot for hazardous laborataries. The idea was further inspired through an overseas learning trip to Trinity Biomedical Science Institude, where we visited a hazardous, negative pressure laboratory. The laboratary is used for experiments on biohazardous viruses, hence it is required to maintain lower pressure in the lab compared to surrounding areas to prevent escape of such pathogens. Proper and regular vent inspection is crucial in these labs to ensure that the ventilation system is functioning effectively to establish the lower air pressure.
Ball-E would be remotely piloted by an inspector outside the lab and be used to examine and record damages and obstructions through a front facing camera. This alteration removed the need for AI image recognition for independent functioning, as the new robot would be remote-controlled by a human operator. Moreover, the new application of examining potential hazards in the vents is far less complex than that of child-caregiving, as it only involves providing camera surveillance for the operator to identify possible hazards.
Ball-E’S 3D RENDERED DESIGN
![](https://blogs.ntu.edu.sg/ps5888-2023-g11/files/2023/06/Screenshot-2023-06-24-174533.png)
Ball-E’s HARDWARE
There were several key considerations in developing the hardware of the Ball-E. Firstly, the wiring of the electrical circuits had to be carefully considered. The motors drew current that was many times higher than the Arduino controller used to control them. With too high a current, the Arduino controller would be overloaded and cease to work. Conversely, with too low a current, the motors would simply not engage. To solve this problem, we planned to use motor drivers to control the current going to the different components.
MOTORS AND MOTOR DRIVERS
![](https://blogs.ntu.edu.sg/ps5888-2023-g11/files/2023/06/Screenshot-2023-06-24-174708.png)
The two round RS550 DC motors are controlled by L298N DC Motor Drivers and are capable of delivering a torque of 0.5 Nm. Together, they will serve as the main motors to drive Ball-E forward. The two Nema 17 Stepper motors will be attached to a heavy adjustable weight which will be used to alter the centre of gravity of the sphere. With a step angle of 1.8°, the Nema motors will allow precise control for lateral directional changes, allowing Ball-E to change direction while in motion.
LITHIUM ION BATTERY, 2 PERPLEX HEMISPHERES
![](https://blogs.ntu.edu.sg/ps5888-2023-g11/files/2023/06/Screenshot-2023-06-24-174720.png)
The SHANG YI battery provides 2200 mAH, 11.1 V. At peak operating capacity, the RS550 DC motors can run for 15 min before the battery is depleted.
3D-PRINTED BASEPLATE
![](https://blogs.ntu.edu.sg/ps5888-2023-g11/files/2023/06/Screenshot-2023-06-24-174728.png)
The parts would be held in place by 3D-printed baseplate, motor housing and battery-stepper motor housing. The output of the 3D print is shown in the figures below.
MOTOR HOUSING AND 3D-PRINTED BASEPLATE
![](https://blogs.ntu.edu.sg/ps5888-2023-g11/files/2023/06/Screenshot-2023-06-24-174738.png)
A snug fit for the motor housing was required. This was to prevent the motor itself from rotating instead of the treads it was attached to. To achieve this, we printed the motor housing such that its diameter was 0.01mm smaller than the motor itself. Then, we cooled the motor down by placing it in the refrigerator. This was to achieve thermal contraction. While the motor was still cold, it was inserted into the housing. When the motor re-expanded, it was tightly in the motor housing.
Ball-E’s SOFTWARE
WIRING THE ARDUINO
![](https://blogs.ntu.edu.sg/ps5888-2023-g11/files/2023/06/Screenshot-2023-06-24-174749.png)
We soldered the live and neutral wires to the main motors, preparing them for the wiring to the computer that would be mounted in the middle of the base plate, between the two motors.
Arduino Code
// Define pin connections & motor's steps per revolution
const int dirPin = 2;
const int stepPin = 3;
const int stepsPerRevolution = 200;
void setup()
{
// Declare pins as Outputs
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
}
void loop()
{
// Set motor direction clockwise
digitalWrite(dirPin, HIGH);
// Spin motor slowly
for(int x = 0; x < stepsPerRevolution; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
delay(1000); // Wait a second
// Set motor direction counterclockwise
digitalWrite(dirPin, LOW);
// Spin motor quickly
for(int x = 0; x < stepsPerRevolution; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(1000);
digitalWrite(stepPin, LOW);
delayMicroseconds(1000);
}
delay(1000); // Wait a second
}
The code above was to test the forward motion of the motor at full capacity.
FEEDBACKS/CHALLENGES FACED
- The RS550 DC motors could only generate a total of 10kg*cm of torque to rotate Ball-E. However, the completed Ball-E had a weight of 1.8kg, and the radius of the ball was 10cm, hence a torque of 18kg*cm is required to move Ball-E from rest. Hence, we purchased two JGA25-370 motors which could generate 24kg*cm of torque each to replace the existing motors.
- Weight attached to stepper motor is insufficient to alter centre of gravity of Ball-E. Our team will be trying other designs with either higher weight or longer pivot distance to increase moments for rotation.