This is a LEGO DUPLO-sized toy train. It started almost a year ago with slightly adjusting someone else's 3D model and a simple circuit diagram and completely rewriting the Arduino code.
It worked for a while. But now I'm changing everything: my own 3D model with a lot of improvements, multiple new I2C modules (a laser sensor instead of an ultrasonic sensor, a color sensor, LEDs moved away from the Arduino pins to an expander with MOSFETs), a battery pack with a BMS and USB charger, a better motor driver and other changes.
The circuit diagram is rather finalized for this version (with a bit of AI help to change the color scheme and make it easier to read - replaced color codes in EasyEDA JSON file). Everything is verified and tested. The Arduino code is almost ready (and there is a lot of code for various features), but the final version will require some calibration and real-life testing by kids. An accelerometer/gyroscope will be added a bit later, I'm yet to choose a module. Any recommendations? The battery pack is ready (posted earlier). Perfboards are soldered: the main one with an Arduino Nano, one with an expander and resistors to control LEDs, and one with an IR receiver.
For a beginner it's a lot of learning: how to build a battery pack, how I2C-bus works with multiple devices, how those devices work with different voltages from 2.8V to 5V, perfboard soldering etc.
The 3D model of the train body is in development (the kids are happy to get multiple prototypes of train parts even though they have no wheels and can't be assembled together)...