This week everything started happening for my project! It started off a bit rocky when I got sick, putting me out of work for a few days. However, I'm really happy with the work I have done and am excited to continue working on it next week!
In the studio on Wednesday, I had some really good discussions with my team about how we were each approaching the project and offering advice/help where we could. I'm really glad I've got such a good group that are still keen to work together where we can.
On Thursday, I had my workshop. I found this class super helpful as we were able to discuss with Ben and Steven how we were going to build the project. We were asked to define what we were building and how we intended to build it. My answers to these questions were:
What are you building?
Building a figurine that measures the temperature in the room and matches it to the current temperature outside. If the temperature is too similar, it will change colour, play a sound, and vibrate.
How do you plan on building it?
- Use temperature sensor and compare that to weather API
- Use strip lights to change colour
- Might use the vibrating mini motor to make it vibrate
- If I have time I want to add something that senses when someone walks past (don't know how to do this?)
- Use speaker to play sound - I'm thinking of just having a list of comments that will randomly be selected and do text to speech (Audio Amplifier Module with Speaker for Arduino)
- Still figuring out interesting way to turn it off
After discussions with the tutors, I decided to try to use the ultrasonic sensors (provided in the auxiliary kit) to detect if someone walks past or comes up to Emily. They thought the rest of my ideas were appropriate solutions, except the weather API. As I don't have access to a wifi board, I will either have to transfer data through a connection to my computer, or just use dummy values. I have decided to add a potentiometer to my board so that you can easily change the temperature to see its effect on Emily.
The rest of the week I have spent building and programming my Arduino. In particular, I have 2 functionalities working. I decided to focus on the temperature and lights so I could easily see when the temperature was acceptable. I also got the ultrasonic distance sensor working. I decided to start with these two functionalities as they are the main features needed for my MVP.
Potentiometer recording the outside temperature that changes the colour of the LED strip of lights if the difference between this value and the recorded indoor temperature is too large. The strip of lights will turn red if its too hot (outdoor temp - indoor temp >= 5), blue if its too cold (indoor temp - outdoor temp <= 5), and green for everything else. However, once I got this all working, I noticed that the lights tended to flicker on the edge of normal to cold and normal to hot.
I fixed this by implementing hysteresis. I did this by recording the state of the temperature as either hot, cold, or normal and then changing the acceptable degree range depending on this state. For example, if it was currently in the hot state, it only requires 3 degrees to stay hot but 5 degrees to change to hot. This meant the LED strip didn't flicker as much and provided much more consistent feedback to the user.
At the moment, the connection to the potentiometer is very inconsistent but hopefully this can be fixed once I solder it.
Ultrasonic distance sensor
Ultrasonic distance sensor detecting if the user approaches Emily or walks past. At the moment this just makes the small LED light turn on (red) but will eventually be used to trigger a comment from Emily.
My final set up looks like this:
I have also been thinking more about the form and might look into 3D printing the outside as this could potentially be easier than trying to piece together laser cut acrylic.
Work to Do
Next week I want to try to get some text to speech working so that Emily can randomly select a comment to say (based on the state) when someone approaches her or walks past. I also want to try to work with a grid of LED lights to make facial expressions to add more character to Emily. I also want to conduct some user testing to determine an interactive way to turn these features off.