Compare commits

...

5 Commits

Author SHA1 Message Date
b86a5b6f50 updated sources 2025-02-05 09:50:28 +01:00
2fcd9dac2a Added render 2025-02-05 09:39:29 +01:00
82c2520c98 more typos 2025-02-05 09:35:21 +01:00
a88ea26a3e typos 2025-02-05 09:27:28 +01:00
b06f99b9b9 organisation 2025-02-05 09:08:36 +01:00
12 changed files with 64 additions and 63 deletions

View File

@@ -1,7 +1,7 @@
# ImageMagick
## What is ImageMagick and why use it?
ImageMagick is a tool to resize, convert or compress images. You can do all sorts of things with it. But right now we will be using it to compress images. So other people don't have to download hunderds of megabytes when cloning your project or viewing your website. Using this is also way faster than opening photoshop for every image you make.
ImageMagick is a tool to resize, convert or compress images. You can do all sorts of things with it. But right now we will be using it to compress images. So other people don't have to download hundreds of megabytes when cloning your project or viewing your website. Using this is also way faster than opening photoshop for every image you make.
## How do I install it?
ImageMagick can be installed on arch based systems using:

View File

@@ -7,7 +7,7 @@ To be able to push and pull from the git server you need to give your public key
```bash
ssh-keygen
```
After you run this command it will prompt you for a passphrase and a location to store it you can leave these blank and press enter on them. It will automaticly store them in `<user>/.ssh`.
After you run this command it will prompt you for a passphrase and a location to store it you can leave these blank and press enter on them. It will automatically store them in `<user>/.ssh`.
## Reading the ssh keys

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

@@ -12,7 +12,7 @@ The first lecture was about blender.
### Enable emulate numpad
To start off with
If you dont have a numpad you should enable `emulate numpad` in Edit > prefrences > input
If you don't have a numpad you should enable `emulate numpad` in Edit > preferences > input
If you want to you can set other preferences that you'd maybe like
### Shortcuts
@@ -20,7 +20,7 @@ Zoom: scroll mousewheel
Orbit: Press mousewheel and move mouse
Pan: Shift + press mouse wheel
It's reccomended to keep default shortcuts
It's recommended to keep default shortcuts
| Key | What does it do |
| :------------------ | --------------------------------------------------------------- |
@@ -50,7 +50,7 @@ It's reccomended to keep default shortcuts
| E | Extrude (Extrude can also be mixed with alot of other commands) |
| E + C | Free move Extrude |
| E + S | Makes the plane move inward or outward |
| | |
@@ -93,17 +93,17 @@ G + number move that amount of blocks
`Pressing mouse wheel `will guess which axis you want to move an object in.
### Modifiers
Modiers can be applied on the bottom right corner of your screen. There you need to press on on the wrench. There you can add modifiers.
Modifiers can be applied on the bottom right corner of your screen. There you need to press on on the wrench. There you can add modifiers.
#### Subdivision modifier
Make the object smoother. Warning: Dont increase it too much because it will crash your pc.
Make the object smoother. Warning: Don't increase it too much because it will crash your pc.
![alt text](../../assets/assets_week_2/image--15.jpg)
### Scenes
There are multiple scenes in blender that can be found in the top of your screen. Each screen has it's own tools and functionalities.
### Precission
### Precision
If you press `N` in blender you can open the Transform menu. Where you can precisely place objects.
![alt text](../../assets/assets_week_2/image--16.jpg)
@@ -132,7 +132,7 @@ Up here you can edit the select modes. You can select Points, Lines and Surfaces
### Intro
* Characteristics
* Engineering tool
* Surface modeler, Sheet metal and mesh availible
* Surface modeler, Sheet metal and mesh available
* Great for working with assemblies and construction
* Very good at parametric design
* Lots of additional tools like machining, analysis and post processing
@@ -142,7 +142,7 @@ Up here you can edit the select modes. You can select Points, Lines and Surfaces
In the top right there is a project management tab where you can manage all your projects. ![alt text](../../assets/assets_week_2/image--0.jpg)
When you import parts from other files you can change the imported files and then you can update it in the other designs.
Don't forget to label your parts. Dont join everything into one body
Don't forget to label your parts. Don't join everything into one body
### Modeling
Best way to start a design is to start with a sketch. After you've clicked the sketch button you can select a plane. The best plane to start with is the bottom plane
@@ -172,7 +172,7 @@ At the bottom you can see the Timeline. There you can see every action that you
Under the Modify tab you can open the parameter menu and then add parameters to the design
When you're in the parameter menu you can click the `+` icon and then add a paremter. The name is the parameter name and the expression is the value. ![alt text](../../assets/assets_week_2/image--5.jpg)
When you're in the parameter menu you can click the `+` icon and then add a parameter. The name is the parameter name and the expression is the value. ![alt text](../../assets/assets_week_2/image--5.jpg)
When you've added a parameter you can use that parameter instead of setting a value. You can also add calculations within expressions and values like this.
@@ -192,7 +192,7 @@ In there you can define the hole.
You can inspect length and how big it is with the inspect tool. The inspect tool is found in the top menu. There is also a automatic inspect tool in the bottom right. If you select 2 edges or faces you can see the distance between them.
#### Offset plane
The offset plane can be used as a tool for other tools. For example you can place a offset plane and then do a plit body using that plane as a reference.
The offset plane can be used as a tool for other tools. For example you can place a offset plane and then do a split body using that plane as a reference.
![alt text](../../assets/assets_week_2/image--7.jpg)
![alt text](../../assets/assets_week_2/image--11.jpg)
@@ -204,25 +204,24 @@ The offset plane can be used as a tool for other tools. For example you can plac
What your product has to do
What (sub)functions you need fo that
which functions can be combined and which not
what requiremnds fo these functions are
what requirements fo these functions are
#### Product breakdown structure (PBS)
* defining your product structure
* Defining the parts and (sub)systems you need
* the way the prdocut should be build
* the way the product should be build
* managing interfaces between parts
* defining specifications for the components
* finding the design strategy for parts assemblies
* diving the work fistrubtion wihtin aa team
* making risk assements (FMEA)
* making risk assessments (FMEA)
#### Work Breakdown Structure (FBS)
* Which activities you have to do
### Designing
* Design on paper or get visuals of what you want.
* All 3D tools are different. Blender is usefull for visualization, organic structures. Fusion is very much used for production envoirments and making solid models, assemblies, re-use parts in the structure.
* Which 3D tool you use is a personal prefrence.
* All 3D tools are different. Blender is useful for visualization, organic structures. Fusion is very much used for production environment and making solid models, assemblies, re-use parts in the structure.
* Which 3D tool you use is a personal preference.
#### Design strategy
* Example: if you want to make a hole in a part you can do that in different ways. Define the structure with a hole. Or drill it through the part. The sequence affects the way it behaves.

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,15 +258,17 @@ 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)
#### Result:
<video controls src="../../assets/assets_week_2/blender/droneRender.mp4" title="Title"></video>
## Sources:
* https://www.youtube.com/watch?v=JPkzmWpZbLw
* https://www.youtube.com/watch?v=jLGWE335J28
* https://www.youtube.com/watch?v=syg2Oy43zJ0
* [Exporting blender renders](https://www.youtube.com/watch?v=JPkzmWpZbLw)
* [Importing photos and videos into blender](https://www.youtube.com/watch?v=jLGWE335J28)
* [How to create animations in blender](https://www.youtube.com/watch?v=syg2Oy43zJ0)
* [Onshape crash course to get to know the UI](https://www.youtube.com/watch?v=2utLjjkXpIg)

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,25 +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
## Regional Day 2
12 uur blender
2 uur fusion
daarna ffmpeg imagemagick
model project in few different programs

Binary file not shown.

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
```