Skip to content

Descripiton of the Project (English)

Alex Zaslavskis edited this page May 2, 2022 · 5 revisions

How a project was born!

The project was born in 2019 spontaneously we had an idea to build a drone that is modified for different tasks. The first version was built on an arduino and it took a year to make a prototype that was able to fly.However the problem was that just to make the drone used 29.5 KiloBytes of flash inside the arduino. Of course there was a way to add more arduino boards , tape and super glue and hope that it will fly. But when we are talking about experiments with PID regulator or even adding artificial intelligence we are not talking about Arduino and Microprocessor anymore, now we are using at least Linux on board with megabytes of RAM!

Hardware

There was 100% sure that we need change our board to something more powerful, that arduino. And I found in my table a Raspberry PI Zero that I bought recently for 13$, and we decided to have the RPI Zero as a main controller. The Raspberry Pi has 512Mb of RAM and one core of ARM CPU, however the only mini-computer is not enough to make drones fly, so the discussion about the IMU sensors was begun. Solution was found quickly, the classical MPU6050 module , because it is popular and cheap. Next problem we faced was that RPI Zero has only two PWM outputs, whereas our project required at least 4. So we take PCA9685 as PWM convertor that was connected to RPI using i2c and pwm to motors. Also the frame and the motors was required, so we chosen, ReadyToSky 920kv ,Simonk 30A and F450 frame.

Software

The harder part of this project is software , the software in italy is written on C++ with using Arduino frameworks, sadly but it contains a high amount of platform-dependent code that should be rewritten in case work on RPi. As we understand that there is a lot of code to rewrite, why not port it to another language. And a choice on Rust was made , it is very popular and in some time quite fast (Yes yes jokes about Python and its speed). We are not hiding if our code is a port of YMFC-AL / YMFC-32 for RPI on Rust. However there are a lot of changes and tweaks that make drones more stable.

OS on Drone

One more challenge was what OS to install on the drone. It was almost 100% sure that we will use some variation on Linux. The first choice was Raspberry PI Lite OS , and we aren't happy with its boot speed and resources consumption and it is not working well in Real Time. But we quickly found a solution, buildroot and we built our own Linux variant that will be used in drones. Also it has many programming languages runtimes such as Node.JS,C++,Rust and don`t worry Python is there as well.

More information is on the PiElectricsEaglesOS repo.

Logging

On real tests, we were pretty sure that we needed to analyse the problems and what happens in flight and build graphs, and process information from sensors. So it was understandable that we needed software that would allow us to analyse, so in the beginning it was just script on Python then when we found that is not enough and other variations of software was built. Currently we had two versions that we use , first is only Windows on C# and supports plugins, and second on Rust + CSS+JS+HTML and currently is not supporting plugins.

Current problem

Is that drone rotated on the yaw axis? (Well we found a problem already)

Social media and other

Our instagram: (Not only drones ,but quite squirrels as well) : @electricseagles2020

Our code: https://github.com/Electrics-Eagles