Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Okablowanie i konfiguracja
- Krok 2: Testowanie klawiatury
- Krok 3: Podgląd konwersji PS/2 na USB
- Krok 4: Wyjaśnienie techniczne
- Krok 5: Przesyłanie ostatecznego szkicu
- Krok 6: Aktualizacja oprogramowania sprzętowego
- Krok 7: Ciesz się……
Wideo: Przejściówka Arduino PS/2 na USB: 7 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Czy kiedykolwiek chciałeś użyć swojej starej klawiatury PS/2 z laptopem lub nowym komputerem stacjonarnym i dowiedziałeś się, że nie mają już portów PS/2? A potem, zamiast kupować tani adapter PS/2 na USB, tak jak zrobiłby to normalny człowiek, chciałem użyć Arduino jako adaptera PS/2 na USB. Trafiłeś we właściwe miejsce:)
Uczciwe ostrzeżenie, zanim w to wejdziemy. Kiedy używasz UNO/Mega jako urządzenia USB-HID (nie ogranicza się do klawiatury, może to być nawet mysz, joystick itp.), tymczasowo utracisz funkcje Arduino. Mam na myśli to, że nie możesz używać komunikacji szeregowej i nie możesz jej przeprogramować przez USB. Dzieje się tak, ponieważ będziemy nadpisywać oprogramowanie układowe na chipie interfejsu USB (mały facet w pobliżu portu USB Atmega8U2 i 16U2 w zależności od wersji). Ale nie martw się, nie możesz tak naprawdę zepsuć swojego UNO/Mega, robiąc to, zawsze jest to odwracalne.
Również przez przypadek, jeśli masz Arduino, które ma już funkcję USB-HID (Arduino Pro Micro lub Leonardo itp., Wyszukuj w Google), możesz zapomnieć o tej instrukcji, która kiedykolwiek istniała, przejdź bezpośrednio tutaj, aby uratować się od świata kłopotów, po prostu żartuję!
Kieszonkowe dzieci
-
Sprzęt komputerowy
- Arduino UNO lub Mega
- Klawiatura PS/2
- Opcjonalnie może się przydać dodatkowy Arduino lub dowolny programator USB (USBasp itp.).
-
Oprogramowanie
- Atmel FLIP
- Biblioteka PS2KeyAdvanced dla Arduino IDE
Krok 1: Okablowanie i konfiguracja
W zależności od sytuacji możesz znaleźć tablicę zaciskową lub uratować stary port z płyty głównej (moja druga próba) lub jeśli czujesz się wyjątkowo nastrojowy, możesz nawet całkowicie odciąć fioletową wtyczkę i odsłonić 4 przewody (moja pierwsza próba) i podłącz je do ONZ.
Klawiatura_Arduino
+5V(VCC)_+5V
UZIEMIENIE_GND
ZEGAR_PIN 2**
DANE_PIN3*
*Możesz zmienić kod PIN DANYCH na dowolny, ale pamiętaj, aby zaktualizować szkic.
**ZEGAR musi być podłączony do pinu przerwania w Arduino, który może być tylko PIN 2 lub 3 (pamiętaj, aby zaktualizować szkic) na UNO. Aby uzyskać więcej informacji i różne konfiguracje płyt, możesz sprawdzić sekcję komentarzy w przykładowych bibliotekach PS2KeyAdvanced.
Krok 2: Testowanie klawiatury
Zanim przejdziesz wszystkie ręce na pokład, najpierw upewnij się, że wszystko działa na klawiaturze i bibliotece.
Tutaj załączyłem zmodyfikowaną wersję SimpleTest.ino z przykładów biblioteki PS2KeyAdvanced ze zaktualizowanymi pinami zegara i danych, a także reprezentacją „make” i „break”. Oto wyjaśnienie wyników.
- Ten system skanowania „make” i „break” oraz „Code”, który jest izolowanym (c i 0xFF) skankodem po naciśnięciu klawisza lub zwolnieniu klawisza, odgrywa ważną rolę w konwersji PS/2 na USB i polecam ci studiowanie pozostałe 2 przykłady, które są dostarczane z biblioteką, aby lepiej zrozumieć, jeśli planujesz ulepszyć lub zmienić (przemapować klawisze do różnych układów) ostateczny szkic. Możesz również uzyskać pełną listę skankodów PS/2 z biblioteki, otwierając pliki „PS2KeyAdvanced.h” lub „PS2KeyCode.h” z „\Documents\Arduino\libraries\PS2KeyAdvanced\src\”
- „Bity stanu” odnoszą się do klawiszy modyfikujących (Ctrl, Alt, Windows, Shift/Caps) i zobaczysz, że z każdym dodatkowym klawiszem modyfikującym ta wartość się zmienia, podczas gdy główny „Kod” normalnego (bez modyfikatora) klawisza pozostaje niezmieniony. Ale w końcowym szkicu zignorowałem tę metodę i zaimplementowałem te klawisze modyfikujące jako proste naciśnięcia klawiszy (Zobaczysz, że te klawisze modyfikujące mają również kod skanowania "make" i "break" niezależny od normalnych klawiszy, niezależnie od tego, czy naciśnięto wiele klawiszy.) ponieważ ułatwia to dzięki protokołowi USB-HID.
Krok 3: Podgląd konwersji PS/2 na USB
Przed aktualizacją Atmega8U2 lub 16U2 (UNO Rev3) w celu zidentyfikowania naszego Arduino jako klawiatury USB, powinniśmy upewnić się, że wszystkie elementy konwersji działają poprawnie, a ostateczny szkic jest przesłany, w przeciwnym razie będzie to duży problem, aby nadpisywać oprogramowanie układowe raz za razem między oryginalnymi plikami szesnastkowym klawiatury i USB, aby można było przesłać poprawny szkic. Staje się to szczególnie prawdziwe, jeśli nie masz żadnego zewnętrznego programatora, takiego jak USBasp lub inny Arduino, którego mógłbyś używać jako ISP. Więc tutaj prześlemy wersję „DEBUG” ostatecznego szkicu z czytelnym dla człowieka wyjściem (przez monitor szeregowy), aby przetestować rzeczy.
Widoczne dane wyjściowe będą sformatowane w ten sposób po zwolnieniu każdego klawisza, 00 00 00 00 00 00 00 00
Oto podstawowe wyjaśnienie oczekiwanego wyniku,
Dla każdego nowego naciśnięcia klawisza z wielokrotnym modyfikatorem powinien pojawić się znak nowej linii z różnymi wartościami „xx”. Wreszcie po zwolnieniu wszystkich klawiszy modyfikujących 'xx' powinno zmienić się na 00
xx 00 00 00 00 00 00 00
Dla każdego nowego wielokrotnego normalnego naciśnięcia klawisza (na przykład naciśniemy oba hipotetyczne klawisze a, klawisz b i klawisz c z wartościami 'xx', 'yy' i 'zz' w tej kolejności) powinieneś uzyskać ciągłość (nieobowiązkowe) nowe linie takie jak ta,
00 00 xx rr zz 00 00 00
gdy zwolnisz tylko klawisz b, wyjście powinno zmienić się na,
00 00 xx 00 zz 00 00 00
a jeśli naciśniesz nowy klawisz d z wartością 'nn' bez zwalniania klawisza a lub klawisza b twoje wyjście powinno zmienić się na,
00 00 xx nn zz 00 00 00
i wreszcie wróć do tego, gdy każdy klawisz zostanie zwolniony,
00 00 00 00 00 00 00 00
i na koniec, jeśli naciśniesz Caps Lock, Num Lock lub Scroll Lock, powinieneś otrzymać coś takiego z wieloma liniami jednocześnie,
00 00 xx 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
Jeśli wszystko się tutaj wydarzy, jesteś złoty, aby kontynuować!
Krok 4: Wyjaśnienie techniczne
Jeśli chcesz, możesz pominąć ten krok. To tylko wyjaśnienie poprzednich wyników. Wyjściowa tablica 8 bajtów, którą widziałeś, jest sformatowana zgodnie z powyższym rys. 1. Możesz dowiedzieć się więcej na ten temat, a także o tym, jak bajt stanu klawiszy modyfikujących jest zapisywany z tej wiki o USB-HID. Zasadniczo to, co robi mój kod, to za każdym razem, gdy zostanie naciśnięty nowy klawisz (protokół PS/2 nazywa to „make”), przechodzi przez ostatnie 6 bajtów tablicy, które są używane do normalnych naciśnięć klawiszy, i wypełnia pierwszy pusty bajt, który znajduje z odpowiednim „skanem HID” (pokazano jak na rys. 2 Można również znaleźć pełną listę z załączonego pliku PDF) dla otrzymanego „skanowania PS/2”. I wreszcie, gdy odpowiedni klucz zostanie zwolniony (protokół PS/2 nazywa to „przerwą”), kod przejdzie przez bieżącą tablicę bajtów i wyczyści tylko odpowiedni bajt.
Jeśli podążałeś do tego miejsca, a także czytałeś stronę wiki, zobaczysz, że jest mały problem w tej metodzie, zwykle po zwolnieniu klawisza, w protokole HID pozostałe bajty zostają uporządkowane, aby pozbyć się pustych bajtów między pozostałymi niepustymi bajtami. Ale z jakiegoś powodu, niezależnie od tego, na ile sposobów próbowałem, nie mogłem go uruchomić zgodnie z przeznaczeniem bez przypadkowego wyczyszczenia niechcianych bajtów dla naciśniętych klawiszy. Jeśli możesz to poprawić, aby działało, zostaw komentarz. Chociaż w ostatecznym rozrachunku ten problem nie wpływa na funkcjonalność klawiatury, o ile Arduino rejestruje każde naciśnięcie klawisza niezależnie od kolejności wciskania (co nie wpływa na nic w praktycznym użytkowaniu).
Krok 5: Przesyłanie ostatecznego szkicu
Więc zanim w końcu zaktualizujesz oprogramowanie Atmega8U2 lub 16U2 (UNO Rev3), aby zidentyfikować nasze Arduino jako klawiaturę USB, musimy przesłać ostateczny szkic. Po przesłaniu tego, jeśli przejdziesz do monitora szeregowego, zobaczysz, że drukuje śmieci z każdym nowym wciśniętym klawiszem, to dobry znak, że wszystko działa zgodnie z przeznaczeniem i możemy przejść do ostatniego kroku. TAK!!!
Krok 6: Aktualizacja oprogramowania sprzętowego
Na koniec możesz zaktualizować oprogramowanie układowe swojego Arduino, aby zarejestrować je jako klawiaturę USB. W tym celu nie będę się zagłębiał w szczegóły, ponieważ sprawi to, że będzie to zbyt długie.
- Postępuj zgodnie z tym przewodnikiem z arduino.cc na temat „Aktualizacji Atmega8U2 i 16U2 na Uno lub Mega2560 przy użyciu DFU”, ale zamiast używać „Arduino-usbserial-uno.hex” użyj dołączonego „Arduino-keyboard-0.3.hex”
- W programie FLIP pamiętaj, aby wybrać urządzenie docelowe jako Atmega8U2 lub 16U2 w zależności od Arduino i z wyboru medium komunikacyjnego wybierz USB i na koniec załaduj odpowiedni plik hex przed wybraniem run.
- Jeśli napotkałeś błąd sterownika, przejdź do menedżera urządzeń systemu Windows i wybierz wyszukiwanie nieznanego sterownika w katalogu instalacyjnym FLIP '\Program Files (x86)\Atmel\'
- Jeśli wielokrotnie napotkałeś błędy podczas aktualizacji oprogramowania sprzętowego z FLIP, zamknij FLIP i uruchom 'Reset Preferences' z 'Start menu\FLIP\', a następnie uruchom ponownie FLIP i wykonaj czynności konfiguracyjne przed ponowną próbą, to zwykle działa dla mnie.
- Jeśli chcesz przywrócić Arduino do pierwotnego stanu, postępuj zgodnie z powyższym przewodnikiem arduino.cc do litery bez używania tego pliku szesnastkowego.
Krok 7: Ciesz się……
Teraz ciesz się nowo przekonwertowaną klawiaturą PS/2 na USB…. PS Ten Instruktaż został w pełni napisany z zewnętrznej klawiatury PS/2 podłączonej do mojego laptopa przez Arduino:)
Zalecana:
Przejściówka z portu szeregowego na USB SpaceBall 4000: 4 kroki
SpaceBall 4000 Serial na USB Adapter: SpaceBall 4000 (odpowiednik 5000FLX, ale nie 5000) to seryjna mysz 3D z 12 przyciskami, którą można kupić w serwisie eBay za mniej niż 20 USD. Przydaje się to do projektowania grafiki 3D, ponieważ można przesuwać modele wzdłuż trzech osi i obracać je
Panel przycisków Arduino USB: 5 kroków (ze zdjęciami)
Panel przycisków Arduino USB: Arduino Leonardo to bardzo wydajna płytka z niewielkimi różnicami w stosunku do bardzo popularnego Arduino UNO. ATMega 32U4 jest głównym procesorem w Leonardo. Możesz użyć tego mikrokontrolera do komunikacji szeregowej przez USB. Arduino Leo
Łatwa 5-minutowa ładowarka solarna USB / ładowarka USB Survival: 6 kroków (ze zdjęciami)
Easy 5 Minut USB Solar Charger/Survival USB Charger: Cześć chłopaki! Dzisiaj właśnie zrobiłem (chyba) najłatwiejszą ładowarkę do paneli słonecznych USB! Po pierwsze, przepraszam, że nie przesłałem żadnych instrukcji dla was. W ciągu ostatnich kilku miesięcy dostałem kilka egzaminów (właściwie nie kilka, może tydzień lub więcej…). Ale
Jak zrobić własną ładowarkę samochodową USB do dowolnego iPoda lub innych urządzeń ładowanych przez USB: 10 kroków (ze zdjęciami)
Jak zrobić własną ładowarkę samochodową USB do dowolnego iPoda lub innych urządzeń, które ładują się przez USB: Utwórz ładowarkę samochodową USB do dowolnego iPoda lub innego urządzenia, które ładuje się przez USB, łącząc ze sobą adapter samochodowy, który ma wyjście 5 V i wtyczkę żeńską USB. Najważniejszą częścią tego projektu jest upewnienie się, że wyjście wybranego zasilacza samochodowego jest obstawione
USA - USB: American Flag USB Memorial: 8 kroków (ze zdjęciami)
USA - USB: American Flag USB Memorial: ceremonia wymachiwania flagą typu „plug and play”. PC = Patriotic Computer. Powiązane zdjęcia i wideo tutaj. Sprawdź ni9e.com, aby zobaczyć więcej projektów