SE4Binome2023-10

De projets-se.plil.fr
Aller à la navigation Aller à la recherche

Ordonnanceur / Système d'exploitation

Réalisation du Shield

Séance 13/09 : Parmi les activités disponibles, nous avons soudé le régulateur de tension, le lecteur SD, les résistances liées aux LEDs. Nous avons réalisé 2 câbles pour les cartes filles et un adaptateur.

carte Shield après première soudure
câbles
Adaptateur.jpg


Séance 19/09 : Durant cette séance nous avons soudé les autres résistances et les connecteurs. Et nous avons testé le bon fonctionnement de la carte Shield.

Voici la carte Shield soudé :

Photo de la carte Shield soudé

Nous avons soudé cette carte :

20230919.jpg

Pour le test nous avons utilisé le code qui est disponible sur le git. Voici ci-dessous une vidéo montrant le clignotement des LEDs.

Clignotement des LEDs avec ordonnanceur

Au cours de la fabrication de notre carte, nous avons commencé la réalisation de l'ordonnanceur. Le principe c'est de créer deux tâches pour faire clignoter deux LEDs du bouclier avec des périodes différentes. La première tache allume et éteint une LED toutes les 200ms, la deuxième tache réalise la même opération sur une LED différente toutes les 1000ms.

Afficheur 7 segments

Pour l'afficheur 7 segments, nous l'avons dans un premier temps fait sans ordonnancement pour connaitre sa fonctionnalité. Pour le tester on a juste affiché "1 2 3 4" sur l'afficheur comme indiqué sur l'image ci-dessous :

Afficheur.jpg

Carte FPGA / VHDL

Carte électronique numérique

Type de carte choisie

La carte fille écran LCD.

Elle se compose :

  • d'un ATMega328p
  • d'un écran LCD à base de contrôleur HD44780
  • d'un connecteur HE10
  • d'un connecteur AVR ISP pour programmer le microcontrôleur
  • d'un potentiomètre pour régler la luminosité des cristaux liquides
  • d'un bouton switch pour le reset

Réalisation de la carte

Séance 22/09 : Durant cette séance nous avons commencé la schématique de notre carte.

Voici le schéma électronique de notre carte fille LCD :

Schematic de la carte fille LCD

Séance 03/10 : nous avons commencé le routage.

Séance 17/10 : routage terminé

Après le routage nous avons obtenu :

Routage1.png


Séance 24/10 :

Le routage terminé, le prof a vérifié le routage final et nous avons envoyé la carte afin de l'imprimer.

Durant cette même séance nous avons commencer la programmation de l'ordonnancement.

routage fini

Voici une vue 3D de ce qui va se trouver au dessus de notre carte. Notre écran se trouvera donc en dessous.

vue 3D

Présentation de la carte fille LCD

Séance 14/11 :

Nous avons reçu la carte, nous avons commencé la soudure des composants nécessaires pour un premier test de la carte.

  • Le microprossesseur
  • une led
  • L'horloge
  • le connecteur HE10
Crte électronique.jpg
Crte soudée.jpg

Pour vérifier le bon fonctionnement de la carte, nous avons mis une led afin de savoir la fonctionnalité de la carte.

Pour cela, on a testé directement avec le code exemple présent Arduino IDE.

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(7, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(7, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(7, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Nous avons soudé le reste des composants ainsi que l'écran LCD. Voici tous les composants de notre carte fille :

  • Le potentiomètre
  • le bouton reset
  • les connecteurs
  • l'écran LCD
  • Les capacités
carte soudée

Test de l'ecran avec Aduino IDE

test lcd

Nous avons testé le lcd avec le code qui est présent sur Arduino IDE en utilisant le bus SPI. Voici le code utilisé:

// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = A0, en = A2, d4 = 4, d5 = 5, d6 = 9, d7 = 10;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  pinMode(A1,OUTPUT);
  digitalWrite(A1,LOW);
  delay(1000);
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
  pinMode(7,OUTPUT);
  digitalWrite(7,HIGH);
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}

LCD avec AvrIsp

Lors de la programmation de la carte fille, nous avons constaté que les pins du CS et de B7 de l'écran LCD devaient s'inter-changer.

Nous avons donc procéder avec le professeur la modification des pins.

Piste à découper.jpg

Nous avons couper la piste du pin 14 et le relier avec le via connecté à CS puis relier le pin 10 avec B7 de l'écran LCD.

GIT

Voici le lien du git : https://archives.plil.fr/handrian/projet_pico.git