You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
7.3 KiB

  1. # ใ‚ญใƒผใƒœใƒผใƒ‰ใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใฎไป•็ต„ใฟ
  2. <!---
  3. original document: 0.9.32:docs/how_a_matrix_works.md
  4. git diff 0.9.32 HEAD -- docs/how_a_matrix_works.md | cat
  5. -->
  6. ใ‚ญใƒผใƒœใƒผใƒ‰ใ‚นใ‚คใƒƒใƒใฎใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใฏ่กŒใจๅˆ—ใซ้…็ฝฎใ•ใ‚Œใพใ™ใ€‚ใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นๅ›ž่ทฏใŒใชใ‘ใ‚Œใฐใ€ๅ„ใ‚นใ‚คใƒƒใƒใฏใ‚ณใƒณใƒˆใƒญใƒผใƒฉใซ็›ดๆŽฅ้…็ทšใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚
  7. ๅ›ž่ทฏใŒ่กŒใจๅˆ—ใซ้…็ฝฎใ•ใ‚Œใฆใ„ใ‚‹ๅ ดๅˆใ€ใ‚ญใƒผใŒๆŠผใ•ใ‚Œใ‚‹ใจใ€ๅˆ—ใƒฏใ‚คใƒคใŒ่กŒใƒฏใ‚คใƒคใจๆŽฅ่งฆใ—ใ€ๅ›ž่ทฏใŒๅฎŒๆˆใ—ใพใ™ใ€‚ใ‚ญใƒผใƒœใƒผใƒ‰ใ‚ณใƒณใƒˆใƒญใƒผใƒฉใฏใ“ใฎ้–‰ๅ›ž่ทฏใ‚’ๆคœ็Ÿฅใ—ใ€ใ‚ญใƒผๆŠผไธ‹ใจใ—ใฆ็™ป้Œฒใ—ใพใ™ใ€‚
  8. ใƒžใ‚คใ‚ฏใƒญใ‚ณใƒณใƒˆใƒญใƒผใƒฉใฏใƒ•ใ‚กใƒผใƒ ใ‚ฆใ‚งใ‚ขใ‚’ไป‹ใ—ใฆใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ใ•ใ‚Œใ€่ซ–็†1ใ‚’ไธ€ๅบฆใซ1ใคใšใคๅˆ—ใซ้€ไฟกใ—ใ€่กŒใ‹ใ‚‰ไธ€ๅบฆใซๅ…จใฆใ‚’่ชญใฟๅ–ใ‚Šใพใ™ - ใ“ใฎใƒ—ใƒญใ‚ปใ‚นใฏใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใ‚นใ‚ญใƒฃใƒณใจๅ‘ผใฐใ‚Œใพใ™ใ€‚ใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใฏใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใฏ้›ปๆตใฎ้€š้Žใ‚’่จฑๅฏใ—ใชใ„ใŸใใ•ใ‚“ใฎ้–‹ใ„ใŸใ‚นใ‚คใƒƒใƒใงใ™ - ใƒ•ใ‚กใƒผใƒ ใ‚ฆใ‚งใ‚ขใฏใ‚ญใƒผใŒๆŠผใ•ใ‚Œใฆใ„ใชใ„ใ‚‚ใฎใจใ—ใฆใ“ใ‚Œใ‚’่ชญใฟๅ–ใ‚Šใพใ™ใ€‚1ใคใฎใ‚ญใƒผใ‚’ๆŠผใ™ใจใ™ใใซใ€ใ‚ญใƒผใ‚นใ‚คใƒƒใƒใŒๆŽฅ็ถšใ•ใ‚Œใฆใ„ใ‚‹ๅˆ—ใ‹ใ‚‰ๆฅใฆใ„ใŸ่ซ–็†1ใŒใ‚นใ‚คใƒƒใƒใ‚’้€š้Žใ—ใฆๅฏพๅฟœใ™ใ‚‹่กŒใซๆธกใ•ใ‚Œใพใ™ - ไปฅไธ‹ใฎ 2x2 ใฎไพ‹ใ‚’็ขบ่ชใ—ใฆใใ ใ•ใ„:
  9. Column 0 being scanned Column 1 being scanned
  10. x x
  11. col0 col1 col0 col1
  12. | | | |
  13. row0 ---(key0)---(key1) row0 ---(key0)---(key1)
  14. | | | |
  15. row1 ---(key2)---(key3) row1 ---(key2)---(key3)
  16. `x` ใฏ้–ข้€ฃไป˜ใ‘ใ‚‰ใ‚ŒใŸๅˆ—ใจ่กŒใฎๅ€คใŒ1ใงใ‚ใ‚‹ใ‹ใ€HIGH ใงใ‚ใ‚‹ใ“ใจใ‚’่กจใ—ใพใ™ใ€‚ใ“ใ“ใงใฏใ€ใ‚ญใƒผใŒๆŠผใ•ใ‚Œใฆใ„ใชใ„ใ“ใจใŒๅˆ†ใ‹ใ‚Šใพใ™ใ€‚ใใฎใŸใ‚ `x` ใ‚’ๅ–ๅพ—ใ™ใ‚‹่กŒใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚1ใคใฎใ‚ญใƒผใ‚นใ‚คใƒƒใƒใฎไบŒใคใฎๆŽฅ็‚นใฏใใฎใ‚นใ‚คใƒƒใƒใฎใ‚ใ‚‹่กŒใจๅˆ—ใซใใ‚Œใžใ‚ŒๆŽฅ็ถšใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚
  17. `key0` ใ‚’ๆŠผใ™ใจใ€`col0` ใฏ `row0` ใซๆŽฅ็ถšใ•ใ‚Œใ‚‹ใŸใ‚ใ€ใƒ•ใ‚กใƒผใƒ ใ‚ฆใ‚งใ‚ขใŒใใฎ่กŒใซๅฏพใ—ใฆๅ—ใ‘ๅ–ใ‚‹ๅ€คใฏ `0b01` ใงใ™ (ใ“ใ“ใง `0b` ใฏใ“ใ‚ŒใŒใƒ“ใƒƒใƒˆๅ€คใงใ‚ใ‚‹ใ“ใจใ‚’ๆ„ๅ‘ณใ—ใพใ™ใ€‚ใคใพใ‚Šๆฌกใฎๆ•ฐๅญ—ใฏๅ…จใฆใƒ“ใƒƒใƒˆ(0ใพใŸใฏ1)ใงใ‚ใ‚Šใ€ใใฎๅˆ—ใฎใ‚ญใƒผใ‚’่กจใ—ใพใ™)ใ€‚ใ“ใฎ่กจ่จ˜ใ‚’ไฝฟ็”จใ—ใฆใ€ใ‚ญใƒผใ‚นใ‚คใƒƒใƒใŒๆŠผใ•ใ‚ŒใŸใ“ใจใ‚’็คบใ—ใ€ๅˆ—ใจ่กŒใŒๆŽฅ็ถšใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใ‚’็คบใ—ใพใ™:
  18. Column 0 being scanned Column 1 being scanned
  19. x x
  20. col0 col1 col0 col1
  21. | | | |
  22. x row0 ---(-+-0)---(key1) row0 ---(-+-0)---(key1)
  23. | | | |
  24. row1 ---(key2)---(key3) row1 ---(key2)---(key3)
  25. `row0` ใซใฏ `x` ใŒใ‚ใ‚‹ใŸใ‚ใ€ๅ€คใŒ1ใงใ‚ใ‚‹ใ“ใจใŒใ‚ใ‹ใ‚Šใพใ™ใ€‚ๅ…จไฝ“ใจใ—ใฆใ€`key0` ใŒๆŠผใ•ใ‚ŒใŸๆ™‚ใซใƒ•ใ‚กใƒผใƒ ใ‚ฆใ‚งใ‚ขใŒๅ—ไฟกใ™ใ‚‹ใƒ‡ใƒผใ‚ฟใฏใ€
  26. col0: 0b01
  27. col1: 0b00
  28. โ”‚โ””row0
  29. โ””row1
  30. ไธ€ๅบฆใซ่ค‡ๆ•ฐใฎใ‚ญใƒผใ‚’ๆŠผใ—ๅง‹ใ‚ใ‚‹ใจๅ•้กŒใŒ็™บ็”Ÿใ—ใพใ™ใ€‚ใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใ‚’ใ‚‚ใ†ไธ€ๅบฆ่ฆ‹ใ‚‹ใจใ€ใ‹ใชใ‚Šๆ˜Ž็™ฝใซใชใฃใฆใ„ใ‚‹ใฏใšใงใ™:
  31. Column 0 being scanned Column 1 being scanned
  32. x x
  33. col0 col1 col0 col1
  34. | | | |
  35. x row0 ---(-+-0)---(-+-1) x row0 ---(-+-0)---(-+-1)
  36. | | | |
  37. x row1 ---(key2)---(-+-3) x row1 ---(key2)---(-+-3)
  38. Remember that this ^ is still connected to row1
  39. ใ“ใ‚Œใ‹ใ‚‰ๅ–ๅพ—ใ•ใ‚Œใ‚‹ใƒ‡ใƒผใ‚ฟใฏไปฅไธ‹ใฎ้€šใ‚Šใงใ™:
  40. col0: 0b11
  41. col1: 0b11
  42. โ”‚โ””row0
  43. โ””row1
  44. 4ใคๅ…จใฆใงใฏใชใใ€3ใคใฎใ‚ญใƒผใ—ใ‹ๆŠผใ•ใ‚Œใฆใ„ใชใ„ใŸใ‚ใ€ใ“ใ‚Œใฏๆญฃ็ขบใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใ“ใฎๆŒ™ๅ‹•ใฏใ‚ดใƒผใ‚นใƒˆใจๅ‘ผใฐใ‚Œใ€ใ“ใฎใ‚ˆใ†ใชๅฅ‡ๅฆ™ใชใ‚ทใƒŠใƒชใ‚ชใงใฎใฟ็™บ็”Ÿใ—ใพใ™ใŒใ€ใ‚ˆใ‚Šๅคงใใชใ‚ญใƒผใƒœใƒผใƒ‰ใงใฏใ‚ˆใ‚Šไธ€่ˆฌ็š„ใงใ™ใ€‚ใ“ใ‚Œใ‚’ๅ›ž้ฟใ™ใ‚‹ๆ–นๆณ•ใฏใ€ใ‚ญใƒผใ‚นใ‚คใƒƒใƒใฎๅพŒใซใ€่กŒใซๆŽฅ็ถšใ™ใ‚‹ๅ‰ใซใƒ€ใ‚คใ‚ชใƒผใƒ‰ใ‚’้…็ฝฎใ™ใ‚‹ใ“ใจใงใ™ใ€‚ใƒ€ใ‚คใ‚ชใƒผใƒ‰ใฏใ€้›ปๆตใŒไธ€ๆ–นๅ‘ใซใฎใฟๆตใ‚Œใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ๅ‰ใฎไพ‹ใงไป–ใฎๅˆ—ใจ่กŒใŒใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใซใชใ‚‰ใชใ„ใ‚ˆใ†ใซใ—ใพใ™ใ€‚ใƒ€ใ‚คใ‚ชใƒผใƒ‰ใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใ‚’ใ“ใฎใ‚ˆใ†ใซ่กจใ—ใพใ™;
  45. Column 0 being scanned Column 1 being scanned
  46. x x
  47. col0 col1 col0 col1
  48. โ”‚ โ”‚ | โ”‚
  49. (key0) (key1) (key0) (key1)
  50. ! โ”‚ ! โ”‚ ! | ! โ”‚
  51. row0 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ row0 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
  52. โ”‚ โ”‚ | โ”‚
  53. (key2) (key3) (key2) (key3)
  54. ! ! ! !
  55. row1 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ row1 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  56. ๅฎŸ้š›ใฎ็”จ้€”ใงใฏใ€ใƒ€ใ‚คใ‚ชใƒผใƒ‰ใฎ้ป’ใ„็ทšใŒ่กŒใซ้ขใ™ใ‚‹ใ‚ˆใ†ใซใ€ใ‚ญใƒผใ‚นใ‚คใƒƒใƒใ‹ใ‚‰้›ขใ‚Œใ‚‹ใ‚ˆใ†ใซ้…็ฝฎใ•ใ‚Œใพใ™ - ใ“ใฎๅ ดๅˆใฎ `!` ใฏใƒ€ใ‚คใ‚ชใƒผใƒ‰ใงใ€้š™้–“ใฏ้ป’ใ„็ทšใ‚’่กจใ—ใพใ™ใ€‚ใ“ใ‚Œใ‚’่ฆšใˆใ‚‹่‰ฏใ„ๆ–นๆณ•ใฏใ€ไปฅไธ‹ใฎใ‚ทใƒณใƒœใƒซใ‚’่€ƒใˆใ‚‹ใ“ใจใงใ™: `>|`
  57. ๆฌกใซใ€3ใคใฎใ‚ญใƒผใ‚’ๆŠผใ—ใฆใ€ใ‚ดใƒผใ‚นใƒˆใ‚ทใƒŠใƒชใ‚ชใจใชใ‚‹ใ‚‚ใฎใ‚’ๅฎŸๆ–ฝใ—ใพใ™:
  58. Column 0 being scanned Column 1 being scanned
  59. x x
  60. col0 col1 col0 col1
  61. โ”‚ โ”‚ โ”‚ โ”‚
  62. (โ”Œโ”€โ”ค0) (โ”Œโ”€โ”ค1) (โ”Œโ”€โ”ค0) (โ”Œโ”€โ”ค1)
  63. ! โ”‚ ! โ”‚ ! โ”‚ ! โ”‚
  64. x row0 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ x row0 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
  65. โ”‚ โ”‚ โ”‚ โ”‚
  66. (key2) (โ”Œโ”€โ”˜3) (key2) (โ”Œโ”€โ”˜3)
  67. ! ! ! !
  68. row1 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ x row1 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  69. ๅ…จใฆใŒๆœŸๅพ…้€šใ‚Šใซๅ‹•ใใพใ™๏ผใ“ใ‚Œใซใ‚ˆใ‚Šใ€ไปฅไธ‹ใฎใƒ‡ใƒผใ‚ฟใŒๅ–ๅพ—ใ•ใ‚Œใพใ™:
  70. col0: 0b01
  71. col1: 0b11
  72. โ”‚โ””row0
  73. โ””row1
  74. ใƒ•ใ‚กใƒผใƒ ใ‚ฆใ‚งใ‚ขใฏใ“ใฎๆญฃใ—ใ„ใƒ‡ใƒผใ‚ฟใ‚’ไฝฟใฃใฆใ€ไฝ•ใ‚’ใ™ในใใ‹ใ‚’ใ€ๆœ€็ต‚็š„ใซใฏ OS ใซ้€ไฟกใ™ใ‚‹ๅฟ…่ฆใฎใ‚ใ‚‹ไฟกๅทใ‚’ๆคœๅ‡บใงใใพใ™ใ€‚
  75. ๅ‚่€ƒๆ–‡็Œฎ:
  76. - [Wikipedia ใฎ่จ˜ไบ‹](https://en.wikipedia.org/wiki/Keyboard_matrix_circuit)
  77. - [Deskthority ใฎ่จ˜ไบ‹](https://deskthority.net/wiki/Keyboard_matrix)
  78. - [Dave Dribin ใซใ‚ˆใ‚‹ Keyboard Matrix Help (2000)](https://www.dribin.org/dave/keyboard/one_html/)
  79. - [PCBheaven ใซใ‚ˆใ‚‹ How Key Matrices Works](https://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (ใ‚ขใƒ‹ใƒกใƒผใ‚ทใƒงใƒณใฎไพ‹)
  80. - [ใ‚ญใƒผใƒœใƒผใƒ‰ใฎไป•็ต„ใฟ - QMK ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ](ja/how_keyboards_work.md)