Trieur de déchets CPE 133 : 14 étapes
Trieur de déchets CPE 133 : 14 étapes

Vidéo: Trieur de déchets CPE 133 : 14 étapes

Vidéo: Trieur de déchets CPE 133 : 14 étapes
Vidéo: Mon métier c'est: Trieur de déchets 2025, Janvier
Anonim
Trieur de déchets CPE 133
Trieur de déchets CPE 133

Pour notre classe CPE 133 à Cal Poly, on nous a demandé de créer un projet VHDL/Basys 3 qui aiderait l'environnement et qui était suffisamment simple pour que nous puissions le mettre en œuvre avec nos nouvelles connaissances en conception numérique. L'idée derrière notre projet que, en général, les gens ne pensent pas à l'endroit où ils jettent leurs déchets. Nous avons décidé de créer une machine qui obligerait les gens à réfléchir à l'endroit où ils jettent leurs déchets. Notre trieur de déchets prend l'entrée de l'utilisateur à travers trois commutateurs, chacun représentant soit les déchets, le recyclage ou le compost. Une fois que l'utilisateur a sélectionné le type de déchets qu'il souhaite éliminer, il appuie sur un bouton. Ce bouton entraînera l'ouverture des couvercles des conteneurs correspondants. La machine a également utilisé l'écran du Basys 3 pour indiquer si l'un des couvercles est actuellement ouvert. Lorsque le bouton est relâché, les couvercles se referment pour que la machine soit prête pour le prochain utilisateur.

Étape 1: Matériaux

Matériaux
Matériaux
Matériaux
Matériaux
Matériaux
Matériaux

Les matériaux nécessaires à ce projet sont:

Carte Basys 3

Ordinateur avec Vivado installé

3x servo*

3 pieds de fil de cuivre

Coupe-fil/dénudeur

Fer à souder et soudure

*parce que les servos sont chers et que nous sommes des étudiants, nous avons substitué une résistance de 68 ohms et une LED pour chaque servo en tant que prototype (le code fonctionne de la même manière)

Étape 2: Commencer le codage

Début du codage
Début du codage
Début du codage
Début du codage
Début du codage
Début du codage

Il y a beaucoup de code à écrire pour ce projet. Nous utiliserons du code VHDL écrit en Vivado. Pour commencer, nous voudrons créer un nouveau projet. Vous allez d'abord nommer le projet et spécifier le type de projet. Assurez-vous de sélectionner les mêmes paramètres que ceux illustrés. Lorsque vous êtes arrivé à l'écran des sources, vous voudrez ajouter six sources nommées "top", "flip_flop", "segments", "servo_top", "servo_sig" et "clk_div". Assurez-vous de sélectionner VHDL pour la langue de chaque fichier, pas Verilog. Sur l'écran des contraintes, vous devez créer un fichier pour l'affectation des broches. Le nom de ce fichier n'est pas important. Vous serez alors invité à sélectionner le tableau que vous utiliserez. Assurez-vous de sélectionner le bon. Photos de référence pour une sélection correcte. La dernière étape vous demandera de spécifier les entrées et sorties de chaque fichier source. Cette étape peut être codée plus tard, alors cliquez sur suivant.

Étape 3: Fichier de contraintes

Fichier de contraintes
Fichier de contraintes
Fichier de contraintes
Fichier de contraintes

Dans cette étape, nous allons écrire le fichier de contraintes. Cela indique à Vivado quelles broches enverront / recevront quels signaux du circuit. Nous aurons besoin de l'horloge, de trois commutateurs, de l'affichage à sept segments (sept cathodes et quatre anodes), d'un bouton et des trois broches de sortie PMOD que le servo/LED utilisera. Photos de référence pour savoir à quoi le code devrait ressembler.

Étape 4: fichier de bascule

Fichier de bascule
Fichier de bascule

Le prochain fichier que nous allons écrire est le fichier source flip_flip. Ce sera une implémentation VHDL d'une bascule D. En d'autres termes, il ne transmettra son entrée à la sortie que sur le front montant du signal d'horloge et lorsque le bouton est enfoncé. Il prendra l'horloge, D et le bouton comme entrée et produira Q. référencera les photos pour le code. Le but de ce fichier est de permettre aux bacs de s'ouvrir uniquement lorsque le bouton est enfoncé plutôt que de s'ouvrir directement à chaque fois que l'interrupteur est basculé et de ne se fermer que lorsque l'interrupteur est basculé.

Étape 5: Fichier de segments

Fichier de segments
Fichier de segments

Le fichier suivant à écrire est le fichier de segments. Cela prendra le bouton comme dans les valeurs d'entrée et de sortie pour les sept cathodes et quatre anodes de l'affichage à sept segments du Basys 3. Ce fichier fait que l'affichage à sept segments affiche un « C » lorsque les bacs sont fermés et un « O » lorsque les bacs sont ouverts. Pour le code voir photo ci-jointe.

Étape 6: Fichier de diviseur d'horloge

Fichier de diviseur d'horloge
Fichier de diviseur d'horloge

Les servos fonctionnent en prenant un signal PWM avec une fréquence de 64k Hz tandis que l'horloge intégrée au Basys 3 fonctionne à 50M Hz. Le fichier diviseur d'horloge convertira l'horloge par défaut en une fréquence conviviale pour le servo. Le fichier prendra l'horloge et un signal de réinitialisation en entrée et produira un nouveau signal d'horloge. Voir la photo ci-jointe pour le code.

Étape 7: Fichier de signal servo

Fichier de signaux d'asservissement
Fichier de signaux d'asservissement

Le fichier de signal d'asservissement prendra une entrée d'horloge, une entrée de réinitialisation et une entrée de position souhaitée. Il produira un signal PWM qui conduira le servomoteur à la position souhaitée. Ce fichier utilise le signal d'horloge créé dans le dernier fichier pour créer un signal PWM pour le servo avec différents cycles de service en fonction de la position souhaitée. Cela nous permet de faire tourner les servos qui contrôlent les couvercles des poubelles. Voir la photo ci-jointe pour le code.

Étape 8: Fichier de tête de servo

Fichier supérieur de servo
Fichier supérieur de servo

Le but de ce fichier est de compiler les deux derniers fichiers dans un servodriver fonctionnel. Il faudra une horloge, une réinitialisation et une position comme entrée et produira le signal servo PWM. Il utilisera à la fois le diviseur d'horloge et le fichier de signaux d'asservissement comme composants et inclura un signal d'horloge interne pour transmettre l'horloge modifiée du diviseur d'horloge au fichier de signaux d'asservissement. Voir les photos sur

Étape 9: Fichier supérieur

Fichier supérieur
Fichier supérieur
Fichier supérieur
Fichier supérieur
Fichier supérieur
Fichier supérieur
Fichier supérieur
Fichier supérieur

C'est le fichier le plus important du projet car il englobe tout ce que nous avons créé ensemble. Il prendra le bouton, les trois interrupteurs et l'horloge comme entrées. Il donnera les sept cathodes, les quatre anodes et les trois signaux servo/LED comme sorties. Il utilisera la bascule, les segments et les fichiers servo_top comme composants et aura un commutateur interne et un signal servo interne.

Étape 10: Tester dans Vivado

Exécuter la synthèse, l'implémentation et l'écriture de bitsream dans Vivado. Si vous rencontrez des messages d'erreur, recherchez l'emplacement de l'erreur, puis comparez-le au code donné. Résolvez toutes les erreurs jusqu'à ce que toutes ces exécutions se terminent avec succès.

Étape 11: Introduction au matériel de construction

Dans cette étape, vous allez créer le matériel LED que nous avons utilisé dans notre prototype. Si vous utilisez des servos, le projet doit être prêt à fonctionner tant que les bonnes broches sont utilisées. Si vous utilisez des LED, suivez les étapes ci-dessous.

Étape 12: Préparation

Coupez le fil en six morceaux égaux. Dénudez suffisamment les extrémités de chaque morceau de fil pour que la soudure puisse se produire. Séparez les LED, les résistances et les fils en trois groupes. Faire chauffer le fer à souder.

Étape 13: Souder

Soudure
Soudure
Soudure
Soudure

Soudez chacune des résistances de 68 ohms au côté négatif de leur LED correspondante. Soudez un fil sur le côté positif de la LED et un autre fil sur le côté de la résistance non soudé à la LED. Vous devriez avoir trois des engins à LED illustrés ci-dessus.

Étape 14: Finaliser

Final
Final

Insérez chaque fil positif dans la broche PMOD correspondante et chaque négatif dans une broche PMOD mise à la terre. Ajoutez éventuellement des bacs en carton pour représenter les poubelles et masquez vos dégâts de soudure. Une fois que les fils sont correctement branchés et que le code est correctement téléchargé sur la carte sans erreur, la machine devrait fonctionner comme prévu. Si quelque chose ne va pas, revenez aux étapes précédentes pour dépanner. Amusez-vous avec votre nouveau "trieur de déchets".