- Document the machine building process to the group page
- Documented your individual contribution to this project on your own website
- Linked to the group page from your individual page as well as from group page to your individual pages
Brainstorming
Group plan
Introverted Robot AKA Wa(a)ge(n)tje
**Main parts:**
- eyes (Spiral 2)
- wheels / driving components
- structure / base
- body - ESP32 frame (Spiral 2)
**Character traits (Spiral 1):**
- moves away from you (but knows when it's stuck in a corner?)
- moving into other areas?
- eyes: watches you as you approach / look around (Spiral 3)
- moves on servos
- eyes: hides when you get too close (Spiral 2)
- LEDs that convey mood (Spiral 2)
**Character traits (Spiral 3):**
- doesn't like sound
- shakes
- snores when being left alone
- wheels: lock when you get too close
**Sensors:**
- distance (microwave / TOF) (Spiral 1)
- sound [Spiral 3]
- light [Spiral 3]
**Output:**
- servos (eyes / top closing) (Spiral 3)
- dc (wheels)
- steppers?
- LEDs (mood) (Spiral 2)
**Communication:**
- I2C
- ESP-now
- what MCUs are we using?
**Power:**
???
**Other:**
- Sensor input communicated to eyes (3) and wheels
- Moods -- LEDs / shakes (which scenarios)
- approaching too quickly (orange)
- stuck in a corner (red)
- happy (green)
**Bill of Materials:**
- MCUs (what kinds)
- sensors
- Omniwheels
- servos
**Spiral 1:**
- decide on base size
- build base (designed to have the ESP32 body attach to it)
- build wheel system
- test sensors and get them to communicate with environment / wheels
- power (with plan for more power consumption)
- document / take videos
- consider movie ideas
- prep spiral 2 designs
**Spiral 2:**
- create the eyes (servos)
- eye box
- make the ESP32 body
- connected LEDs
- work on making Spiral 1 more efficient / debug
- document / take videos
- movie compiling
Roles:
Irja - wheel and base assembly / body design and compilation / eye lights / video shooter and editor
Patrick - wheel + base + eye design and assembly / sensor holders
Dylan - CNC shield set up / servo set up / eye box assembly / documentation / video storyline
Sam - wheel programming / sensor code / protocol management / multiplexer
We begun the week by greeting Patrick. Previously we had had calls to discuss the idea for Machine building week, but there wasn't any solid plan in place.
Here is the brainstorming process that we followed, mapped out in drawings, made by Irja.
To start, Irja and Patrick would focus on the base and wheel assembly.
Sam and Dylan would figure out the sensors and the code required to get the machine to sense what was around it and move accordingly.
As the week progressed, each team member found themselves on a path that was maybe a bit different from what was initially planned.
Dylan worked on assembling the CNC shield. Sam focused on coding the wheel movement and creating a way to incorporate multiple sensor readings. The sensors were originally going to be TOF distance sensors, but ultimately the ultrasonic sensor was more available and more realistic with the time scope of the project.
Patrick, who had printed parts in his lab in Belgium, headed the design of the eye mechanism. He designed a 3 servo, rotational to linear eye movement system. From the beginning we had hoped to give the monster, I mean machine, some personality. The eyes were our primary means of doing so.
Irja was in charge of designing the body, along with putting together the based of the machine. The body was to be a large scale replication of a XIAO ESP32. The final design incorporated plexi pin pads, laser-cut plywood body outline, metal pin rods out the back, as well as the clip and frame design / assembly.
Sam's role grew to include power management and an even larger pile of coding that previously intended.
Irja designed a circuit for lighting the machine's eyes with neopixels.
Dylan shifted focus to help set up the servos and eye container construction.
Patrick helped everyone with everything, all of the time. It was a solid team effort. And in the end, the sum of all efforts were just enough to get the project over the line!
Problems and solutions
- There turned out to be too much friction for the motors driving the omniwheels for them to work properly. They still worked as regular wheels. So we proceeded with that functionality.
- The motors can't drive slow because they need a lot of power to start turning.
- TOF sensors were difficult to have multiple of. We swapped to ultrasonic.
- Cables melting from pulling too much current through them (we didn't solve this)
Possible improvements
The eyes:
- The eyes movements could be programmed to buttons on a remote.
- A more spacious eye-box / the box for the eyes (eyes not hidden + it does not go up as high as a real USB-C)
- LED soldering fix: the eye wiring was falling off, we could figure out something more sturdy
- The gear system of the eyes could also be improved -- something less wobbly
The structure:
- Being less dependent on glue
- Structural improvements (ie. suspension -- the machine didn't handle driving over bricks very well)
The wheels:
- More power / stronger motors
- Different stepsticks -- the DRV8825 can handle more current
- The sturdiness of the wheel components as the screws were often falling out
What worked:
- The eye movement gave the machine personality
- Sensor reading (even though we did not use that for the video since it was so crowded out there)
- Remote control movement
- XIAO-look alike
Design files
- Wheel code
- Code for remote control and reading the sensors and controlling Arduino
- Arduino code for servo movement with Neopixels
- XIAO board 3D design
- XIAO body design files
Video storyboard
Video
Song credit: "Someday" - The Strokes