Gameboy Advance is what really got me into embedded stuff. Might be a good "stepping stone" between regular PC game development, and direct fiddling with microprocessors and sensors and such. After you get used to working with memory mapped hardware registers, managing RAM by hand, writing ARM assembly and putting it in RAM instead of ROM so it runs faster, etc. you'll know how it is for programs to interact with hardware directly.
And at least for me, starting to play with stuff like AVR microprocessors after that, it all makes perfect sense how you can connect things up to do whatever you want. Programs read/write to hardware registers, where each bit of the register corresponds to a pin on the physical chip to either read from some other component, or set the pin's value to control another component... value being either positive voltage or negative voltage, representing binary 1 or 0. Although some pins can read a variable voltage value as an 8 or 16 bit number using some special circuitry to convert it, and some have pulse-width-modulator circuitry to toggle on and off at high speed according to a register value, effectively creating variable output voltage. And then you have the fun interaction between programming and physical routing of processor pins to other hardware
ARM assembly would definitely be good to learn. It's pretty straightforward. Practically like writing in a high level language compared to 6502 AVR assembly would be good too, and is sort of half way between ARM and 6502 (lots of general purpose CPU registers, but few opcodes)