mirror of
https://gitlab.waag.org/make/fablab/interns/2025/sam.git
synced 2025-08-05 13:06:56 +00:00
Compare commits
5 Commits
fe701f6b9a
...
b86a5b6f50
Author | SHA1 | Date | |
---|---|---|---|
b86a5b6f50 | |||
2fcd9dac2a | |||
82c2520c98 | |||
a88ea26a3e | |||
b06f99b9b9 |
@@ -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:
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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.
|
||||
|
@@ -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!
|
||||
|
||||

|
||||
|
||||
## 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
|
||||
|
||||
|
@@ -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
|
||||

|
||||
|
||||
|
||||
|
@@ -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.
|
||||
|
||||

|
||||
|
||||
### 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.
|
||||

|
||||
|
||||
@@ -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. 
|
||||
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. 
|
||||
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. 
|
||||
|
||||
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.
|
||||
|
||||

|
||||

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

|
||||
That will make everything dissapear.
|
||||
That will make everything disappear.
|
||||

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

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

|
||||
|
||||
|
||||
#### 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)
|
@@ -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
|
BIN
docs/assets/assets_week_2/blender/droneRender.mp4
Normal file
BIN
docs/assets/assets_week_2/blender/droneRender.mp4
Normal file
Binary file not shown.
@@ -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
|
||||
```
|
Reference in New Issue
Block a user