Thread Tools
Jun 30, 2018, 10:23 PM
Magkat
magkat's Avatar
The butterfly flight was very impressive. The maximum flap angle is much less than what i am using. I will try to reduce mine and see that helps gain altitude.

I am finishing up upgrades to my motorized 51 inch orni and hope to get back to my servo powered one soon.
Sign up now
to remove ads between posts
Jul 01, 2018, 05:33 AM
Registered User
Dantiel's Avatar
this time a video as well of the new buird.
20180630 195301 (0 min 15 sec)
yeah needs some adjustments
Jul 01, 2018, 08:06 AM
Magkat
magkat's Avatar
Dantiel, what code are you using in the Arduino? I noticed that you were flying in a slight breeze. These lite wing loaded birds are easily blown around by the wind. My conclusion is they need to be flown in very calm winds.
My bird flies the same way as yours. It only gets about 5 to 7 feet of altitude.
I did catch a slight updraft from a hill on one flight and the bird got up to about 50 feet. Based on that flight, I think I am close to a good combination of code and weight but need something more to call it a success. I hope to start working on it again in a few weeks.
Jul 01, 2018, 08:56 AM
Registered User
Dantiel's Avatar
im using the same code from this thread, just changed it to use PPM library instead of the PWM interrupts. the 16mhz processor of the pro mini seems to be well able to handle those in the same loop as the other calculations (although on that post about robotic bird the author suggests using tables with the certain angle values, has better performance and would save energy). my earlier model flew higher and was raising on its own, but this one is a bit different and needs to be tuned well. i think theres the stalling on the downstroke that slows down the flight and reduces lift.

seems a spring is always a good idea, it makes the force on the servo more continous (even if it can less keep up with the extremes, the spring helps a lot to normalize the centre of movement where it belongs to. although using ppm allows to have more control channels on Arduino mini because it has only two interrupt pins hence it could be used to implement raising and lowering the centre as takemuras (like the butterfly) models do, but he managed to stay mostly in the optimal angle. although the butterfly model has the problem that you can see in my video "to fall over" because stalling occurs when it looses the minimal speed and flap is not strong enough to keep up (although a spring helps to prevent this, as well as change the amplitude/flapcentre or in the end adjusting the balancing).

EDIT: added photo. i think i may have found a way to adjust the right angle, using piano wire, i dunno if this will hold. mayhems it will prevent the stalling on the downstroke by being more permissive on the downward position of the wings
Last edited by Dantiel; Jul 01, 2018 at 09:08 PM. Reason: .
Jul 04, 2018, 04:03 PM
Registered User
Dantiel's Avatar
the piano wire solution was not yet enough to make this new model fly properly. i think ill also need attach the rootchord better to the flight stream instead of being too permissive. i will try next to change the airfoil shape a bit, because i added too much reflection to the camber, and also moved the tail more back, which is probably too much, too, i think it should have been either of both. the more reflexiv the camber is, the stronger back/upstroke was, but the downstroke became too weak, because wing lacked stability from airfoil which was taken away from the reflexed camberline.
Jul 10, 2018, 12:44 PM
Magkat
magkat's Avatar
This may be slightly off topic, but has anyone created a glide lock for motorized ornis using the Arduino? The Arduino glide lock works great, but my motorized birds use a mechanical system that is hit & miss. At lest 50%of the time the bird won't go into glide lock on the first try. Instead it goes into pigeon mode and looses altitude quickly. There is some info out there about GLDAB, but they cost $100plus US. I would need 4 or 5 of them, so it seems creating one based on an Arduino would benefit many of us motorized orni flyers.
Jul 11, 2018, 07:48 AM
Registered User
Dantiel's Avatar
- changed the piano wire and attached it to a per-wing spring loading. First test was quite ok, but this time the wings became a bit too unsymmetric.

Music wire spring loading mechanism (0 min 18 sec)


- added an "elevator" control to the Arduino code. actually this only affects the horizontal centre of flapping and gliding. it is not an elevator because the elevation depends in my setup on how the piano wire changes the angle of the wing (actually it works by "reducing" the angle of the motors), more importantly is that it affects the centre of gravity, which is changed during flap, because wings do not only change their root angle but also move forward and backwards.

Code:
#include <Servo.h>
#include <PPMReader.h>
#include <InterruptHandler.h>

int interruptPin = 2;
int channelAmount = 6;
PPMReader ppm(interruptPin, channelAmount);

int servo_left_pin = 6;
int servo_right_pin = 5;


volatile int elevator = 0;
volatile int ppm1_value = 1000;
volatile int ppm2_value = 1550;
volatile int ppm3_value = 1500;
volatile int prev_timeD2 = 0;
volatile int prev_timeD3 = 0;
static int servo_comm1 = 0;
static int servo_comm2 = 0;
volatile int flapangle1 = 0;
volatile int flapangle2 = 0;
volatile int rudder = 0;
volatile int millisold = 0;
int millinow = 0;
float dt = 0;
float flapmag = 0;
static float flapdeg = 0;
float tcommand = 0;
float floattime = 0;
float glide_deg = 3.0;
float omegadot = 0.0;
float thetadot = 0.0;
static float omega = 0.0;
static float theta = 0.0;
static float k0 = 1.0;
static float k2 = 10.0;
static float servo_zero1 = 0;
static float servo_zero2 = 0;

Servo servo_left, servo_right; // create servo object to control a servo


void setup() {
  Serial.begin(9600);

  pinMode(servo_left_pin, OUTPUT);
  pinMode(servo_right_pin, OUTPUT);

  servo_left.attach(servo_left_pin);
  servo_right.attach(servo_right_pin);
}


void loop() {
  ppm1_value = ppm.rawChannelValue(3);
  ppm2_value = ppm.rawChannelValue(1);
  ppm3_value = ppm.rawChannelValue(2);

	millinow = millis();
	floattime = millinow / 1000.0;
	dt = (millinow - millisold) / 1000.0;
	millisold = millinow;

	tcommand = (ppm1_value - 480.0) / 8.22;
	omegadot = k0*tcommand - k2*omega;
	thetadot = omega;
	flapdeg = sin(theta);
	theta = theta + omega*dt;
	omega = omega + omegadot*dt;
	flapmag = (ppm1_value - 900) / 11.0 + 6;
	flapdeg = flapmag * sin(theta); //variable amplitude+freq

	rudder =(int)(30.0 + (ppm2_value - 1500) / 30);
  elevator = ppm3_value / 33 - 45;

	flapangle1 = (int)((rudder - flapdeg + servo_zero1 - elevator) * 2.0 + 5.0);
	flapangle2 = (int)((rudder + flapdeg + servo_zero2 + elevator) * 2.0 + 5.0);

	if (ppm1_value > 1040) {
  	servo_comm1 = flapangle1;
  	servo_comm2 = flapangle2;
	}

	// Glide Lock
	if (ppm1_value < 1030) {
		servo_comm1 = (int)((rudder - glide_deg + servo_zero1 - elevator) * 2.0 + 15.0);
		servo_comm2 = (int)((rudder + glide_deg + servo_zero2 + elevator) * 2.0 + 15.0);
	}

	servo_left.write(servo_comm1); // tell servo to go to position in variable 'pos'
  servo_right.write(servo_comm2); // tell servo to go to position in variable 'pos'
}
Last edited by Dantiel; Jul 11, 2018 at 11:26 AM. Reason: .
Aug 21, 2018, 07:22 PM
Registered User
Takemura's new butterfly , note the betwin servos angle which convince me one more time that he read English and the forum
Since Asians love to follow blindly I probably have to conduct an experiment
Butterfly 3k3 -2New Servo direct drive test flight video 4 (6 min 58 sec)
Sep 16, 2018, 07:59 AM
Registered User
Hi Steve, I'm also interested in flapping with servos.
Thank you for your beautiful listing, I would not have succeeded.
I understand that the servants go on pins 5 and 6 of the card but the sbus of the receiver where it connects? On pin 0? Serial Rx? I have a taranis sbus okay?
I took a Pro Micro 5V 16M Mini Leonardo clone board and checking the listing in arduino (leonardo) not from errors.
I can not wait for me to try.
I thank you for everything you have published and I await your kind reply.
Hello Luigino from Rome.
Sep 16, 2018, 08:14 AM
Registered User
Hi Steve, I'm also interested in flapping with servos.
Thank you for your beautiful listing, I would not have succeeded.
I understand that the servants go on pins 5 and 6 of the card but the sbus of the receiver where it connects? On pin 0? Serial Rx? I have a taranis sbus okay?
I took a Pro Micro 5V 16M Mini Leonardo clone board and checking the listing in arduino (leonardo) not from errors.
I can not wait for me to try.
I thank you for everything you have published and I await your kind reply.
Hello Luigino from Rome.
Oct 04, 2018, 09:40 PM
Registered User
Dantiel's Avatar

Atalanta sail butterfly wing


Takemuras butterfly has excellent amazing climbing qualities O.O very wowed

Currently i developed a new idea of a new sail wing i suppose. It is inspired by the tepukei sail ( see vaka taumako proj). Sadly i dont have the time of building it in the appropriate size at the moment, but id be glad about any kind of ideas because it is still only rough, nevertheless im kinda excited about the idea because it may provide very light and powerful effective wings with a considerable profile in both parts of the wing in both stroke phases (i hope). Theres a small sketch of the idea attached as video (i recomend turning off the sound). Youll see that theres a string to create the imprescindible elevator on downstroke. Curious about your opiniones.

Atalanta sail wing (1 min 37 sec)
Last edited by Dantiel; Oct 04, 2018 at 09:52 PM.
Nov 21, 2018, 09:00 PM
Registered User
Butterfly 6k2 k1 Servo direct drive test flight video 6 (7 min 32 sec)
Nov 23, 2018, 06:27 PM
Registered User
Dantiel's Avatar
thank you for posting this video. with this configuration one can see clearly the strong drag that takemuras wings create, it is very nice that he's doing more experimenting. actually i experienced the same reversal of control using this angle configuration, which played a (minor) part in loosing my first bird^^
Nov 23, 2018, 11:52 PM
Registered User
good work , since u can not have high frequency flapping , the weight have to very low.


Quick Reply
Message:

Thread Tools