Last week I made a prototype including a vibration sensor and NeoPixel LED strips. One of my research questions was if the shake was too sensitive or not and I mentioned in class that I found it hard to test on people as they would have to come to my computer. With that, they suggested using ESP32 or Photon to make it wireless, which I found intriguing. In addition, I knew before doing any tests that the sensor was too sensitive, so I wanted to improve that further by using an accelerometer/gyroscope to detect movement and shakes further.
After talking with the tutors and planning on Tuesday, I went to the University on Thursday to pick up a bunch of sensors.
I then spent Friday playing around with the ESP32 and the Photon! I found it hard, in the beginning, to transfer Arduino code to the ESP32, as for example, the ESP32 had 3.3V and Arduino has 5V. I couldn't get my initial setup with a standard LED to work, but I tried one more time after Ben told me the volts should work the same, and it worked!
The last one shows it working with a battery as well!
I tried playing with the Photon as well, but Ben mentioned the Photon to have a bit of its own ecosystem, and since I'm collaborating with my team it would make it easier to make things work on the ESP32.
I then started working with the accelerometer together with the ESP32. It was difficult to find tutorials for this, but in the end, it was fairly simple to connect the wires (ground goes to ground etc). Once I got it working, I had a bunch of numbers on the screen that told me which way everything was going, but had no idea how to make sense of it. I had earlier tried some libraries, but these seemed to only work with Arduino, not the ESP32. Clay helped me making sense of the numbers by creating a formula to create a sort of "total number of movement", and I looked at the numbers and created my own threshold.
Next step was to hook up the LED strips the same way as previously and try to merge the old code with the new one!
Now I had a wireless version of what I had before! One issue, however, is that my breadboard is too big to fit back into the ball again. I asked the tutors whether I could pick up female jumper cables and a smaller breadboard, but no answer so far.
Now that I had the technology working, I wanted to improve the shake from what it had been before. But what is a good sensitivity of a shake? Should it change after you've done the shake, or as you're doing it? How sensitive?
I ended up doing some research. The iPhone has a built-in feature that if you shake it after you've written a text, it asks if you want to undo what you have done. I tried playing with how sensitive this was, but I think if you push cancel a few times in a row, it assumes you are just in a shaky place and don't really want to be prompted, so I couldn't test this for too long. What I noticed, however, was that it had a haptic feedback, vibration that tells you that something had happened. I ended up searching for "shake" on Apple Store and downloading the first apps that seemed to be based on a shake. Here is how they worked:
- Truth or dare: Like a dice, get to see it spin and gradually go slower and present a result.
- ShakeTips: Shake for tips, receive vibration and audio feedback. If you shake for too long, it won't do anything
- Shake it: Pick a random thing from a list. Same, if you shake it too long, nothing happens. No haptic or audio feedback, changes when you stop shaking.
- Shake to charge: Tracks while you shake, stops around half a second after you stop. Only visual feedback.
- Baby Toys-Shake or touch. Audio feedback while shaking it. Stops when you don't shake it.
I noticed that the ones with vibration feedback was a bit easier to use for me, so this might be worth exploring in a future version. Most of the apps gave feedback once you stopped shaking, which gave me a good indication of when the colour should be displayed. I ended up playing around with it for a bit, seeing what felt natural. With the end result, the ball won't change colour when you just pick up the ball as previously. I even tried throwing the ball up in the air, which is Marie's interaction form, and it didn't count this as a shake! So that is really good, that was part of the aim.
Sunday I went to Thomas and Sigurd's place and used their sandpaper to make the surface of the balls matt. I ended up chatting about the problem of making it fit in the ball and as it turned out they had both female jumper cables and a smaller breadboard! So I will spend today and this week on putting it all together with the new things so that it was fit in the ball!