Introduction to concept

This project concerns itself with the development of an ornithopter powered by a motor driving a crank-shaft.

Design iterations

Iteration 1:

1 / 3
2 / 3
3 / 3

Video 1. Ornithopter with inverted V-tail

Iteration 2:

Video 2. Cambered wings and bias springs

1 / 3
2 / 3
3 / 3

Arduino Code

This is a sketch for the glide lock of a crank-driven ornithopter. It uses the PinChangeInterrupt library to read a PWM signal from a transmitter.

The glide lock works by iddling the motor below a certain throttle until the crankshaft reaches a known position. Doing so allows to wings to stop a dihedral angle that allows for efficient gliding flight. To accomplish this the code uses a hall sensor that looks for a magnet attached to the crank. Once the magnet is infront of the sensor the motor turns off.

Unfortunately some ESC’s respond with a delay to throttle commands. This means that the motor will continue to spin even after the throttle is set to zero. In practice this means the crank will stop at the wrong position. To work around this one can run the motor for a short time interval after the magnet passes the sensor. If this delay is tuned correctly the crank will stop in the desired position.

There are two versions of the sketch: one that’s intended for an analog hall sensor and uses polling, and one that’s intended for a digital hall sensor and uses an external interrupt. Both work well although the interrupt version can recognize the magnet at higher RPM’s.

This code was made to work for the following circuit:
image

Video 3. Operation of glide-lock

Github Repo: GlideLock

RCgroups build log

For more informatio on this aircraft, see these posts on RCgroups:

  1. Gearbox construction
  2. Adding second stage to gearbox
  3. Adding wings
  4. Completing the frame and adding the electronics
  5. Initial test flights
  6. Succesful controlled flight