Buat Penyesuai USB ThinkPad Keyboard Dengan Arduino: 5 Langkah

Buat Penyesuai USB ThinkPad Keyboard Dengan Arduino: 5 Langkah

Isi kandungan:

Anonim

Antara komputer riba kelas perniagaan, ThinkPads mempunyai papan kekunci yang terbaik. Walaupun dengan perubahan ke gaya papan kekunci pulau, saya akan mengatakan bahawa papan kekunci ThinkPad masih menewaskan semua pesaing komputer riba di bawah jabatan papan kekunci. Tidak seperti orang lain, kunci papan kekunci ThinkPad melengkung agar sesuai dengan jari anda, mereka mempunyai permukaan permukaan yang sama seperti papan kekunci bersaiz penuh desktop dan jarak jauh supaya anda tidak terlepas kunci atau perlu mencapai jauh untuk sampai ke satu.

Laptop ThinkPad dibina dengan baik. Walau bagaimanapun, mereka juga sangat mahal, berbanding pesaing dengan spec yang sama. Jadi apa yang anda lakukan jika anda hanya suka keyboard? Anda juga membeli papan kekunci rasmi USB atau Bluetooth Lenovo ThinkPad dengan TrackPoint atau membuat penyesuai anda sendiri untuk papan kekunci yang anda cintai.

Dalam Pengajaran ini, saya akan menunjukkan langkah umum yang saya ambil untuk membuat penyesuai USB untuk papan kekunci T60 dan papan kekunci yang serasi, iaitu. jika papan kekunci anda berkongsi bekas yang sama seperti T60. Lihat langkah 1.

Mari kita mulakan!

UPDATE: Kit dengan semua komponen yang diperlukan (tidak termasuk Arduino) kini boleh didapati di

Bekalan:

Langkah 1: Dapatkan Sampul Anda

Sebelum menyelam ke bahagian yang lebih mudah, iaitu. pengaturcaraan dan reka bentuk papan penyesuai, anda perlu mencari cara untuk menyambungkan papan kekunci anda ke PCB.

Kebanyakan papan kekunci ThinkPad klasik menggunakan papan untuk penyambung papan. Menurut eBay, jika anda mencari papan kekunci T60, anda akan mendapati bahawa ThinkPad T60, T60p, Z61p, Z61t, Z60, T61, R400, R500, T400, T500, X41 … berkongsi papan kekunci yang sama dan matriks keyboard mereka juga boleh boleh ditukar ganti.

Dari skema ThinkPad T60 yang terapung di internet (lihat gambar), saya mendapati bahawa T60 menggunakan JAE AA01B-S040VA1-R3000. Tidak banyak vendor yang menjualnya kerana mereka adalah milik. Kebanyakan mereka yang menjual, menjual dengan kuantiti pesanan minimum sebanyak 100. Pada kira-kira $ 4.90 setiap satu ditambah dengan perkapalan, ia sangat mahal. Jadi jika anda berminat untuk mendapatkan sebahagian daripada mereka, mesej saya.

Untuk maklumat lanjut mengenai bekas ThinkPad T60, lihatlah gambar dan pengukuran Felix:

Langkah 2: Bekerja Dengan Skema Papan Kekunci

Dari skema langkah sebelumnya, matriks T60 menggunakan 8 baris dan 16 lajur, 1 untuk hotkey (FN), TrackPoint menggunakan garis jam, garis data dan talian reset. Secara keseluruhan, ia memerlukan 28 pin digital manakala Arduino Micro / Leonardo hanya mempunyai 20.

Menggunakan kaunter sedekad seperti CD4017 untuk menoleh melalui barisan dan IC input 16-bit SPI, seperti MCP23S17, untuk membaca 16 input lajur, jumlah pin pada sisi Arduino dapat mengurangkan 10 baris.

Secara umum, matriks papan kekunci adalah pasif - mereka tidak menyatakan sama ada baris atau lajur harus menjadi input atau output. Untuk projek ini, bagaimanapun, 16 output lajur memerlukan lebih banyak IC luaran, komponen pasif dan merumitkan reka bentuk. Oleh itu, saya memilih untuk mempunyai 8 output dan 16 input.

Setakat ini, senarai bahagian telah sampai pada:

  • Arduino Micro: ~ $ 32 untuk modul rasmi, ~ $ 13 untuk klon (klon di eBay)
  • CD4017
  • MCP23S17
  • 16 x 10k resistor sebagai pull-up resistor untuk MCP23S17
  • untuk papan pemasangan Arduino dan papan bekas (beberapa langkah seterusnya)
  • Bekas AA01B-S040VA1
Dapatkan kit di

Langkah 3: Reka bentuk skematik dan PCB

Oleh kerana bekas T60 adalah komponen gunung permukaan dengan padang 0.5mm, saya memutuskan untuk menggunakan SMD untuk komponen lain juga.

Dalam projek ini, saya memutuskan untuk memecah papan ke 2 papan:

  1. Arduino Micro mounting board
  2. Lembaga reseptor dengan perintang dan IC sokongan.

Ini membolehkan semakan papan pada masa akan datang menjadi lebih modular dan mungkin terbukti lebih murah dalam jangka masa panjang. Sebagai contoh, jika saya memutuskan untuk menambah kesambungan Bluetooth, saya tidak perlu menggunakan Arduino Micro untuk keupayaan USBnya lagi. Saya boleh menggunakan Arduino Nano sebagai gantinya dan hanya perlu merancang PCB di sebelah Arduino, mengetahui sepenuhnya papan ambas saya akan berfungsi dengan cara yang sama tanpa mengira apa yang saya buat keputusan untuk menggunakan mikrokontroler.

Saya telah memasukkan contoh-contoh susun atur PCB saya, papan skematik dan fabrikasi dari Elecrow. Papan adalah dua sisi dan sesuai dalam 50x50mm.

Langkah 4: Kod Ia!

Projek ini cukup mudah untuk kod dengan komuniti besar Arduino. Saya menulis lakaran cepat. Kod ini boleh didapati di GitHub:

Kod ini boleh menggunakan pengoptimuman untuk mempercepat pengimbasan matriks. Fungsi FN + NumLock, kekunci pad kekunci dan fungsi gabungan papan kekunci yang disingkirkan daripada kod kerana ia memperlahankan pengimbasan dengan ketara.

Langkah 5: Keputusan & Kesimpulan

Platform Arduino menjadikannya sangat mudah untuk membina penyesuai USB. Walau bagaimanapun ia mempunyai beberapa kelemahan yang serius:

• Kod kunci terhad menyokong: tiada definisi untuk kekunci pad kekunci, Skrin Cetak, Kunci Skrol, Jeda, Cuti dan banyak lagi

• Pelaksanaan papan kekunci Keyboard.press () dan Keyboard.release (). Daripada menerima dan menghantar kod kunci yang tidak diubah suai, Arduino API memaksa pengguna untuk menghantar aksara yang boleh dicetak.

• Tiada bangun jauh: jika komputer masuk ke bersedia, menekan kekunci pada papan kekunci atau menggerakkan tetikus tidak akan bangun.

• Kiraan pin rendah

• Lambat. Terdapat pengoptimuman dan penambahbaikan kod tetapi menggunakan abstrak dari Arduino dari manipulasi pelabuhan langsung meningkatkan kependaman dengan ketara, menambah bilangan pin rendah yang memaksa pengguna untuk menggunakan IC pengembangan mengurangkan kelajuan sedikit lagi.

Untuk tujuan ujian, saya menggunakan kabel jumper untuk menyambung dua papan bersama-sama. Untuk produk akhir, saya akan menggunakan beberapa wayar yang lebih nipis yang disolder terus ke papan dan berjalan di bawah papan kekunci.

Berikut adalah video papan kekunci dalam tindakan:

Cadangan untuk penambahbaikan reka bentuk dan pengoptimuman kod dialu-alukan!