Spisu treści:

Sortownik śmieci CPE 133: 14 kroków
Sortownik śmieci CPE 133: 14 kroków

Wideo: Sortownik śmieci CPE 133: 14 kroków

Wideo: Sortownik śmieci CPE 133: 14 kroków
Wideo: AGD Prestige Sortownik na odpady Blanco Flexon II 2024, Listopad
Anonim
Sortownik śmieci CPE 133
Sortownik śmieci CPE 133

Dla naszej klasy CPE 133 w Cal Poly powiedziano nam, abyśmy stworzyli projekt VHDL/Basys 3, który pomógłby środowisku i był na tyle prosty, że mogliśmy go wdrożyć dzięki naszej nowej wiedzy o projektowaniu cyfrowym. Ideą naszego projektu jest to, że generalnie ludzie nie myślą o tym, gdzie wyrzucają śmieci. Postanowiliśmy stworzyć maszynę, która zmuszałaby ludzi do zastanowienia się nad tym, gdzie kładą śmieci. Nasz sortownik śmieci przenosi dane użytkownika za pośrednictwem trzech przełączników, z których każdy reprezentuje śmieci, recykling lub kompost. Po wybraniu przez użytkownika rodzaju odpadów, które chciałby wyrzucić, naciska przycisk. Ten przycisk spowoduje otwarcie odpowiednich pokryw pojemników. Maszyna wykorzystała również wyświetlacz na Basys 3, aby wskazać, czy którakolwiek z pokryw jest aktualnie otwarta. Po zwolnieniu przycisku pokrywy zamkną się ponownie, dzięki czemu maszyna będzie gotowa dla następnego użytkownika.

Krok 1: Materiały

Materiały
Materiały
Materiały
Materiały
Materiały
Materiały

Materiały wymagane do tego projektu to:

Płyta Basys 3

Komputer z zainstalowanym Vivado

3x serwo*

Drut miedziany o długości 3 stóp

Przecinak do drutu / ściągacz izolacji

Lutownica i lutownica

*ponieważ serwa są drogie i jesteśmy studentami, podmieniliśmy jako prototyp rezystor 68 omów i diodę LED dla każdego serwa (kod działa tak samo)

Krok 2: Rozpoczęcie kodowania

Rozpoczęcie kodowania
Rozpoczęcie kodowania
Rozpoczęcie kodowania
Rozpoczęcie kodowania
Rozpoczęcie kodowania
Rozpoczęcie kodowania

Jest dużo kodu do napisania dla tego projektu. Będziemy używać kodu VHDL napisanego w Vivado. Na początek będziemy chcieli stworzyć nowy projekt. Najpierw nazwiesz projekt i określisz typ projektu. Pamiętaj, aby wybrać te same ustawienia, jak na zdjęciu. Po przejściu do ekranu źródeł będziesz chciał dodać sześć źródeł o nazwach "top", "flip_flop", "segments", "servo_top", "servo_sig" i "clk_div". Pamiętaj, aby wybrać język VHDL dla każdego pliku, a nie Verilog. Na ekranie ograniczeń powinieneś utworzyć jeden plik do przypisania pinów. Nazwa tego pliku nie jest ważna. Następnie zostaniesz poproszony o wybranie tablicy, której będziesz używać. Upewnij się, że wybrałeś właściwy. Zdjęcia referencyjne do prawidłowego wyboru. W ostatnim kroku zostaniesz poproszony o określenie danych wejściowych i wyjściowych każdego pliku źródłowego. Ten krok można zakodować później, więc kliknij Dalej.

Krok 3: Plik ograniczeń

Plik ograniczeń
Plik ograniczeń
Plik ograniczeń
Plik ograniczeń

W tym kroku napiszemy plik z ograniczeniami. To mówi Vivado, które piny będą wysyłać/odbierać sygnały z obwodów. Będziemy potrzebować zegara, trzech przełączników, siedmiosegmentowego wyświetlacza (siedem katod i czterech anod), przycisku i trzech wyjściowych pinów PMOD, z których będzie korzystał serwo/LED. Zdjęcia referencyjne pokazujące, jak powinien wyglądać kod.

Krok 4: Plik Flip Flop

Plik Flip Flop
Plik Flip Flop

Następnym plikiem, który będziemy pisać, jest plik źródłowy flip_flip. Będzie to implementacja przerzutnika D w języku VHDL. Innymi słowy, przekazuje swoje wejście do wyjścia tylko na zboczu narastającym sygnału zegara i po naciśnięciu przycisku. To zajmie zegar, D i przycisk jako wejście i wyprowadzi Q. Odwołaj się do zdjęć w celu uzyskania kodu. Celem tego pliku jest umożliwienie otwierania pojemników tylko wtedy, gdy przycisk jest wciśnięty, a nie bezpośredniego otwierania za każdym razem, gdy przełącznik jest obrócony i zamykania tylko wtedy, gdy przełącznik jest obrócony z powrotem.

Krok 5: Plik segmentów

Plik segmentów
Plik segmentów

Następnym plikiem do zapisania jest plik segmentów. Przyjmie to przycisk jak w wartościach wejściowych i wyjściowych dla siedmiu katod i czterech anod siedmiosegmentowego wyświetlacza Basys 3. Ten plik powoduje, że wyświetlacz siedmiosegmentowy pokazuje „C”, gdy pojemniki są zamknięte i „O”, gdy pojemniki są otwarte. Kod patrz załączone zdjęcie.

Krok 6: Plik dzielnika zegara

Plik dzielnika zegara
Plik dzielnika zegara

Serwa działają poprzez pobieranie sygnału PWM o częstotliwości 64kHz, podczas gdy zegar wbudowany w Basys 3 działa z częstotliwością 50MHz. Plik dzielnika zegara przekonwertuje domyślny zegar na przyjazną częstotliwość dla serwomechanizmu. Plik przyjmie zegar i sygnał resetowania jako wejście i wyprowadzi nowy sygnał zegara. Zobacz załączone zdjęcie dla kodu.

Krok 7: Plik sygnału serwo

Plik sygnału serwo
Plik sygnału serwo

Plik sygnału serwa przyjmie wejście zegara, wejście zerowania i wejście żądanej pozycji. Wygeneruje sygnał PWM, który doprowadzi serwo do żądanej pozycji. Ten plik wykorzystuje sygnał zegarowy utworzony w ostatnim pliku do utworzenia sygnału PWM dla serwomechanizmu o różnych cyklach pracy w zależności od pożądanej pozycji. To pozwala nam obracać serwomechanizmami, które kontrolują pokrywy koszy na śmieci. Zobacz załączone zdjęcie dla kodu.

Krok 8: Górny plik serwomechanizmu

Serwo Top File
Serwo Top File

Celem tego pliku jest skompilowanie dwóch ostatnich plików w funkcjonalny sterownik serwo. Zajmie zegar, reset i pozycję jako wejście i wyśle sygnał PWM serwa. Użyje on zarówno dzielnika zegara, jak i pliku sygnału serwa jako komponentów i będzie zawierał wewnętrzny sygnał zegara, aby przekazać zmodyfikowany zegar z dzielnika zegara do pliku sygnału serwa. Zobacz zdjęcia na

Krok 9: Górny plik

Górny plik
Górny plik
Górny plik
Górny plik
Górny plik
Górny plik
Górny plik
Górny plik

To najważniejszy plik projektu, ponieważ zawiera wszystko, co razem stworzyliśmy. Zajmie przycisk, trzy przełączniki i zegar jako wejścia. Daje to siedem katod, cztery anody i trzy sygnały serwo/LED jako wyjścia. Będzie używał flip-flop, segmentów i plików servo_top jako komponentów i będzie miał wewnętrzny przełącznik i wewnętrzny sygnał serwo.

Krok 10: Testowanie w Vivado

Uruchom Syntezę, implementację i napisz bitsream w Vivado. Jeśli napotkasz jakiekolwiek komunikaty o błędach, znajdź lokalizację błędu, a następnie porównaj z podanym kodem. Pracuj nad błędami, aż wszystkie te przebiegi zakończą się pomyślnie.

Krok 11: Wprowadzenie do sprzętu budowlanego

W tym kroku stworzysz sprzęt LED, którego użyliśmy w naszym prototypie. Jeśli używasz serw, projekt powinien być gotowy do pracy, o ile używane są prawidłowe piny. Jeśli używasz diod LED, wykonaj poniższe czynności.

Krok 12: Przygotowanie

Pokrój drut na sześć równych kawałków. Zdejmij końce każdego kawałka drutu na tyle, aby mogło nastąpić lutowanie. Oddziel diody LED, rezystory i przewody na trzy grupy. Podgrzej lutownicę.

Krok 13: Lutowanie

Lutowanie
Lutowanie
Lutowanie
Lutowanie

Przylutuj każdy z 68 omowych rezystorów do ujemnej strony odpowiedniej diody LED. Przylutuj przewód do dodatniej strony diody LED, a drugi przewód do strony rezystora nie przylutowanej do diody. Powinieneś mieć trzy z urządzeń LED przedstawionych powyżej.

Krok 14: Finał

Finał
Finał

Włóż każdy dodatni przewód do odpowiedniego pinu PMOD, a każdy ujemny do uziemionego pinu PMOD. Opcjonalnie dodaj kartonowe pojemniki, aby reprezentować kosze na śmieci i ukryć bałagan lutowniczy. Po prawidłowym podłączeniu przewodów i prawidłowym załadowaniu kodu na płytkę bez błędów maszyna powinna działać zgodnie z przeznaczeniem. Jeśli coś pójdzie nie tak, wróć do poprzednich kroków, aby rozwiązać problem. Baw się z nowym „sorterem śmieci”.

Zalecana: