Spisu treści:
- Krok 1: Materiały
- Krok 2: Rozpoczęcie kodowania
- Krok 3: Plik ograniczeń
- Krok 4: Plik Flip Flop
- Krok 5: Plik segmentów
- Krok 6: Plik dzielnika zegara
- Krok 7: Plik sygnału serwo
- Krok 8: Górny plik serwomechanizmu
- Krok 9: Górny plik
- Krok 10: Testowanie w Vivado
- Krok 11: Wprowadzenie do sprzętu budowlanego
- Krok 12: Przygotowanie
- Krok 13: Lutowanie
- Krok 14: Finał
Wideo: Sortownik śmieci CPE 133: 14 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
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 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
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ń
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
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
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
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 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
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
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
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ł
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:
CPE 133 Ostateczny projekt dziesiętny na binarny: 5 kroków
CPE 133 Final Project Dziesiętne na Binarne: Liczby binarne to jedna z pierwszych rzeczy, które przychodzą na myśl, gdy myślimy o logice cyfrowej. Jednak liczby binarne mogą być trudną koncepcją dla nowych. Ten projekt pomoże tym, którzy są zarówno nowi, jak i doświadczeni w pracy z liczbami binarnymi
Sortownik kolorów: 6 kroków
Sortownik kolorów: Celem tego sortownika kolorów jest przenoszenie m&ms na różne stosy w zależności od ich koloru
Elektroniczny sortownik monet: 7 kroków (ze zdjęciami)
Elektroniczny Sortownik Monet: Dawno, dawno temu, kiedy jeszcze można było chodzić do szkoły, wpadliśmy na ciekawy pomysł, aby zrobić urządzenie, które działa w dość prosty sposób – po wrzuceniu odpowiedniej ilości pieniędzy, my wyda konkretny produkt. nie mogę zdradzić
Robot PhantomX Pincher - sortownik jabłek: 6 kroków
Robot PhantomX Pincher - sortownik jabłek: rosną wymagania dotyczące bezpieczeństwa żywności. Zarówno konsumenci, jak i władze coraz częściej domagają się, aby spożywana przez nas żywność była wysokiej jakości i bezpieczna. W przypadku wystąpienia problemów podczas produkcji żywności, źródłem błędu m
KAMIENIE ŚMIECI - Wyeliminuj śmieci nienadające się do recyklingu: 8 kroków
KAMIENIE NA ŚMIECI - eliminuj śmieci nienadające się do recyklingu: aby stworzyć śmietnik, najpierw uszyje się worek z kabaretki. Jest wypełniony śmieciami i otynkowany cementem. Powstałe muszle mają niepowtarzalny kształt i wyglądają bardzo naturalnie. Skały śmieciowe są estetycznym i konstruktywnym