# Régulateur de trajectoire pour objet roulant.
***Projet Interdisciplinaire Maths -- Physique -- SNT
Classes de Seconde, Première et Terminale
Lycée Français de Santa-Cruz de la Sierra
Année scolaire 2020***
> [name=Guill]Image non libre de droit à remplacer dès que possible

## Description du projet
Créer un automate capable de maintenir une objet en équilibre sur un support en jouant sur l’orientation de cette surface.
Le but pédagogique de ce projet est d’utiliser les notions vues dans les différentes matières pour aboutir à un objet technologique en SNT sur les capteurs afin de détecter la position de l’objet puis sur les actionneurs afin de donner au support l’orientation voulue. La réalisation d’une IHM (Interface Homme-Machine) peut venir compléter le projet afin de régler en temps réel la consigne voulue (position fixe ou bien trajectoire à suivre) ainsi que les paramètres de régulation.
La physique sera exploitée pour analyser la position et la vitesse de l’objet, ainsi que pour calculer les forces mises en œuvres par l’orientation du support afin d’obtenir l’accélération souhaitée.
Enfin les mathématiques permettront de calculer la position des axes et les angles de rotation du support à obtenir. Puis d’en déduire l’amplitude des actions à appliquer sur ce support.
Les différentes étapes à réaliser pour ce projet seront:
1. Mesure de la position de l’objet
1. Calcul de la trajectoire souhaitée
1. Calcul de l’accélération à donner à l’objet
1. Calcul de l’orientation du support
1. Orientation du support
Tous les items de ce document peuvent ne pas être pertinents. Cela dépend des choix techniques effectués.
Ce projet peut se décliner en plusieurs niveaux de difficulté suivant la motivation et le niveau des élèves:
* Le support peut être à une dimension (rail)
* Le support peut être à deux dimensions (surface)
* La consigne à atteindre pour l’objet peut être un point donné
* La consigne peut être une trajectoire à suivre, sans recoupement.
* La consigne peut être une trajectoire à suivre, avec des recoupements.
## Étapes du projet et notions mises en œuvre
### 1. Mesure de la position de l’objet
Mises en œuvres possibles:
* Dans le cas linéaire:
* Capteur de distance à ultrason
* Capteur de distance à infra-rouge
* Capteur de distance laser
* Potentiomètre linéaire
* Capteur de pression
* Dans le cas surfacique:
* Surface tactile
* Acquisition et analyse d’image
* Capteurs de pression
***SNT :***
* Objets conectés : utilisation de capteurs
* Programmation : Portée des variables :
* Locales pour le calcul de position
* Globales pour le calcul de vitesse (nécessité de mémoriser la position précédente entre deux itérations)
* Analyse d’image
* Correction de distorsion optique
***Physique :***
* Comparaison avec le modèle ; écart-type de l’erreur
* Modélisation de la trajectoire (position, vecteur vitesse)
### 2. Calcul de la trajectoire souhaitée
Mise en œuvres possibles:
* Consigne à un point fixe donné
* Consigne à une trajectoire : visé le point suivant le point le plus près
* Consigne à un point mobile sur une trajectoire.
#### Calcul de l’accélération à obtenir pour se diriger dans la direction souhaitée
***Physique :*** Utilisation de la position actuelle et de la vitesse pour calculer l’accélération souhaitée
***Maths :***
* Équation de droite
* Translation
* Somme de vecteurs
### 3. Calcul de l’orientation souhaitée du support
***Physique :***
* $\Sigma \overrightarrow{F} = m\vec{a}$
* Gravité
* Force de réaction d’un support
#### Calcul de l’axe et de l’angle de rotation
***Maths :***
* L'axe de rotation est une droite orthogonale à l'accélération voulue
* Équation de plan
* Intersection de plans
### 4. Action sur le support
#### Calcul de l’amplitude des actions à appliquer au support
***Maths :*** Calcul de distance:
* Produit scalaire
* Trigonométrie
#### Rotation du support
***SNT :*** Objet connectés : utilisation des actionneurs
### 5. Conception d’une IHM
* Sélection de la consigne (objectif à atteindre)
* Fixe
* Trajectoire
* Modification des paramètre de régulation
* Amplitude des actions
* Prise en compte de la vitesse de l’objet
## Références
* Support linéaire avec repérage par mesure de distance par ultrason :
* https://www.youtube.com/watch?v=DgW-mvW_Xeo
* https://www.youtube.com/watch?v=P-ApuU5ao5E
* https://www.youtube.com/watch?v=wheSHcOaB3w
* https://www.youtube.com/watch?v=y5Hmr-rR-yk
* Support surfacique avec un repérage par camera :
* https://www.youtube.com/watch?v=7Jw8m4pbTYI
* https://www.youtube.com/watch?v=57DbEEBF7sE
* [Support surfacique avec repérage par surface tactile](https://www.youtube.com/watch?v=sdjfHZ27QSg)
* [Support linéaire avec repérage par potentiomètre linéaire](https://www.youtube.com/watch?v=Rvs2A-nc3R8)
* [Support linéaire avec asservissement à un autre objet](https://www.youtube.com/watch?v=HbDSqNyJB80)
* [Modélisation et linéarisation d’un capteur; détail du PID](https://www.youtube.com/watch?v=J9OEw_ItJkw)
## Calculs
### 1. Mesure de la position
##### Cas d’un capteur de distance
La distance donnée par le capteur donne la position de l’objet
##### Cas d’une analyse d’image
Calcul du point moyen des points appartenant à l’objet
``` python
def calcPosition(rvbImage):
sumx = 0
sumy = 0
nbPoints = 0
seuil = 150
largeur = len(rvbImage)
hauteur = len(rvbImage[0])
for x in range(largeur):
for y in range(hauteur):
if (rvbImage[x][y][0] > seuil): # ici on ne teste que la composante rouge
sumx += x
sumy += y
nbPoints += 1
return (sumx/nbPoints, sumy/nbPoints)
```
 
Image originale et image après analyse avec point moyen trouvé
> [name=Guill]Ce traitement est-il envisageable avec une carte arduino ou microbit ?
> En gris et basse résolution, peut-on atteindre une fréquence de traitement suffisante ?
### 2. Calcul de la trajectoire souhaitée
> [name=Guill] À retravailler. Appronfondir la notion de PID (influence de la vitesse).
Le seul paramètre sur lequel nous pouvons agir est l’inclinaison du support autrement dit l’accélération du mobile. Il faut donc choisir la direction et l’intensité de cette accélération.

### 3. Calcul de l’orientation souhaitée du support
 
$\begin{align}
\vec{F} &= \vec{R} + \vec{P}\\
&= m\times \vec{a}\\
\end{align}$
$\begin{align}
\alpha &= \arcsin\left(\frac{\left\|\vec{F}\right\|}{\left\|\vec{P}\right\|}\right)\\
&= \arcsin\left(\frac{\left\|\vec{a}\right\|}{\left\|\vec{g}\right\|}\right)\\
\end{align}$
### 4. Calculs des actions à appliquer au support
$M_1H_1 =\frac{1}{\left\| \vec{a}\right\|} ~\vec{a}\cdot\overrightarrow{OM_1}$
$M_1P_1 = \frac{\tan \alpha}{M_1H_1}$
### 5. IHM
Via l’IHM, on peut envisager de modifier les paramètres du régulateur (à quelle vitesse on revient vers la cible ? Quel amortissement ?)
On peut également changer de consigne:
* un point fixe
* un point fixe que l’on peut modifier $\Rightarrow$ suivi du doigt
* une trajectoire à suivre, pré-enregistrée
* dessiner une trajection à suivre