Final Project Proposals
I initially considered two possible final projects. Ideally I would have liked to to do both, but reality got in the way. I ended up doing only the first one, Bonobo Lights.
What follows are my original ideas, research and project planning for both Bonobo Lights and The Contraption.
Bonobo Lights
Bonobo lights are a tool for fun, safety and personal expression when riding bicycles at night.
This is the version I delivered (v0.9):
POV Displays
Persistence of Vision displays seem to be a whole category of DIY project. I wasn't able to find one that is both A) open-soure and B) meant for bicycle use until Guillem Camprodon pointed me in the direction of [LadyAda's SpokePOV] during the local review session.
See the references section for some examples and research.
Platform
Thoughts on choosing an MCU for the project.
ATtiny: can't program it (see week 08)
-
SAMD: We have the ATSAMD21E17A and ATSAMD21E18A in stock. Only the 17A is in KiCad, but according to the datasheet (pdf, page 25), they are pin compatible: the only differecne is the amount of RAM.
- How powerful?
- Wireless?
- SAMD11 and SAMD21
-
ESP32: we have the Barduino and also bare ESP32-S3-WROOM-1 chips.
- pros: has included wireless
- cons: in order to program it through USB you'd need a SAMD as a mediator.
- It's apparently super powerful but kinda finicky.
- I guess I could take the ESP32 S3 dev kit as a reference.
-
RP2040:
- Programmable IO: what is it?
- Slower than the ESP32, especially for floating point.
- Already have it in the Seeed that we used for Quentorres
After reading a bit, I've decided to go with a SAMD21. The ESP32 and RP2040 chips seem to be a bit overkill for my initial requirements. I can always change it later. SAMD21 seems plenty powerful and simple enought. I can keep the Adafruit M0 Express feather as a reference.
Features that I want, in order of importance
- Ability to drive at least 12 monocolor LEDs and a hall effect sensor at the same time.
- Eventually that should rise to RGB LEDs, and more of them.
- Ease of programming
- Wireless connectivity
- This can be added later, after prototype 2
- Ability to output images (much later feature)
Project planning
Spirals:
Prototype 1 (POC)
Prototype 1 is a Proof of Concept. It isn't useful by itself but demonstrates the essential capabilities required.
Features:
- Attaches on a bicycle's spoke.
- Can detect and keep track of wheel turns.
- Can turn LEDs on and off in the exact same position in each turn.
- Compromises:
- Powered by a powerbank rather than an internal battery.
- Uses a commercial protoboard rather than a custom board (?).
Internal deadline: 2024-04-23
Prototype 2 (MVP)
Prototype 2 is a Minimum Viable Prototype (MVP), a 1.0 version. It is, just barely, useful.
Features: on top of prototype 1:
- Can display a preset RGB static image.
- Requirement: polar to xy.
- Integrated battery.
- Splash proof.
Internal deadline: 2024-05-21
Further spirals
TBD. Some features that might go into a v2.0+ prototype:
Non-essential features:
- Bluetooth control
- Programmable with custom images
- Dynamic display: video / gif
- Self-powered (with the bike's movement)
- Sound
- PC or phone interface
- Configurable for different wheel sizes
- Speed measurement / display
- Multiple units working in concert
Each of these might become a spiral by itself.
Internal Deadline: TBD (updating the plan scheduled for the week 2024-04-03)
Refs
POV projects
- LadyAda's SpokePOV: It was originally written in 2011 and last updated in 2014. It was cool but monochrome.
- Adafruit's Bike Wheel POV Display project: It's cool but does not adapt to the specifics of a bicycle.
- Pixelstick, An LED Wand That Adds Complex Images to Light Painting Photography
- Pixelstick: the light painting tool of the future
- Temu bike LEDs
- €14,99 3D bicycle spokes LED light
- Open-source arduino nano pov display with monochrome LEDs
- Hackaday's the basics of persistence of vision projects
- Instructable for Huge POV Display
- Instructable for monochrome Persistence of Vision (PoV) Display Using Arduino
- Mercator: An ESP32-based spherical persistence-of-vision display
- GreatScott!'s Make your own POV LED Globe
- Persistent of Vision Display
- Persistence of vision LED display implemented with RP2040
- HomeMadeGarbage's POV display
- Interesting thread to pursue: PIO (Programmable Input/Output)
Capacitive Touch
- ESP32 Capacitive Touch Sensor Pins with Arduino IDE
- ESP32 Basics: Capacitive Touch Pins
- EEVBLOG forum's "PCB-only capacitive keyboard?" discussion
- Instructables Touch keypad
- ATMels's Touch Sensors Design Guide (pdf)
- Multi-Touch Kit: A Do-It-Yourself Technique for Capacitive Multi-Touch Sensing Using a Commodity Microcontroller (pdf)
Addressable LEDs
- Why APA102 LEDs Have Trouble At 24 MHz
- Refresh Rate of apa102 2020 leds
- Addressable RGB 60-LED Strip, 5V, 1m (SK9822)
- Logic Level Shifters for Driving LED Strips
Other
- WebREPL: possibly very useful for working wirelessly while mounted on the bike!
- Using ATSAMD21 SERCOM for more SPI, I2C and Serial ports
The Contraption
The Contraption is a miniature mechanism without a purpose. It's a collection of linkages and structures that only exist. It is made of brass tubes and plate.
As it moves and turns it might move some paper signs or pepakura.
Inspiration:
Spirals
Rather than spirals, I've divided the development of The Contraption into elements that might go into it and that I want to learn to make:
- Right-angle structures with predefined dimensions and shapes, with the appropriate tolerances, dimensional and angular. Will probably need to print some jigs for this
- Flat shapes in brass: gears, latches.
- Motor mounts.
- Curved structures.
- Ferris wheel and belt.
- Wooden case.
Diameter of wire: AWG22(0.6440) - AWG24(0.5110) Source) * 0.6mm
Gears
I made some gears!
1.6mm brass rods came in at 1.55±.02mm.
I designed some 1.6mm holes in Rhino and milled them in the Roland and they came out at 1.48±0.01.
I'm making a calibrating run with holes in different sizes.
- On the left Roland, I got holes .2mm smaller than nominal and out shapes .1mm bigger than nominal.
Fits: * Press fit: 1.75mm nominal * Rolling fit: 1.8mm nominal * Sliding fit: 1.825mm nominal
Refs
- Geargen.py
- Geargen tutorial
- Mini welding torch
- Research log: PCB stepper motor
- Magnetically Actuated Micro-Robots for Advanced Manipulation Applications
- Electropermanent motors
- Micro walking robots
- Discrete Robotic Construction
- Latching solenoid
- Heschen latching solenoid
- Pololu motors
- Mohit Bhoite
Material sources
Tiene que ser de 0.64mm (AWG22) max. Los diámetros que valen son AWG22 y AWG24 (más pequeño).
- Wire Gauge Chart
- Brass 0.8mm iHobbies: 1.5€/m
- Brass 0.8mm Maderas agulló: 0.99€/m (15€ postage)
- Brass 0.8mm biltihobby 0.99€/m (€ postage)
- Brass 0.8mm ROI import: 1€/m (20€ postage)
- Matute Almacén de metal: seems like a good local option. Need to call. Cerca de casa de Elvira.
- Ibermetal: possible source for brass plate
- AWG22 (0.6mm) copper wire
- Alambre de latón (0,6 mm)
Brass in Amazon
It's quite expensive.