responsive web templates

SPRINT 2

Sprint 2 was our reality check. We started designing, building, programming, and figuring out how to bring our idea to life. Here's what we accomplished sub-system wise during this sprint!

Mechanical Progress

01.

Accomplishments?

For the second sprint, we fabricated our larger chassis and assembled the robot with wheels, the Arduino and motorshield, and the bump sensors. We ShopBotted our larger chassis out of plywood so that our robot would be durable and able to withstand hitting the walls. The larger chassis had cutouts for the wheels, the electrical wiring, and our hand sanitizer mount. 

02.

Problems?

One of the problems we encountered was that the IR sensor could detect motion from different directions and was difficult to trigger since it was not firmly mounted. Another problem that we encountered was that the only way to trigger the tactile switches (bump sensors) would be to press it down with our hands since it was not firmly secured to our chassis in any way. 

03.

Goal for Next Sprint?

In the next iteration of our robot, we would like to mount the hand sanitizer dispenser so that we can make sure it would fit into our chassis adequately and to see if it needs PID control as the hand sanitizer dispenser will make our robot top heavy. Another component we would like to add is a mount for the IR sensor so it is protected and to prevent it from detecting motion besides a hand waving on top of it. Finally, the tactile switches need to be mounted properly so they don't have to be triggered by hand and will be able to turn our robot away from walls. 

Electrical Progress

Rebuild breadboard circuit to add more tactile switches, change from a power supply to a 6V battery-powered source for a cable-free robot, and integrate COTS sanitizer dispenser’s hand sensor

01.

Accomplishments?

Upon working with course assistants, we realized that the tactile switches were not connected to the 5V power we were supplying. Additionally, we found that the resistor did not have a high enough value so we had to switch from a 1k to a 10k resistor. The last change we made to fix this issue was moving the switches to be in parallel rather than series.
We had initially scoped 6V batteries to power the motors. After switching to batteries and running through test cycles, we observed wheel speeds that appeared slower than they were set to. This made us realize that the batteries were draining faster than we initially anticipated. So, for testing purposes, we opted to keep the cable power supply, and near the end of Sprint 3 was likely when we would be switching back to a battery pack. 

02.

Problems?

The key issue in this sprint was that even though each individual case delivered the commands to the robot as expected when we tested one case at a time, when the tactile switches were pressed, the robot did not detect these presses most of the times and instead changed cases in a cyclic fashion to alter the robot behavior. To understand this issue, we had to focus on debugging the circuit for detecting the tactile switches. 

03.

Goal for Next Sprint?

During another test, we noticed one set of wheels in particular spinning significantly faster than the other three sets. This was because we had a faulty Motor Shield which made one of the motor power ports get more power.
Reading raw output values from the sensor in the COTS sanitizer dispenser via Arduino was unfeasible since the COTS part was using a PCB that had very little data provided about it. This meant that we had to pivot from our original idea to using the given method of dispensing.  

Software Progress

A four-wheeled robot which moved and changed direction upon obstruction contact.

01.

Accomplishments?

Sanibot, a four wheeled robot, moved forward until an obstruction was detected. The robot detected an obstruction when a tactile switch was pressed.
If the tactile switches placed on the front of the robot were being pressed, the robot would be directed to move all wheels backwards away from the obstruction. Then, Sanibot would turn towards the right by moving the left front and left back wheels forward and the right front and right back wheels backward. Once the travel direction was changed, the robot would move forward again.
Alternatively, if the tactile switches placed on the back were being pressed, the robot would be directed to move all wheels forwards. Then, Sanibot would turn towards the left by moving the right front and right back wheels forward and the left front and left back wheels backward. Once the travel direction was changed, the robot would continue to move forward.
The commands for Sanibot were constructed using cases and loops in sprint 2. Each case represented a situation the robot would face and each loop dictated the behavior of the robot. Depending on the case the robot was facing, it would enter a certain loop and perform all the commands given in the loop. The cases were as follows: the robot could hit no obstructions and continue traveling forward or one of the switches in the front or back could be hit leading to a change in direction and movement as explained above. 

02.

Problems?

The key issue in this sprint (and in sprint 3) was that even though each individual case delivered the commands to the robot as expected when we tested one case at a time, when the tactile switches were pressed, the robot did not detect these presses most of the times and instead changed cases in a cyclic fashion to alter the robot behavior. To understand this issue, we had to focus on debugging the circuit for detecting the tactile switches.

03.

Goal for Next Sprint?

The commands for Sanibot were constructed using cases and loops in sprint 2. Each case represented a situation the robot would face and each loop dictated the behavior of the robot. Depending on the case the robot was facing, it would enter a certain loop and perform all the commands given in the loop. The cases were as follows: the robot could hit no obstructions and continue traveling forward or one of the switches in the front or back could be hit leading to a change in direction and movement. We wanted to optimize this in Sprint 3, and fix and circuit issues we had.