Mundarija:

USB adapterga Arduino PS/2: 7 qadam (rasmlar bilan)
USB adapterga Arduino PS/2: 7 qadam (rasmlar bilan)

Video: USB adapterga Arduino PS/2: 7 qadam (rasmlar bilan)

Video: USB adapterga Arduino PS/2: 7 qadam (rasmlar bilan)
Video: Arduino UNO and Mega Windows 7, 8, 10 USB driver Solved 2024, Noyabr
Anonim
USB adapter uchun Arduino PS/2
USB adapter uchun Arduino PS/2
USB adapterga Arduino PS/2
USB adapterga Arduino PS/2

Siz eski PS/2 klaviaturasini noutbuk yoki yangi ish stoli kompyuter bilan ishlatishni xohlaganmisiz va ular PS/2 portlari yo'qligini bilib oldingizmi? Va keyin oddiy odamga o'xshab arzon USB -adapterga PS/2 sotib olishdan ko'ra, sizning Arduino -ni PS/2 -dan USB -adapteriga ishlatmoqchi bo'ldingiz. Keyin siz kerakli joyga keldingiz:)

Ishga kirishdan oldin adolatli ogohlantirish. Agar siz UNO/Mega-ni USB-HID qurilmasi sifatida ishlatsangiz (klaviatura bilan cheklanmagan, u hatto sichqoncha, joystik va boshqalar bo'lishi mumkin), siz vaqtincha Arduino vazifasini yo'qotasiz. Bu shuni anglatadiki, siz ketma -ket aloqani ishlata olmaysiz va uni USB orqali qayta dasturlay olmaysiz. Buning sababi shundaki, biz dasturiy ta'minotni USB interfeysi chipiga ortiqcha yozamiz (USB portining yonidagi kichkina odam Atmega8U2 va 16U2 versiyasiga qarab). Xavotir olmang, siz UNO/Mega -ni g'isht qila olmaysiz, chunki bu har doim teskari.

Agar tasodifan, agar sizda USB-HID (Arduino Pro Micro yoki Leonardo, va hokazo google qidiruvi) mavjud bo'lgan Arduino bo'lsa, siz o'zingizni dunyodagi muammolardan qutqarish uchun bu erga borishni unutishingiz mumkin. hazil!

Ta'minotlar

  • Uskuna
    • Arduino UNO yoki Mega
    • PS/2 klaviatura
    • Ixtiyoriy ravishda qo'shimcha Arduino yoki har qanday USB -dasturchi (USBasp va boshqalar) yordam berishi mumkin.
  • Dasturiy ta'minot

    • Atmel FLIP
    • Arduino IDE uchun PS2KeyAdvanced kutubxonasi

1 -qadam: simlarni ulash va sozlash

Kabellarni o'rnatish va sozlash
Kabellarni o'rnatish va sozlash
Kabellarni o'rnatish va sozlash
Kabellarni o'rnatish va sozlash
Kabellarni o'rnatish va sozlash
Kabellarni o'rnatish va sozlash
Kabellarni o'rnatish va sozlash
Kabellarni o'rnatish va sozlash

Vaziyatga qarab, siz uzilish taxtasini topishingiz yoki eski portni anakartdan qutqarishingiz mumkin (mening ikkinchi urinishim) yoki agar siz o'zingizni yomon his qilsangiz, binafsharang uyani butunlay kesib, 4 ta simni (birinchi urinishim) ochishingiz mumkin. ularni BMTga ulang.

Klaviatura _ Arduino

+5V (VCC) _+5V

ZAMAN _ GND

SAAT _ PIN 2 **

Ma'lumotlar _ PIN3*

*Siz DATA pinini xohlaganingizga o'zgartirishingiz mumkin, lekin eskizni yangilashni unutmang.

** CLOCK Arduino -dagi uzilish piniga ulangan bo'lishi kerak, u faqat PIN 2 yoki 3 bo'lishi mumkin (eskizni yangilashni unutmang). Qo'shimcha ma'lumot va turli xil konfiguratsiyalar uchun PS2KeyAdvanced kutubxona misollarining sharhlar bo'limini tekshirishingiz mumkin.

2 -qadam: klaviaturani sinovdan o'tkazish

Qo'l ostiga tushishdan oldin, hamma narsa klaviatura va kutubxonada ishlayotganiga ishonch hosil qiling.

Bu erda men PS2KeyAdvanced kutubxonasining SimpleTest.ino -ning o'zgartirilgan versiyasini soat va ma'lumotlar pinlari yangilangan, shuningdek "make" va "break" tasvirlari bilan biriktirdim. Bu erda chiqish uchun ba'zi tushuntirishlar.

  • Bu "make" va "break" skaner tizimi va "Kod"-bu kalitni bosish yoki tugmachani ajratish (c & 0xFF) skaneri, PS/2-ni USB-ga o'zgartirishda muhim rol o'ynaydi va men sizga o'rganishni maslahat beraman. Oxirgi eskizni takomillashtirish yoki o'zgartirishni rejalashtirayotgan bo'lsangiz (kalitlarni turli sxemalarga almashtirish) kutubxona bilan birga keladigan boshqa 2 ta misol. Bundan tashqari, kutubxonadagi PS/2 skaner kodlarining to'liq ro'yxatini "PS2KeyAdvanced.h" yoki "PS2KeyCode.h" fayllarini "\ Documents / Arduino / libraries / PS2KeyAdvanced / src \" dan ochish orqali olishingiz mumkin.
  • "Status bitlari" deganda o'zgartirish tugmachalari (Ctrl, Alt, Windows, Shift/Caps) tushuniladi va siz har bir qo'shimcha o'zgartirish tugmachasi bilan bu qiymat o'zgarib turishini, oddiy kalitning "kodi" o'zgarmasligini ko'rasiz. Ammo yakuniy eskizda men bu usulni e'tiborsiz qoldirdim va bu o'zgartirish tugmachalarini oddiy klavish bosish sifatida qo'lladim (Siz ko'rasiz, bu o'zgartirish tugmachalarida bir nechta tugma bosilgan yoki bosilmagan bo'lsa ham oddiy tugmalardan mustaqil ravishda "make" va "break" skaneri mavjud). chunki u USB-HID protokoli bilan ishni osonlashtiradi.

3 -qadam: PS/2 ni USB konvertatsiyasini oldindan ko'rish

Arduino-ni USB klaviatura sifatida aniqlash uchun Atmega8U2 yoki 16U2 (UNO Rev3) ni yangilashdan oldin, biz konvertatsiya qilinadigan barcha narsalar to'g'ri ishlayotganiga va yakuniy eskiz yuklanganligiga ishonch hosil qilishimiz kerak, aks holda yozishni davom ettirish katta og'riq bo'ladi. To'g'ri eskizni yuklash uchun asl va USB klaviatura o'n oltilik fayllari o'rtasida qayta-qayta dasturiy ta'minot. Agar sizda USBasp yoki boshqa Arduino kabi tashqi dasturchi bo'lmasa, bu to'g'ri bo'ladi. Shunday qilib, biz hamma narsani sinab ko'rish uchun odam o'qiy oladigan (ketma -ket monitor orqali) yakuniy eskizning "DEBUG" versiyasini yuklaymiz.

Siz ko'rgan chiqish har bir tugma qo'yilganda shunday formatlanadi, 00 00 00 00 00 00 00 00

Bu erda kutilgan natijaning asosiy izohi,

Har bir yangi tugmachani bosish uchun siz "xx" uchun har xil qiymatlarga ega bo'lgan yangi qatorni olishingiz kerak. Nihoyat, barcha o'zgartirish tugmachalarini qo'yganingizda "xx" 00 bo'lishi kerak

xx 00 00 00 00 00 00 00 00 00

Har bir yangi oddiy tugmachani bosish uchun (masalan, biz "xx", "yy" va "zz" qiymatlari bilan gipotetik a, b va c tugmachalarini shu tartibda bosamiz) siz doimiy (majburiy emas) shunga o'xshash yangi qatorlar,

00 00 xx yy zz 00 00 00

faqat b tugmachasini qo'yganingizda, chiqish o'zgarishi kerak,

00 00 xx 00 zz 00 00 00

va agar siz "nn" qiymati bilan yangi d tugmachasini bosgan bo'lsangiz, a yoki b tugmachasini qo'ymasdan chiqishingiz o'zgarishi kerak,

00 00 xx nn zz 00 00 00

va nihoyat, har bir kalit bo'shatilganda, bu narsaga qayting

00 00 00 00 00 00 00 00

Va nihoyat, agar siz Caps Lock, Num Lock yoki Scroll Lock tugmachalarini bosgan bo'lsangiz, siz bir vaqtning o'zida bir nechta qatorli shunga o'xshash narsalarni olishingiz kerak,

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

Agar bu erda hamma narsa ro'y bersa, davom etish uchun siz oltinsiz!

4 -qadam: Texnik tushuntirish

Texnik tushuntirish
Texnik tushuntirish
Texnik tushuntirish
Texnik tushuntirish

Agar xohlasangiz, bu bosqichni o'tkazib yuborishingiz mumkin. Bu faqat oldingi natijalar uchun tushuntirish. Siz ko'rgan 8 baytli qator yuqoridagi rasmga muvofiq formatlangan.1 Siz bu haqda, shuningdek, USB-HID haqida ushbu vikidan o'zgartirish tugmachalari holati qanday yozilganligini bilib olishingiz mumkin. Asosan, mening kodim har safar yangi tugma bosilganda (PS/2 protokoli buni "make" deb ataydi) oddiy tugmachalarni bosish uchun ishlatiladigan qatorning oxirgi 6 baytidan o'tadi va birinchisini to'ldiradi. "PS/2 skaneri" uchun tegishli "HID skaner kodi" bilan ko'rsatilgan bo'sh bayt (2 -rasmda ko'rsatilganidek, ilova qilingan PDF -dan to'liq ro'yxatni topishingiz mumkin). Va nihoyat, tegishli kalit qo'yilganda (PS/2 protokoli "uzilish" deb ataladi), kod joriy bayt qatori bo'ylab aylanadi va faqat tegishli baytni o'chiradi.

Agar siz bu erga borgan bo'lsangiz va wiki sahifasini o'qigan bo'lsangiz, bu usulda kichik muammo borligini ko'rasiz, odatda kalit qo'yib yuborilganda, HID protokolida qolgan baytlar bo'sh baytlardan qutulish uchun qayta tartibga solinadi. qolgan bo'sh bo'lmagan baytlar orasida. Lekin negadir men qancha urinishimdan qat'i nazar, bosilgan tugmalar uchun keraksiz baytlarni tasodifan tozalamasdan, maqsadga muvofiq ishlay olmadim. Agar siz buni yaxshilash uchun yaxshilab ishlasangiz, sharh qoldiring. Garchi kunning oxirida bu muammo klaviatura funktsiyasiga ta'sir qilmasa, Arduino bosilgan tartibidan qat'i nazar, har bir tugmani bosgan holda ro'yxatdan o'tkazadi (bu amalda hech narsaga ta'sir qilmaydi).

5 -qadam: Yakuniy eskizni yuklash

Armeino -ni USB klaviatura sifatida aniqlash uchun Atmega8U2 yoki 16U2 (UNO Rev3) dasturini nihoyat yangilashdan oldin biz yakuniy eskizni yuklashimiz kerak. Buni yuklaganingizdan so'ng, agar siz ketma -ket monitorga kirsangiz, u har bir yangi tugma bosilganda axlat chiqishini ko'radi, bu hamma narsa o'z maqsadiga muvofiq ishlayotganini ko'rsatadi va biz oxirgi bosqichga o'tishimiz mumkin. VAJJAJ!!!

6 -qadam: dasturiy ta'minotni yangilash

Nihoyat, siz USB klaviatura sifatida ro'yxatdan o'tish uchun Arduino dasturiy ta'minotini yangilashingiz mumkin. Buning uchun men juda ko'p tafsilotlarni aytmayman, chunki bu juda uzoq davom etadi.

  1. "DFU yordamida Uno yoki Mega2560-da Atmega8U2 va 16U2-ni yangilash" haqidagi arduino.cc-dan ushbu qo'llanmani bajaring, lekin "Arduino-usbserial-uno.hex" ni ishlatishdan ko'ra, biriktirilgan "Arduino-klaviatura-0.3.hex" dan foydalaning.
  2. FLIP -da Arduino -ga qarab maqsadli qurilmani Atmega8U2 yoki 16U2 sifatida tanlashni unutmang va aloqa vositasidan USB -ni tanlang va ishga tushirishdan oldin to'g'ri olti burchakli faylni yuklang.
  3. Agar sizda haydovchi xatosi bo'lsa, Windows qurilma menejeriga o'ting va FLIP '\ Program Files (x86) Atmel \' o'rnatish katalogidan noma'lum drayverni qidirishni tanlang.
  4. Agar firmware dasturini FLIP -dan bir necha bor yangilashda xatolarga yo'l qo'ygan bo'lsangiz, FLIP -ni yoping va "Boshlash menyusi / FLIP \" -dan "Sozlamalarni tiklash" -ni ishga tushiring, so'ng FLIP -ni qayta ishga tushiring va qayta urinishdan oldin konfiguratsiya bosqichlarini bajaring, bu odatda men uchun ishlaydi.
  5. Agar siz Arduino -ni asl holatiga qaytarishni xohlasangiz, yuqoridagi arduino.cc qo'llanmasiga amal qiling, bu hex faylni ishlatmasdan.

7 -qadam: rohatlaning …

Xursand bo'ling …
Xursand bo'ling …

Endi yangi o'zgartirilgan PS/2 ni USB klaviaturasidan zavqlaning …. P. S. Bu ko'rsatma Arduino orqali noutbukga ulangan tashqi PS/2 klaviaturasidan to'liq yozilgan:)

Tavsiya: