« SE4Binome2024-5 » : différence entre les versions

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 5 : Ligne 5 :
Notre binôme est spécifiquement chargé du développement de la carte fille dédiée au clavier.
Notre binôme est spécifiquement chargé du développement de la carte fille dédiée au clavier.


Toutes les ressources nécessaires, incluant les codes sources et les schémas, sont disponibles sur le dépôt Git suivant : Lien vers le Git.
Toutes les ressources nécessaires, incluant les codes sources et les schémas, sont disponibles sur le dépôt Git suivant : [https://gitea.plil.fr/ktouron/se4-djadja-touron_pico.git Lien du Git]


= Carte Shield =
= Carte Shield =

Version du 13 novembre 2024 à 10:11

Introduction

Ce wiki documente le développement d’un pico-ordinateur modulaire. Ce dernier est constitué d’une carte principale, composée d’une carte Shield permettant la connexion des cartes filles, et d’une carte mère (initialement simulée par une Arduino Uno avant sa conception finale). Plusieurs cartes filles sont prévues, chacune remplissant une fonction spécifique : gestion du clavier, affichage, port série, réseau, mémoire de masse et son.

Notre binôme est spécifiquement chargé du développement de la carte fille dédiée au clavier.

Toutes les ressources nécessaires, incluant les codes sources et les schémas, sont disponibles sur le dépôt Git suivant : Lien du Git

Carte Shield

Recto de la carte avant soudage des composants
Verso de la carte avant soudage des composants


Carte Shield après soudure des composants

Photo de la carte avec les composants soudés


Allumage de LEDS sur Programmateur AVR

Avant de programmer directement sur le shield, nous avons allumé des LED pour tester la carte. Nous avons directement utilisé le code exemple fourni par l'IDE arduino en adaptant simplement les pins correspondant aux leds.

https://gitea.plil.fr/ktouron/se4-djadja-touron_pico/src/branch/main/PicoShield/Programmation/Blink

Test de lecture de la carte SD

Avant de programmer directement sur le shield, nous avons tester si la carte SD était bien détectée et lue. On a utilisé le code test présent dans l'IDE arduino en adaptant le port utilisé.

https://gitea.plil.fr/ktouron/se4-djadja-touron_pico/src/branch/main/PicoShield/Programmation/CardInfo

Carte SD bien détéctée

Test des connecteurs IDC HE10

Afin de tester nos connecteur HE10, nous avons utilisé un afficher 7 segments (Sparkfun 7 segments display). Pour pouvoir vérifier leurs fonctionnements nous avons branché l'afficheur sur chaque connecteur tour à tour. Le programme implanté est un simple connecteur à afficher sur l'afficheur. Voici une vidéo du compteur fonctionnant sur un des 5 connecteurs HE10. (Code ici (section : Example 2 SPI))

Test connecteur HE10 avec afficheur 7 segments.

Carte Fille

Carte Fille après soudure des composants

Ordonnanceur

Pour les interruptions de notre ordonnanceur nous avons utilisé la procédure d'initialisation du minuteur avec le Timer1 disponible dans les cours de Mr.Redon en renseignant une période de 20ms. Nous l'avons disposé dans le fichier minuteur.c car nous n'allons plus le modifier pour le reste du projet. Dans un autre fichier process.c (avec process.h), nous allons y mettre nos structures pour les process et leurs états puis une union pour le temps qui le caractérise ainsi que toutes les fonctions associés.

Lien du répertoire

Processus

Structure principale

typedef struct {
    uint16_t adresseDepart;  //adresse de la fonction de départ 
    uint16_t adressePile;       //adresse de la pile d'exécution
    Etat etat;        
} Process;

Notre structure caractérisant un processus est définie par les trois champs ci-contre.

Une adresse de départ correspondant à la fonction du processus associé, l'adresse où se situe le processus dans la pile puis l'état de la tâche. Nous avons décidé de faire une structure à part entière compte tenu des multitudes détat que nous pourrons ajouter pendant la progression du projet.

Etat d'un processus

Coder le tableau des structures des processus

Ce tableau des structures permet à un process d'ếtre caractériser par l'adresse du début de sa pile, l'adresse de la tâche (procédure) qu'elle va effectuer pui sont état (1 : réveillé, 0 : endormi).

typedef struct {
    uint16_t adresseDepart;  //adresse de la fonction de départ 
    uint16_t adressePile;       //adresse de la pile d'exécution
    bool etat;          //état du processus (1 ou 0)
} Process;

Process table_process[MAXPROCESS];

Coder la fonction d'initialisation de la pile d'un processus

A REMPLIR

Taches ∞ pour faire clignoter deux leds à 2 fréquences premières entre elle

A REMPLIR
Clignotement des leds à des fréquences premières entre elle avec l'ordonnanceur

Lancement des deux tâches en parallèle grâce à l'ordonnanceur à tourniquet

A REMPLIR