Compare commits

...

2 commits

9 changed files with 44 additions and 35 deletions

View file

@ -12,6 +12,10 @@ jobs:
run: /usr/bin/python -m venv .venv run: /usr/bin/python -m venv .venv
- name: Install dependencies - name: Install dependencies
run: ./.venv/bin/pip install -r requirements.txt run: ./.venv/bin/pip install -r requirements.txt
- name: Build PDF exports
run: |
. .venv/bin/activate
myst build --execute --pdf
- name: Build static HTML - name: Build static HTML
run: | run: |
. .venv/bin/activate . .venv/bin/activate

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "courstex"]
path = courstex
url = https://git.edgarpierre.fr/edpibu/courstex.git

View file

@ -1,6 +1,9 @@
--- ---
title: Les capteurs title: Les capteurs
subject: Cours subject: Cours
export:
- format: pdf
template: courstex
--- ---
# Définition # Définition
@ -28,10 +31,9 @@ Ils génèrent donc un signal dit **binaire**.
Un interrupteur (@inter) ou un détecteur de mouvement PIR (@pir) sont des capteurs Un interrupteur (@inter) ou un détecteur de mouvement PIR (@pir) sont des capteurs
tout ou rien. tout ou rien.
::::{figure}
:label: fig:capteur-tor
:::{figure} https://upload.wikimedia.org/wikipedia/commons/3/3a/Switches-electrical.agr.jpg :::{figure} https://upload.wikimedia.org/wikipedia/commons/3/3a/Switches-electrical.agr.jpg
:label: inter :label: inter
:width: 50%
Interrupteur[^inter]. Interrupteur[^inter].
@ -41,6 +43,7 @@ Interrupteur[^inter].
:::{figure} https://upload.wikimedia.org/wikipedia/commons/2/2e/Motion_detector.jpg :::{figure} https://upload.wikimedia.org/wikipedia/commons/2/2e/Motion_detector.jpg
:label: pir :label: pir
:width: 50%
Détecteur de mouvement PIR[^pir]. Détecteur de mouvement PIR[^pir].
@ -48,9 +51,6 @@ Détecteur de mouvement PIR[^pir].
Public domain, via Wikimedia Commons. Public domain, via Wikimedia Commons.
::: :::
Exemples de capteurs tout ou rien
::::
## Les capteurs analogiques ## Les capteurs analogiques
Le signal de sortie est en relation directe avec la grandeur d'entrée Le signal de sortie est en relation directe avec la grandeur d'entrée
(généralement proportionnelle) (généralement proportionnelle)
@ -59,10 +59,9 @@ c'est un signal dit **analogique**.
Une thermistance (@thermistance) ou une jauge de déformation (@jauge) sont des Une thermistance (@thermistance) ou une jauge de déformation (@jauge) sont des
capteurs analogiques. capteurs analogiques.
::::{figure}
:label: fig:capteur-analogique
:::{figure} https://upload.wikimedia.org/wikipedia/commons/3/3b/NTC_bead.jpg :::{figure} https://upload.wikimedia.org/wikipedia/commons/3/3b/NTC_bead.jpg
:label: thermistance :label: thermistance
:width: 50%
Thermistance : résistance variant selon la température[^thermistance]. Thermistance : résistance variant selon la température[^thermistance].
@ -73,6 +72,7 @@ via Wikimedia Commons.
:::{figure} https://upload.wikimedia.org/wikipedia/commons/0/0a/Unmounted_strain_gauge.jpg :::{figure} https://upload.wikimedia.org/wikipedia/commons/0/0a/Unmounted_strain_gauge.jpg
:label: jauge :label: jauge
:width: 50%
Jauge de déformation : résistance variant selon son élongation[^jauge]. Jauge de déformation : résistance variant selon son élongation[^jauge].
@ -80,17 +80,13 @@ Jauge de déformation : résistance variant selon son élongation[^jauge].
[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0), via Wikimedia Commons. [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0), via Wikimedia Commons.
::: :::
Exemples de capteurs analogiques.
::::
## Les capteurs numériques ## Les capteurs numériques
Un capteur numérique génère un signal de sortie ne pouvant prendre qu'un certain nombre de valeur distincte, c'est à dire un signal **numérique**. Un capteur numérique génère un signal de sortie ne pouvant prendre qu'un certain nombre de valeur distincte, c'est à dire un signal **numérique**.
Une caméra (@camera) ou un codeur absolu (@codeur) sont des capteurs numériques. Une caméra (@camera) ou un codeur absolu (@codeur) sont des capteurs numériques.
::::{figure}
:label: fig:capteur-numerique
:::{figure} https://upload.wikimedia.org/wikipedia/commons/0/02/S4000_Image_Sensor_%28Colorful%29.jpg :::{figure} https://upload.wikimedia.org/wikipedia/commons/0/02/S4000_Image_Sensor_%28Colorful%29.jpg
:label: camera :label: camera
:width: 50%
Caméra : pour chaque pixel, le signal peut prendre une valeur entière allant de 0 à 255[^camera]. Caméra : pour chaque pixel, le signal peut prendre une valeur entière allant de 0 à 255[^camera].
@ -98,12 +94,10 @@ Caméra : pour chaque pixel, le signal peut prendre une valeur entière allant d
::: :::
:::{figure} https://upload.wikimedia.org/wikipedia/commons/a/a8/Gray_code_rotary_encoder_13-track_opened.jpg :::{figure} https://upload.wikimedia.org/wikipedia/commons/a/a8/Gray_code_rotary_encoder_13-track_opened.jpg
:label: codeur :label: codeur
:width: 50%
Codeur absolu : le signal prend une valeur entière différente selon l'angle du disque[^codeur]. Codeur absolu : le signal prend une valeur entière différente selon l'angle du disque[^codeur].
[^codeur]: [Mike1024](https://commons.wikimedia.org/wiki/File:Gray_code_rotary_encoder_13-track_opened.jpg), [^codeur]: [Mike1024](https://commons.wikimedia.org/wiki/File:Gray_code_rotary_encoder_13-track_opened.jpg),
Public domain, via Wikimedia Commons Public domain, via Wikimedia Commons
::: :::
Exemples de capteurs numériques
::::

View file

@ -1,6 +1,9 @@
--- ---
title: Les signaux title: Les signaux
subject: Cours subject: Cours
export:
- format: pdf
template: courstex
kernelspec: kernelspec:
name: python3 name: python3
display_name: Python 3 display_name: Python 3

View file

@ -1,6 +1,9 @@
--- ---
title: Le CAN title: Le CAN
subject: Cours subject: Cours
export:
- format: pdf
template: courstex
kernelspec: kernelspec:
name: python3 name: python3
display_name: Python 3 display_name: Python 3
@ -33,9 +36,9 @@ On donne en @fig:exemple-can l'exemple d'un CAN de tension de référence 5 V fo
La **caractéristique** du CAN est la courbe représentant la valeur numérique en sortie en fonction de la valeur analogique en entrée (@fig:carac-can). La **caractéristique** du CAN est la courbe représentant la valeur numérique en sortie en fonction de la valeur analogique en entrée (@fig:carac-can).
````{figure} ::::{figure}
:label: fig:exemple-can :label: fig:exemple-can
```{code-cell} python :::{code-cell} python
:tags: [remove-input] :tags: [remove-input]
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from matplotlib import ticker from matplotlib import ticker
@ -94,14 +97,14 @@ arr2 = ax2.annotate("", xy=(0.5, 0), xytext=(0.5, 1), arrowprops=dict(arrowstyle
ax2.annotate("$q$", (1, 0.5), xycoords=arr2, ha="left", va="center") ax2.annotate("$q$", (1, 0.5), xycoords=arr2, ha="left", va="center")
arr3 = ax2.annotate("", xy=(1, 0), xytext=(1, 8), arrowprops=dict(arrowstyle="<->")) arr3 = ax2.annotate("", xy=(1, 0), xytext=(1, 8), arrowprops=dict(arrowstyle="<->"))
ax2.annotate("$V_{pe}$", (1, 0.5), xycoords=arr3, ha="left", va="center") ax2.annotate("$V_{pe}$", (1, 0.5), xycoords=arr3, ha="left", va="center");
``` :::
Signal analogique et signal numérisé. Signal analogique et signal numérisé.
```` ::::
````{figure} ::::{figure}
:label: fig:carac-can :label: fig:carac-can
```{code-cell} python :::{code-cell} python
:tags: [remove-input] :tags: [remove-input]
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from matplotlib import ticker from matplotlib import ticker
@ -116,15 +119,12 @@ fig, ax = plt.subplots()
ax.stairs(s_n, s_a, color="C1", lw=3, baseline=None) ax.stairs(s_n, s_a, color="C1", lw=3, baseline=None)
ax.set( ax.set(
xlim=(0, 5),
ylim=(-1, N),
yticks=s_n, yticks=s_n,
xlabel="Signal analogique (V)", xlabel="Signal analogique (V)",
ylabel="Signal numérique", ylabel="Signal numérique",
) )
ax.set_xticks(s_a, [f"{v:.3f}" for v in s_a], rotation=45, ha="right", rotation_mode="anchor") ax.set_xticks(s_a, [f"{v:.3f}" for v in s_a], rotation=45, ha="right", rotation_mode="anchor")
ax.set_aspect(5/8, 'box') ax.set_aspect(5/8, "datalim")
arr4 = ax.annotate( arr4 = ax.annotate(
"", xy=(s_a[0], 0), xytext=(s_a[1], 0), arrowprops=dict(arrowstyle="<->") "", xy=(s_a[0], 0), xytext=(s_a[1], 0), arrowprops=dict(arrowstyle="<->")
) )
@ -133,7 +133,7 @@ ax.annotate("$q$", (0.5, 1), xycoords=arr4, ha="center", va="bottom")
arr5 = ax.annotate( arr5 = ax.annotate(
"", xy=(s_a[0], 1.5), xytext=(s_a[-1], 1.5), arrowprops=dict(arrowstyle="<->") "", xy=(s_a[0], 1.5), xytext=(s_a[-1], 1.5), arrowprops=dict(arrowstyle="<->")
) )
ax.annotate("$V_{pe}$", (0.5, 1), xycoords=arr5, ha="center", va="bottom") ax.annotate("$V_{pe}$", (0.5, 1), xycoords=arr5, ha="center", va="bottom");
``` :::
Caractéristique du CAN. Caractéristique du CAN.
```` ::::

1
courstex Submodule

@ -0,0 +1 @@
Subproject commit d040c12b630182d5b127a9123a0cfa617d9a0016

View file

@ -16,13 +16,11 @@ project:
country: France country: France
url: https://lyceedupaysdesoule.fr url: https://lyceedupaysdesoule.fr
license: CC-BY-NC-SA-4.0 license: CC-BY-NC-SA-4.0
exclude: README.md exclude:
- README.md
- courstex
numbering: numbering:
headings: true headings: true
settings:
output_stderr: remove-error
output_stdout: remove
output_matplotlib_strings: remove
site: site:
template: book-theme template: book-theme
options: options:

View file

@ -6,6 +6,9 @@ abstract: |
L'objectif de cette procédure est de visualiser un modèle 3D réalisé avec L'objectif de cette procédure est de visualiser un modèle 3D réalisé avec
Solidworks en réalité augmentée avec l'application [Caddy](https://www.heycaddy.net/) Solidworks en réalité augmentée avec l'application [Caddy](https://www.heycaddy.net/)
sur Meta Quest 3. sur Meta Quest 3.
export:
- format: pdf
template: courstex
--- ---
# Export au format IGES # Export au format IGES

View file

@ -5,6 +5,9 @@ subtitle: Découper ou graver une pièce
abstract: | abstract: |
L'objectif de cette procédure est de découper et graver une pièce dans une L'objectif de cette procédure est de découper et graver une pièce dans une
plaque à l'aide de la découpe laser JAMP78 JA50. plaque à l'aide de la découpe laser JAMP78 JA50.
export:
- format: pdf
template: courstex
--- ---
# Import dans RdCAM # Import dans RdCAM