Мазмұны:

USB адаптеріне Arduino PS/2: 7 қадам (суреттермен)
USB адаптеріне Arduino PS/2: 7 қадам (суреттермен)

Бейне: USB адаптеріне Arduino PS/2: 7 қадам (суреттермен)

Бейне: USB адаптеріне Arduino PS/2: 7 қадам (суреттермен)
Бейне: Сложно ли переходить на Linux?🐧 2024, Шілде
Anonim
USB адаптеріне Arduino PS/2
USB адаптеріне Arduino PS/2
USB адаптеріне Arduino PS/2
USB адаптеріне Arduino PS/2

Сіз ескі PS/2 пернетақтасын ноутбукпен немесе жаңа жұмыс үстелі компьютерімен қолданғыңыз келді ме және оларда PS/2 порттары жоқ екенін білдіңіз бе? Содан кейін қарапайым адам сияқты USB адаптеріне арзан PS/2 сатып алудың орнына, сіздің Arduino -ны PS/2 -ден USB -адаптері ретінде пайдаланғыңыз келді. Содан кейін сіз дұрыс жерге келдіңіз:)

Біз оған кірмес бұрын әділ ескерту. Егер сіз UNO/Mega құрылғысын USB-HID құралы ретінде қолдансаңыз (пернетақтада шектелмейді, ол тінтуір, джойстик және т.б. болуы мүмкін), сіз Arduino ретінде оның функцияларын уақытша жоғалтасыз. Яғни, сіз сериялық байланысты пайдалана алмайсыз және оны USB арқылы қайта бағдарламалай алмайсыз. Бұл біз микробағдарламаны USB интерфейсінің чипіне қайта жазатын боламыз (қайта қарауға байланысты USB портына жақын Atmega8U2 және 16U2). Бірақ уайымдамаңыз, егер сіз UNO/Mega кірпішін айналдыра алмайсыз, бұл әрқашан қайтымды.

Кездейсоқ, егер сізде USB-HID мүмкіндігі бар Arduino болса (Arduino Pro Micro немесе Леонардо және т.б. Google-де іздеңіз), сіз бұрыннан бар осы нұсқаулықты ұмытып кете аласыз, өзіңізді қиыншылық әлемінен құтқару үшін осы жерге барыңыз. әзіл!

Жабдықтар

  • Аппараттық құрал

    • Arduino UNO немесе Mega
    • PS/2 пернетақтасы
    • Қосымша Arduino немесе кез келген USB бағдарламашысы (USBasp және т.б.) ыңғайлы болуы мүмкін.
  • Бағдарламалық қамтамасыз ету

    • Atmel FLIP
    • Arduino IDE үшін PS2KeyAdvanced кітапханасы

1 -қадам: сымдарды орнату және орнату

Сымдарды орнату және орнату
Сымдарды орнату және орнату
Сымдарды орнату және орнату
Сымдарды орнату және орнату
Сымдарды орнату және орнату
Сымдарды орнату және орнату
Сымдарды орнату және орнату
Сымдарды орнату және орнату

Жағдайға байланысты сіз үзіліс тақтасын таба аласыз немесе аналық платадан ескі портты құтқара аласыз (менің 2 -ші әрекетім) немесе егер сіз өзіңізді нашар сезінсеңіз, күлгін ұяны толығымен қиып, 4 сымды шығарып тастай аласыз (менің бірінші әрекетім) және оларды БҰҰ -ға қосыңыз.

Пернетақта _ Arduino

+5В (VCC) _+5V

GROUND _GND

САҒАТ _ PIN 2

ДЕРЕКТЕР _ PIN3*

*Сіз DATA түйреуішін қалаған нәрсеге өзгерте аласыз, бірақ эскизді жаңартуды ұмытпаңыз.

** CLOCK БҰҰ -дағы PIN 2 немесе 3 (эскизді жаңартуды ұмытпаңыз) болуы мүмкін Arduino -дағы үзу түйреуішіне қосылуы керек. Қосымша ақпарат алу үшін және тақтаның әр түрлі конфигурациясы үшін PS2KeyAdvanced кітапхана мысалдарының түсініктеме бөлімін тексеруге болады.

2 -қадам: пернетақтаны тексеру

Палубаға шықпас бұрын, бәрі пернетақта мен кітапханада жұмыс істейтініне көз жеткізіңіз.

Мұнда мен PS2KeyAdvanced кітапханасының SimpleTest.ino -ның өзгертілген нұсқасын жаңартылған сағат және деректер түйреуіштері, сонымен қатар «жасау» мен «үзу» ұсыныстарын қоса тіркедім. Мұнда шығыс үшін бірнеше түсініктеме бар.

  • Бұл «жасау» және «бұзу» сканер-код жүйесі және «код»-бұл пернені басудың немесе босатудың оқшауланған (c & 0xFF) сканер коды PS/2-ді USB-ге түрлендіруде маңызды рөл атқарады және мен сізге оқуды ұсынамын Егер сіз жақсартуды немесе өзгертуді жоспарлап отырсаңыз (кілттерді әр түрлі орналасуларға ауыстыру) жақсы түсіну үшін кітапханамен бірге келетін басқа 2 мысал соңғы эскиз. Сондай -ақ, '\ Documents / Arduino / librarys / PS2KeyAdvanced / src \' ішінен 'PS2KeyAdvanced.h' немесе 'PS2KeyCode.h' файлдарын ашу арқылы кітапханадан PS/2 сканер кодтарының толық тізімін алуға болады.
  • «Мәртебе биттері» модификатор пернелерін білдіреді (Ctrl, Alt, Windows, Shift/Caps) және сіз әрбір қосымша модификатор кілтімен бұл мән өзгеретінін көресіз, ал қалыпты (өзгертілмейтін) кілтінің негізгі «коды» өзгермейді. Бірақ соңғы эскизде мен бұл әдісті елемедім және бұл өзгертуші пернелерді қарапайым пернелерді басу ретінде енгіздім (Сіз бұл пернелердің бірнеше пернелер басылғанына қарамастан, қалыпты пернелерден тәуелсіз «make» және «break» сканер кодына ие екенін көресіз.) себебі бұл USB-HID протоколымен жұмысты жеңілдетеді.

3 -қадам: PS/2 USB конверсиясын алдын ала қарау

Atmega8U2 немесе 16U2 (UNO Rev3) жаңартпас бұрын, біздің Arduino-ны USB пернетақтасы ретінде анықтау үшін, біз барлық түрлендіру материалдарының дұрыс жұмыс істеп тұрғанына және түпкілікті эскиз жүктелгеніне көз жеткізуіміз керек, әйтпесе жазбаны қайта жаза беру үлкен ауыртпалық болады. Дұрыс эскизді жүктеу үшін түпнұсқалық және USB-пернетақтадағы он алтылық файлдар арасында қайта-қайта микробағдарлама. Бұл әсіресе USBasp немесе басқа Arduino сияқты провайдер ретінде қолданылатын сыртқы бағдарламашы болмаса, дұрыс болады. Міне, біз жағдайды тексеру үшін адам оқитын шығыспен (сериялық монитор арқылы) соңғы эскиздің 'DEBUG' нұсқасын жүктейміз.

Сіз көрген нәтиже әр пернені босатқанда осылай пішімделеді, 00 00 00 00 00 00 00 00

Міне, күтілетін өнімге негізгі түсініктеме,

Әрбір жаңа модификаторды басу үшін сіз 'xx' әр түрлі мәндері бар жаңа жолды алуыңыз керек. Соңында, барлық өзгертуші пернелерді босатқанда 'xx' 00 болуы керек

xx 00 00 00 00 00 00 00 00 00

Әрбір жаңа кілт қалыпты басу үшін (мысалы, біз «xx», «yy» және «zz» мәндері бар гипотетикалық a, b және c пернелерін басамыз) сіз үздіксіз алуыңыз керек (міндетті емес) осы сияқты жаңа жолдар,

00 00 xx yy zz 00 00 00

Егер сіз тек b пернесін босатсаңыз, шығыс өзгеруі керек,

00 00 xx 00 zz 00 00 00

ал егер a немесе b пернесін босатпай 'nn' мәні бар жаңа d пернесін бассаңыз, шығыс өзгеруі керек,

00 00 xx nn zz 00 00 00

және әр кілт босатылғанда, соған оралыңыз,

00 00 00 00 00 00 00 00

және егер сіз Caps Lock, Num Lock немесе Scroll Lock пернелерін бассаңыз, сіз бір уақытта бірнеше жолдары бар осындай нәрсені алуыңыз керек,

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

Егер бәрі осында болса, сіз жалғастыру үшін алтынсыз!

4 -қадам: Техникалық түсініктеме

Техникалық түсініктеме
Техникалық түсініктеме
Техникалық түсініктеме
Техникалық түсініктеме

Қаласаңыз, бұл қадамды өткізіп жіберуге болады. Бұл алдыңғы нәтижелердің түсіндірмесі ғана. Сіз көрген 8 байтты шығару жиыны жоғарыдағы суретке сәйкес пішімделген.1 Сіз бұл туралы көп біле аласыз, сонымен қатар USB-HID туралы осы викиден өзгертуші пернелердің статусы қалай жазылғанын біле аласыз. Негізінде менің кодым жаңа пернені басқан сайын (PS/2 протоколы «жасау» деп аталады) ол қалыпты пернелерді басу үшін пайдаланылатын массивтің соңғы 6 байтын айналады және біріншісін толтырады. алынған «PS/2 сканер коды» үшін сәйкес «HID сканер кодымен» табылған бос байт. Ақырында, тиісті кілт босатылған кезде (PS/2 протоколы «үзіліс» деп аталады) код ағымдағы байт массивінде айналады және тек тиісті байтты тазартады.

Егер сіз осы жерге дейін барған болсаңыз, және егер сіз вики бетін оқысаңыз, онда бұл әдісте кішкене проблема бар екенін көресіз, әдетте кілт босатылғанда, HID протоколында қалған байттар бос байттан құтылу үшін қайта реттеледі. қалған бос емес байттар арасында. Бірақ қандай да бір себептермен мен қанша тырысқанымға қарамастан, оны басылған пернелердің қажетсіз байттарын кездейсоқ тазартпай, мақсатты түрде жұмыс істей алмадым. Егер сіз оны жақсарту үшін оны жұмыс істеу үшін қалдырсаңыз, түсініктеме қалдырыңыз. Күннің соңында бұл мәселе пернетақтаның жұмысына әсер етпесе де, Arduino басылған тәртіпке қарамастан, әр пернеге басуды тіркейді (бұл іс жүзінде ешнәрсеге әсер етпейді).

5 -қадам: Қорытынды эскизді жүктеу

Біздің Arduino -ны USB пернетақтасы ретінде анықтау үшін Atmega8U2 немесе 16U2 (UNO Rev3) микробағдарламасын жаңартпас бұрын біз соңғы эскизді жүктеуіміз керек. Сіз оны жүктегеннен кейін, егер сіз сериялық мониторға кірсеңіз, ол қоқысты басып шығаратынын көреді, бұл әр жаңа пернені басқанда, бұл бәрі ойдағыдай жұмыс істейтінін көрсетеді және біз соңғы қадамға өтуіміз мүмкін. АЛАҚАЙ!!!

6 -қадам: микробағдарламаны жаңарту

Соңында сіз Arduino микробағдарламасын USB пернетақтасы ретінде тіркеу үшін жаңарта аласыз. Бұл үшін мен егжей -тегжейлі айтпаймын, себебі бұл нұсқаулықты тым ұзақ етеді.

  1. Arduino.cc сайтынан 'DFU көмегімен Unme немесе Mega2560 жүйесінде Atmega8U2 және 16U2 жаңарту' туралы нұсқаулықты орындаңыз, бірақ 'Arduino-usbserial-uno.hex' қолданудың орнына бекітілген 'Arduino-keyboard-0.3.hex' пайдаланыңыз.
  2. FLIP -те Arduino -ға байланысты мақсатты құрылғыны Atmega8U2 немесе 16U2 ретінде таңдауды ұмытпаңыз және байланыс ортасынан USB -ді таңдап, ақырында іске қосуды таңдау алдында дұрыс он алтылық файлды жүктеңіз.
  3. Егер сіз драйвер қатесіне тап болсаңыз, Windows Device Manager бөліміне өтіп, FLIP '\ Program Files (x86) Atmel \' каталогынан белгісіз драйверді іздеуді таңдаңыз.
  4. Егер сіз FLIP -тен микробағдарламаны бірнеше рет жаңарту кезінде қатеге тап болсаңыз, FLIP -ті жабыңыз және «Бастау мәзірі / FLIP \» ішінен «Қалпына келтіру параметрлерін» іске қосыңыз, содан кейін FLIP -ты қайта іске қосыңыз және әрекетті қайталамас бұрын конфигурация қадамдарын орындаңыз, бұл әдетте мен үшін жұмыс істейді.
  5. Егер сіз Arduino -ны бастапқы күйіне қайтарғыңыз келсе, осы он алтылық файлды пайдаланбай, жоғарыдағы arduino.cc хатына арналған нұсқаулықты орындаңыз.

7 -қадам: ләззат алыңыз …

Ләззат алыңыз …
Ләззат алыңыз …

Енді жаңадан түрлендірілген PS/2 USB пернетақтасынан ләззат алыңыз. P. S. Бұл нұсқаулық толығымен ноутбукке Arduino арқылы қосылған сыртқы PS/2 пернетақтасынан жазылған:)

Ұсынылған: