Агуулгын хүснэгт:

USB адаптер руу Arduino PS/2: 7 алхам (зурагтай)
USB адаптер руу Arduino PS/2: 7 алхам (зурагтай)

Видео: USB адаптер руу Arduino PS/2: 7 алхам (зурагтай)

Видео: USB адаптер руу Arduino PS/2: 7 алхам (зурагтай)
Видео: MKS Gen L — Марлин 1 1 9 (configuration.h) 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 Pro Micro эсвэл Леонардо гэх мэт) хайлт хийх боломжтой Arduino байгаа бол та хэзээ нэгэн цагт энд байсан зааварчилгааг мартаж, дэлхийн бэрхшээлээс өөрийгөө аврах болно. тоглож байна!

Хангамж

  • Техник хангамж

    • Arduino UNO эсвэл Mega
    • PS/2 гар
    • Нэмэлт Arduino эсвэл ямар ч төрлийн USB програмист (USBasp, гэх мэт) хэрэг болно.
  • Програм хангамж

    • Атмел FLIP
    • Arduino IDE -д зориулсан PS2KeyAdvanced номын сан

Алхам 1: Утас холбох, тохируулах

Утас холбох ба тохируулах
Утас холбох ба тохируулах
Утас холбох ба тохируулах
Утас холбох ба тохируулах
Утас холбох ба тохируулах
Утас холбох ба тохируулах
Утас холбох ба тохируулах
Утас холбох ба тохируулах

Нөхцөл байдлаас шалтгаалан та хагарах самбар олж авах эсвэл хуучин портыг эх хавтангаас аврах боломжтой (миний 2 дахь оролдлого) эсвэл хэрэв та сэтгэл санаа муутай байвал ягаан үүрийг бүхэлд нь огтолж, 4 утсыг ил гаргаж болно (миний анхны оролдлого) ба тэдгээрийг НҮБ -тай холбоно уу.

Гар _Arduino

+5V (VCC) _+5V

ГАЗАР _ GND

ЦАГИЙН _ Зүү 2 **

Өгөгдөл _ PIN3*

*Та DATA пин -ийг хүссэн үедээ өөрчилж болно, гэхдээ ноорогоо шинэчлэхээ мартуузай.

** CLOCK нь Arduino дээрх тасалдлын зүүтэй холбогдсон байх ёстой бөгөөд энэ нь зөвхөн НҮБ дээр PIN 2 эсвэл 3 байж болно (ноорогоо шинэчлэхийг санаарай). Дэлгэрэнгүй мэдээлэл болон самбарын өөр өөр тохиргоог авахын тулд PS2KeyAdvanced номын сангийн жишээнүүдийн тайлбар хэсгийг шалгаж болно.

Алхам 2: Гарын тест хийх

Бүх тавцан дээр гарахаасаа өмнө бүх зүйл гар болон номын санд ажиллаж байгаа эсэхийг шалгаарай.

Энд би PS2KeyAdvanced номын сангийн SimpleTest.ino -ийн өөрчилсөн хувилбарыг шинэчилсэн цаг, өгөгдлийн хавчуургатай, мөн "хийх", "таслах" дүрслэлтэй хавсаргасан болно. Гаралтын талаархи зарим тайлбарыг энд оруулав.

  • Энэхүү скайн кодын "хийх", "таслах" систем ба түлхүүр дарах эсвэл түлхүүр гаргах хувилбаруудын тусгаарлагдсан (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 хөрвүүлэлтийг урьдчилан үзэх

Armeino-г USB гар гэж тодорхойлохын тулд Atmega8U2 эсвэл 16U2 (UNO Rev3) -ыг шинэчлэхээс өмнө хөрвүүлэх бүх зүйл зөв ажиллаж байгаа бөгөөд эцсийн эцсийн зургийг байршуулсан эсэхийг шалгах хэрэгтэй. Анхны болон 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 байтыг тойрч, эхний хэсгийг бөглөнө. хоосон байтыг холбогдох 'HID scancode' (Зураг 2 -т харуулав. Мөн та хавсаргасан PDF -ээс бүрэн жагсаалтыг олж болно) хүлээн авсан 'PS/2 scancode' -г олдог. Эцэст нь холбогдох түлхүүрийг гаргасны дараа (PS/2 протокол нь үүнийг "завсарлага" гэж нэрлэдэг) код нь одоогийн байтын массиваар дамжих бөгөөд зөвхөн холбогдох байтыг цэвэрлэнэ.

Хэрэв та энд хүртэл дагаж байсан бол, мөн та вики хуудсыг унших юм бол энэ аргын хувьд бага зэрэг асуудал гардаг бөгөөд ихэвчлэн түлхүүрийг суллахад HID протоколд үлдсэн байтуудыг хоосон байтаас салахаар дахин зохион байгуулдаг. үлдсэн хоосон байтын хооронд. Гэхдээ яагаад ч юм би хичнээн олон аргаар оролдсоноос үл хамааран дарагдсан товчлуурын хүсээгүй байтыг санамсаргүй цэвэрлэхгүйгээр төлөвлөсөн ёсоор нь ажиллуулж чадсангүй. Хэрэв та үүнийг сайжруулахын тулд үүнийг сайжруулах боломжтой бол сэтгэгдэл үлдээнэ үү. Хэдийгээр өдрийн төгсгөлд энэ асуудал гарны функцэд нөлөөлөхгүй боловч Arduino нь дарагдсан дарааллаас үл хамааран товчлуур дарагдсан болгоныг бүртгэдэг хэвээр байгаа (энэ нь практик хэрэглээнд ямар ч нөлөө үзүүлэхгүй).

Алхам 5: Эцсийн ноорог байршуулж байна

Эцэст нь Atmega8U2 эсвэл 16U2 (UNO Rev3) програмыг шинэчлэхээсээ өмнө манай Arduino -г USB гар гэж танихын тулд Final Sketch -ийг байршуулах ёстой. Үүнийг байршуулсны дараа, хэрэв та цуваа дэлгэц рүү очвол шинэ товчлуур дарагдсан үед хог хэвлэж байгааг харах болно. ЗА !!!

Алхам 6: Firmware -ийг шинэчлэх

Эцэст нь та Arduino -ийн програмыг USB гар болгон бүртгүүлэхийн тулд шинэчлэх боломжтой. Үүний тулд би энэ талаар маш дэлгэрэнгүй ярихгүй, учир нь энэ нь маш урт хугацаанд сургамж болно.

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

Алхам 7: Таашаал аваарай …

Сайхан амраарай ……
Сайхан амраарай ……

Одоо саяхан хөрвүүлсэн PS/2 -ийг USB гараар сайхан өнгөрүүлээрэй. P. S. Энэхүү зааварчилгааг миний зөөврийн компьютерт Arduino -ээр холбогдсон гадаад PS/2 гарнаас бүрэн бичсэн болно:)

Зөвлөмж болгож буй: