Ornithopter

Ornithopter

•  •  4 updates •  9h 16m

A robotic bird that can be controlled remotely and will hopefully fly

By Dinesh

Timeline

Dinesh
Dinesh 2h spent working 81d ago

I had exams so I had to lock in for those.

During the wait I ordered the Wemos D1 mini and its arrived. With that and the tail harness printed I soldered and shrink wrapped all the connections. I used more wire than I needed because I wanted to be able to move parts around when the bird needed to be properly balanced. I also didn't want to fry the microcontroller so I had to slightly redesign the circuit with additional transistors as I noticed with further testing that when sending a lot of commands the system would stall. I think this is caused by two main issues.

1) Too much information being sent - After reading the serial output from the controller I noticed a lot of the same commands were being sent in quick succession and the chip was processing all of it. This redundancy can be eliminated if I alter the code such that it saves the last given command to memory, this way if the same command is given it will match the one stored in memory and the system doesn't need to change anything. If a new command comes that new command will be saved and so on. If no commands, then it will set everything to 0. This should prevent the microcontroller from processing repetitive information. (I will do this later because I didn't want to debug code today)

2) Too much current being drawn - In the original schematic on the breadboard, the main drive motor was powered through a 2N222 transistor because the ESP32 couldn't provide the required current to power it. However, its still driving two servos and under air resistance I worry it will draw too much current and fry the chip. So I put transistors between the Wemos D1 mini and the servos so the current circumvents the microcontroller, reducing the rick of it being damaged.

All of this took a very long time because I had figure out how to use Onshape again (but that didn't take too long) and I had to double and triple recheck my connections as my cable management is horrible. Anyways it works perfectly but the battery does drain really fast. I think this is a hard limitation of the lipo battery. I can't get a bigger one because it would be too heavy and I can't connect them in series or parallel because that would fry the chip. Maybe I could have one power the microcontroller and one for the servos and motor but at this point everything is already soldered.

Dinesh
Dinesh 2h spent working 88d ago

In this session I printed out the tail mechanism with onshape (It was a huge learning curve from Tinkercad but eventually I got used to it). I also printed out the wings mechanism and attached everything to a foam body for testing. It still needs to be balanced and everything but the tail seems to function correctly for the most part. I realized this design lead to issues with the tail unable to move in certain directions and also gets stuck in certain positions. I won't be posting the files for this design, I'll think of something better. I also remembered that I won a orpheus pico from the Highseas competition a while back so I switched to using that but it doesn't have a WiFi chip so it will be temporary until the wemos D1 mini arrives in a couple days.

Neya Neya 3 months ago
wow it might actually fly :)
Dinesh
Dinesh 6m spent working 90d ago

This is the first test of the program on hardware. Everything went smoothly but the ESP32 is very heavy. I might use a Wemos D1 Mini which is much lighter and smaller. Though it does use the ESP8266 chip which is slower. If that doesn't work I may need to use an XIAO ESP32, very small but uses the ESP32 chip. I also may use more transistor between the servos and the microcontrollers so it doesn't draw too much current when a lot of commands are being sent at once.

Dinesh
Dinesh 1h spent working 90d ago

This is the current model I am working with. The 2:1 gear ratio should convert some of torque from the motor into speed making the flapping frequency greater

Update attachment