The history behind the scales is I wanted to make a fun and interactive "thing" to make people happy and show off in the workshop and at events. I was inspired by an installation at The Centre for Life in Newcastle that showed how much water you had in your body by weighing you and lighting up bottles of water. I was fun enough but not overly exciting and I did not feel I learnt much. I can do better!
Then a few years later a Wii Fit balance board turned up and I started experimenting with communication with it over Bluetooth with mixed results. I realised that the scales could be used and I knew it was showing up as a Bluetooth games controller, but most games controller do not have scales built in to them. I was talking to it but only getting information about the button on the front. Then I came across the Beer Fridge project that I fully credit with solving all my Bluetooth problems. Using a combination of my code and their code I was able to read the four weight sensors and convert that in to kilograms (I am European, for now at least). That code is Python that runs as a demon and will connect to only my board for startup speed. I do need to save paring information so I can just press the power button in future, but having to press the pairing button is not a significant issue so I have not got round to fixing that. I take several samples in a loop and the average value is written to a file in the RAM disk. This happens approximately every 400ms depending on the seed of the machine. One thing I did learn is that every Ubuntu distro has a small RAM disk enabled by default and it is very useful for passing data between applications.
Then life got in the way and I shelved the project for a while. Until just before the 2017 Maker Faire UK in fact. I decided I wanted to do something fun for the Maker Space stand so decided to finish this project off. I was finishing off an academic job, we had to move the workshop to a new home, and I had a talk to prepare about making, so why not add another time consuming project to the mix. Other than common sense I cannot this of a reason why not.
The main interface was supposed to play a video of the animal that your weigh was the same as so with the time constraints I decided to use Processing and Java to create it. Unfortunately I did not have time to find and edit enough creative commons videos so decided to use static images instead. Then I did not have time to curate the static images and decided just to use voice for the first outing. At the time I was wondering if I was going to get anything working but all this cutting back and focusing on the important parts was actually making things better.
Now, there is a time in the middle of the night when everything seems funny. This is significant here as this is the time I needed to record the voice for the scales. I could have used a speech synthesiser but I wanted the scales to sound more human and have more character. In my sleep deprived state I accidentally give them a very sarcastic character. For some reason that works well. Some are simple "you weigh the same as an xxxxx" while others I went off on a tangent talking about the animal or taking the “Michael” about someone's weight. I was a little worried that someone would take offence when the scales ask if two people are on them, but so far it has only sounded when two people were on them, and I hope any users who are sensitive about their weight would not get on the scales in the first place.
You can watch a video of me demonstrating the scales at https://www.pscp.tv/w/1ypKdXgmmgqKW . You can also see a photo of me showing them off at the London Hackaday Unconf on twitter and on Google Photos .
The only significant change I have made to the system since the first version is to change the audio library used. The standard Processing library keeps loosing 32 bit compatibility and I am currently running it on an old 32bit Atom based netbook. Functionally it...Read more »