This commit is contained in:
2025-06-02 15:52:28 +02:00
parent e975e5a93b
commit c4c56efb7a

View File

@@ -62,7 +62,7 @@ I've also made a render of the drone to visualize it for other people. Making th
I've gotten some feedback on my design and about the use of screens. Maybe I should only use speakers or use LED matrixes. After thinking about it I think im going to give LED matrixes a spin. I've gotten some feedback on my design and about the use of screens. Maybe I should only use speakers or use LED matrixes. After thinking about it I think im going to give LED matrixes a spin.
## Drone electronics ## Drone electronics
For the drone I will need a lot of electronics. But I will also need a pcb for inside the drone so I don't have any loose connections. The main board needs a couple of components. Something to step down the voltage from the big battery or I will use two separate batteries one for the motors one for the control board. I will also need a sensor to know the position of the drone and a microcontroller. I also need a lot of power to power the screens so that will also be something interesting. For the drone I will need a lot of electronics. But I will also need a pcb for inside the drone so I don't have any loose connections. The main board needs a couple of components. Something to step down the voltage from the big battery or I will use two separate batteries one for the motors one for the control board. I will also need a sensor to know the position of the drone and a micro controller. I also need a lot of power to power the screens so that will also be something interesting.
### Components ### Components
* MCU * MCU
@@ -74,14 +74,14 @@ For the drone I will need a lot of electronics. But I will also need a pcb for i
### Drone remote electronics ### Drone remote electronics
I'm also building the remote for the drone I'm also building the remote for the drone
* Potslider for the throttle * Potentiometer slider for the throttle
* Joystick for left-right-forward-backwards * Joystick for left-right-forward-backwards
* battery * battery
* screen to see status of drone * screen to see status of drone
* LED (mandatory) * LED (mandatory)
#### Joystick #### Joystick
I really wanna use a joystick for this project because having 2 potmeters under each other looks a bit weird. I really wanna use a joystick for this project because having 2 potentiometers under each other looks a bit weird.
### KiCad ### KiCad
The first thing I did was import the design rules for our milling machine. I used the file from the lecture to import it from because there we set everything up together. The first thing I did was import the design rules for our milling machine. I used the file from the lecture to import it from because there we set everything up together.
@@ -179,7 +179,7 @@ There's one specific function I need to change.
{ {
// DESCRIPTION: Send pulses to motor pins, oneshot125 protocol // DESCRIPTION: Send pulses to motor pins, oneshot125 protocol
/* /*
* My crude implimentation of OneShot125 protocol which sends 125 - 250us pulses to the ESCs (mXPin). The pulselengths being * My crude implementation of OneShot125 protocol which sends 125 - 250us pulses to the ESCs (mXPin). The pulse lengths being
* sent are mX_command_PWM, computed in scaleCommands(). This may be replaced by something more efficient in the future. * sent are mX_command_PWM, computed in scaleCommands(). This may be replaced by something more efficient in the future.
*/ */
int wentLow = 0; int wentLow = 0;
@@ -243,7 +243,7 @@ There's one specific function I need to change.
} }
} }
``` ```
What this function does is generate PWM values in software which is super inefficient. The esp32C6 according to it's datasheet supports 6 seperate PWM clocks in hardware. What this function does is generate PWM values in software which is super inefficient. The esp32C6 according to it's datasheet supports 6 separate PWM clocks in hardware.
![alt text](image-pc-4.jpg) ![alt text](image-pc-4.jpg)
So I wanna use these to reduce the overhead and so the loop doesn't have to run 20 times a second but faster making the drone respond faster. To use these I need to use this library. So I wanna use these to reduce the overhead and so the loop doesn't have to run 20 times a second but faster making the drone respond faster. To use these I need to use this library.
Right link: [https://docs.espressif.com/projects/arduino-esp32/en/latest/api/ledc.html](https://docs.espressif.com/projects/arduino-esp32/en/latest/api/ledc.html) Right link: [https://docs.espressif.com/projects/arduino-esp32/en/latest/api/ledc.html](https://docs.espressif.com/projects/arduino-esp32/en/latest/api/ledc.html)
@@ -261,12 +261,12 @@ So I really needed 2 functions of the library.
## Generative design ## Generative design
Online I saw a lot of organic designs that where created by generative design. Online I saw a lot of organic designs that where created by generative design.
![alt text](image-12.jpg) ![alt text](image-12.jpg)
Credits: [formlabs](https://formlabs.com/eu/blog/generative-design/) Credits: [FormLabs](https://formlabs.com/eu/blog/generative-design/)
I wanted to do this myself for the drone arms. So I started messing around in the generative design tab of my drone arm model. I wanted to do this myself for the drone arms. So I started messing around in the generative design tab of my drone arm model.
![alt text](image-13.jpg) ![alt text](image-13.jpg)
I've already designed the base of the arm. What generative design does is either add or remove material based on parameters you give it. I've already designed the base of the arm. What generative design does is either add or remove material based on parameters you give it.
I've already prepared my model by created some parts as seperate bodies. So I can preserve them during the generation process. I've already prepared my model by created some parts as separate bodies. So I can preserve them during the generation process.
When creating a Study you need to assign which parts to groups. When creating a Study you need to assign which parts to groups.
![alt text](image-14.jpg) ![alt text](image-14.jpg)
@@ -284,7 +284,7 @@ So after assigning everything this is my result.
After that you can open the Objectives tab to see what you wanna do and set more limits. After that you can open the Objectives tab to see what you wanna do and set more limits.
![alt text](image-16.jpg) ![alt text](image-16.jpg)
The only things I understand from this menu is the Objectives and the Displacement. The objective is straight foward and the Displacement is the amount of millimeters it is allowed to fluctuate from the original design in said direction. The only things I understand from this menu is the Objectives and the Displacement. The objective is straight forward and the Displacement is the amount of millimeters it is allowed to fluctuate from the original design in said direction.
Now it's time to add the loads on the part. So the amount weight and force the part needs to be able to handle. Now it's time to add the loads on the part. So the amount weight and force the part needs to be able to handle.
For that there's a keybind `L` For that there's a keybind `L`
@@ -486,5 +486,5 @@ And when doing heated inserts make sure to do a couple of extra wall layers. So
| | | | | | | |
#### Files #### Files
* [Handheld controller pcb](Drone%20controller.zip) * [Handheld controller PCB](Drone%20controller.zip)