So you've had a cunning plan in the middle of the night, and awoken to find it scrawled on some paper for fear of forgetting.
Now in the cool light of day you realise you have a great idea in front of you, all the pieces are there (maybe you jot a couple more points down), but very little idea of how to achieve the detail.
Cut to a lovely Saturday morning, after handing in my first project assignment yesterday on Friday the 13th, and now wanting to pickup the boat wifi project again. I kept recently being plagued by the idea of floating a car battery, rather than relying on other powerbanks etc. So jumped onto chatGPT and asked the sensible question. I got a lovely explaination, which I didn't need as I understand the weight displacement and water has a nice number to work with (head to https://www.khanacademy.org/ if you want to learn more for free), but it was interesting. At the end it detected my needs were stretching my current talked about design, and offered more general boat design talk, fascinating: https://chat.openai.com/share/8728d45b-279f-4e53-a809-7c12e3b2ae6a
To be continued, as I have nothing suitable for propelling a 45Litre storage container up a river yet...
My "optimistic" project for CircuitPython Day 2023 was an "Air" Theremin, specifically the smallest one in the world (as well as a larger kit version). I've never played one, and am not that musical, but they always intrigued me. The basic idea is an aerial, vertically mounted, that picks up conductive things nearby, and that picked up interference is fed into a sound generator and used to vary the sound.
Normally a second "aerial" loop is horizontally mounted, and used for volume control, by having a horizontal loop it is sensitive in one plane (vertical plane, i.e. up+down direction) rather than all horizontal directions like the single pole vertical antenna/aerial that we use for pitch control.
(The aerial behaves very similarly to a magnetic pickup on an electric guitar where the steel strings move back and forth in front of the guitar "pickups" also known as transducers. A pickup is a transducer that captures or senses mechanical vibrations produced by musical instruments)
Short introduction in first ten seconds:
More interesting discussion with an expert player:
The "Air" element was meant to signify that there will be no Aerial, instead I had a Time Of Flight (ToF) sensor (VL53L5CX) spare from another project, that returns an 8x8 Grid of distances as a reasonably fast refresh rate. I had thought I could use the right hand side for pitch and volume (I now see separate volume hand is better), and the left side for playing samples and modifying the sound properties. (I imagined a drum machine or play-along-track to improve my theremin experience). Long term it would produce MIDI, but short term it would have a speaker (which turned out to be larger than the device by some margin).
Of course I probably hadn't had enough coffee when fantasising about the idea, and if I played the theremin it would have been immediately obvious, but the Time Of Flight sensor was vertically sensitive (assuming I place it on the table facing upwards) and only has the equivalent of 8 pixels of horizontal resolution. After assembling a prototype and starting to record data and think about the maths I might need to do, it dawned on me the massive error I'd made. Fortunately I had just received another smaller sensor from Pimoroni, in addition to a second Sparkfun Mini ToF version. The smaller Pimoroni one fit so nicely on top of my Adafruit QtPy ESP32-S2 (with Audio BFF soldered on top), and the old one I was able to now mount at an angle.
Originally I had the SD card (Audio BFF) on the bottom, and ToF sensor nestled in between the USB and StemmaQT connectors on the QTPY, which meant the buttons couldn't be easily pressed and therefore I wanted a capacitive touch button. (I thought a random wire initially would be replaced by some copper tape or something well thought out and complimentary to the shape/form/possible-case)
To that end I stuck a 1MegaOhm resistor between ground and the TX pin (very few pins left after the I2S + I2C + SPI SD card), neatly folded over the SD slot, and protruding a little (less than the SD card) out one corner for easy touching.
Pick your data format early, but not too early, and with fair due consideration. It's a pain to realise you've recorded a load of data that is hard to work with or unusable because of obvious mistakes. Most things can be Transformed (ETL is Electronic Transform and Loading, i.e. changing data formats for ingestion) after the fact, as long as you recorded all the data you will need in a usable format, you can reshape that format / data however you wish.
I made the mistake of combining formats, CSV and JSON, fortunately only two recordings in I have realised the error of it being a pain to work with, and instead I can rectify this quickly and save loads of work in the future by allowing me to use my data with standard libraries (like pandas read_csv function as an example).