Mündəricat:
- Təchizat
- Addım 1: Elektrik dövrəsi
- Addım 2: Quraşdırma
- Addım 3: Proqramlaşdırma
- Addım 4: Qısayolları konfiqurasiya edin
- Addım 5: Təkmilləşdirmələr
Video: Proqramlaşdırıla bilən klaviatura: 5 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Bu layihədə ən çox istifadə etdiyiniz klaviatura qısa yollarını, tətbiqlərinizi və daha çoxunu xəritələşdirmək üçün nisbətən sadə və ucuz proqramlaşdırıla bilən klaviaturanın necə hazırlanacağını göstərəcəyəm.
Bu klaviatura bütün əsas əməliyyat sistemlərində klaviatura olaraq aşkarlanır, əlavə sürücülərə ehtiyac yoxdur.
Təchizat
- Rotary kodlayıcı.
- Bir çox (ehtiyaclarınızdan asılı olaraq) düymələr.
- Arduino Pro Micro, Arduino Leonardo və ya Atmega32U4 MCU ilə hər hansı digər inkişaf etdirici lövhə.
- Tel, lehim, lehimləmə dəmiri və s.
- (İsteğe bağlı) Klaviaturanın sürüşməməsi üçün ağır bir baza, köhnə 3.5 "HDD istifadə edirəm
Addım 1: Elektrik dövrəsi
18 ədəd istifadə edilə bilən rəqəmsal sancağı olan Atmega32U4 MCU ilə Arduino Pro Micro dev board istifadə etməyi seçdim.
Düymələri və fırlanan kodlayıcıları birləşdirmək üçün sancaqlar xüsusi bir sifariş nəzərə alınmadan seçildi, lakin bəzi məqamlara diqqət yetirmək lazımdır:
- Bütün rəqəmsal oxuya bilən sancaqlar xarici açılan rezistorları azaltmağa imkan verən daxili çəkmələrə malikdir. Əlbəttə ki, kod müvafiq olaraq yenilənməlidir, çünki düymələrə basıldıqda pin vəziyyətinin aşağıdan yuxarıya doğru getməsini gözləyir.
- Encoder.h kitabxanasında nümunə qeyd etdi ki, MCU -ya qoşulan hər iki sancaq qabiliyyətli sancaqları kəsdikdə kodlayıcının ən yaxşı performansına nail olunur. Atmega32U4 analog pinlərinin əksəriyyətində kəsmə qabiliyyəti yoxdur.
- Tam açılan rezistor dəyərlərinin çox da əhəmiyyəti yoxdur, 1 kΩ-dan 100 kΩ-a qədər hər şey yaxşı işləyəcək. Daha böyük müqavimət dəyərləri daha az enerji sərf etməyə imkan verir, lakin gərginlik dəyişikliyinə daha yavaş pin reaksiyası ilə nəticələnir. Yalnız ən çox dəyər verən rezistorları seçin.
- Mexanik kodlayıcılar təmas aşınması və sıçrayış səbəbiylə ən etibarlı şeylər deyil. Buna görə yaxşı bir debuninq həllinə ehtiyac var. Seçdiyim kondansatör dəyərləri və koddakı gecikmə vaxtları sizin üçün ən yaxşı nəticələr verməyəcək. Buna görə bir az təcrübəyə ehtiyac var. Və ya optik kodlayıcı kimi bir şeyə keçin, amma qiyməti xeyli yüksəkdir.
Addım 2: Quraşdırma
Klaviaturanı mümkün qədər təmiz etmək istədim, buna görə prototip lövhəsinin arxasındakı bütün komponentləri lehimlədim. Klaviatura kiçik bir açıda yüksək istifadə olunarsa daha erqonomik olacağını düşündüm. Buna görə ayrı bir lövhədə Arduino Pro Micro -nu lehimlədim və düymələri basmaq üçün bütün rəqəmsal sancaqları tellə bağladım. USB kabelini bu şəkildə bağlamaq daha rahatdır.
Klaviatura üçün əsas kimi istifadə etmək üçün köhnə 3,5 HDD tapdım, olduqca ağırdır və işləyərkən lövhənin masanın üstündən sürüşməsini maneə törədir (sürüşmə əleyhinə yastıqlar da kömək edir). Ayrıca, pirinç dayaqları vidaladığım 3 mm rahat vida delikləri var. lövhəni yüngül bir açı ilə düzəldin.
Addım 3: Proqramlaşdırma
Kod Arduino IDE ilə yazılmışdır. 2 kitabxana qurmalısınız:
- Paul Stoffregen tərəfindən kodlayıcı
- Arduino tərəfindən klaviatura
Atmega32U4 üçün tərtib etmək üçün Arduino Pro Micro lövhə faylını da yükləməlisiniz, Sparkfun bunu necə etmək üçün böyük bir dərsliyə malikdir.
Əvvəlcədən qeyd etmək lazım olan bir şey, kodunuzda "düymələri basıldığını" buraxmamaq üçün diqqətli olmaqdır. Bu mənim başıma gəldi və MCU daim bəzi düymələr birləşməsini spamlayırdı. Bunun necə düzəldiləcəyini bildiyim yeganə yol, yükləyicini MCU-ya yenidən yandırmaqdır. Mənim kimi sona çatacaqsınızsa, yükləyicini yazmaq üçün bu təlimatı izləyə bilərsiniz, proqramçı olaraq istifadə etmək üçün başqa bir arduino lövhəsinə ehtiyacınız olacaq.
Əsas döngədə MCU əvvəlcə hər bir düymə vəziyyətini oxuyur, əgər LOW -dan HIGH -a vəziyyət dəyişikliyi aşkar edilərsə, keyboard_shortcut (i) funksiyası yerinə yetirilir. Dəyişən i basılan düymənin identifikatorudur, ümumi düymənin sayı ALL_BUTTONS ilə müəyyən edilir (mənim vəziyyətimdə 15). İcra edildikdə, keyboard_shortcut (i) CTRL+ÜST KRKT göndərir və sonra düymə id ilə eşlenen bir məktub göndərir: 1-> A, 2-> B, 3-> C və s. CTRL+SHIFT+N kimi bəzi kombinasiyalar buraxıldığı üçün Windows 10 -da standart olaraq istifadə olunur (bu vəziyyətdə yeni bir qovluq yaratmaq üçün). Burada bütün standart Windows qısa yollarının siyahısı verilmişdir. Qısa gecikmədən sonra MCU bütün düymələri buraxmaq üçün siqnal göndərir və funksiya əsas döngəyə qayıdır.
Bütün düymələr yoxlanıldıqdan sonra, MCU fırlanan kodlayıcı mövqeyinin dəyişib -dəyişmədiyini yoxlayır və əgər dəyişirsə, keyboard_shortcut (i) unikal id ilə icra edilir.
Encoder düyməsini basmaq encoderButtonFlag boolean dəyişənini ters çevirir. Enkoder döndərildikdə fırlanma istiqamətindən və encoderButtonFlag dəyərindən asılı olaraq fərqli yollar PC -yə göndərilir.
DebugFlag 1 olaraq təyin olunarsa, UART vasitəsilə serial monitora göndərilir.
Addım 4: Qısayolları konfiqurasiya edin
Hər bir qısayolun etdikləri sizdən asılıdır, hamımızın fərqli seçimlərimiz var. Nümunə olaraq özüm üçün konfiqurasiya etdiyim qısa yolları verəcəyəm. Xfce4 masa üstü meneceri ilə Linux Mint 19.3 istifadə edirəm, buna görə nümunələrim əsasən bash skriptlərini əhatə edir, lakin Windows10 üçün də bəzi əsas nümunələri göstərəcəyəm.
Birinci şəkildə hansı skriptləri hansı qısa yollarla xəritələdiyimi görə bilərsiniz. Xfce parametrləri menyusundan edilir, bunun üçün proses birbaşa irəli gedir. Bu skriptləri GitHub depomda tapa bilərsiniz
Altdakı daha kiçik 6 düymə veb brauzer və ya fayl meneceri kimi tətbiqləri işə salmaq üçündür, bu tətbiqlərin bəzilərinə start_only_one_app.sh skriptindən deyilir ki, bu da bütün başladılan tətbiqlərin adlarını alır və başlamaq istədiyiniz proqramı axtarır. Tətbiq pəncərəsi artıq varsa, diqqət mərkəzinə çevrilir, başqa bir tətbiq nümunəsi başlayır.
Digər skriptlər:
- 2nd_display_control.sh - ikinci monitoru AÇMA/SÖNDÜRMƏK.
- moon_lamp.sh - Ay Lampamı AÇIR/SÖNDÜR.
- pc_load.sh - cari CPU və GPU istifadəsi və temperaturu ilə bildiriş balonu yaradır.
- shutdown.sh - 1 dəqiqə gecikmə ilə kompüterin bağlanmasını başlatır və qalan vaxtın göstərildiyi bildiriş balonu yaradır.
- spec_vpn.sh - xüsusi OpenVPN serverinə qoşulur və ya əlaqə artıq mövcuddursa, serverdən ayrılır.
- shortcut_controll.sh - əmri (üstəgəl, eksi, nişanı, yaxın) arqument kimi qəbul edir, indi hansı pəncərənin fokuslandığını aşkar edir və xüsusi bir tətbiq tapılarsa nəzarət hərəkətini icra edir. Məsələn, möhtəşəm mətn redaktorunda yeni bir sekmə açmaq üçün standart qısayol "CTRL+N" və xfce terminalında - "CTRL+T" dir, buna görə də bu skript eyni düymə ilə yüksək və terminalda yeni sekmə açmağa imkan verir.
Döner kodlayıcının birinci funksiyası həcmi idarə etməkdir, ikinci funksiya shortcut_controll.sh vasitəsilə aktiv pəncərə böyütməsini idarə etməkdir.
Windows OS üçün, ikinci şəkildəki kimi proqram xüsusiyyətləri pəncərəsi vasitəsi ilə qısa yolları tətbiqlərə yerləşdirə bilərsiniz. Başqa bir şey üçün AutoHotkey istifadə etmək istəyəcəksiniz. Windows üçün avtomatlaşdırma skript dilidir.
AHK sintaksisindən bəzi sadə nümunələr:
Səs səviyyəsinə nəzarət
^+t:: {Volume_Up} göndərin
qayıt
^+v:: {Volume_Down} göndərin
qayıt
; Aktiv pəncərəni bağlayın
^+h:: WinGetTitle, Başlıq, A.
PostMessage, 0x112, 0xF060,,, %Başlıq %
qayıt
; PC -ni bağlayın
^+b:: Kapat /s işləyin
Addım 5: Təkmilləşdirmələr
Bəzi mümkün təkmilləşdirmələr:
- Daha keyfiyyətli düymələr.
- Düymələrə basıldıqda PCB prototipi çox bükülür.
- Hansı funksiyaya görə fırlanan kodlayıcıdan asılı olaraq rəng dəyişdirmək üçün RGB işıqlandırma.
- Daha çox düymə (IO genişləndirici IC istifadə edin).
- Daha yaxşı fırlanan enkoder (və ya daha yaxşı sökülmə həlli).
Tövsiyə:
Renegade-i (Həqiqi şey kimi hiss olunan proqramlaşdırıla bilən IC test cihazı): 3 addım (şəkillərlə)
Renegade-i (Həqiqi Şey Hiss Edilən Proqramlaşdırıla bilən IC Test Cihazı): MİLYON DOLLAR RÜYA Yalnız IC -ni sınaya bilən bir gadget deyil, yarı test sınağının ən böyük oyunçularının qabaqcıl məhsullarından biri kimi hiss edən "proqramlaşdırıla bilən" bir maşın uğur qazandı
Proqramlaşdırıla bilən balqabaq işığı: 25 addım (şəkillərlə)
Proqramlaşdırıla bilən Balqabaq İşığı: Bu Təlimat, ATTiny mikrokontrolörü ilə proqramlaşdırıla bilən Balqabaq işığı hazırlamaq üçündür. Bu, Arduino IDE -dən istifadə edərək hər kəsi (8+ yaş) elektronika və proqramlaşdırma mikrokontrolörləri ilə tanış etmək üçün öyrənmə demosu olaraq hazırlanmışdır. Yalançı Obyekt
Tamamilə Yandırılır - Proqramlaşdırıla bilən RGB LED Akrilik İşarəsi: 3 Addım (Şəkillərlə)
Tamamilə Yandırılır - Proqramlaşdırıla bilən RGB LED Akrilik İşarəsi: Lazer kəsici/oymaçı ilə oynayıram və akrili təmizləmək üçün oymağı və kənardan bir işıq mənbəyi parlamağı çox sevirəm. İstifadə olunan akrilin qalınlığı a.25 " l tərəfindən həqiqətən təmiz şəkildə kəsilən vərəq
DoReMiQuencer - Klaviatura ilə proqramlaşdırıla bilən MIDI Sequencer: 7 addım
DoReMiQuencer - Klaviatura ilə Proqramlaşdırıla bilən MIDI Sequencer: Bu cihaz VCV tərəfindən yaradılan virtual modul sintezatoru VCVRack ilə istifadə üçün yaradılmışdır, lakin ümumi təyinatlı MIDI nəzarətçi kimi xidmət edə bilər. MIDI qeydləri hər kəsə uyğunlaşdırıldı
Ciblənə bilən proqramlaşdırıla bilən robot: 7 addım
Cib Yapışqan Robot: Salam Hər kəsə yaradıcı və yenilik etməyə və zövq almağa hazır olanlar !!!!! Bu, robotda Arduino layihəsini və proqramlaşdırmağı sevməyə başladığımız vaxtdır. Mən həmişə robot hazırlamışam, amma hər robot üçün ölçüsü belə deyil. dostluq. soyğunu daşımaq istəyirəm