Summary
Our first sprint goal was to have a
proof of concept of light following, human avoiding, and loud sound avoiding
behavior.
We began by rapid prototyping a premade chassis, and mounting photo resistors and microphones. We mounted the photo resistors so they faced up to try to drive the robot to bright areas, but we quickly found that the photo resistors could do double duty and detect human shadows when mounted at a 45 degree angle. With this we were able to create a proof of concept for running away from humans. We had trouble with the microphones since they had such a small range of noise that they actually detected. By the end of the sprint we had some response but it wasn’t reliable.
We began by rapid prototyping a premade chassis, and mounting photo resistors and microphones. We mounted the photo resistors so they faced up to try to drive the robot to bright areas, but we quickly found that the photo resistors could do double duty and detect human shadows when mounted at a 45 degree angle. With this we were able to create a proof of concept for running away from humans. We had trouble with the microphones since they had such a small range of noise that they actually detected. By the end of the sprint we had some response but it wasn’t reliable.
Progress
For the light following software, we used an Arduino to take in the values of three photo resistors and used that data to find the direction of brightest light. We did this by taking a weighted average of light values in the x and y directions, and then we used this to drive the motion. We determined the overall speed by the magnitude of the y direction difference, and the turn direction and intensity by the magnitude and direction of the x direction difference. |
Using a 3-microphone array, the relative direction of a sound can be determined by comparing the values read by the mics. After passing a set threshold, the highest value reading for each microphone from a 50 millisecond sample are compared. The highest value determines the principle direction and the middle value determines the secondary direction. |
|
For the proof of concept of the robot we used a pre-built chassis from a previous project. We wrote our starter code for it to seek out and move towards bright lights. We also created a prototype of leaves that can be shrunk. They are made of folded laminated paper with fishing line running through the middle. When the fishing line is pulled, the leaves shrink. Our intention is to attach the fishing line to a servo in future sprints to automate this behavior. |
One main challenge of this sprint is the limited sensitivity of the microphones. They currently only detect very loud and sudden noises, and often don’t even detect shouts or claps. We either need to look into an amplifier or a different microphone if we want to have more nuanced responses.
Another challenge is that we are out of analog pins on our Arduino Uno, meaning that we can’t add additional sensors without another microcontroller. We are considering buying an Arduino Mega to solve this problem.
Another challenge is that we are out of analog pins on our Arduino Uno, meaning that we can’t add additional sensors without another microcontroller. We are considering buying an Arduino Mega to solve this problem.