« I2L 2025 Groupe5 » : différence entre les versions
| Ligne 105 : | Ligne 105 : | ||
[[Fichier:20251016 155708.png|vignette|Photo des 4 messages écrit sur les 4 lignes|centré|257x257px]] | [[Fichier:20251016 155708.png|vignette|Photo des 4 messages écrit sur les 4 lignes|centré|257x257px]] | ||
En continuant à lire la documentation, nous sommes arrivés à une conclusion. | En continuant à lire la documentation, nous sommes arrivés à une conclusion. | ||
Version du 13 novembre 2025 à 08:54
Proposition de système (étudiants)
Un début d'ordinateur connecté à un clavier USB. Il permet de récupérer les inputs du clavier afin de les afficher sur l'écran LCD du microcontrôleur.
Contre-proposition (intervenant)
Il ne vous est pas demandé de faire en sorte que votre carte soit utilisable comme un périphérique USB. En effet vous devrez déjà utiliser la bibliothèque LUFA pour récupérer les informations du clavier USB.
Il est par contre demandé que :
- votre carte puisse fonctionner en autonomie à l'aide de la batterie, en mode recharge vous afficherez la progression de la dite recharge ;
- vous utiliserez un écran LCD avec 4 lignes de 20 caractères.
Proposition définitive (étudiants)
Répartition du travail (étudiants)
Carte
Schéma initial (étudiants)
- schéma (projet KiCAD) : Fichier:I2L-2025-Carte-G5.zip
Carte routée (intervenant)
Vous utiliserez la carte AVR7 spécifique à votre projet.
Composants (intervenant)
A la date du 9 octobre 2025, il manque l'inductance de 10 microhenry pour que le releveur de tension puisse fonctionner.
A la date du 10 octobre 2025, une inductance a été soudée mais l'empreinte n'est vraiment pas adaptée, il faudra peut-être revoir ce point. En tout cas vérifier la présence de 5V en sortie du releveur de tension.
Carte réalisée (intervenant)
La carte est entiérement soudée à l'exception de l'inductance de 10mH (effectué le 10 octobre 2025).
Travaux (étudiants)
Partie Premiers pas:
Lors de nos premiers tests, nous avons essayé de faire clignoter une LED en réglant l'horloge. Puis nous avons essayé de faire en sorte que lorsqu'on appuie sur un bouton la LED en PB5, en mode interruption. Mais le problème avec le mode interruption sur un bouton: lorsque le bouton est pressé, le bouton envoie un signal qui n'est pas fixe, il fluctue, ce qui ne permet pas à la LED de s'allumer.
Les boutons sur la carte ne permet donc pas de travailler en interruption.
Mais avec ce code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define LED PB5
#define BOUTON PF0
ISR(INT2_vect){
PORTB |= (1 << LED);
}
ISR(INT3_vect){
PORTB &= ~(1 << LED);
}
int main(void){
CLKPR = 0b10000000; // modification du diviseur d'horloge (CLKPCE=1)
CLKPR = 0; // 0 pour pas de diviseur
// Conf LED
DDRB |= (1 << LED);
// Conf Bouton
DDRF &= ~(1 << BOUTON);
PORTF |= (1 << BOUTON);
DDRD &= ~((1 << PD2)|(1 << PD3));
PORTD |= (1 << PD2)|(1 << PD3);
EICRB |= (1 << ISC21)|(1 << ISC31);
EICRB &= ~((1 << ISC20)|(1 << ISC30));
EIFR |= (1 << INTF2)|(1 << INTF3);
EIMSK |= (1 << INT2)|(1 << INT3);
sei();
while(1);
return 0;
}
Le fait de créer un pont entre la masse et TX, cela éteint la LED en PB5 et créer un pont entre la masse et RX, cela allume la LED en PB5.
(vidéo exemple):
Partie écran LCD:
En lisant la documentation de l'écran LCD (https://cdn.sparkfun.com/assets/9/5/f/7/b/HD44780.pdf), nous avons appris comment bien initialiser l'écran, gérer le curseur, gérer l'affichage de l'écran (page 24). Nous sommes arrivé à écrire des messages avec des fonctions dans laquelle on n'a d'abord cherché à seulement afficher un message pré-écrit dans notre code. Au final, nous nous sommes rendu compte que après les 20 caractères d'une ligne, l'écran LCD fait passer de la ligne n°1 à ligne n°3, puis de la ligne n°3 à la ligne n°2, puis de la ligne n°2 à la ligne n°4. Mais nous avons réussi à écrire sur les 4 lignes avec des petits messages de moins de 20 caractères.
Voici le code:
lcd_print("Ligne 1", 0);
lcd_print("Ligne 2", 1);
lcd_print("Ligne 3", 2);
lcd_print("Ligne 4", 3);
En continuant à lire la documentation, nous sommes arrivés à une conclusion.
Extraits significatifs de code (étudiants)
Rendus (étudiants)
Projet KiCAD : Fichier:I2L-2025-Carte-G5-final.zip
Programmes :
- microcontrôleur : Fichier:I2L-2025-Programmes-uC-G5.zip
- ordinateur Fichier:I2L-2025-Programmes-PC-G5.zip