directed & edited by Zahit Kiziltepe
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.
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.
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
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.
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.
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.
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.