{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Chaine d'information d'un système" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyse fonctionnelle et structurelle\n", "\n", "\"Focus\n", "\n", "Dans un système pluritechnique, la chaine d'information permet :\n", "- d'**acquérir** des informations en provenance de lui même, d'autres systèmes connectés, et de son utilisateur par l'intermédiaire d'une interface homme/machine (IHM) ;\n", "- de les **traiter** pour contrôler l'action à réaliser sur la matière d'oeuvre ;\n", "- et de **communiquer** l'état du système à l'utilisateur ou à d'autres systèmes connectés.\n", "\n", "### Exemple du Stepper :\n", "\n", "\"Mise\n", "\n", "\n", "La chaine d'information du mini-stepper permet :\n", "- d'**acquérir** l'information du mouvement d'un step au passage de la pédale devant le capteur ILS (Interrupteur à Lame Souple) ;\n", "- de **traiter** cette information en comptant la durée de l'exercice et le nombre de steps et en calculant le nombre de calories dépensées ;\n", "- de **communiquer** ces informations à l'utilisateur en les affichant sur l'écran LCD.\n", "\n", "\"Mise\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## La fonction \"Acquérir\" :\n", "\n", "- L'acquisition de grandeurs physiques se fait par l'intermédiaires de **capteurs**. Un capteur est un composant qui convertit une grandeur physique en un signal exploitable par l'unité de traitement*.\n", "> Exemples de capteurs de grandeur physique :\n", " - sur le stepper : Interrupteur à Lame Souple ILS ;\n", " - autres : thermomètre (température), baromètre (pression)...\n", "\n", "- L'acquisition des consignes de l'utilisateur se fait par l'intermédiaire d'une **interface homme/machine** ([IHM](https://www.lebigdata.fr/interface-homme-machine-tout-savoir-sur-les-ihm)) qui intègre des composants capables de convertir des informations humaines en un signal exploitable par l'unité de traitement*.\n", "> Exemples de composants d'IHM :\n", " - sur le stepper : Bouton Poussoir BP ;\n", " - autres : Télécommande, potentiomètre...\n", " \n", "* **Un signal exploitable par l'unité de traitement** : très souvent ce signal sera de nature électrique, rendu compatible avec le microcontroleur utilisé pour le traitement de l'information..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Typologie des signaux logique, analogique et numérique :\n", "\n", "\"Typologie\n", "\n", "### Ressource vidéo :" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "
\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Numération et codage de l’information, changement de base\n", "\n", "### Problématique :\n", "\n", "Dans notre exemple du stepper, l'information fournie à l'entrée de la chaine par le capteur [ILS](https://fr.wikipedia.org/wiki/Interrupteur_reed) est de type logique (Tout ou Rien [TOR](https://fr.wikipedia.org/wiki/Tout_ou_rien), $0$ ou $1$) or le système de numération adapté pour traiter ce genre d'information est le binaire (à base $2$).\n", "\n", "Par conntre, en sortie, l'information à afficher est destinée à l'utilisateur qui lui compte avec un système de numération décimal (à base $10$).\n", "\n", "Plus généralement, on le reverra en détail plus tard, lorsque la grandeur physique à acquérir sera de type analogique, il nous faudra la numériser pour la traiter avec un microcontrôleur.\n", "\n", "On peut donc d'ores et déjà affirmer que les données qui circuleront dans la chaine d'information seront, à un endroit ou à un autre, numériques (ou pour le moins logique) même si elles représentent autre chose.\n", "\n", "Aussi, pour bien comprendre le codage de l'information qui circulent nous devons être capable de convertir une donnée numérique d'un système de numération à l'autre... " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Les bases :\n", "\n", "#### Système décimal :\n", "\n", "C’est le système de numération que nous utilisons tous les jours. C’est un système de base $10$ car il utilise dix symboles différents :\n", "$$ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 $$\n", "\n", "C’est un système positionnel car l’endroit où se trouve le symbole dans le nombre définit sa valeur. Le $2$ du nombre décimal $2356$ n’a pas la même valeur celui du nombre décimal $5623$ :\n", "\n", "$2356 \t= 2 \\times 10^3 + 3 \\times 10^2 + 5 \\times 10^1 + 6 \\times 10^0$ ici le $2$ vaut $2000$\n", "\n", "$5623 \t= 5 \\times 10^3 + 6 \\times 10^2 + 2 \\times 10^1 + 3 \\times 10^0$ ici le $2$ vaut $20$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Système binaire :\n", "\n", "C’est le système de numération utilisé par les « machines numériques ». C’est un système de base $2$ car il utilise deux symboles différents :\n", "$$ 0, 1$$\n", "\n", "Pour distinguer le nombre binaire 10110 du nombre décimal 10110 on indique le code ``0b`` (ou le symbole ``%``) avant le nombre ou l’indice $_2$ (ou $_b$) après le nombre.\n", "\n", "$10110_2 = 1 \\times 2^4 + 0 \\times 2^3 + 1 \\times 2^2 + 1 \\times 2^1 + 0 \\times 2^0 = 16 + 0 + 4 + 2 + 0 = 22_{10}$\n", "\n", "On appel bit (contraction de Binary digIT = BIT) chacun des chiffres d’un nombre binaire.\n", "\n", "Avec un bit on peut distinguer deux états d’une information avec les $2^1 = 2$ nombres soit $1_2$, soit $0_2$.\n", "\n", "Avec $2$ bits on peut distinguer quatre états d’une information avec les $2^2 = 4$ nombres soit $00_2$, $01_2$, $10_2$, $11_2$.\n", "\n", "Avec $3$ bits on peut distinguer huit états d’une information avec les $2^3 = 8$ nombres soit $000_2$, $001_2$, $010_2$, $011_2$, $100_2$, $101_2$, $110_2$, $111_2$.\n", "\n", "Avec $8$ bits on peut distinguer 256 états d’une information avec les $2^8$ nombres allant de $00000000_2 = 0$ à $11111111 = 255$.\n", "\n", "Avec n bits on peut former $2^n$ combinaisons (nombres) différentes.\n", "\n", "Une suite de quatre bits est un quartet , une suite de huit bits est octet.\n", "\n", "Une suite de 16, 32, 64 bits est un mot binaire." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Système hexadécimal.\n", "\n", "C’est un système de base $16$ qui utilise donc seize symboles différents :\n", "\n", "$$ 0,..$$\n", "\n", "Pour distinguer un nombre hexadécimal on indique le code ``0x`` (ou le symbole ``$``) avant le nombre ou l’indice $_{16}$ (ou $_h$) après le nombre.\n", "\n", "Les lettres A à F correspondent respectivement au nombre décimaux ?\n", "\n", "$AC53_{16}$ = ...........?\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Correspondance entre nombres de différentes bases :\n", "\n", "\"Tableau\n", "\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Changement de base :\n", "\n", "#### Conversion d’un nombre décimal en un nombre d’une autre base\n", "\n", "- Une méthode de conversion consiste à décomposer le nombre décimal en une somme de puissances de deux.\n", "\n", "> Par exemple, pour la conversion : $91$ = $01011011_2$\n", ">\n", "> On peut écrire :\n", ">$$91 \t= 0 \\times 2^7 + 1 \\times 2^6 + 0 \\times 2^5 + 1 \\times 2^4 + 1 \\times 2^3 + 0 \\times 2^2 + 1 \\times 2^1 + 1 \\times 2^0$$\n", ">\n", ">\n", ">$$91 = 64 + 16 + 8 + 2 + 1$$\n", ">\n", ">En rangeant les puissances de deux dans un tableau, on obtient :\n", ">\n", ">\"Mise\n", "\n", "\n", "- Une autre méthode de conversion consiste à diviser le nombre décimal à convertir par la base b et conserver le reste de la division. Le quotient obtenu est divisé par b et conserver le reste. Il faut répéter l’opération sur chaque quotient obtenu.\n", "> Par exemple, pour la conversion : $91$ = $01011011_2$\n", ">\n", ">\"Mise\n", ">\n", ">Les restes successifs sont écrits, en commençant par le dernier, de la gauche vers la droite. Cette méthode est dite « Méthode des divisions successives ».\n", "\n", "#### Conversion d’un nombre hexadécimal en binaire.\n", "\n", "Chaque symbole du nombre écrit dans le système hexadécimal est remplacé par son équivalent écrit dans le système binaire.\n", "\n", "Exemple : Convertir $ECA_{16}$ = ${1110_2\\over E_{16}}{1100_2\\over C_{16}}{1010_2\\over A_{16}}$ = $1110 1100 1010_2$ \n", "\n", "\n", "#### Conversion d’un nombre binaire en hexadécimal.\n", "\n", "C’est l’inverse de la précédente. Il faut donc regrouper les 1 et les 0 du nombre par 4 en commençant par la droite, puis chaque groupe est remplacé par le symbole hexadécimal correspondant.\n", "\n", "Exemple : Convertir $1100001101111_2$ = ${1_{16}\\over 0001_2}{8_{16}\\over 1000_2}{6_{16}\\over 0110_2}{F_{16}\\over 1111_2}$ = $186F_{16}$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercices :\n", "\n", "Convertir $9F2_{16}$ en binaire.\n", "\n", "Convertir $001111110101_2$ en hexadécimal.\n", "\n", "Convertir en décimal les nombres binaires suivants : $10110_2$ ; $10001101_2$ ; $1111010111_2$\n", "\n", "Convertir en binaire les nombres décimaux suivants : $37$ ; $189$ ; $205$ ; $2313$.\n", "\n", "Convertir en décimal les nombres hexadécimaux suivants : $92_{16}$ ; $2C0_{16}$ ; $37FD_{16}$.\n", "\n", "Convertir en hexadécimal les nombres décimaux suivants : 75 ; 314 ; 25619.\n", "\n", "Quelle est l’étendue des nombres définis en hexadécimal sur 6 chiffres ?\n", "\n", "Exécuter les opérations $10111101_2 + 101111_2$, $1BF_{16} + A23_{16}$\n", "\n", "Quel est le code ASCII en hexadécimal correspondant à la chaine de caractères `1SI` ?\n", "\n", ">\"1SI_ASCII\"\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Vérification avec Python :\n", "\n", "La fonction `bin()` permet de convertir un nombre en binaire :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bin(91)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bin(0x5b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La fonction `hex()` permet de convertir un nombre en hexadécimal :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "hex(91)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "hex(0b1011011)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La fonction `int()` permet de convertir un nombre en décimal :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "int(0b1011011)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "int(0x5b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Ressources :" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " \n", "

Binary and Decimal Conversion from EICC on Vimeo.

\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "
\n", " \n", "

Binary and Decimal Conversion from EICC on Vimeo.

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Références au programme :\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Compétences développéesConnaissances associées
Caractériser les échanges d’informationsNatures et caractéristiques des signaux, des\n", "données, des supports de communication...
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "\"Licence
Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International.\n", "\n", "Pour toute question, suggestion ou commentaire : eric.madec@ecmorlaix.fr" ] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }