A very simple portable "Sidekick" Bot powered by GY-521 IMU 3-axis Accelerometer/Gyro Module (MPU6050) on ESP32 using MicroPython
A simple expressive home-made Open-Source Buddy made with lying-around hobbyist parts, powered by an ESP32 Development Board. Thanks to this, it will be infinitely hackable, allowing end users to install their own firmware or features if they wish.
Loosely inspired by tamagotchi and community-made desk toys, it will react to its surroundings through gyro movement, and expresses itself accordingly through the display and more!
Note
Project state: Initial Planning/FAFO
Project Code: https://github.com/MakerSidekick/code
git clone https://github.com/MakerSidekick/MakerSidekick-Botcd MakerSidekick-BotInstall pixi tool from the official link: https://pixi.sh/latest/#installation
Easy Setup Commands(Subject to change)
-
Linux/MacOS (Close and Reopen shell after it's done installing)
curl -fsSL https://pixi.sh/install.sh | sh -
Windows
powershell -ExecutionPolicy ByPass -c "irm -useb https://pixi.sh/install.ps1 | iex"
OR
Releases(has installer packages): https://github.com/prefix-dev/pixi/releases/latest
x86_64 Installer: https://github.com/prefix-dev/pixi/releases/latest/download/pixi-x86_64-pc-windows-msvc.msi
pixi installpixi run uploadgit clone https://github.com/MakerSidekick/MakerSidekick-Botcd MakerSidekick-Botgit clone https://github.com/stlehmann/micropython-ssd1306 lib/lib/.gitignore
lib/README.md
lib/sdist_upip.py
lib/setup.py
lib/.git
(adjust commands for other systems/shells)
Bash:
rm -rf lib/.git lib/.gitignore lib/README.md lib/sdist_upip.py lib/setup.pyCmd/Powershell:
rmdir /s /q "lib\.git"
del "lib\.gitignore"
del "lib\README.md"
del "lib\sdist_upip.py"
del "lib\setup.py"
Tip
Automating this with mpremote would be prudent. Check out upload-to-esp32.py in this folder.
- Open Folder in Thonny
- Upload lib folder
- Upload
.pyfiles
Social Buddy, the Maker's Sidekick! It will react to surroundings
Select Options. Placeholder for now, it just blinks led 25 times
Eventually will be able to launch user's custom code!
Pin assignment for ESP32 and MPU6050:
VCC -> 3v3
GND -> GND
SCL -> GPIO A0
SDA -> GPIO A1
Tip
(You can change SCL pin and SDA pin in file main.py line 17)
Pin assignment for ESP32 and Buzzer:
GPIO 8 -> Buzzer Terminal
GND -> Buzzer Terminal
Tip
(You can change buzzer pin in file pin_values.py line 6)
Warning
Touch pin isn't working as expected :( It works as a touch pin but it's not super good at sensing values, especially when the device is far-ish away!
Pin assignment for ESP32 and Touch Pin(For registering headpats):
GND --(Resistor with 220k to 560k Ohm)--> Pin A2 -> Metal Contact
Tip
(You can change touch pin in file pin_values.py line 4)
Pin assignment for ESP32 to Debug Pin(, for debugging):
GPIO 8 -> GND
Tip
(You can change enable pin in file pin_values.py line 5) If this button is pressed in main mode, it stops execution. If it is pressed in debug mode, it exits the menu and goes back to main mode.