Мазмуну:

USB адаптерине Arduino PS/2: 7 кадам (сүрөттөр менен)
USB адаптерине Arduino PS/2: 7 кадам (сүрөттөр менен)

Video: USB адаптерине Arduino PS/2: 7 кадам (сүрөттөр менен)

Video: USB адаптерине Arduino PS/2: 7 кадам (сүрөттөр менен)
Video: Электроника: Эксперимент будет ли PS\2 мышь работать на USB интерфейсе 2024, Июль
Anonim
USB адаптерине Arduino PS/2
USB адаптерине Arduino PS/2
USB адаптерине Arduino PS/2
USB адаптерине Arduino PS/2

Сиз качандыр бир кезде эски PS/2 клавиатураңызды ноутбук же жаңы рабочий компьютериңиз менен колдонууну каалап, аларда PS/2 порту жок экенин билдиңиз беле? Андан кийин кадимки адамдай эле арзан USB/USB адаптерин сатып алуунун ордуна, сиздин Arduino'ду USB/USB адаптерине PS/2 катары колдонгуңуз келген. Андан кийин сиз туура жерге келдиңиз:)

Ага кирерден мурун адилеттүү эскертүү. 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
    • PS2KeyAdvanced китепканасы Arduino IDE үчүн

1 -кадам: Зымдарды орнотуу жана орнотуу

Кабелдөө жана орнотуу
Кабелдөө жана орнотуу
Кабелдөө жана орнотуу
Кабелдөө жана орнотуу
Кабелдөө жана орнотуу
Кабелдөө жана орнотуу
Кабелдөө жана орнотуу
Кабелдөө жана орнотуу

Кырдаалга жараша сиз үзүлүш тактасын таба аласыз же эски портту аналык платадан куткара аласыз (менин 2 -аракетим) же эгер сиз өзгөчө маанайсыз болсоңуз, анда кызгылт түстөгү уячаны толугу менен кесип, 4 зымды ачыкка чыгара аласыз (менин биринчи аракетим) жана аларды БУУга туташтырыңыз.

Баскычтоп _ Arduino

+5V (VCC) _+5V

GROUND_GND

Саат _ PIN 2 **

МААЛЫМАТ _ PIN3*

*Сиз DATA пинин каалаган убакта өзгөртө аласыз, бирок эскизди жаңыртууну унутпаңыз.

** CLOCK БУУнун PIN 2 же 3 (эскизин жаңыртууну унутпаңыз) болушу мүмкүн болгон Arduinoдогу үзгүлтүк пинине туташтырылышы керек. Көбүрөөк маалымат жана ар кандай такталар конфигурациялары үчүн PS2KeyAdvanced китепканасынын мисалдарынын комментарийлер бөлүмүн текшере аласыз.

2 -кадам: клавиатураны тестирлөө

Палубага баруудан мурун, баары клавиатурада жана китепканада иштеп жаткандыгын текшериңиз.

Бул жерде мен PS2KeyAdvanced китепканасынын SimpleTest.ino'нун өзгөртүлгөн версиясын жаңыртылган саат жана маалымат төөнөгүчтөрү, ошондой эле "жасоо" жана "үзүү" көрсөтмөсү менен тиркеп койдум. Бул жерде чыгаруу үчүн кээ бир түшүндүрмө бар.

  • Бул "жасоо" жана "бузуу" скандоо системасы жана "Code", бул баскычты басуу же ачуу релизинин изоляцияланган (c & 0xFF) сканер коду PS/2ден USBге которууда маанилүү ролду ойнойт жана мен сизге окууну сунуштайм Китепкана менен келген башка 2 мисал, эгер сиз жакшыртууну же өзгөртүүнү пландап жатсаңыз, жакшыраак түшүнүү үчүн (баскычтарды ар кандай макеттерге алмаштыруу) акыркы эскиз. Ошондой эле, '\ Documents / Arduino / libraries / PS2KeyAdvanced / src \' дан 'PS2KeyAdvanced.h' же 'PS2KeyCode.h' файлдарын ачуу менен китепканадан PS/2 скандоо коддорунун толук тизмесин ала аласыз.
  • "Статус биттери" өзгөрткүч баскычтарга (Ctrl, Alt, Windows, Shift/Caps) тиешелүү жана сиз ар бир кошумча өзгөрткүч ачкыч менен бул маанинин кадимки (өзгөртүлбөгөн) ачкычтын негизги "коду" өзгөрбөй турганын көрөсүз. Бирок акыркы эскизде мен бул ыкманы этибарга албадым жана бул өзгөрткүч баскычтарды жөнөкөй баскычтар катары ишке ашырдым (Сиз бул өзгөрткүч баскычтарда кадимки баскычтардан көз карандысыз "жасоо" жана "бузуу" скандоо коду бар экенин көрөсүз.) анткени бул USB-HID протоколу менен иштерди жеңилдетет.

3 -кадам: PS/2 USB Conversion Алдын ала көрүү үчүн

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

Ар бир жаңы кадимки баскычтар үчүн (мисалы, биз гипотетикалык ачкычты a, b жана c баскычтарын 'xx', 'yy' жана 'zz' ирети менен басабыз) үзгүлтүксүз (милдеттүү эмес) ушул сыяктуу жаңы саптар,

00 00 xx yy zz 00 00 00

b баскычын чыгарганда, өндүрүш өзгөрүшү керек,

00 00 xx 00 zz 00 00 00

жана эгерде "nn" мааниси бар d жаңы баскычын бассаңыз, анда a же b баскычын коё бербестен, сиздин чыгууңуз өзгөрүшү керек,

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 байтын айланат жана биринчисин толтурат. бош "байт" ал тиешелүү "HID скандоо" менен табылган (2 -сүрөттө көрсөтүлгөн. Ошондой эле тиркелген PDFтин толук тизмесин таба аласыз) "PS/2 скандоо" үчүн. Акыры, тиешелүү ачкыч чыгарылганда (PS/2 протоколу "тыныгуу" деп аталат), код учурдагы байт массивин айланат жана тиешелүү байтты гана тазалайт.

Эгерде сиз бул жакка чейин ээрчип жүргөн болсоңуз жана ошондой эле вики баракчасын окусаңыз, анда бул методдо бир аз көйгөй бар экенин көрөсүз, адатта ачкыч бошотулганда, HID протоколунда калган байттар бош байттардан кутулуу үчүн кайра иреттелет. бош калган байттардын ортосунда. Бирок эмнегедир мен канчалык көп аракет кылганыма карабастан, басылган баскычтар үчүн керексиз байттарды кокусунан тазаламайынча, иштей албадым. Эгерде сиз муну жакшырта алсаңыз, иштөө үчүн комментарий калтырыңыз. Күндүн аягында бул көйгөй клавиатуранын иштешине таасирин тийгизбесе дагы, Arduino басылган буйрутмасына карабастан, ар бир басылган басууну каттайт (бул практикалык колдонууда эч нерсеге таасир этпейт).

5 -кадам: Акыркы эскизди жүктөө

Ошентип, биздин Arduino -ны USB клавиатурасы катары аныктоо үчүн Atmega8U2 же 16U2 (UNO Rev3) программасын акыры жаңыртуудан мурун биз Final Sketchти жүктөшүбүз керек. Муну жүктөгөндөн кийин, эгер сиз сериялык мониторго барсаңыз, анда ал таштанды басып чыгарылганын көрөсүз, ар бир жаңы баскыч басылганда, бул баары ойдогудай иштеп жатканынын жакшы жышааны жана биз акыркы кадамга өтө алабыз. YAY !!!

6 -кадам: Камтылган программаны жаңыртуу

Акыры сиз USB клавиатурасы катары катталуу үчүн Arduino программаңызды жаңырта аласыз. Бул үчүн мен майда -чүйдөсүнө чейин барбайм, анткени бул өтө узак убакытка созулат.

  1. Arduino.cc бул колдонмону ээрчиңиз 'DFU аркылуу Uno же Mega2560 боюнча Atmega8U2 жана 16U2'ди жаңыртуу', бирок 'Arduino-usbserial-uno.hex' колдонуунун ордуна, тиркелген 'Arduino-клавиатура-0.3.hex' колдонуңуз.
  2. FLIPде максаттуу түзмөктү Arduinoго жараша Atmega8U2 же 16U2 катары тандап алууну унутпаңыз жана байланыш чөйрөсүнөн USBди тандап, акыры иштетүүнү тандаардан мурун туура он алтылык файлды жүктөңүз.
  3. Эгерде сиз драйверден ката кетирсеңиз, Windows түзмөк менеджерине өтүп, FLIP '\ Program Files (x86) Atmel \' каталогунун ичинен белгисиз драйверди издеп көрүңүз.
  4. Эгерде сиз FLIPтен программалык камсыздоону бир нече жолу жаңыртып жатканда ката кетирсеңиз, FLIPти жаап, 'Старт меню / FLIP \' ден 'Тууралоолорду Баштоо' дегенди иштетиңиз, андан кийин FLIPти өчүрүп күйгүзүңүз жана кайра аракет кылардан мурун конфигурация кадамдарын жасаңыз, бул көбүнчө мен үчүн иштейт.
  5. Эгерде сиз Arduino'ду баштапкы абалына кайтаргыңыз келсе, бул он алтылык файлды колдонбостон, жогорудагы arduino.cc катына баш ийиңиз.

7 -кадам: Ырахат ……

Ырахат ……
Ырахат ……

Эми жаңы которулган PS/2ден USB клавиатурасынан ырахат алыңыз …. P. S. Бул көрсөтмө толугу менен Arduino аркылуу ноутбугума туташкан тышкы PS/2 клавиатурасынан жазылган:)

Сунушталууда: