All Projects → AlexandreDoucet → InfinityBike

AlexandreDoucet / InfinityBike

Licence: GPL-3.0 license
Welcome to the Infinity Bike repository. A simple and inexpensive indoors bike training video game with built-in sensors that allows the player to ride on a virtual track.

Programming Languages

C#
18002 projects
Classic ASP
548 projects
ShaderLab
938 projects
HTML
75241 projects
C++
36643 projects - #6 most used programming language
HLSL
714 projects

Infinity Bike

Welcome to the Infinity Bike repository. A simple and inexpensive indoors bike training video game with built-in sensors that allows the player to ride on a virtual track.

Visit our website! www.infinitybike.net

Why use Infinity Bike?

Rainy days and the Winter season can really disrupt a training program. Riders always have the option to mount their bike on a trainer but the monotony of trainers will always make it a bit difficult to keep up the pace. This is why we decided to add a little bit on interactivity to our training program. The Infinity Bike set-up is designed to be a simple as possible while still allowing a rider to read the speed and steering from a bike mounted on any trainers and relay the information to the computer.

See the Youtube video (for a deprecated version of Infinity Bike):

Link to youtube video

Where are we in development

In its current form, the code should compile on a Windows or Mac. We have the communication between Arduino and Unity established and we even have a demo track that you can use to test your set-up. If you want to take full advantage of this work, you will need to have access to a 3D printer. (Tip : A lot of community libraries are starting to have them available to the public.) Alternatively, you could design and machine your own parts. If you do, let us know!

Installation

To participate to this project, start by cloning the repository to a drive on your computer. You should get all the assets for the Unity program in the Infinity Bike folder and the Arduino Code in the ArduiBike folder. Don't have a bike/trainer or access to a 3D printer? You can easily build a small arduino circuit that fits on your desk. Alternatively, the Arduino inputs can be emulated with the keyboard by setting a flag in the Unity inspector.

If you make a change you think is worth including in the main project, send us a pull request and we will review it!

Sadly, we don't have a ready out of the box version yet but it's on the to-do list. For now, you will need to clone the repository and build the current scene for your system.

Hardware

Non 3D Printed parts list

1 x Arduino nano ($22.00)
1 x Mini Breadboard ($1.33/unit)
1 x 220 Ohm resistor ($1.00/kit)
1 x 10K Potentiometer ($1.80/unit)
1 x Hall sensor ($0.96)
20 cm x 6 mm 3D printer timing belt ($3.33)
1 kit x Various Lenght M3 screws and bolts ($6.82)
1 x Bicycle speedometer magnet ($0.98)

** Estimated prices

3D Printed parts list

All the 3D print .stl files are available on Thingiverse. The picture below list them all. We mounted the material above with 3D printed parts. The files we used are listed bellow and they're numbered with the same convention as the image above. You can use them as-is but make sure that the dimensions we used match your bike.

Parts filename
  1. FrameConnection_PotentiometerHolder_U_Holder.stl
  2. FrameConnection_Spacer.stl
  3. BreadboardFrameHolder.stl
  4. Pulley_PotentiometerSide.stl
  5. Pot_PulleyConnection.stl
  6. FrameConnection.stl
  7. Pulley_HandleBarSide_Print2.stl
  8. FrameToHallSensorConnector.stl
  9. PotHolder.stl
  10. HallSensorAttach.stl
Assembled parts pictures

Please note that we are currently working on a better stearing measurement device. As seen in the picture above, it is based on a rotation platform placed under the bike wheel.

More info on this device is available here.

Circuit

The following circuit can used for prototyping.

We are currently developping a permanent PCB design to get a more robust platform. The Eagle files of this PCB can be found in the AutodeskEagleProject folder.

How to use?

We published a short instructable tutorial that should provide enough information to get started with this project.

Please note that this tutorial is no longer up to date with the project and will need to be revisited. Building a more in-depth tutorial for potential contributors is on our To-do list.

** Because we used blender to generate the 3d models, you must have blender installed before opening the project. Otherwise some assets wont load properly.**

How to contribute?

From now on, we use the git branching model proposed by Vincent Driessen.

To add features to the project, please branch out of the develop branch. The testing of pull request will be done with the 018.3.12f1 version of Unity.

Project structure

Medium term goals

Credits

Project contributors

Alexandre Doucet (Doucet)
Maxime Boudreau (MxBoud)
Alexis Nosovich

External ressources

The Unity game engine

This project started after we read the tutorial by Allan Zucconi "how to integrate Arduino with Unity" ( https://www.alanzucconi.com/2015/10/07/how-to-integrate-arduino-with-unity/ )

The request from the Arduino are handled using the SerialCommand library ( https://github.com/kroimon/Arduino-SerialCommand )

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].