
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03

Projekt: Adam Klein, Ian Strachan, Brandon Slater
Projekt, który postanowiliśmy zrealizować, polegał na przechowywaniu, parsowaniu i wyświetlaniu informacji z myszy USB w postaci programu do malowania. Ideą projektu jest możliwość podłączenia myszy i kabli VGA do płyty Basys we wbudowanych portach i wyświetlania myszy jako ruchomego kwadratu do malowania na monitorze, zmieniając różne kolory po kliknięciu lewym i prawym przyciskiem myszy używany. Zasadniczo stworzylibyśmy sterownik do używania myszy z płytą podstawową i monitor jako naszą weryfikację funkcjonalności. To, co naprawdę się wydarzyło, to stworzenie programu do rysowania z płytą bazową jako systemem wejściowym i półfunkcjonalnym systemem do przechwytywania danych dla myszy.
W tej instrukcji podzielimy kroki od wejścia myszy do wyjścia VGA.
Krok 1: Motywacja i problem

Motywacja:
Główną motywacją dla naszego projektu było stworzenie sterownika myszy dla tablicy Basys3, który przyszli studenci CPE 133 będą mogli używać w przyszłości w swoich końcowych projektach. Jednak poszliśmy o krok dalej, tworząc program do malowania, z którego mogliby również budować przyszli studenci.
Problem:
Odkryliśmy problem polegający na tym, że nie ma przejrzystego modułu myszy gotowego do pobrania i użycia dla płyty Basys3. Aby rozwiązać ten problem, sami próbowaliśmy go stworzyć. W ten sposób dążyliśmy do stworzenia modułu myszy, który umożliwi przyszłym studentom łatwiejsze wdrażanie danych wejściowych za pomocą myszy w swoich projektach.
Krok 2: Uzyskiwanie informacji o surowych bitach z USB Basys

- Wiele z tego, co zrobiliśmy dla myszy w tym projekcie, pochodzi z dokumentacji Basys3. Z małego przewodnika po porcie USB Basys w tym pliku PDF odkryliśmy, że płyta Basys ma wbudowany zegar do odczytywania bitów z odpowiednią prędkością z urządzeń USB.
- Zasadniczo mysz wysyła bity do usb, zaczynając od stanu bezczynności, odczytuje 32 bity reprezentujące stan myszy, pozycję x i pozycję y, a na końcu kończy się kolejnym bitem bezczynności. Aby to zrobić, komponent wejściowy myszy używa rejestru przesuwnego i licznika 32-bitowego, gdzie rejestr przesuwny służy do przechowywania 32 bitów danych przychodzących z myszy, a licznik 32-bitowy służy do zliczania liczby przechowywanych bitów, umożliwiając stan Zarejestruj się, aby zresetować i zapisać następny zestaw 32 przychodzących bitów.
- Kod rejestru przesuwnego, licznika 32-bitowego i czytnika danych można pobrać poniżej, a także plik z ograniczeniami dostosowany do wykorzystania przez nas portu USB jako wejścia
Krok 3: Parsowanie informacji USB


- Po utworzeniu wejścia myszy do komponentu USB, następnym krokiem było stworzenie komponentu bitów USB do informacji wektorowych, który sprawi, że dane odebrane przez mysz będą czytelne dla vga.
- Ten komponent wykorzystuje maszynę stanów, która pobiera zestaw bitów wysyłanych przez wejście myszy do usb i przechodzi przez stany w oparciu o to, czy wprowadzono nowe bity zmieniające stan i pozycję myszy.
- Pokazano tutaj schemat blokowy dla pierwszych dwóch etapów projektu, a dwa pliki vhdl służą do testowania implementacji myszy za pomocą diod LED podstawy (test, który niestety nigdy nie został zaliczony) oraz do przesyłania strumienia bitów z USB port, aby przyspieszyć i ustawić wektory, z których może korzystać karta VGA.
- Obraz obok powyższego schematu blokowego jest małą migawką (Instructables nie pozwala nam wyświetlać pełnego obrazu) informacji bitowych, które znaleźliśmy w dokumentacji bazy, aby wykonać ten krok.
Krok 4: Wyświetlanie namalowanego obrazu przez VGA i edycja tego, co jest rysowane



- Kabel VGA ma 14 bitów wyjścia, 4 bity dla każdego z trzech kolorów oraz bit synchronizacji poziomej i pionowej.
-
OtherVGA to dostarczony moduł VGA, który działa w następujący sposób:
- Monitor jest podzielony na bloki 40x30 po 16x16 pikseli dla ekranu o rozdzielczości 640x480, jak widać na powyższym obrazku. Moduł wybiera adres bloku reprezentujący jeden z 1200 bloków na monitorze. Adres bloku wybiera się za pomocą następującego równania: adres = 40y + x
- Kolor jest reprezentowany przez 12-bitowy sygnał, który jest skorelowany z wartością RRRRGGGGBBBB, która koloruje wybrany blok.
-
Nasz kod kontrolny, VGAtest i VGAtestconst, działa w następujący sposób:
- Najpierw ustawia wybrany blok na środku monitora.
- Kolor bloku jest określany przez 12 przełączników na płytce, ustawiających wartość RRRRRGGGGBBBB.
- Cztery przyciski kierunkowe na tablicy zmieniają wybrany adres. Na przykład naciśnięcie prawego przycisku doda 1 do adresu, wybierając blok jeden na prawo od poprzedniego bloku. Naciśnięcie przycisku w dół doda 40 do adresu, wybierając blok jeden poniżej poprzedniego bloku.
- Środkowy przycisk służy do ustawiania wszystkich wartości kolorów na 0 po naciśnięciu. Ma to zachowywać się jak przycisk wymazywania, który jest łatwy w użyciu dla użytkownika, więc użytkownik nie musi przestawiać każdego przełącznika na 0, aby wymazać.
- Ostatni obraz to schemat blokowy sterownika. Jest dość szeroki, ponieważ zawiera komponenty modułu i może nie być wyświetlany w całości.
Krok 5: Ciesz się swoim dziełem
Połączony tutaj jest szybki timelapse zabawy, jaką możesz mieć z ostatecznym projektem, nawet po prostu używając przełączników i przycisków na płycie podstawy jako danych wejściowych.
Dziękuje za przeczytanie!
Zalecana:
Robot do malowania z napędem Arduino: 11 kroków (ze zdjęciami)

Arduino Powered Painting Robot: Czy kiedykolwiek zastanawiałeś się, czy robot może tworzyć hipnotyzujące obrazy i dzieła sztuki? W tym projekcie staram się to urzeczywistnić za pomocą Arduino Powered Painting Robot. Celem jest, aby robot mógł samodzielnie tworzyć obrazy i korzystać z ref
Paleta do malowania muzyki: 7 kroków (ze zdjęciami)

Paleta do malowania muzyki: Źródłem inspiracji dla mojego urządzenia jest „Chromola”, instrument stworzony przez Prestona S. Millara, aby zapewnić barwny akompaniament do „Prometeusza: Poemat ognia” Alexandra Scriabina, symfonii, której premiera odbyła się w Carnegie Hall na 21 marca 1915 r
Różdżka do malowania proszkowego: 5 kroków

Różdżka proszkowa: Oto szczegółowe instrukcje, jak stworzyłam różdżkę do pudru. ******* Ostrzeżenie TO BOLI. Jeśli znajdziesz się między drutem uziemiającym a szczotką. ********Celem tego jest mocne pomalowanie małego przedmiotu (w tym przypadku monety zamienionej w pierścień) za pomocą
Jak zrobić papierową latarnię za pomocą elektrycznego zestawu do malowania: 7 kroków

Jak zrobić papierową latarnię za pomocą zestawu elektrycznej lampy do malowania: W tym samouczku pokażemy, jak zhakować zestaw elektrycznej lampy do malowania, aby zrobić papierową latarnię. W tym samouczku użyliśmy ustawienia światła świec, jednego z dodatkowych trybów tablicy świetlnej. Wszystko, czego potrzebujesz do tego samouczka, to karta, El
Różdżka do malowania światłem oparta na Arduino: 13 kroków (ze zdjęciami)

Arduino Based Multi Color Light Painting Wand: Malowanie światłem to technika stosowana przez fotografów, w której źródło światła jest używane do rysowania ciekawych wzorów, a aparat łączy je ze sobą. W rezultacie Zdjęcie będzie zawierało smugi światła, które ostatecznie dadzą wygląd