Table des matières:

Réveil Basys 3: 9 étapes
Réveil Basys 3: 9 étapes

Vidéo: Réveil Basys 3: 9 étapes

Vidéo: Réveil Basys 3: 9 étapes
Vidéo: I met Ohio final boss 💀 @ohiofinalboss. 2024, Octobre
Anonim
Réveil Basys 3
Réveil Basys 3

Notre projet crée un réveil à l'aide de la carte FPGA Basys 3, d'un Arduino et d'une carte pilote de haut-parleur. L'utilisateur peut saisir l'heure actuelle sur la carte à l'aide de 11 commutateurs d'entrée sur le Basys 3 et verrouiller la valeur à l'aide du bouton du milieu de la carte. L'utilisateur peut alors entrer l'heure de l'alarme à l'aide des mêmes commutateurs, mais appuyez sur le bouton gauche pour verrouiller l'heure de l'alarme. Si une mauvaise heure est entrée, le bouton de réinitialisation (bouton du haut) peut être enfoncé et l'heure actuelle de l'horloge et l'heure de l'alarme seront réglées sur 00:00. L'utilisateur peut alors démarrer l'horloge à l'aide de l'interrupteur le plus à gauche et activer l'alarme à l'aide de l'interrupteur suivant. Lorsque l'alarme est activée, le réveil émet un son lorsque l'heure de l'horloge et l'heure de l'alarme correspondent.

Étape 1: Diagramme de la boîte noire

Diagramme de la boîte noire
Diagramme de la boîte noire
Diagramme de la boîte noire
Diagramme de la boîte noire

Nous avons commencé notre projet en dessinant un diagramme de boîte noire pour visualiser les entrées et les sorties nécessaires dans notre programme. Les entrées suivantes pour notre programme telles que l'entrée 5 bits (Hour_in) ont été initialisées pour spécifier l'heure de 24 heures, l'entrée 6 bits (Min_in) pour afficher jusqu'à 60 minutes, un bouton de réinitialisation (Rst_b) pour permettre à l'utilisateur de changer leur heure d'entrée, une entrée 1 bit (alm_en) qui charge l'entrée d'alarme, une entrée 1 bit (alarm_sw) pour désactiver le réveil lorsqu'il est activé, une entrée 1 bit (e_sec) qui contrôle quand le compteur de secondes s'exécutera, une entrée 1 bit (Led_btn) qui définit l'heure actuelle, et enfin une entrée 1 bit (clk) qui contrôle l'heure affichée par la carte Basys 3. Les sorties sont le (alm_on) qui envoie le signal à l'Arduino, la sortie sseg qui affiche le temps d'entrée sur le Basys 3 et la sortie anode qui contrôle où les entrées sont affichées sur l'affichage à sept segments.

Étape 2: horloge lente

Horloge lente
Horloge lente

Le fichier slow clock ou clock_div2 crée une horloge dont la fréquence est de 2 Hz. Si nous alimentons cette horloge à notre compteur de secondes, la valeur des secondes augmentera d'une à chaque seconde. L'horloge lente est utilisée pour créer un signal d'horloge fiable qui passe de bas en haut une fois par seconde.

Étape 3: Compteur

Contrer
Contrer
Contrer
Contrer

Compteur de composants (minutes et secondes):

La fonction de base des minutes et des secondes est qu'elles sont des compteurs. Le compteur de minutes prend en entrée (Vin) qui est le signal des entrées (Min_in), puis compte jusqu'à ce qu'il atteigne l'entrée souhaitée entrée. Les secondes ne prennent en compte que l'entrée du commutateur (e_Sec) car elles ne peuvent pas être affichées sur le segment sept et comptent en arrière-plan une fois que le commutateur est haut '1'. Ils envoient tous deux leur valeur à (Qout), puis elle est stockée dans (data) qui l'envoie à SSEG, ce qui est fait dans le fichier de liaison. De plus, lorsque les minutes et les secondes atteignent les valeurs de 59, elles sont réinitialisées et leur sortie est « 1 » afin d'incrémenter les minutes/heure. Il peut également être mappé avec une réinitialisation (rst_b) à leurs entrées.

Étape 4: Compteur horaire

Heure du compteur
Heure du compteur
Heure du compteur
Heure du compteur

Heure du compteur de composants

De même, au compteur de composants des minutes et des secondes, le composant des heures prend des entrées telles que (Vin) qui est un signal de l'entrée du fichier de liaison (Hour_in), et a des sorties qui sont liées de la même manière aux minutes et aux secondes. Lorsque la valeur de comptage de l'heure atteint 24 00, elle se réinitialise à 00 00.

Étape 5: Alarme

Alarme
Alarme
Alarme
Alarme
Alarme
Alarme
Alarme
Alarme

Le fichier d'alarme.vhd est composé de d-flip-flops qui sont des périphériques de stockage pouvant stocker des données numériques. Le fichier d'alarme est utilisé pour stocker l'heure à laquelle l'alarme sera activée. Pour stocker les données des heures (entrée 5 bits) et des minutes (entrée 6 bits), nous devons supprimer 11 bascules d dans notre fichier d'alarme. Pour ce faire, nous devons d'abord importer la logique régissant le fonctionnement des d-flip-flops et mapper les composants. Chacune des 11 bascules d stockera un bit de données des entrées et permettra aux données d'être mappées sur les sorties du fichier d'alarme. Parce que les d-flip-flops stockent des données, nous sommes en mesure d'utiliser les données à un moment ultérieur, même si les commutateurs d'entrée ont été modifiés.

Étape 6: Pilote d'affichage universel à sept segments

Pilote d'affichage universel à sept segments
Pilote d'affichage universel à sept segments
Pilote d'affichage universel à sept segments
Pilote d'affichage universel à sept segments
Pilote d'affichage universel à sept segments
Pilote d'affichage universel à sept segments

Le pilote d'affichage universel à sept segments reçoit les entrées de l'horloge et de l'horloge et est capable de les transmettre à l'affichage à sept segments de la carte. Le pilote est capable de sortir deux comptes séparés sur la carte en même temps. Nous avons utilisé cette fonction pour afficher séparément l'heure et les minutes. L'affichage à sept segments n'est capable d'activer qu'un seul chiffre à la fois. Par conséquent, le fichier sseg doit utiliser le multiplexage pour afficher tous les chiffres de l'heure simultanément. Le signal d'horloge de la carte est introduit dans le sseg pour conserver l'heure correcte pour le multiplexage. Un encodeur décimal codé binaire à binaire est nécessaire pour convertir les entrées du fichier sous une forme qui peut être sortie sur l'affichage à sept segments. La sortie finale du fichier sseg est mappée sur l'affichage à sept segments et l'heure correcte est affichée sur l'affichage.

Étape 7: Lier le fichier

Lier le fichier
Lier le fichier
Lier le fichier
Lier le fichier
Lier le fichier
Lier le fichier

Le fichier de liens connecte tous les autres aspects du programme et mappe les signaux à leur emplacement correct. Chaque composant est importé et instancié dans le fichier. Les signaux sont utilisés pour transférer des données d'un composant à l'autre. Le mappage des ports suivra le diagramme de la boîte noire répertorié ci-dessus. Le fichier de liaison contient également la logique qui régit lorsque l'alarme est activée. La plupart du projet sera déjà terminé à ce stade. Le travail restant consiste à acheminer chaque signal vers l'emplacement approprié.

Étape 8: Arduino

Arduino
Arduino
Arduino
Arduino

L'arduino est utilisé pour activer le haut-parleur ainsi que pour contrôler la tonalité et la durée de la note jouée par le haut-parleur. L'arduino lit un signal numérique de la carte Basys 3. Lorsque ce signal est élevé, l'arduino produira un signal PWM contrôlant la tonalité et la durée de l'alarme. Le signal de sortie de l'arduino se connecte au signal d'entrée d'une carte de pilote de haut-parleur qui augmente le volume du haut-parleur. L'arduino effectue ce processus très rapidement en se répétant plusieurs fois par seconde.

Étape 9: Acheminement des câbles

Le routage des câbles
Le routage des câbles

L'arduino et la carte Basys 3 doivent être physiquement connectés pour transférer les signaux entre les cartes. Le premier câble à câbler sera celui de la broche de masse du PMOD JA du Basys 3 à la broche de masse de l'arduino. Ensuite, connectez un fil de la broche 1 du PMOD JA du Basys 3 à la broche numérique 7 de l'arduino. Ensuite, connectez deux broches de masse de l'arduino aux broches de masse du pilote de haut-parleur. Ensuite, connectez la sortie 3,3 V de l'arduino à la broche Vcc du pilote de haut-parleur. Ensuite, connectez la broche numérique 9 de l'arduino à la broche In du pilote de haut-parleur.

Conseillé: