Remote Controlled Etch-a-Sketch
by mintgenie in Circuits > Microcontrollers
491 Views, 0 Favorites, 0 Comments
Remote Controlled Etch-a-Sketch
Supplies
- 2x BBC Micro:bit
- Neopixel Matrix of choice (prefer 8x8 or larger)
- Power adapter 5V (0.4W per LED)
- Microbit compatible remote with analog joystick
- Optional: EEPROM (AT24C256) module and RTC module
Simple Connections
2. Connect Ground pin of main microbit to panel
3. Connect 5V power supply to panel (check recommended rating)
4. Connect USB power to main microbit
5. Plug in the microbit to the remote controller
6. Connect the battery pack to remote
Program
Sketcher: https://github.com/MINTGenie/sketcher
Remote: https://github.com/MINTGenie/sketch-remote
The Remote control sends the joystick position and button status over radio
The main microbit, processes the joystick info as a cursor when no button is pressed and as a pen when one of the assigned button is pressed. When this button is released, the line is written and switched back to cursor mode.
One of the button on remote sends a notification to cycle through available colors and set it.
The button A on main microbit clears the display but not the color map .
Button B on main microbit clears all saved patterns and color map.
Button (A+B) retrieves the pattern if it has not been cleared.
Video Demo: https://youtube.com/shorts/YBZWmvoo5Rc?feature=share
Only small pattern can be made due to limited memory.
Next Steps - Memory and Time
Time can be updated using an RTC module
Update With EEPROM
Updated the git project with support for saving to EEPROM and also reviewing.
Also tested with 16x16 panel.
Implemented below header convension to save in EEPROM as below:
Address Data Type Description
0x0 int8 1 = EEPROM Configured Flag
0x1 int8 0 = 8x8, 1=16x16, 2=8x32
0x2 int8 Pattern Count in that session
// Start of Pattern list with length and start address for pattern data
0x3 int16 Pattern length for pattern_id=1
0x5 int16 Pattern data start address
0x7 12 bits 3 characters for Name (to be implemented - but space provided)
The above pattern header repeats for every new pattern... the data is written ahead of previous data
Can store 10 patterns based on size of pattern
0x75 int16 Life time pattern count (to store all the patterns ever created without erasing memory)
0x77 int16 Last written address - saved across sessions to be able to continue after reboot
References and About Us
Website: https://www.mintgenie.de
Facebook and Instagram: @MINTGenie.de
Twitter: @MINTGenie1