Kirjautuminen

Haku

Tehtävät

Keskustelu: Projektit: Double Action Keyboard

jlv0000 [15.01.2017 00:43:10]

#

Moi,
olen kehitellyt uudenlaista näppäimistöä erityisesti ohjelmointiin, mutta myös muuhun käyttöön. Idea lähti siitä kun etsin parempaa näppäimistöä, mutta en löytänyt sellaista mistään. Ongelmana on että nykyiset näppäimistöt ovat erittäin epäideaalisia esim. ohjelmointiin, sillä monien erikoismerkkien näppäily on työlästä ja vaatii käytännössä aina näppäimistöön katsomista (kymmensormijärjestelmää ei pysty käyttämään koko aikaa). Ajattelin muillakin saattaisi olla saman kaltaisia kokemuksia, joten päätin laittaa tänne vähän tietoja projektistani.

Näppäimistöni suurin ero tavalliseen on että osa sen kytkimistä on kaksitoimisia, se tarkoittaa sitä että kytkimellä on kaksi erilaista 'aktiivista' asentoa, kuten digikameran laukaisimessa. Tämä mahdollistaa sen että yhdellä näppäimellä on kaksi eri toimintoa, esimerkiksi jos painaa näppäintä vain yhden askeleen alas vastaa painallus esim. 'a'-merkkiä, mutta jos painaa näppäintä kaksi askelta alas vastaa painallus esim. '['-merkkiä. Mikrokontrolleri on ohjelmoitu siten, että ensimmäinen painallus lähetetään tietokoneelle vasta kun näppäin on vapautettu tai sitä on pidetty painettuna kauemmin 300 ms (tätä aikaa voi säätää). Toissijainen painallus lähetetään tietokoneelle välittömästi painalluksen alettua kunhan vain näppäimen painamiseen pohjaan asti on mennyt alle 300 ms aikaa.

Näppäimistö rakenne perustuu muunneltuihin Cherry MX brow -kytkimiin, joiden alle on juotettu tavallinen kalvokytkin ylösalaisin (kuvista näkyy miten). Mikrokontrollerina toimii Teensy 3.2 koska sen avulla on mahdollista toteuttaa USB-näppäimistö melko pienellä vaivalla.

Kaksitoimisuuden lisäksi näppäimistössä on myös muita isoja muutoksia. Näppäimistöasettelua on muutettu siten että usein tarvittavat näppäimet ovat myös vasemman käden saavutettavissa (enter, backspace, delete, nuolinäppäimet). Nämä muutokset helpottavat monien ohjelmien käyttöä, joissa oikea käsi on lähes jatkuvasti hiirellä. Lisäksi näppäimistössä sarakkeet ovat suorat, koska se säästää tilaa ja helpottaa kirjoittamista. (kuvista näkyy tarkka näppäimistöasettelu)

Olen käyttänyt näppäimistöä noin pariviikkoa ja täytyy sanoa että ainakin omasta mielestäni se on toiminut todella hyvin, kaksitoimisten näppäimien käyttö on yllättävän intuitiivista, eikä virhepainalluksia juurikaan tule (ero ensimmäisen ja toisen askeleen välillä on voiman kannalta riittävän iso). Esimerkiksi ohjelmointi on huomattavasti sujuvampaa, koska suurin osa erikoismerkeistä on vain yhden painalluksen päässä.

Näppäimistöä käyttäessä pitää huomioida, että kun painaa jotain näppäinyhdistelmää esim. CTRL+s, että näppäin s lähetetään tietokoneelle vasta kun se on vapautettu ja tämän vuoksi CTRL-näppäintä tulee pitää pohjassa kunnes s-näppäin on vapautettu tai muuten esim. tekstieditoriin ilmestyy vain 's'-kirjain. Toinen vaihtoehto on että pitää näppäinyhdistelmää painettuna kauemmin kuin 300 ms. Tämä on vaatinut hieman totuttelua.

Vastaan mielelläni kysymyksiin ja kuulisin mielelläni mielipiteitä ja kommentteja. Olisiko tällainen näppäimistö kätevä myös teidän mielestä?


Näppäimistön koodi ja kuvat löytyvät alla olevasta linkistä:
https://github.com/jlidauer/DAK
-jlv0000

Grez [15.01.2017 09:42:56]

#

Kuulostaa mielenkiintoiselta projektilta.

jlv0000 kirjoitti:

Ongelmana on että nykyiset näppäimistöt ovat erittäin epäideaalisia esim. ohjelmointiin, sillä monien erikoismerkkien näppäily on työlästä ja vaatii käytännössä aina näppäimistöön katsomista (kymmensormijärjestelmää ei pysty käyttämään koko aikaa).

Oman kokemuksen mukaan kaikki näppäimistöltä ylipäätään saatavat erikoismerkit saa kyllä helposti näppäimistöön katsomatta esimerkiksi ohjelmoitaessa.

jlv0000 kirjoitti:

Näppäimistöä käyttäessä pitää huomioida, että kun painaa jotain näppäinyhdistelmää esim. CTRL+s, että näppäin s lähetetään tietokoneelle vasta kun se on vapautettu ja tämän vuoksi CTRL-näppäintä tulee pitää pohjassa kunnes s-näppäin on vapautettu tai muuten esim. tekstieditoriin ilmestyy vain 's'-kirjain. Toinen vaihtoehto on että pitää näppäinyhdistelmää painettuna kauemmin kuin 300 ms. Tämä on vaatinut hieman totuttelua.

Koska näppäimistö toimii tuolla tavalla poikkeuksellisesti (hirveällä viiveellä) niin eikö olisi järkevää ohjelmoida se niin, että myös ctrl painallusta pitkitetään vastaavasti. Eli jos näppäimistö huomaisi että ctrl on pidettynä pohjassa kun s painetaan pohjaan, se pitäisi ctrl:n painettuna kunnes se s painalluskin lähetetään.

jlv0000 [15.01.2017 10:13:19]

#

Grez kirjoitti:

Koska näppäimistö toimii tuolla tavalla poikkeuksellisesti (hirveällä viiveellä) niin eikö olisi järkevää ohjelmoida se niin, että myös ctrl painallusta pitkitetään vastaavasti. Eli jos näppäimistö huomaisi että ctrl on pidettynä pohjassa kun s painetaan pohjaan, se pitäisi ctrl:n painettuna kunnes se s painalluskin lähetetään.

Tuo voisi olla yksi ratkaisu, täytyy tutkia tuota mahdollisuutta. Toinen vaihtoehto jota olen kokeillut testi mielessä on Windowsista löytyvä alas jäävät näppäimet -ominaisuus, joka lukitsee ohjausnäppäimet kertapainalluksesta ja vapauttaa ne kun toista näppäintä painetaan.

Käytännössä tuo viive ilmenee vain kun haluaa kirjoittaa monta samanlaista merkkiä, jos kirjoittaa vain yhden merkin ei ero normaalin näppäimistöön ole merkittävä vaikka painallus lähetetäänkin vasta siinä vaiheessa kun näppäin vapautetaan.

jlv0000 [16.01.2017 23:32:46]

#

Muutin näppäimistön koodia siten että ohjainnäppäimet jäävät pohjaa kun niitä painetaan yhtä aikaa tavallisten näppäinten kanssa, kuten Grez ehdotti. Toistaiseksi ei ole tullut vielä tilannetta jossa lukittuminen olisi aiheuttanut ongelmia, joten tämä paransi näppäimistön käyttömukavuutta merkittävästi. Kiitos!

jlv0000 [04.03.2017 22:11:58]

#

Julkaisin näppäimistön koodit.
Ne löytyvät täältä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta