Since about a year ago I discovered microcontroller programming.
I was triggered by some youtube movies at https://www.youtube.com/@DavesGarage. Dave, a former Microsoft employee, post on various interesting Microsoft subjects.
But, he has a broad interest in vintage computing (like the PDP11), and is also an LED enthousiast.
So, to program an ESP32 to control the addressable LED strips, you are eventually pointed to ‘microcontrollers’ and their programming. And then you will end up on the ‘Arduino‘ programming environment and Visual Studio code with Platform IO.
And than, a whole world opens up. Not only addressable LED strips, but tons of other interesting sensors can be used in this environments. So I became close friends of ‘amazon.com‘ and ‘aliexpress’.
If you just want to test en play, Aliexpress has tons of really cheap sensors. They also have the cheapest ESP32 modules, although selecting the right one is a challenge. Not only does Expressive produce a lot of different chips and devbaords, there are many tweaked devboards from others available
And to program, you go back to basics! For me basics is the environments where I started in 30+ years ago: C and C++!
And also, when I started programming in the seventies and eighties, first on an Apple II and lator on an IBM PC clone, you where god on your machine! You could touch and alter every memory location and program instruction. The whole CPU was yours when you where running. And programming on a microcontroller feels the same. No OS which is running in the background running other programs. No, the CPU’s on the controller are yours. Your program is the only one running. All CPU cycles are yours to use and control! If you accidentally create an infinite loop, you have to press the reset button.
And, when doing some more complex projects, my breathboard looks like a bowl of spaghetti sometimes.