
Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46

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


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

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


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 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




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



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



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


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

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é:
Lumière de réveil : 7 étapes (avec photos)

Wakeup Light : Au moment où j'écris cette instructable, c'est le milieu de l'hiver dans l'hémisphère Nord et cela signifie des jours courts et des nuits longues. J'ai l'habitude de me lever à 06h00 et en été, le soleil brillera d'ici là. En hiver cependant, il fait jour à 09h00 si w
Lumière de réveil LED haute puissance (+/- 15Watt): 5 étapes

Lumière de réveil LED haute puissance (+/- 15 watts) : * Remarque de modification de 2020 : tout d'abord, je n'utilise plus le ventilateur et cela semble être ok. Il fait chaud, mais rien n'a encore brûlé. Avec de nouvelles connaissances et étant donné que ces LED sont si bon marché, j'en utiliserais plus que 2 et j'ajouterais des LED simples de 3 W
Le réveil à bulles rend le réveil amusant (ish): 7 étapes (avec photos)

Le réveil à bulles rend le réveil amusant (ish): Se réveiller avec un réveil bourdonnant est nul. Je fais partie de ces personnes qui n'aiment pas se réveiller avant le lever du soleil (ou depuis de nombreuses heures). Alors, quelle meilleure façon de se réveiller en s'amusant qu'une soirée bulle au lit ! Utiliser un arduino et un
Réveil intelligent : un réveil intelligent fabriqué avec Raspberry Pi : 10 étapes (avec photos)

Réveil intelligent : un réveil intelligent fabriqué avec Raspberry Pi : Avez-vous déjà voulu une horloge intelligente ? Si oui, c'est la solution pour vous ! J'ai fait Smart Alarm Clock, c'est une horloge dont vous pouvez changer l'heure de l'alarme en fonction du site Web. Lorsque l'alarme se déclenche, il y aura un son (buzzer) et 2 lumières s'allumeront
Réveil facile : un réveil intelligent à base de Raspberry Pi : 6 étapes

Réveil facile : une lumière de réveil intelligente faite avec Raspberry Pi : IntroPour le programme Project1 je devais faire quelque chose. J'ai toujours été fasciné par la façon dont une lumière de réveil comme celle-ci vous aiderait à vous réveiller comme celles de philips. J'ai donc décidé de faire une lumière de réveil. J'ai fait la lumière du réveil avec un Raspberr