Binome2022-5 : Différence entre versions
(→Conclusion) |
|||
(12 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 17 : | Ligne 17 : | ||
'''Cours du 26 - 27 janvier 2023 :''' | '''Cours du 26 - 27 janvier 2023 :''' | ||
− | A cause de l'utilisation de l'attiny nous avons réduit le nombre de touche a 16, avec 4 lignes et 4 colonnes, car il n'y a pas assez de pin sur l'attiny pour en mettre plus sachant que l'on utilise des controlleurs TLC pour l'affichage LED; | + | A cause de l'utilisation de l'attiny nous avons réduit le nombre de touche a 16, avec 4 lignes et 4 colonnes, car il n'y a pas assez de pin sur l'attiny pour en mettre plus, sachant que l'on utilise des controlleurs TLC pour l'affichage LED; |
Concernant les TLC nous avons décider d'en utiliser 2, afin d'avoir un écran de 48 LED en 6*8. | Concernant les TLC nous avons décider d'en utiliser 2, afin d'avoir un écran de 48 LED en 6*8. | ||
+ | |||
schéma Kicad 16 bouton et 48 led pour la première carte | schéma Kicad 16 bouton et 48 led pour la première carte | ||
Ligne 27 : | Ligne 28 : | ||
− | On a effectué routage de notre Schéma Kicad. | + | On a effectué le routage de notre Schéma Kicad. |
[[Fichier:Routage.png]] | [[Fichier:Routage.png]] | ||
Ligne 43 : | Ligne 44 : | ||
On code notre carte en Arduino, on a découvert et compris le code pour nos deux TLC. | On code notre carte en Arduino, on a découvert et compris le code pour nos deux TLC. | ||
− | + | #include <Adafruit_TLC5947.h> | |
− | + | #include <Keypad.h> | |
− | + | ||
− | + | // Number of TLC5947s used | |
− | + | ||
− | // Number of TLC5947s used | + | #define NUM_TLC5947 2 |
− | + | ||
− | + | // Number of channels per TLC5947 | |
− | + | ||
− | + | #define NUM_CHANNELS 24 | |
− | // Number of channels per TLC5947 | + | |
− | + | // Pin definitions for the TLC5947 | |
− | + | ||
− | + | #define SCLK_PIN 9 | |
− | + | #define SIN_PIN 10 | |
− | // Pin definitions for the TLC5947 | + | #define XLAT_PIN 8 |
− | + | #define BLANK_PIN -1 | |
− | + | ||
− | + | // Create a TLC5947 object with the pin definitions | |
− | + | ||
− | + | Adafruit_TLC5947 tlc = Adafruit_TLC5947(NUM_TLC5947, SCLK_PIN, SIN_PIN, XLAT_PIN); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | // Create a TLC5947 object with the pin definitions | ||
− | |||
− | Adafruit_TLC5947 tlc = Adafruit_TLC5947(NUM_TLC5947, SCLK_PIN, SIN_PIN, XLAT_PIN); | ||
− | |||
On a commencé par déterminer les coorodonnées de chaque Leds sur notre écran | On a commencé par déterminer les coorodonnées de chaque Leds sur notre écran | ||
− | // Listes pour les différents chiffres | + | // Listes pour les différents chiffres |
int l0[] = {2, 6, 7, 10, 11,14,15,18,19,22,17,21,16,20,28,24,29,25,30,26,31,34,35,38,39,42,43,46,41,45,40,44,4,0,5,1,-1}; | int l0[] = {2, 6, 7, 10, 11,14,15,18,19,22,17,21,16,20,28,24,29,25,30,26,31,34,35,38,39,42,43,46,41,45,40,44,4,0,5,1,-1}; | ||
int l1[] = {5,10,15,19,14,18,13,17,12,16,32,28,33,29,34,30,35,31,-1}; | int l1[] = {5,10,15,19,14,18,13,17,12,16,32,28,33,29,34,30,35,31,-1}; | ||
Ligne 97 : | Ligne 89 : | ||
A l'issue de cette période, nous avons réussi à faire apparaitre les chiffres de 0 à 9 ainsi que les autres éléments que nous souhaitions faire apparaitre sur notre écran LED 6*8. | A l'issue de cette période, nous avons réussi à faire apparaitre les chiffres de 0 à 9 ainsi que les autres éléments que nous souhaitions faire apparaitre sur notre écran LED 6*8. | ||
− | + | //test chiffres | |
int c = 0 ; | int c = 0 ; | ||
while ( lcp[c]>=0) { | while ( lcp[c]>=0) { | ||
Ligne 103 : | Ligne 95 : | ||
tlc.write(); | tlc.write(); | ||
c++; | c++; | ||
− | } | + | } |
Programme pour notre matrice de boutons: | Programme pour notre matrice de boutons: | ||
− | + | const byte ROWS = 4; | |
− | const byte COLS = 4; | + | const byte COLS = 4; |
− | + | ||
− | char keys[ROWS][COLS]={ | + | char keys[ROWS][COLS]={ |
{'7','8','9','-'}, | {'7','8','9','-'}, | ||
{'4','5','6','+'}, | {'4','5','6','+'}, | ||
{'1','2','3','/'}, | {'1','2','3','/'}, | ||
{'c','0','p','.'}, | {'c','0','p','.'}, | ||
− | }; | + | }; |
− | + | ||
− | byte rowPins[ROWS] = {0,1,2,3}; | + | byte rowPins[ROWS] = {0,1,2,3}; |
− | byte colPins[COLS] = {4,5,6,7};</nowiki> | + | byte colPins[COLS] = {4,5,6,7};</nowiki> |
[[Fichier:Coord LED.jpg]][[Fichier:Liste Chiffres.jpg]] | [[Fichier:Coord LED.jpg]][[Fichier:Liste Chiffres.jpg]] | ||
Ligne 135 : | Ligne 127 : | ||
Nous avons fait le schéma PCB sur KiCad en ajoutant la librairie des nouveaux boutons. | Nous avons fait le schéma PCB sur KiCad en ajoutant la librairie des nouveaux boutons. | ||
− | [[Fichier:PCB11.png]] | + | [[Fichier:PCB11.png|thumb|500px|left]] |
− | [[Fichier:PCB22.png]] | + | [[Fichier:PCB22.png|thumb|500px|right]] |
+ | |||
+ | <div style="clear: both;"></div> | ||
Ligne 145 : | Ligne 139 : | ||
− | [[Fichier:photocircuit1.jpg]] | + | [[Fichier:photocircuit1.jpg|thumb|500px|center]] |
Ligne 151 : | Ligne 145 : | ||
− | [[Fichier:probleme1.jpg]] | + | [[Fichier:probleme1.jpg|thumb|500px|center]] |
Ligne 175 : | Ligne 169 : | ||
= Conclusion = | = Conclusion = | ||
− | + | Pendant ce semestre, nous avont entamé un périlleux voyage qui nous a embarqué dans le monde de l'électronique. Durant ce voyage, nous avons essayé par tous les moyens de mener à bien notre projet de clavier, cependant, nos efforts ont été vains et nos ambitions se sont heurté à la réalité... :'( | |
− | |||
Néanmoins, ce projet, malgré son accomplissement approximatif nous a appris beaucoup dans le milieu de l'électronique ainsi que pour notre vie future. En effet, pour le point de vue électronique, nous avons appris comment fonctionnait un circuit électronique, qu'il y avait énormément d'éléments cachés dont on ignorait l'existance avant de commencer ce BE. D'un point de vue humain, nous avons appris que les ambitions devait être plus réfléchie pour avoir la possibilité de les mener à bien. | Néanmoins, ce projet, malgré son accomplissement approximatif nous a appris beaucoup dans le milieu de l'électronique ainsi que pour notre vie future. En effet, pour le point de vue électronique, nous avons appris comment fonctionnait un circuit électronique, qu'il y avait énormément d'éléments cachés dont on ignorait l'existance avant de commencer ce BE. D'un point de vue humain, nous avons appris que les ambitions devait être plus réfléchie pour avoir la possibilité de les mener à bien. | ||
Ligne 182 : | Ligne 175 : | ||
Malgré tout cela, nous avons tout de même réalisé notre premier circuit électronique, nous l'avons codé et nous l'avons fait fonctionné d'une manière très brillante si je ne m'abuse. | Malgré tout cela, nous avons tout de même réalisé notre premier circuit électronique, nous l'avons codé et nous l'avons fait fonctionné d'une manière très brillante si je ne m'abuse. | ||
− | Pour | + | Pour finir, nous souhaitons remercier le corps éducatif de Polytech Lille avec une mention spéciale à Xavier et Alexandre ainsi que le professeur soudeur dont le nom m'échappe actuellement mais qui a su nous redonner le sourire entre chaques LED qui étaient ma fois nombreuses. |
Cordiallement | Cordiallement |
Version actuelle datée du 17 mai 2023 à 13:57
Sommaire
Introduction
Durant ce Bureau d'Etude, nous avons pris la décision de réaliser un clavier qui sera associé à un écran LED (réalisé par nos soins) sur lequel s'affichera les éléments que nous écrivons sur le clavier par le biais de combinaisons de LED allumées ou éteintes.
Chronologie
Cours du 20 Janvier 2023:
Durant ce cours, nous avons réalisé notre binôme et nous avons élaboré une idée à mettre en place qui a été validée par les professeurs.
Nous avons décidé de réaliser un clavier numérique (de 0 à 9) ayant comme particularité d'afficher sur un écran led 10*10 (qui formeront un afficheur numérique) le chiffre tapé sur le clavier.
De plus, nous avons designé nos affichages au format de l'écran 10*10. Les touches seront au nombre de 20 :
0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; / ; * ; - ; + ; . ; : ; :) ; <3 ; ( ; )
Cours du 26 - 27 janvier 2023 :
A cause de l'utilisation de l'attiny nous avons réduit le nombre de touche a 16, avec 4 lignes et 4 colonnes, car il n'y a pas assez de pin sur l'attiny pour en mettre plus, sachant que l'on utilise des controlleurs TLC pour l'affichage LED; Concernant les TLC nous avons décider d'en utiliser 2, afin d'avoir un écran de 48 LED en 6*8.
schéma Kicad 16 bouton et 48 led pour la première carte
Cours du 2 février 2023 au 16 février 2023 :
On a effectué le routage de notre Schéma Kicad.
Cours du 17 février 2023 au 3 mars 2023 :
On Soude tous nos composants sur la carte qui a été imprimée.
Cours du 9 mars 2023 au 30 mars 2023 :
On code notre carte en Arduino, on a découvert et compris le code pour nos deux TLC.
#include <Adafruit_TLC5947.h> #include <Keypad.h> // Number of TLC5947s used #define NUM_TLC5947 2 // Number of channels per TLC5947 #define NUM_CHANNELS 24 // Pin definitions for the TLC5947 #define SCLK_PIN 9 #define SIN_PIN 10 #define XLAT_PIN 8 #define BLANK_PIN -1 // Create a TLC5947 object with the pin definitions Adafruit_TLC5947 tlc = Adafruit_TLC5947(NUM_TLC5947, SCLK_PIN, SIN_PIN, XLAT_PIN);
On a commencé par déterminer les coorodonnées de chaque Leds sur notre écran
// Listes pour les différents chiffres int l0[] = {2, 6, 7, 10, 11,14,15,18,19,22,17,21,16,20,28,24,29,25,30,26,31,34,35,38,39,42,43,46,41,45,40,44,4,0,5,1,-1}; int l1[] = {5,10,15,19,14,18,13,17,12,16,32,28,33,29,34,30,35,31,-1}; int l2[] = {1,5,2,6,7,11,10,15,14,19,18,22,17,21,12,16,36,32,41,37,46,42,47,43,39,38,35,34,31,30,27,26,-1}; int l3[] = {2,6,7,10,11,14,15,18,19,22,17,21,16,20,28,24,29,25,30,26,31,34,35,38,39,42,43,46,12,32,8,36,-1}; int l4[] = {33,32,37,36,41,40,45,44,4,8,9,13,14,18,19,23,22,21,17,16,20,28,24,29,25,30,26,31,27,-1}; int l5[] = {23,22,19,18,15,14,11,10,7,6,3,2,1,5,0,4,44,40,8,36,12,32,28,16,24,29,25,26,30,31,34,35,38,39,42,43,46,-1}; int l6[] = {22,19,18,15,14,11,10,7,6,2,1,5,0,4,44,40,45,41,46,42,43,39,38,35,34,31,30,26,29,25,28,24,16,32,12,36,8,-1}; int l7[] = {3,2,6,7,10,11,14,15,18,19,23,22,21,17,12,16,32,36,37,41,42,46,43,47,-1}; int l8[] = {2, 6, 7, 10, 11,14,15,18,19,22,17,21,16,20,28,24,29,25,30,26,31,34,35,38,39,42,43,46,41,45,40,44,4,0,5,1,12,32,8,36,-1}; int l9[] = {32,12,36,8,40,4,0,1,5,2, 6, 7, 10, 11,14,15,18,19,22,17,21,16,20,28,24,29,25,30,26,31,34,35,38,39,42,43,46,-1}; int lmoins[] = {0,44,4,40,8,36,12,32,16,28,-1}; int lplus[] = {0,44,4,40,10,14,9,13,20,24,16,28,38,34,37,33,36,8,12,32,-1}; int lcoeur[] = {44,4,9,14,17,20,28,25,30,35,38,41,-1}; int ldiviser[] = {47,43,46,42,41,37,36,32,12,16,17,21,18,22,-1}; int lpoint[] = {8,12,36,32,-1}; int lcoeurp[] = {44,4,9,14,17,20,28,25,30,35,38,41,13,8,12,16,40,36,32,37,33,29,34,-1};
A l'issue de cette période, nous avons réussi à faire apparaitre les chiffres de 0 à 9 ainsi que les autres éléments que nous souhaitions faire apparaitre sur notre écran LED 6*8.
//test chiffres int c = 0 ; while ( lcp[c]>=0) { tlc.setPWM(lcp[c], 4095); tlc.write(); c++; }
Programme pour notre matrice de boutons:
const byte ROWS = 4; const byte COLS = 4; char keys[ROWS][COLS]={ {'7','8','9','-'}, {'4','5','6','+'}, {'1','2','3','/'}, {'c','0','p','.'}, }; byte rowPins[ROWS] = {0,1,2,3}; byte colPins[COLS] = {4,5,6,7};</nowiki>
Cours du 31 mars 2023 au 6 avril 2023 :
On débute notre deuxième carte en commençant par le schéma Kicad, on a repris notre schéma de la carte précédente et remplacé le attiny par un atmega16U2 et les boutons précédents par des boutons SW.
Cours du 7 avril 2023 au 11 avril 2023 :
Nous avons fait le schéma PCB sur KiCad en ajoutant la librairie des nouveaux boutons.
Cours du 2023 au 4 mai 2023 :
Nous avons dans un premier temps uniquement soudés les éléments qui permettent au PC de reconnaitre l'ATmega afin de faire clignoter la led de test D49 pour s'assurer du bon fonctionnement des éléments;
A l'aide du programme donné dans le wiki, nous avons réussi à faire clignoter la led de test. Nous avons don pu passer à la suite du soudage
Comme le montre les 2 photos nous avons raté le soudage du premier TLC, ce qui nous à obliger à changer de carte et à recommencer le soudage des éléments.
Liste composants
Pour la première carte :
- boutons poussoirs EVQ-Q2F01W ;
- 4 pilotes de LED TLC5947 ;
- ATtiny84.
Avec 4 pilotes vous pouvez commander 96 LEDs. Soit vous passez à une matrice 9x10 ou vous commandez les 4 LED restantes par des E/S. Pour la programmation vous pouvez tenter d'utiliser la bibliothèque ADAFruit pour les TLC5947. Vous pouvez aussi regarder dans les projets IMA/SE.
Ne pas oublier le connecteur ISP (2x3 broches, espacement 2,54mm) pour programmer l'ATtiny84 et le connecteur USB (https://www.sparkfun.com/products/587) pour alimenter la carte.
Vous pouvez commencer à concevoir le schéma du premier circuit.
Lien d'accès au photos et vidéo additionnels
Rendus
Conclusion
Pendant ce semestre, nous avont entamé un périlleux voyage qui nous a embarqué dans le monde de l'électronique. Durant ce voyage, nous avons essayé par tous les moyens de mener à bien notre projet de clavier, cependant, nos efforts ont été vains et nos ambitions se sont heurté à la réalité... :'(
Néanmoins, ce projet, malgré son accomplissement approximatif nous a appris beaucoup dans le milieu de l'électronique ainsi que pour notre vie future. En effet, pour le point de vue électronique, nous avons appris comment fonctionnait un circuit électronique, qu'il y avait énormément d'éléments cachés dont on ignorait l'existance avant de commencer ce BE. D'un point de vue humain, nous avons appris que les ambitions devait être plus réfléchie pour avoir la possibilité de les mener à bien.
Malgré tout cela, nous avons tout de même réalisé notre premier circuit électronique, nous l'avons codé et nous l'avons fait fonctionné d'une manière très brillante si je ne m'abuse.
Pour finir, nous souhaitons remercier le corps éducatif de Polytech Lille avec une mention spéciale à Xavier et Alexandre ainsi que le professeur soudeur dont le nom m'échappe actuellement mais qui a su nous redonner le sourire entre chaques LED qui étaient ma fois nombreuses.
Cordiallement
CAMACHO Fabio CALCOEN Martin