Intro: (okay to skip)
The inspiration for this idea comes from a fidget spinner kind of kinetic desk toy - MezmoGlobe
I bought this recently and fiddle with it regularly, but there is a catch 22 with the toy - its more soothing when spun slowly, but lasts longer when spun fast (just like any other rotating spinner kind of toy)
Goal is to be able to kick start (using hands! LOL) a rotating system (mezmoglobe in this case) at any speed and the system understands the speed and starts rotating at that speed until stopped.
More intricate details:
- System consists of at least one motor, which acts both as the driver of the system and the input for the system.
- System can sustain any speed between a minimum and a maximum speed.
- System is small enough to be hosted in a 3x3x3 inch3 enclosure or smaller.
- System is self sufficient. No external power cable or controller wires.
- User spins the motor in any direction. System understands the speed and direction and starts the (same) motor at roughly the same speed in the triggered direction.
- There can be a switch to stop the motor. Bonus, if stopping the motor by hand actually breaks the circuit and stops the motor.
I have given this some thought and could think of possibly two (incomplete) solutions:
- The motor is attached to a linear/rotatory actuator of sorts which sets a linear/circular potentiometer to some value.
- Rotation of the motor or the movement of the potentiometer also triggers circuit closure of the motor - potentionmeter - battery circuit which then, due to specific setting of the potentionmeter in previous step, starts the motor at a given/desired speed.
TODO tasks - Figure out ways to break backward (motor to actuator from step 1) circuit and start forward (battery to motor) circuit. - Figure out ways to reset the potentiometer for the next run.
Complications: - Too many moving parts. - Calibration of speed to match user input speed is tricky. - Maybe not possible in the form factor desired?
Micro controller way
System - Motor connected to a micro controller. - Backward circuit detects any current produced by manual movement of motor. - Then sets the direction and speed of movement via a motor driver.
TODO: - How to detect kick start of motor by user. - Maybe the motor provides feedback and auto stopping can be implemented as well? (user stops the motor by hand, MC detects it)
Challenges - I was personally only able to find very few compact single motor drivers, but they all needed some sort of microcontroller setup to run/provide PCM. - Is there a compact programmable microcontroller that can fit the size limitations? - Generally MC have strict current/voltage requirements to run the MC.