This shows you the differences between two versions of the page.
sde:laboratoare:13_python [2020/05/12 16:56] diana.ghindaoanu created |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== TP 13 - Applications embarquées====== | ||
- | |||
- | ===== Présentation théorique ===== | ||
- | Dans ce laboratoire, nous utiliserons Python pour contrôler une carte de développement intégrée. Le laboratoire sera résolu à l'aide du simulateur [[https://micropython.org/unicorn/|MicroPython unicorn]]. | ||
- | |||
- | ===== MicroPython ===== | ||
- | MicroPython est un environnement d'exécution d'application Python développé pour les appareils aux capacités limitées. | ||
- | |||
- | De plus, nous utiliserons le module [[http://docs.micropython.org/en/latest/library/pyb.html#module-pyb|pyb]], qui expose des fonctions qui permettent le contrôle de la carte simulée. | ||
- | |||
- | ====Fonctions utiles==== | ||
- | |||
- | Le module ''pyb'' expose les suivants objets utiles: | ||
- | <note info> | ||
- | Les détails de chaque objet sont disponibles sur [[http://docs.micropython.org/en/latest/pyboard/quickref.html|la page de documentation courte]]. | ||
- | </note> | ||
- | |||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#internal-leds|LED]] - permet le contrôle des LED sur la carte | ||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#internal-switch|Switch]] - permet de lire l'état du bouton sur la carte | ||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#pins-and-gpio|Pin]] - permet l'interaction avec les broches (pins) de plaque | ||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#servo-control|Servo]] - permet le contrôle d'un servomoteur attaché à la carte | ||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#adc-analog-to-digital-conversion|ADC]] - permet la lecture de valeurs analogiques | ||
- | * [[http://docs.micropython.org/en/latest/pyboard/quickref.html#dac-digital-to-analog-conversion|DAC]] - vous permet d'écrire une valeur analogique sur une broche | ||
- | |||
- | ====Le module time==== | ||
- | Le module [[http://docs.micropython.org/en/latest/pyboard/quickref.html#delay-and-timing|time]] permet d'utiliser des fonctions qui peuvent "arrêter" l'exécution du programme pendant un certain temps. | ||
- | |||
- | ====== Exercices ====== | ||
- | |||
- | ===== Exercice 1 - Demo ===== | ||
- | Pour commencer, nous nous familiariserons avec la plateforme utilisée. En utilisant le bouton ''CHOOSE A DEMO...'' exécutez les exemples suivants: | ||
- | * HELLO WORLD! | ||
- | * SWITCH | ||
- | * LEDS | ||
- | * TIME | ||
- | * PIN LED | ||
- | * ADC | ||
- | |||
- | ===== Exercice 2 - Messages ===== | ||
- | Créez un programme qui affiche le message ** Bonjour ** 5 fois toutes les 2 secondes. | ||
- | |||
- | ===== Exercice 3 - LED ===== | ||
- | Créez un programme pour chaque demande afin de : | ||
- | * faire clignoter le LED 1 une fois par seconde | ||
- | * allumer et éteindre, à un intervalle d'une seconde chaque LED | ||
- | * allumer à un intervalle d'une seconde les LEDs de 1 à 4 et puis éteindre les LEDs de 4 à 1 | ||
- | |||
- | ===== Exercice 4 - Switch ===== | ||
- | Créez un programme pour chaque demande afin de : | ||
- | * afficher si on a appuyé ou non sur le bouton de la carte | ||
- | * allumer une LED à l'extérieur de la carte lorsque le bouton est maintenu enfoncé et s'éteint lorsqu'il n'est pas enfoncé | ||
- | * en appuyant sur le bouton (push-release), le LED 1 s'allume, à la prochaine pression, elle s'éteint et ainsi de suite | ||
- | |||
- | ===== Exercice 5 - Servo ===== | ||
- | Créez un programme qui effectue une rotation complète du servo toutes les 10 secondes. | ||
- | |||
- | ===== Exercice 6 - ADC ===== | ||
- | Créez un programme pour chaque demande afin de : | ||
- | * afficher en continu (toutes les 0,5 secondes) l'état du curseur connecté à la carte | ||
- | * allumer le LED 2 sur la carte si le curseur est poussé plus de moitié et l'éteindre sinon | ||
- | |||
- | ===== Exercice 7 - Intensité ===== | ||
- | Créez un programme pour chaque demande afin de : | ||
- | * allumer le LED 3 sur la carte à la moitié de l'intensité maximale (Hint: intensity) | ||
- | * allumer progressivement le LED 3 sur la carte à pleine intensité (fade in) | ||
- | * allumer progressivement le LED 3 sur la carte à pleine intensité, puis de l'éteindre progressivement (fade in- fade out) | ||
- | * allumer le LED 3 sur la carte à une intensité inversement proportionnelle au curseur (plus la valeur du curseur est élevée, moins le LED est lumineuse) | ||
- | |||