Mündəricat:
- Təchizat
- Addım 1: Kablolama və Quraşdırma
- Addım 2: Klaviaturanı yoxlayın
- Addım 3: PS/2 -dən USB Dönüşüm Önizləməsinə
- Addım 4: Texniki İzahat
- Addım 5: Son eskizin yüklənməsi
- Addım 6: Firmware -ni yeniləyin
- Addım 7: Zövq alın …
Video: USB Adapterə Arduino PS/2: 7 Adım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Köhnə PS/2 Klaviaturanızı dizüstü kompüterinizlə və ya yeni masaüstü kompüterinizlə birlikdə istifadə etmək istədinizmi və artıq PS/2 portlarının olmadığını öyrəndinizmi? Və sonra adi bir adamın etdiyi kimi ucuz bir USB/Adaptor almaq üçün Arduino -nuzu PS/2 -dən USB Adapteri kimi istifadə etmək istədim. Sonra doğru yerə gəldiniz:)
İçəri girməzdən əvvəl ədalətli xəbərdarlıq. UNO/Mega cihazınızı USB-HID cihazı olaraq istifadə edərkən (klaviatura ilə məhdudlaşmır, hətta siçan, joystick və s. Ola bilər) Arduino kimi funksiyalarını müvəqqəti olaraq itirəcəksiniz. Demək istəyirəm ki, Serial ünsiyyətdən istifadə edə bilməzsiniz və USB vasitəsilə yenidən proqramlaşdıra bilməzsiniz. Bunun səbəbi, firmware proqramını USB interfeys çipinə çox yazacağımızdır (düzəlişdən asılı olaraq USB portu Atmega8U2 və 16U2 yaxınlığında olan kiçik adam). Ancaq UNO/Mega -nızı əslində kərpic edə bilməyəcəyinizdən narahat olmayın, bunu etməklə həmişə geri çevrilir.
Həm də təsadüfən USB-HID qabiliyyətinə malik bir Arduino varsa (Arduino Pro Micro və ya Leonardo, və s. Google axtarışında olun) indiyə qədər mövcud olan bu təlimatı unuda bilərsiniz ki, özünüzü problem dünyasından xilas edin. zarafat!
Təchizat
-
Avadanlıq
- Arduino UNO və ya Mega
- PS/2 klaviatura
- İsteğe bağlı olaraq əlavə bir Arduino və ya hər hansı bir USB proqramçısı (USBasp və s.) Yararlı ola bilər.
-
Proqram təminatı
- Atmel FLIP
- Arduino IDE üçün PS2KeyAdvanced kitabxana
Addım 1: Kablolama və Quraşdırma
Vəziyyətdən asılı olaraq ya bir qırılma lövhəsi tapa bilərsiniz, ya da anakartdan köhnə bir limanı xilas edə bilərsiniz (2 -ci cəhdim) və ya xüsusilə əhvalınız pisdirsə, bənövşəyi yuvanı tamamilə kəsib 4 teli (ilk cəhdim) və onları UNO -ya bağlayın.
Klaviatura _Arduino
+5V (VCC) _+5V
ZAMAN _ GND
SAAT _ PIN 2 **
VERİ _ PIN3*
*DATA pinini istədiyinizə dəyişə bilərsiniz, ancaq eskizi yeniləməyi unutmayın.
** SAAT, bir UNO -da yalnız PIN 2 və ya 3 ola biləcək (eskizi yeniləməyi unutmayın) Arduino -da bir kəsmə pininə bağlanmalıdır. Daha çox məlumat və fərqli lövhə konfiqurasiyaları üçün PS2KeyAdvanced kitabxana nümunələrinin şərh hissəsini yoxlaya bilərsiniz.
Addım 2: Klaviaturanı yoxlayın
Göyərtəyə çıxmadan əvvəl hər şeyin klaviatura və kitabxana üzərində işlədiyinə əmin olun.
Burada PS2KeyAdvanced kitabxana nümunələrindən SimpleTest.ino'nun dəyişdirilmiş bir versiyasını güncəlləşdirilmiş saat və məlumat pinləri ilə, həmçinin "make" və "break" təqdimatı ilə əlavə etdim. İşdə çıxış üçün bəzi izahatlar.
- Bu "etmək" və "sındırmaq" skand kodu sistemi və ya düyməni basmağın və ya açmanın sərbəst buraxılmasının təcrid olunmuş (c & 0xFF) skankodu olan "Kod" PS/2-dən USB-yə çevrilmədə mühüm rol oynayır və öyrənməyi məsləhət görürəm. Daha yaxşı başa düşmək üçün kitabxana ilə birlikdə gələn digər 2 nümunə, son eskizi təkmilləşdirmək və ya dəyişdirmək (düymələri fərqli sxemlərə dəyişdirmək) haqqında düşünürsünüzsə. Ayrıca '\ Documents / Arduino / libraries / PS2KeyAdvanced / src \' dən 'PS2KeyAdvanced.h' və ya 'PS2KeyCode.h' fayllarını açaraq kitabxanadan PS/2 skankodlarının tam siyahısını əldə edə bilərsiniz.
- "Status Bitləri" dəyişdirici düymələrə (Ctrl, Alt, Windows, Shift/Caps) aiddir və hər bir əlavə dəyişdirici düymədə bu dəyərin normal (dəyişdirilməyən) əsas "Kod" un dəyişmədiyini görəcəksiniz. Ancaq son eskizdə bu üsula məhəl qoymadım və bu dəyişdirici düymələri sadə düymə basmaları kimi tətbiq etdim (Bir çox düymənin basılıb-basdırılmamasından asılı olmayaraq bu dəyişdirici düymələrin normal düymələrdən asılı olmayaraq "etmək" və "qırmaq" skan koduna malik olduğunu görəcəksiniz.) çünki USB-HID protokolu ilə işləri asanlaşdırır.
Addım 3: PS/2 -dən USB Dönüşüm Önizləməsinə
Arduino-nuzu USB klaviatura olaraq təyin etmək üçün Atmega8U2 və ya 16U2 (UNO Rev3) yeniləmədən əvvəl, bütün çevrilmə materiallarının düzgün işlədiyinə və son son eskizin yükləndiyinə əmin olmalıyıq və ya əks halda yazmağı davam etdirmək böyük bir ağrı olacaq. Düzgün eskizi yükləmək üçün orijinal və USB klaviatura altıbucaqlı fayllar arasında təkrar-təkrar firmware. Bir USBasp və ya başqa bir Arduino kimi ISP olaraq istifadə etmək üçün heç bir xarici proqramçınız yoxdursa, bu xüsusilə doğrudur. Beləliklə, hər şeyi sınamaq üçün insan tərəfindən oxunan bir çıxışı olan (serial monitor vasitəsilə) son eskizin 'DEBUG' versiyasını yükləyəcəyik.
Gördüyünüz çıxış hər düymə buraxıldıqda belə formatlanacaq, 00 00 00 00 00 00 00 00
Burada gözlənilən çıxış üçün əsas bir izahat var.
Hər bir çox dəyişən düyməni basmaq üçün 'xx' üçün fərqli dəyərlərə malik yeni bir xətt almalısınız. Nəhayət, bütün dəyişdirici düymələri buraxdığınız zaman 'xx' 00 olmalıdır
xx 00 00 00 00 00 00 00 00
Hər yeni bir neçə normal düymə basması üçün (məsələn, 'xx', 'yy' və 'zz' dəyərləri ilə hər iki hipotetik a, b və c düymələrini basacağıq) davamlı (məcburi deyil) bu kimi yeni xətlər,
00 00 xx yy zz 00 00 00
yalnız b düyməsini buraxdığınız zaman çıxış dəyişməlidir,
00 00 xx 00 zz 00 00 00
a və ya b düyməsini buraxmadan 'nn' dəyəri olan yeni d düyməsini basarsanız, çıxışınız dəyişməlidir,
00 00 xx nn zz 00 00 00
və nəhayət, hər açar buraxıldıqda buna qayıdın,
00 00 00 00 00 00 00 00
və son olaraq Caps Lock, Num Lock və ya Scroll Lock düymələrinə basarsanız, eyni anda birdən çox sətirlə belə bir şey əldə etməlisiniz,
00 00 xx 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
Burada hər şey olarsa, davam etmək üçün qızılsınız!
Addım 4: Texniki İzahat
İstəsəniz bu addımı atlaya bilərsiniz. Bu, əvvəlki çıxışların izahıdır. Gördüyünüz 8 bayt çıxışı yuxarıdakı şəklə uyğun olaraq formatlanır.1 Bu barədə daha çox məlumat əldə edə bilərsiniz və həmçinin dəyişdirici düymələr status baytının bu vikidən USB-HID haqqında necə yazıldığını öyrənə bilərsiniz. Əsasən mənim kodum hər dəfə yeni bir düyməyə basıldıqda (PS/2 protokolu bunu 'etmək' olaraq ifadə edir) normal düymələr üçün istifadə olunan serialın son 6 baytından keçir və birincisini doldurur. alınan 'PS/2 scancode' üçün müvafiq 'HID skancode' ilə tapdığınız boş bayt (Şəkil 2 -də göstərildiyi kimi əlavə PDF -dən tam bir siyahı tapa bilərsiniz). Və nəhayət, müvafiq açar sərbəst buraxıldıqda (PS/2 protokolu buna 'fasilə' kimi istinad edir) kod cari bayt silsiləsi boyunca dövr edəcək və yalnız müvafiq baytı siləcək.
Bura qədər izləsəniz və həmçinin wiki səhifəsini oxusanız, bu metodda kiçik bir problem olduğunu görürsünüz, normal olaraq açar buraxıldıqda, HID protokolunda qalan baytlar boş baytlardan qurtulmaq üçün yenidən düzülür. qalan boş olmayan baytlar arasında. Ancaq nədənsə neçə yolla çalışmağımdan asılı olmayaraq təsadüfən basılan düymələr üçün istənməyən baytları silmədən istədiyim kimi işləyə bilmədim. İşləmək üçün bunu təkmilləşdirə bilsəniz, şərh yazın. Günün sonunda bu problem klaviaturanın funksionallığına təsir göstərməsə də, Arduino basıldıqları sıradan asılı olmayaraq hər bir düyməni basıb saxladıqca (praktik istifadədə heç bir şeyə təsir etmir).
Addım 5: Son eskizin yüklənməsi
Arduino -nuzu USB klaviatura olaraq təyin etmək üçün Atmega8U2 və ya 16U2 (UNO Rev3) firmware proqramını nəhayət yeniləməzdən əvvəl Final Sketch -i yükləməliyik. Bunu yüklədikdən sonra, serial monitoruna keçsəniz, hər yeni düyməyə basıldığında zibil çap etdiyini görəcəksiniz, bu hər şeyin istədiyi kimi işlədiyinin yaxşı bir əlamətidir və son mərhələyə keçə bilərik. YAY !!!
Addım 6: Firmware -ni yeniləyin
Nəhayət, Arduino firmware proqramını USB klaviatura kimi qeyd etmək üçün onu yeniləyə bilərsiniz. Bunun üçün çox təfərrüatlara girməyəcəyəm, çünki bu, çox uzun müddət göstəriş verər.
- 'DFU istifadə edərək Uno və ya Mega2560-da Atmega8U2 və 16U2-nin yenilənməsi' haqqında arduino.cc-dən bu təlimatı izləyin, ancaq 'Arduino-usbserial-uno.hex' istifadə etmək əvəzinə bərkidilmiş 'Arduino-klaviatura-0.3.hex' istifadə edin.
- FLIP -də, Arduino -dan asılı olaraq hədəf cihazı Atmega8U2 və ya 16U2 olaraq seçməyi unutmayın və ünsiyyət mühitindən USB -ni seçin və nəhayət işləməyi seçməzdən əvvəl düzgün hex faylını yükləyin.
- Sürücü xətası ilə üzləşmisinizsə, Windows cihaz menecerinə gedin və FLIP '\ Program Files (x86) Atmel \' quraşdırma qovluğunda naməlum sürücünü axtarın.
- Firmware proqramını FLIP -dən bir neçə dəfə yeniləyərkən səhvlərlə üzləşmisinizsə, FLIP -i bağlayın və 'Başlat menyusu / FLIP \' bölməsindən 'Tercihləri Sıfırla' əmrini yerinə yetirin və FLIP -i yenidən başladın və yenidən sınamadan əvvəl konfiqurasiya addımlarını edin, bu ümumiyyətlə mənim üçün işləyir.
- Arduino -nu orijinal vəziyyətinə qaytarmaq istəyirsinizsə, bu hex faylını istifadə etmədən yuxarıdakı arduino.cc məktubuna dair təlimatı izləyin.
Addım 7: Zövq alın …
İndi yeni çevrilmiş PS/2 -ni USB klaviatura ilə zövq alın …. P. S. Bu Təlimat tamamilə Arduino vasitəsilə dizüstü kompüterimə qoşulmuş xarici PS/2 klaviaturasından yazılmışdır:)
Tövsiyə:
USB Daktilo Dönüşüm Kiti: 9 Adım (Şəkillərlə birlikdə)
USB Typewriter Dönüşüm Kiti: Bu köhnə məktəb əl yazı maşınlarına yazmaqla bağlı çox sehrli bir şey var. Yazılı düymələrin doyurucu anlarından tutmuş, cilalanmış xrom vurğularının parıltısına qədər, çap olunmuş səhifədəki xırtıldayan işarələrə qədər, yazı maşınları su hazırlayır
USB Dəyişən Gərginlik Güc Təchizatı: 7 Adım (Şəkillərlə birlikdə)
USB Dəyişən Gərginlikli Güc Təchizatı: Bir müddətdir USB ilə işləyən dəyişən enerji təchizatı haqqında bir fikrim var. Dizayn edərkən, yalnız USB girişinə deyil, 3 VDC -dən 8 VDC -yə USB fişi və ya banan fişləri vasitəsilə icazə verən bir az daha çox yönlü etdim. Çıxışda t istifadə olunur
USB Power Arlo Kamera: 6 Adım (Şəkillərlə birlikdə)
USB Power Arlo Kamera: Simsiz ARLO Kameralarım üçün bahalı batareyalar almaqdan yoruldum (ARLO PRO və ya ARLO PRO2 deyil). Təxminən 3 və ya 4 ay davam edir. İstifadəçi bloqunda kimsə kameranın microUSB portu ilə kameranı gücləndirməsini təklif etdi. Əvvəl bunu fərq etmədim
Arduino USB Düymə Paneli: 5 Adım (Şəkillərlə birlikdə)
Arduino USB Düymə Paneli: Arduino Leonardo, çox məşhur Arduino UNO -dan bir qədər fərqlənən çox güclü bir lövhədir. ATMega 32U4, Leonardonun əsas prosessorudur. Bu mikro nəzarətçidən USB üzərindən ardıcıl ünsiyyət üçün istifadə edə bilərsiniz. Arduino Leo
Motorola Telefonunuzu Şarj Etmək üçün Adapterə Gəlmək üçün Bir Energizer Energi dəyişdirin: 4 Addım
Motorola Telefonunuzu Şarj Etmək üçün Adapterə Gedin Bir Energizer Energi -ni dəyişdirin: Geocaching zamanı Palm TX -ni sahəyə doldurmaq üçün bir Energizer Energi To Go şarj cihazı aldım. Bir Palm şarj etmək üçün bir adapterlə birlikdə sahib olmadığım təsadüfi bir cib telefonunu da doldurmaq üçün gəldi. Motorolumu doldurmaq istəsəm belə görünür