top of page

5.5.21

INTERACTIVE OBJECT

REACTIVE ROBOT

Project Summary

Our final project group consists of me, Kaitlyn Huynh, Madi Heath, and Grace Geer. For our interactive object, we decided to build a robot that acts as a thermometer and has different buzzer and LED reactions based on the temperature. This is why we named it Reactive Robot. As someone who doesn't have a thermostat in their apartment, this is a great way to visualize how warm or cold it is in a more exciting way than just a regular thermometer. We wanted this robot to have a friendly appearance and kept its dimensions on the smaller side so it can be placed anywhere in the user’s house or apartment. This robot is very user friendly as it can be used by anyone!

​

We built the robot in three main parts: building the circuit, coding, and fabricating. For our circuit, a list of materials can be found below, but the main sensor we used was a DHT22 temperature sensor. This sensor is low-cost and works by using a capacitive humidity sensor and a thermistor to measure the surrounding air. It sends data through a digital signal on the data pin, so no analog input pins aren’t needed. Our outputs consisted of three LEDs (red, green and blue), a buzzer and an LCD display screen that prints a face and the temperature.

​

In our code we defined three different states: cold, normal, and hot. The cold state is entered when the temperature is 65.99 F or below. Then the blue light blinks, a sad tone plays, and a sleepy face as well as the temperature are displayed on the LCD screen. When the temperature is between 66 F and 79.99 F, the robot enters the normal state. The green LED blinks, a happy tone plays, and a happy face and temperature are displayed on the LCD screen. Finally, when the temperature reads 80 F or above, the robot enters the hot state. The red LED blinks, an angry tone plays, and a mad face and temperature are displayed on the LCD screen. The temperature is updated every two seconds which is the perfect amount of time since we don’t need it updating any more frequently than this. The idea is that if the temperature gets too hot or cold, the user should move the robot to a different room/environment so it returns back to the normal/happy state.

​

For fabrication, we wanted the robot to have a clean look, so we decided to 3D print it. It was printed with white filament which made painting a lot easier. In l x w x h, the head measures 4 in 4 in x 2 ½ in, the body is 3 in x 3 in x 2 in, and in total it’s 4 in x 4 in x 4 ½ in. It has a detachable lid, so the 9v battery can be easily replaced, and we used electrical tape to secure all of the wires in place on the Arduino and mini breadboard before putting them inside the robot. The LEDs, LCD screen, buzzer, and sensor were all secured with glue to ensure they wouldn’t go anywhere. Finally, it was painted blue and pink to have an overall cute and approachable aesthetic.

6

1

Team Member Responsibilities/Credits

Hannah Curran - Co-coder with Kaitlyn (focused on LCD), drawings/schematics, circuit assembly

Kaitlyn Hunh - Co-coder with Hannah (focused on buzzer and DHT sensor), documentation, circuit assembly

Madi Heath - 3D modeling of enclosure, cardboard mockups, video and photos

Grace Geer - LEDs, painting of enclosure, photos

4

2

Materials List

5

7

IMG_1909.PNG

Schematics, Interaction Diagrams, and Graphics

8

Reactive Robot Schematic Diagram.png

Drawings for how our robot reacts in different environments.

From left to right: cold, normal, hot.

IMG_1911.PNG
IMG_1912.PNG
IMG_1910.PNG

Final Enclosure

Our final enclosure was 3D printed and painted. Photos were taken by Grace (top left) and Madi (top right and bottom).

DSC_0535_edited.jpg

State: Off

ReactiveRobot-2_edited_edited_edited.jpg

State: Cold

ReactiveRobot-1.jpeg

State: Normal

ReactiveRobot-3.jpeg

State: Hot

Demo Videos

The main video was shot and edited by Madi.

Here are additional videos showing the robot in each state. Recorded by Kaitlyn.

From left to right: cold, normal, hot.

Final Code

The top code is for our entire robot and the bottom code is Bytes.h which includes the characters for the LCD screen.

Individual Summary

When it came to my contributions, I created all of the drawings and and schematic diagram above. I also had the responsibility of coding the LCD screen to show our robot's different emotions based on the temperature. I created a repository on GitHub, so we could see changes to our code in one place. I also ordered the mini breadboards, extra wires, and new battery we needed.

 

When it came to coding, I ended up co-coding with Kaitlyn since we went to office hours a lot together to debug our code. In addition to creating the LCD code below, I added a few lines for each LED so they would blink instead of stay still. The code was also changed by creating different functions for each state (cold, normal, and hot) and calling on these functions in the loop though if/else statements. Two additional functions were created called stateCompare() and counterCheck() to ensure that when the robot enters a new state it only loops 5 times and then stops.

 

Here are the resources I used in order to get the LCD screen working properly:

Here is just the code for the LCD display:

Finally, here are images of the three faces for the different states.

From left to right: cold, normal, hot

LCD%20Sleepy_edited.jpg
LCD%20Happy_edited.jpg
LCD%20Mad_edited.jpg
bottom of page