directed & edited by Zahit Kiziltepe

The problem

Context for the project was the transportation of cargo between our two school buildings and the local hardware store. For this use case we aimed to develop an environmentally friendly alternative to cars. Bicycles are already well suited to provide passenger transportation for short distances and in small towns. Cargo transportation is also solved by electric cargo bikes but due to their large size, the complex onboarding process and the high coast they are not practical for many consumers.

The solution

Our trailer can be easily attached and detached to any conventional bicycle by means of an axle coupling. Each wheel is driven separately by an electric motor. The drawbar is equipped with a sensor and can be stretched and compressed slightly. This allows the trailer to detect minimal pull and the motors compensate for the weight of the cargo. In order to bring the cargo directly to its storage place at the destination, the trailer can be unhooked and pulled by hand. In the fold-out handle another sensor is embedded to provide ideal support even for tight turns. After working out the concept our team consisting of two product designers and four IoT students, was divided to focus on different areas. I concentrated on programming the microcontroller and on sensor solutions for pulling the trailer by hand.

Handle design & prototyping

If the trailer is pulled by a bike, curves can be ignored due to the large turning circle. However, since sharp turns often occur when pulling by hand, a differentiated control of the motors is desirable here. Measuring the lateral pull directly inside the handle to attain a two-dimensional measurement of the overall pull seemed to be the simplest solution. Responsive image
The outer pipe can move freely along the inner pipe. The potentiometer is mounted in the inner tube and connected to the outer tube via a socket. This way the displacement of the handle can be measured by the potentiometer. Springs are attached on both sides of the socket to move the outer tube back to its neutral position. With the support of a product designer, I turned this concept into a working prototype.

Conversion of data values into motor actions

For simplicity I have transferred the measured data of both potentiometers into a range from -1 to 1. 0 corresponds to the neutral state which is reached when no pull is applied. In the simple case, when the trailer is pulled by a bicycle, the measured value is transferred linearly into the torque of the motors. A measured value of 1 (full pull) leads to maximum torque. A value of 0 (no pull) leads to a standstill of the motors. Negative values can be used for reversing.
If the trailer is pulled by hand I treat the combination of the two measured values as a 2D-vector. Using this and another fixed reference vector I form the dot product. The dot product compares two vectors. If they point in the same direction you get 1, if they point in the opposite direction you get -1 and if they point orthogonally you get 0. This property is perfect to transfer the sensor data to an asymmetric motor control.

Responsive image Forward pull results in a scalar product of 0. The speed difference between the two motors must also be zero in this case. Both wheels turn forward.
Responsive image Pulling to the left leads to a scalar product of 1, in which case the speed difference between the two motors must be 200% for the wheels to turn in opposite directions.
Responsive image Pulling to the right results in a scalar product of -1, and the speed difference must also be 200%. However if the values are negative the left wheel will turn forward, whereas if the values are positive, the right wheel will turn forward.