The initial goal of the project was to create a rover controlled by a Bluetooth gamepad thanks to an M5atom Lite.
You can found the project M5ZR (M5 Zumo Rover) here: https://github.com/colas-sebastien/M5-zumo-rover
IntroductionThe idea came to transform a rover on a more sophisticated robot containing servo motors and sensors. Because the base of the rover is a square it is really easy to create a cube from it, let's add two arms, an head and we have a WALL-E
The 3D design has been done thanks to FreeCAD.You can download the project there:https://github.com/colas-sebastien/M5atom-motion-Wall-E/tree/main/FreeCAD
Start to build the Pololu Zumo Chassis:https://www.pololu.com/product/1418
The Zumo chassis mounting plate is replace by the WALL-E body
Insert the M5Atom on the Motion module.Connect the Port B to the I2C motor driver Module give a grove cable.Connect the I2C motor driver module to left and right motors and battery holder.
Connect:- Left arm servo motor to Motion S1 port- Head servo motor to Motion S2 port- Right servo motor to Motion S3 port
Add a battery to the Motion module
It's time to do the first tests...The software is covered later.
In order to easily replace to battery and turn on/off WALL-E, you can hack a bit the Motion module to connect an external battery holder and and external switch.
It is now time to print:- 2 arms- The head in three parts- The top of the box
It's time to paint WALL-E
The code has been built with Arduino IDE 2.xYou can follow the setup documentation provided by M5Stack;- https://docs.m5stack.com/en/arduino/arduino_ide- https://docs.m5stack.com/en/arduino/arduino_board- https://docs.m5stack.com/en/arduino/arduino_library
You can find there the Additional boards manager URLs (in menu File/Preferences...)
https://static-cdn.m5stack.com/resource/arduino/package_m5stack_index.json
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
https://raw.githubusercontent.com/ricardoquesada/esp32-arduino-lib-builder/master/bluepad32_files/package_esp32_bluepad32_index.json
Thanks to the Board Manager install:- esp32_bluepad32 by Ricardo Quesada
Thanks to the Libraries Manager install:- M5atom by M5Stack- Grove - Motor Driver TB6612FNG by Seeed Studio- Grove Ultrasonic Ranger by Seeed Studio- Adafruit NeoPixel by Adafruit
It is now time to download the project:
git clone https://github.com/colas-sebastien/M5atom-motion-Wall-E.git
Open the project M5atom-motion-Wall-E into Arduino IDE and select the Board: EPS32 + BluePard Aduino / M5Stack-ATOM
Select the port, generally /dev/ttyUSB0
You can now upload the code on the M5Atom.
Conclusion: Playing with WALL-EThe last step is to test you WALL-E
- Turn on WALL-E thanks to the switch- Connect your GamePad thanks to Bluetooth. With Steam Controller press Y + Steam logo
To control you WALL-E:- Left Stick to move- A: Rest arms position and Head- B: Toggle manual movement for arms. You can manually move left and right arm thanks to LT and RT- X: move arms to the back- T: turn head to left/right- RB: raise right arm- LB: raise left arm- right triangle: Say Hello to rigtht- left triangle: Say Hello to left
Next StepsToday WALL-E is fully functional, the ultra sonic sensor is working but not yet integrated into WALL-E actions.
To test it you can just comment out lines 387 to 389 of the M5atom-motion-Wall-E.ino file
Comments