Changes between Version 6 and Version 7 of SujetTP1


Ignore:
Timestamp:
Feb 27, 2015, 7:19:28 PM (10 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SujetTP1

    v6 v7  
    1919== 0. Plateforme de développement ==
    2020
    21 [[Image(htdocs:png/plateforme-peri-raspberry.png, width=500px, nolink)]]
     21[[Image(htdocs:png/plateforme-peri-raspberry.png, width=700px, nolink)]]
    2222
    2323Pour exécuter votre programme sur une carte Raspberry Pi, vous devez vous
    2424connecter en SSH sur une carte Raspberry Pi en passant par le routeur.
    2525Le routeur a deux adresses: `132.227.102.36` du coté laboratoire et `192.168.1.1` de l'autre coté. 
    26 Le routeur crée un sous réseau (`192.168.1.x`) où sont connectés les cartes.
     26Le routeur crée un sous-réseau (`192.168.1.x`) où sont connectées les cartes.
    2727Les cartes sont numérotées de `20` à `24`, le routeur a été programmé de telle sorte
    2828que l'adresse internet de la carte n°`X` est comme adresse 192.168.1.`X`
     
    3131port `5000`+`X` de l'adresse `132.227.102.36` soient routés vers l'adresse `192.168.1.X`.
    3232
    33 Il n'y a qu'un seul compte utilisateur sur une carte Raspberry Pi. Le nom de login es `pi` et le mot de passe est `raspberry`.
    34 
    35 Ainsi, par exemple, pour se connecteur en ssh sur la carte n°`22` avec le login `pi`, il faut taper (remarquez que c'est un `p` minuscule):
     33Il n'y a qu'un seul compte utilisateur sur une carte Raspberry Pi. Le nom de login est `pi` et le mot de passe est `raspberry`.
     34
     35Ainsi, pour se connecter en ssh sur la carte n°`22` avec le login `pi`, il faut taper (remarquez que c'est un `p` minuscule):
    3636{{{
    3737$ ssh -p 5022 pi@132.227.102.36
     
    7474la compilation, l'édition des liens et la manipulation de binaires pour la
    7575carte Raspberry Pi. Et tous ces outils sont préfixés par la même chaîne de
    76 caractères: "bcm2708hardfp". Il d'agit donc d'un compilateur pour un SoC
     76caractères: `bcm2708hardfp-`. Il s'agit donc d'un compilateur pour un SoC
    7777BCM2708 avec l'option hardfp activée (calcul flottant matériel). Il s'agit
    7878bien du SoC de la carte Raspberry Pi.
     
    8686}}}
    8787Notez bien que l'indentation de la seconde ligne doit OBLIGATOIREMENT être
    88 une tabulation et non une suites d'espaces.
     88une tabulation et non une suite d'espaces.
    8989
    9090Vous pourrez donc par exemple, écrire la règle de Makefile suivante:
     
    131131Ensuite, compilez-le grâce au Makefile qui vous est fourni.
    132132
    133 
    134133Qu'observez-vous ? Essayez de changer la fréquence de clignotement.
    135134
    136135== 3. Contrôle de plusieurs GPIO en mode "sortie" ==
    137136
    138 Refaites le même exercice que précedemment mais cette fois-ci configurer
     137Refaites le même exercice que précédemment, mais cette fois-ci configurez
    139138plusieurs GPIO en sorties.
    140139
     
    150149
    151150Toujours à l'aide de la librairie libgpio fournie avec ce TP, écrivez un
    152 programme qui configure la GPIO <a définir> en entrée. Et affichez la
     151programme qui configure la GPIO <à définir> en entrée. Et affichez la
    153152valeur de ces GPIO dans une boucle infinie (boucle d'échantillonnage).
    154153
    155 Une fois réalisé, compilé votre programme comme précédemment à l'aide du
     154Une fois réalisé, compilez votre programme comme précédemment à l'aide du
    156155Makefile fourni. Et validez votre code avec le chargé de TP !
    157156
     
    161160Les cartes Raspberry Pi sont équipées d'un petit circuit analogique dans
    162161lequel des boutons poussoir sont connectés aux certains GPIO. Ces GPIO sont
    163 connecté avec une résistance de Pull-Up, ce qui signifie que lorsque que vous
     162connectés avec une résistance de Pull-Up, ce qui signifie que lorsque que vous
    164163n'appuyez pas, la valeur du GPIO vaut 1 et lorsque vous appuyez, le courant
    165164passe par à la masse et la valeur du GPIO passe à 1.
     
    170169processeur de la carte fonctionne à une fréquence de 700MHz ?
    171170
    172 À supposer que vous êtes capable d'appuyez sur le bouton à une fréquence de
    173 10Hz (i.e. 10 fois par seconde) et sachant que le théorème de Shannon dit
     171À supposer que vous êtes capable d'appuyer sur le bouton à une fréquence de
     17210Hz (c.-à-d. 10 fois par seconde) et sachant que le théorème de Shannon dit
    174173qu'il faut au moins échantillonner au double de la fréquence du signal
    175 d'entrée, quelle est la plus petit fréquence d'échantillonnage possible ?
     174d'entrée pour ne pas perdre de cycle, quelle est la plus petite fréquence d'échantillonnage possible ?
    176175
    177176Pour plus de fiabilité, on utilisera une fréquence d'échantillonnage de 100Hz.
    178 Comment pouvez vous écrire un programme qui échantillonne à cette fréquence ?
     177Comment pouvez-vous écrire un programme qui échantillonne à cette fréquence ?
    179178
    180179== 5. Manipulation de registres bas-niveau ==
     
    184183gpio_config, gpio_value et gpio_update.
    185184
    186 Vous réaliserez cela étape par étape. Aidez-vous des fichiers objets
    187 précompilé dans le répertoire lab1.
     185Vous réaliserez cela étape par étape. Aidez-vous des fichiers objet
     186précompilés dans le répertoire lab1.
    188187
    189188Par exemple, si vous souhaitez écrire votre propre gpio_setup, créez un
     
    193192ATTENTION: pour fonctionner avec le reste de la librairie libgpio, il vous
    194193faut déclarer dans gpio_setup.c une variable globale gpio_base_p de type
    195 uint32_t volatile *. Cette variable qui est un pointer vers un entier
    196 non-signé de 32 bits doit contenir l'adresse de début de la région de mémoire
     194uint32_t volatile *. Cette variable qui est un pointeur vers un entier
     195non signé de 32 bits doit contenir l'adresse de début de la région de mémoire
    197196virtuelle associée après un appel à la fonction mmap.
    198197
     
    200199
    201200Maintenant que vous maîtrisez tous les aspects liés à la configuration et
    202 à la programmtion des GPIO sur Raspberry Pi, laisser aller votre imagination
     201à la programmation des GPIO sur Raspberry Pi, laisser aller votre imagination
    203202et proposer d'autres programmes à exécuter sur la carte Raspberry Pi qui
    204203vous est fournie.