Mundarija:

Dasturlashtiriladigan klaviatura: 5 qadam (rasmlar bilan)
Dasturlashtiriladigan klaviatura: 5 qadam (rasmlar bilan)

Video: Dasturlashtiriladigan klaviatura: 5 qadam (rasmlar bilan)

Video: Dasturlashtiriladigan klaviatura: 5 qadam (rasmlar bilan)
Video: 30ta maxfiy sir клавиатурадаги 30та махфий сир 2024, Iyul
Anonim
Dasturlashtiriladigan klaviatura
Dasturlashtiriladigan klaviatura
Dasturlashtiriladigan klaviatura
Dasturlashtiriladigan klaviatura

Bu loyihada men sizga eng ko'p ishlatiladigan klaviatura yorliqlari, ilovalari va boshqalarni xaritalash uchun nisbatan sodda va arzonroq programlanadigan klaviatura yasashni ko'rsataman.

Bu klaviatura barcha asosiy operatsion tizimlarda klaviatura sifatida aniqlanadi, qo'shimcha drayverlarga hojat yo'q.

Ta'minotlar

  • Aylanadigan kodlovchi.
  • Ko'p tugmalar (sizning ehtiyojlaringizga bog'liq).
  • Arduino Pro Micro, Arduino Leonardo yoki Atmega32U4 MCU -ga ega bo'lgan boshqa har qanday dev.
  • Tel, lehim, lehim temir va boshqalar.
  • (Ixtiyoriy) Klaviatura sirg'alib ketmasligi uchun og'ir tayanch, men eski 3,5 dyuymli qattiq diskdan foydalanaman

1 -qadam: Elektr davri

Elektr davri
Elektr davri

Men Arduino Pro Micro dev kartasini Atmega32U4 MCU bilan ishlatishni tanladim, u 18 ta raqamli pinli.

Bosish tugmachalari va aylanadigan enkoderni ulash uchun pinlar aniq tartibda tanlanmagan, lekin ba'zi narsalarga e'tibor qaratish lozim:

  1. Raqamli o'qiy oladigan barcha pinlar tashqi tortishish rezistorlarini yumshatishga imkon beradigan ichki tortish moslamalariga ega. Albatta, kod shunga mos ravishda yangilanishi kerak, chunki u tugma bosilganda pin holati pastdan yuqoriga ko'tarilishini kutadi.
  2. Encoder.h kutubxonasining misoli shuni ko'rsatdiki, MCUga ulangan ikkala pin ham pinlarni uzib qo'yganda, koderning eng yaxshi ishlashiga erishiladi. Atmega32U4 analog pinlarining ko'pchiligi uzilish qobiliyatiga ega emas.
  3. Rezistorning aniq qiymatlari unchalik muhim emas, 1 kΩ dan 100 kΩ gacha bo'lgan har qanday narsa yaxshi ishlaydi. Kattaroq qarshilik qiymatlari kichik quvvat sarflashga imkon beradi, lekin kuchlanish o'zgarishiga sekinroq javob beradi. O'zingiz uchun eng muhim bo'lgan rezistorlarni tanlang.
  4. Kontaktning eskirishi va sakrashi tufayli mexanik kodlovchi eng ishonchli narsa emas. Shuning uchun yaxshi echish kerak. Men tanlagan kondansatör qiymatlari va koddagi kechikish vaqti, ehtimol siz uchun eng yaxshi natijalarni bermaydi. Shuning uchun ozgina tajriba o'tkazish kerak. Yoki optik kodlovchi kabi narsaga o'ting, lekin uning narxi ancha yuqori.

2 -qadam: yig'ish

O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish

Men klaviaturani iloji boricha toza qilishni xohlardim, shuning uchun men prototip kartasining orqa qismidagi barcha komponentlarni lehimladim. Menimcha, agar klaviatura kichik burchak ostida ko'tarilsa, ergonomik bo'ladi. Shuning uchun men Arduino Pro Micro -ni alohida taxtaga lehimladim va tugmachalarni bosish uchun barcha raqamli pinlarni sim bilan bog'ladim. USB kabelini shu tarzda ulash qulayroq.

Men eski 3,5 dyuymli qattiq diskni klaviatura uchun tayanch sifatida ishlatishni topdim, u juda og'ir va ish paytida taxtaning siljishini oldini oladi (toymasin prokladkalar ham yordam beradi). Shuningdek, u 3 mm vintli teshiklari bor, men ularni guruch bilan yopib qo'ydim va taxtani engil burchak bilan mahkamladi.

3 -qadam: dasturlash

Kod Arduino IDE bilan yozilgan. Siz ikkita kutubxonani o'rnatishingiz kerak:

  • Pol Stoffregen tomonidan kodlovchi
  • Arduino klaviatura

Atmega32U4 uchun kompilyatsiya qilish uchun siz Arduino Pro Micro taxta faylini ham o'rnatishingiz kerak, Sparkfun buni qanday qilish bo'yicha ajoyib qo'llanmaga ega.

Oldindan e'tiborga olish kerak bo'lgan narsa - kodingizda "tugmalar bosilmasligi" uchun ehtiyot bo'lish. Bu men bilan sodir bo'ldi va MCU doimiy ravishda tugmachalarni bosib turardi. Buni qanday tuzatish kerakligini bilishning yagona yo'li-yuklash yuklagichini MCUga qayta yoqish. Agar siz ham men kabi bo'lishni istasangiz, yuklovchini yozish uchun ushbu qo'llanmani bajarishingiz mumkin, dasturchi sifatida foydalanish uchun sizga boshqa arduino taxtasi kerak bo'ladi.

Asosiy tsiklda MCU birinchi navbatda har bir tugma holatini o'qiydi, agar LOW holatidan HIGH holatiga o'tish aniqlansa, keyboard_shortcut (i) funktsiyasi bajariladi. I o'zgaruvchisi - bu bosilgan tugmachaning identifikatori, tugmachalarning umumiy raqami ALL_BUTTONS bilan belgilanadi (mening holatimda 15). Bajarilganda, keyboard_shortcut (i) CTRL+SHIFT va keyin tugma identifikatori bilan bog'langan harfni yuboradi: 1-> A, 2-> B, 3-> C va boshqalar CTRL+SHIFT+N kabi ba'zi kombinatsiyalar o'chiriladi. allaqachon Windows10 -da sukut bo'yicha ishlatilgan (bu holda yangi papka yaratish uchun). Bu erda barcha standart Windows yorliqlari ro'yxati keltirilgan. Qisqa vaqtdan so'ng MCU barcha tugmachalarni bo'shatish uchun signal yuboradi va funktsiya asosiy tsiklga qaytadi.

Barcha tugmalar tekshirilgandan so'ng, MCU aylanuvchi kodlovchi joylashuvi o'zgarganligini tekshiradi va agar o'zgartirilsa, keyboard_shortcut (i) yagona identifikator bilan bajariladi.

Enkoder tugmachasini bosish EncoderButtonFlag boolean o'zgaruvchini o'zgartiradi. Enkoder aylantirilganda, aylanish yo'nalishi va encoderButtonFlag qiymatiga qarab, kompyuterga turli xil yorliqlar yuboriladi.

Agar debugFlag 1 ga tuzatilgan bo'lsa, UART orqali ketma -ket monitorga xabar yuboriladi.

4 -qadam: Yorliqlarni sozlash

Yorliqlarni sozlash
Yorliqlarni sozlash
Yorliqlarni sozlash
Yorliqlarni sozlash

Har bir yorliq nima qilsa, sizga ham bog'liq, biz hammamiz har xil imtiyozlarga egamiz. Men o'zim uchun qanday yorliqlarni tuzganimni misol sifatida keltiraman. Men Linux Mint 19.3 dan xfce4 ish stoli menejeri bilan foydalanayapman, shuning uchun mening misollarim asosan bash skriptlarini o'z ichiga oladi, lekin men Windows10 uchun ba'zi asosiy misollarni ko'rsataman.

Birinchi rasmda siz qaysi skriptlarni qaysi yorliqlar bilan bog'laganimni ko'rishingiz mumkin. Bu xfce sozlamalari menyusidan amalga oshiriladi, bu jarayon to'g'ridan -to'g'ri. Siz bu skriptlarni GitHub omborimda topishingiz mumkin

Pastki qismdagi kichikroq 6 tugmachasi veb -brauzer yoki fayl menejeri kabi ilovalarni ishga tushirish uchun mo'ljallangan, bu ilovalarning ba'zilari start_only_one_app.sh skriptidan chaqiriladi, u barcha boshlangan ilovalarning nomlarini oladi va siz boshlamoqchi bo'lgan ilovani qidiradi. Agar dastur oynasi allaqachon mavjud bo'lsa, u diqqat markazida bo'ladi, aks holda ilovaning yangi nusxasi ishga tushiriladi.

Boshqa skriptlar:

  • 2nd_display_control.sh - ikkinchi monitorni yoqish/o'chirish.
  • moon_lamp.sh - oy chiroqimni yoqadi/o'chiradi.
  • pc_load.sh - joriy protsessor va GPUning harorati va harorati bilan xabarlar qabarig'ini yaratadi.
  • shutdown.sh - 1 daqiqali kechikish bilan kompyuterni o'chirishni boshlaydi va qolgan vaqt ko'rsatiladigan bildirishnoma qabarig'ini yaratadi.
  • spec_vpn.sh - ma'lum OpenVPN serveriga ulanadi yoki agar ulanish mavjud bo'lsa, serverdan uziladi.
  • shortcut_controll.sh - buyruqni (ortiqcha, minus, tab, yopish) argument sifatida qabul qiladi, hozirda qaysi oynaga yo'naltirilganligini aniqlaydi va agar maxsus dastur topilsa, nazorat harakatini bajaradi. Masalan, yuqori matn tahrirlovchisida yangi varaqni ochish uchun standart yorliq "CTRL+N" va xfce terminalida "CTRL+T" bo'ladi, shuning uchun bu skript bir xil tugma bilan yuqori va terminalda yangi tab ochishga imkon beradi.

Aylanadigan enkoderning birinchi vazifasi - ovoz balandligini boshqarish, ikkinchisi - shortcut_controll.sh orqali oynani faollashtirishni boshqarish.

Windows operatsion tizimida siz ikkinchi rasmda ko'rsatilgandek, dastur xususiyatlari oynasi orqali ilovalarga yorliqlarni joylashtirishingiz mumkin. Boshqa har qanday narsa uchun siz AutoHotkey -dan foydalanishni xohlaysiz. Bu Windows uchun avtomatlashtirish skriptlari tili.

AHK sintaksisining ba'zi oddiy misollari:

Ovoz balandligini boshqarish

^+t:: {Volume_Up} yuborish

qaytish

^+v:: {Volume_Down} yuborish

qaytish

; Faol oynani yoping

^+h:: WinGetTitle, Sarlavha, A.

PostMessage, 0x112, 0xF060,,, %Sarlavha %

qaytish

; Kompyuterni o'chirish

^+b:: O'chirish /s ni ishga tushiring

5 -qadam: yaxshilanishlar

Yaxshilashlar
Yaxshilashlar

Ba'zi yaxshilanishlar:

  • Yaxshi sifatli tugmalar.
  • PCB prototipi tugmalar bosilganda juda ko'p egiladi.
  • RGB yoritgichi, aylanadigan kodlovchi qaysi funktsiyaga qarab rangini o'zgartiradi.
  • Boshqa tugmalar (IO kengaytiruvchi ICdan foydalaning).
  • Yaxshi aylanadigan kodlovchi (yoki yaxshiroq o'chirish echimi).

Tavsiya: