Arduino firmware has two main tasks:

  • read pedaling cadence, transform it into click inter-times and sends clicks to the computer
  • receive the inclination and drive proportionally the brake

Since Arduino is a single task microcontroller it is necessary to share the execution time between the two tasks with an collaborative (non pre-emptive) scheduling in the main loop.

The project is based on the OOP model so each task is performed by a singletone object of a dedicated class.
Main application classes are:

  • SpeedReader: reads the pedaling cadence pulse, detects the trailing edge and computes speed storing it in term of pulses/second
  • UdpPeer:  receives the inclination as a string from the computer peer program and stores it as an integer.
  • BrakeActuator: converts  the stored inclination into a PWM output in order to drive the brake; the PWM output is enabled by the detection of movement in order to protect brake from overheat.
  • MouseEmulator: test the HID emulation enable switch and, if enabled, sends clicks to the computer
  • Control: links all above classes according with application logic rules

Besides application classes there are some utility classes:

  • Delay: not-suspensive programmable timer
  • InputStatus: input port status abstraction; base classe for events
  • InputEvent: retriggerable and direction programmable (trailing/falling)input trasition detector; based on InputStatus
  • DoubleInputEvent: retriggerable input transition detector (both edges); based on InputStatus
  • OutputStatus: virtual (abstract) class used as basis for specialized output classes
  • DigitalOutput: digital output port abstraction; based on OutputStatus
  • PwmOutput: analog output port abstraction; based on OutputStatus



Returns the Focus for Makers award winner Gooble Bike.
In addition to riding on  Street View pre-defined paths simulating slopes, this new version allows you to ride anywhere on Street View choosing in real-time the crossroads by rotating the handlebar.
Also next to the usual 2D vision the new Gooble Bike allows 360° 3D viewing with a VR viewer.

facebook twitter 

Gooble Bike 2.0VR is candidate to
Call for School
at Maker Faire Rome
Maker Faire Europe Rome