This commit is contained in:
2025-02-05 09:27:28 +01:00
parent b06f99b9b9
commit a88ea26a3e
7 changed files with 41 additions and 30 deletions

View File

@@ -4,7 +4,7 @@
Mkdocs generates HTML from Markdown making an easy documentation page. So you don't have to struggle with html and css so you can focus on things more important.
## How to set it up
For this project im going to use Gitlab CI pipelines. CI stands for continuous intergration. That means that with every push you can make something do. For example clean up code or generate a documentation page based on what you've written in markdown.
For this project im going to use Gitlab CI pipelines. CI stands for continuous integration. That means that with every push you can make something do. For example clean up code or generate a documentation page based on what you've written in markdown.
### Step 1 choosing a theme
In [this](https://github.com/mkdocs/catalog) github repo there is a catalog of themes that you can choose. I went with the Ivory theme. (note this changed to material theme but the steps are still the same. [link](../week_1_fabacademy/customising_mkdocs.md))
@@ -32,7 +32,7 @@ This is my requirements file
mkdocs>=1.5.3
mkdocs-ivory>=0.4.6
```
To find the version number of the theme you want you need to open the package website and there you can find what the latest version it's on. You don't have to add the version numbers but I do it because if the package mainter sends out a broken update the package still works.
To find the version number of the theme you want you need to open the package website and there you can find what the latest version it's on. You don't have to add the version numbers but I do it because if the package maintainer sends out a broken update the package still works.
#### gitlab-ci.yml
gitlab-ci.yml tells gitlab what to do when a commit is send out. For example this yml file builds a page and publishes it.
@@ -67,9 +67,9 @@ What does everything do?
| stage | Defines what stage the build process is in. This can be used to run jobs in parallel. for example: all early stage jobs at the same time and all main stage jobs at the same time. |
| artifacts | Jobs can leave files. This tells them to save them |
| path | This tells which files or folders to store as the artifacts |
| rules | This tells when to run the pipline |
| if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH | If the branch commited to is set to the default branch in gitlab. Then run the pipline |
| changes | tell the pipline to only update when certain files or folders are changed |
| rules | This tells when to run the pipeline |
| if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH | If the branch committed to is set to the default branch in gitlab. Then run the pipeline |
| changes | tell the pipeline to only update when certain files or folders are changed |
## Sources
* https://gitlab.com/pages/mkdocs

View File

@@ -1,7 +1,7 @@
# SSH config files
## Why use ssh config files?
SSH config files are nice to have when you need to connect to multiple servers and don't wanna type the entire an entire serveradress and username. For example: instead of `ssh user@serveradress.co` you can type `ssh hostname` and that saves some brainpower for the rest of the fabacademy!
SSH config files are nice to have when you need to connect to multiple servers and don't wanna type the entire an entire server address and username. For example: instead of `ssh user@serveradress.co` you can type `ssh hostname` and that saves some brainpower for the rest of the fabacademy!
## What can you do with ssh config files
In SSH config files you can describe how connections should be handled and with which keys you want to use to log in onto a specific server and much more.

View File

@@ -1,13 +1,13 @@
# Customising Mkdocs
# Customizing Mkdocs
I wanna customise my mkdocs theme. So I can have a dark mode. Because it currently looks like this and having a nice looking documentation page is necessary too!
I wanna customize my mkdocs theme. So I can have a dark mode. Because it currently looks like this and having a nice looking documentation page is necessary too!
![alt text](../../assets/customising_mkdocs.jpg)
## Issues
### Attempt 1
I tried changing it by referencing extra css but when it builded i looked through the job artifacts and I saw that it didnt pick up on the file
I tried changing it by referencing extra css but when it builded i looked through the job artifacts and I saw that it didn't pick up on the file
```yml
site_name: Fab Academy docs page - Sam
@@ -27,11 +27,11 @@ extra_css: [extra.css]
}
```
### Attempt 2
After I read the documentation thoroughly i found out that the css file needs to be relative to the `docs` folder and not the `mkdocs.yml`. After that it showed the css and I could finaly customise the theme.
After I read the documentation thoroughly i found out that the css file needs to be relative to the `docs` folder and not the `mkdocs.yml`. After that it showed the css and I could finally customize the theme.
## Customising Material theme
### Palette customisation
I decided to switch to material theme because its easier to configure. There are premade color schemes and a lot of extensions that work out of the box.
## Customizing Material theme
### Palette customization
I decided to switch to material theme because its easier to configure. There are pre made color schemes and a lot of extensions that work out of the box.
Example changing colors.
```yaml
theme:
@@ -39,7 +39,7 @@ theme:
primary: indigo
accent: teal
```
Of yourse you could also use the extra.css to style the website even more.
Of course you could also use the extra.css to style the website even more.
## Extensions
@@ -55,14 +55,14 @@ markdown_extensions:
With this extension you can add drop down menu's to your page.
#### How do I install drop down menus?
Drop down menu's are part of the `pymdownx.details` extension. You need to place that in your `mkdocs.yml` under `markdown_extensions:` liket his:
Drop down menu's are part of the `pymdownx.details` extension. You need to place that in your `mkdocs.yml` under `markdown_extensions:` like his:
```yaml
markdown_extensions:
- pymdownx.details
```
#### How do I use it
You can use it like this. Don't forget that you need to use 2 tabs to get the text in the collapsable box.
You can use it like this. Don't forget that you need to use 2 tabs to get the text in the collapsible box.
```
??? Notes

View File

@@ -2,11 +2,11 @@
## What is fritzing
Fritzing is a program to draw circuits on breadboards to visualise them. You will see them a lot when looking for references on how to connect stuff on breadboards. For the first weeks I will be using this to sketch breadboards for later testing.
Fritzing is a program to draw circuits on breadboards to visualize them. You will see them a lot when looking for references on how to connect stuff on breadboards. For the first weeks I will be using this to sketch breadboards for later testing.
## My first design
I have made this design early to get started on programming the microcontroller so I have enough time to program the stabilasation algorithm
I have made this design early to get started on programming the microcontroller so I have enough time to program the stabilization algorithm
![Frirtzing diagram](../../assets/fritzingv1.jpg)

View File

@@ -233,7 +233,7 @@ Then you can press the object you wanna edit on the right and edit it on the lef
Then you will get something like this. Now drag over everything and press `unwrap`
![alt text](../../assets/assets_week_2/blender/image-13.jpg)
That will make everything dissapear.
That will make everything disappear.
![alt text](../../assets/assets_week_2/blender/image-14.jpg)
Now you can select faces in your 3d editor you want the image on. And right click and press `UV unwrap faces -> Unwrap -> Smart UV project`
@@ -258,7 +258,7 @@ After that you need to set the output location and file type. That can be done i
![alt text](../../assets/assets_week_2/blender/image-20.jpg)
In there you can change render settings for this project. There are multiple render engines. Eevee is the fastest but lowest quality and Cycles is the slowest and heaviest one but looks the nicest. Workbench is somewhere inbetween.
In there you can change render settings for this project. There are multiple render engines. Eevee is the fastest but lowest quality and Cycles is the slowest and heaviest one but looks the nicest. Workbench is somewhere in between.
After setting all your settings you can go to the top menu and press `render` and choose if you wanna render an image or video.
![alt text](../../assets/assets_week_2/blender/image-18.jpg)

View File

@@ -1,7 +1,7 @@
# Lecture notes Wednesday
## Notes regional
Parametic design - scalable objects (so that if you change one parameter everything changes with it)
Parametric design - scalable objects (so that if you change one parameter everything changes with it)
Try as much design softwares as possible
@@ -12,14 +12,14 @@ Parametric design is different in every design software
### Constraints
equality constraints to make things the same size
dimension consraints force someting to a length
dimension constraints force something to a length
* imaprative design (click and drag)
* generative design (describe how you want something and it generatis it)
* imperative design (click and drag)
* generative design (describe how you want something and it generates it)
#### Freecad
Different snaps to snap to grid of verticices or edges
Different snaps to snap to grid of vertices or edges
#### loft
@@ -28,7 +28,7 @@ Different snaps to snap to grid of verticices or edges
#### Parametric design
Use of spreadsheet
### Intergrate 3d view in website
### Integrate 3d view in website
https://grabcad.com/
### Video encoding
@@ -37,14 +37,14 @@ Use H.264 to encode videos with
ffmpeg -i input_video -vcodec libx264 -crf 25 -preset medium -vf scale=-2:1080 -acodec libmp3lame -3q:a output_video
#### Assigment
#### Assignment
* model a possible final project with cad in 2d and 3d
* make photorealistic render
* make a movie
* make a simulation that it works
* compress them
* post the descroption with the design files to the class page
* post the description with the design files to the class page
#### Next week
* next week paramemtric press fit construction kit.
* next week parametric press fit construction kit.
* focus on constrains and parametric

View File

@@ -117,4 +117,15 @@ First used the wrong library I used the Adafruit bno0xx library instead of the S
After researching for a while and looking through other fab academy projects I found out that other people also made drones with micro controllers and used a pre-made driver that they customized (https://fab.cba.mit.edu/classes/863.23/Architecture/people/Zhixing/finalproject.html). After doing some research on how to keep the drone upright I also decided to use an existing driver because the math required for that is way above my level.
### The new driver
Im gonna be using the [dRhemFlightVTOL](https://github.com/nickrehm/dRehmFlight/tree/master) driver. The only problem is that it doesn't support my Inertial measuring unit (BNO085). So I will have to customize the driver to make it work with it.
Im gonna be using the [dRhemFlightVTOL](https://github.com/nickrehm/dRehmFlight/tree/master) driver. The only problem is that it doesn't support my Inertial measuring unit (BNO085). So I will have to customize the driver to make it work with it.
//TODO: reverse engineer the driver and see what all pwm channels do from the controller
//TODO: See if i can use playstation controller as RC controller
```cpp
thro_des = (channel_1_pwm - 1000.0) / 1000.0; // Between 0 and 1
roll_des = (channel_2_pwm - 1500.0) / 500.0; // Between -1 and 1
pitch_des = (channel_3_pwm - 1500.0) / 500.0; // Between -1 and 1
yaw_des = (channel_4_pwm - 1500.0) / 500.0; // Between -1 and 1
```