qmk_firmware/ja/how_a_matrix_works.md

7.3 KiB

ใ‚ญใƒผใƒœใƒผใƒ‰ใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใฎไป•็ต„ใฟ

ใ‚ญใƒผใƒœใƒผใƒ‰ใ‚นใ‚คใƒƒใƒใฎใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใฏ่กŒใจๅˆ—ใซ้…็ฝฎใ•ใ‚Œใพใ™ใ€‚ใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นๅ›ž่ทฏใŒใชใ‘ใ‚Œใฐใ€ๅ„ใ‚นใ‚คใƒƒใƒใฏใ‚ณใƒณใƒˆใƒญใƒผใƒฉใซ็›ดๆŽฅ้…็ทšใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚

ๅ›ž่ทฏใŒ่กŒใจๅˆ—ใซ้…็ฝฎใ•ใ‚Œใฆใ„ใ‚‹ๅ ดๅˆใ€ใ‚ญใƒผใŒๆŠผใ•ใ‚Œใ‚‹ใจใ€ๅˆ—ใƒฏใ‚คใƒคใŒ่กŒใƒฏใ‚คใƒคใจๆŽฅ่งฆใ—ใ€ๅ›ž่ทฏใŒๅฎŒๆˆใ—ใพใ™ใ€‚ใ‚ญใƒผใƒœใƒผใƒ‰ใ‚ณใƒณใƒˆใƒญใƒผใƒฉใฏใ“ใฎ้–‰ๅ›ž่ทฏใ‚’ๆคœ็Ÿฅใ—ใ€ใ‚ญใƒผๆŠผไธ‹ใจใ—ใฆ็™ป้Œฒใ—ใพใ™ใ€‚

ใƒžใ‚คใ‚ฏใƒญใ‚ณใƒณใƒˆใƒญใƒผใƒฉใฏใƒ•ใ‚กใƒผใƒ ใ‚ฆใ‚งใ‚ขใ‚’ไป‹ใ—ใฆใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ใ•ใ‚Œใ€่ซ–็†1ใ‚’ไธ€ๅบฆใซ1ใคใšใคๅˆ—ใซ้€ไฟกใ—ใ€่กŒใ‹ใ‚‰ไธ€ๅบฆใซๅ…จใฆใ‚’่ชญใฟๅ–ใ‚Šใพใ™ - ใ“ใฎใƒ—ใƒญใ‚ปใ‚นใฏใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใ‚นใ‚ญใƒฃใƒณใจๅ‘ผใฐใ‚Œใพใ™ใ€‚ใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใฏใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใฏ้›ปๆตใฎ้€š้Žใ‚’่จฑๅฏใ—ใชใ„ใŸใใ•ใ‚“ใฎ้–‹ใ„ใŸใ‚นใ‚คใƒƒใƒใงใ™ - ใƒ•ใ‚กใƒผใƒ ใ‚ฆใ‚งใ‚ขใฏใ‚ญใƒผใŒๆŠผใ•ใ‚Œใฆใ„ใชใ„ใ‚‚ใฎใจใ—ใฆใ“ใ‚Œใ‚’่ชญใฟๅ–ใ‚Šใพใ™ใ€‚1ใคใฎใ‚ญใƒผใ‚’ๆŠผใ™ใจใ™ใใซใ€ใ‚ญใƒผใ‚นใ‚คใƒƒใƒใŒๆŽฅ็ถšใ•ใ‚Œใฆใ„ใ‚‹ๅˆ—ใ‹ใ‚‰ๆฅใฆใ„ใŸ่ซ–็†1ใŒใ‚นใ‚คใƒƒใƒใ‚’้€š้Žใ—ใฆๅฏพๅฟœใ™ใ‚‹่กŒใซๆธกใ•ใ‚Œใพใ™ - ไปฅไธ‹ใฎ 2x2 ใฎไพ‹ใ‚’็ขบ่ชใ—ใฆใใ ใ•ใ„:

    Column 0 being scanned     Column 1 being scanned
              x                                   x
             col0     col1              col0     col1
              |        |                 |        |
    row0 ---(key0)---(key1)    row0 ---(key0)---(key1)
              |        |                 |        |
    row1 ---(key2)---(key3)    row1 ---(key2)---(key3)

x ใฏ้–ข้€ฃไป˜ใ‘ใ‚‰ใ‚ŒใŸๅˆ—ใจ่กŒใฎๅ€คใŒ1ใงใ‚ใ‚‹ใ‹ใ€HIGH ใงใ‚ใ‚‹ใ“ใจใ‚’่กจใ—ใพใ™ใ€‚ใ“ใ“ใงใฏใ€ใ‚ญใƒผใŒๆŠผใ•ใ‚Œใฆใ„ใชใ„ใ“ใจใŒๅˆ†ใ‹ใ‚Šใพใ™ใ€‚ใใฎใŸใ‚ x ใ‚’ๅ–ๅพ—ใ™ใ‚‹่กŒใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚1ใคใฎใ‚ญใƒผใ‚นใ‚คใƒƒใƒใฎไบŒใคใฎๆŽฅ็‚นใฏใใฎใ‚นใ‚คใƒƒใƒใฎใ‚ใ‚‹่กŒใจๅˆ—ใซใใ‚Œใžใ‚ŒๆŽฅ็ถšใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚

key0 ใ‚’ๆŠผใ™ใจใ€col0 ใฏ row0 ใซๆŽฅ็ถšใ•ใ‚Œใ‚‹ใŸใ‚ใ€ใƒ•ใ‚กใƒผใƒ ใ‚ฆใ‚งใ‚ขใŒใใฎ่กŒใซๅฏพใ—ใฆๅ—ใ‘ๅ–ใ‚‹ๅ€คใฏ 0b01 ใงใ™ (ใ“ใ“ใง 0b ใฏใ“ใ‚ŒใŒใƒ“ใƒƒใƒˆๅ€คใงใ‚ใ‚‹ใ“ใจใ‚’ๆ„ๅ‘ณใ—ใพใ™ใ€‚ใคใพใ‚Šๆฌกใฎๆ•ฐๅญ—ใฏๅ…จใฆใƒ“ใƒƒใƒˆ(0ใพใŸใฏ1)ใงใ‚ใ‚Šใ€ใใฎๅˆ—ใฎใ‚ญใƒผใ‚’่กจใ—ใพใ™)ใ€‚ใ“ใฎ่กจ่จ˜ใ‚’ไฝฟ็”จใ—ใฆใ€ใ‚ญใƒผใ‚นใ‚คใƒƒใƒใŒๆŠผใ•ใ‚ŒใŸใ“ใจใ‚’็คบใ—ใ€ๅˆ—ใจ่กŒใŒๆŽฅ็ถšใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใ‚’็คบใ—ใพใ™:

    Column 0 being scanned     Column 1 being scanned
              x                                   x
             col0     col1              col0     col1
              |        |                 |        |
  x row0 ---(-+-0)---(key1)    row0 ---(-+-0)---(key1)
              |        |                 |        |
    row1 ---(key2)---(key3)    row1 ---(key2)---(key3)

row0 ใซใฏ x ใŒใ‚ใ‚‹ใŸใ‚ใ€ๅ€คใŒ1ใงใ‚ใ‚‹ใ“ใจใŒใ‚ใ‹ใ‚Šใพใ™ใ€‚ๅ…จไฝ“ใจใ—ใฆใ€key0 ใŒๆŠผใ•ใ‚ŒใŸๆ™‚ใซใƒ•ใ‚กใƒผใƒ ใ‚ฆใ‚งใ‚ขใŒๅ—ไฟกใ™ใ‚‹ใƒ‡ใƒผใ‚ฟใฏใ€

col0: 0b01
col1: 0b00
        โ”‚โ””row0
        โ””row1

ไธ€ๅบฆใซ่ค‡ๆ•ฐใฎใ‚ญใƒผใ‚’ๆŠผใ—ๅง‹ใ‚ใ‚‹ใจๅ•้กŒใŒ็™บ็”Ÿใ—ใพใ™ใ€‚ใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใ‚’ใ‚‚ใ†ไธ€ๅบฆ่ฆ‹ใ‚‹ใจใ€ใ‹ใชใ‚Šๆ˜Ž็™ฝใซใชใฃใฆใ„ใ‚‹ใฏใšใงใ™:

    Column 0 being scanned     Column 1 being scanned
              x                                   x
             col0     col1              col0     col1
              |        |                 |        |
  x row0 ---(-+-0)---(-+-1)  x row0 ---(-+-0)---(-+-1)
              |        |                 |        |
  x row1 ---(key2)---(-+-3)  x row1 ---(key2)---(-+-3)

  Remember that this ^ is still connected to row1

ใ“ใ‚Œใ‹ใ‚‰ๅ–ๅพ—ใ•ใ‚Œใ‚‹ใƒ‡ใƒผใ‚ฟใฏไปฅไธ‹ใฎ้€šใ‚Šใงใ™:

col0: 0b11
col1: 0b11
        โ”‚โ””row0
        โ””row1

4ใคๅ…จใฆใงใฏใชใใ€3ใคใฎใ‚ญใƒผใ—ใ‹ๆŠผใ•ใ‚Œใฆใ„ใชใ„ใŸใ‚ใ€ใ“ใ‚Œใฏๆญฃ็ขบใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใ“ใฎๆŒ™ๅ‹•ใฏใ‚ดใƒผใ‚นใƒˆใจๅ‘ผใฐใ‚Œใ€ใ“ใฎใ‚ˆใ†ใชๅฅ‡ๅฆ™ใชใ‚ทใƒŠใƒชใ‚ชใงใฎใฟ็™บ็”Ÿใ—ใพใ™ใŒใ€ใ‚ˆใ‚Šๅคงใใชใ‚ญใƒผใƒœใƒผใƒ‰ใงใฏใ‚ˆใ‚Šไธ€่ˆฌ็š„ใงใ™ใ€‚ใ“ใ‚Œใ‚’ๅ›ž้ฟใ™ใ‚‹ๆ–นๆณ•ใฏใ€ใ‚ญใƒผใ‚นใ‚คใƒƒใƒใฎๅพŒใซใ€่กŒใซๆŽฅ็ถšใ™ใ‚‹ๅ‰ใซใƒ€ใ‚คใ‚ชใƒผใƒ‰ใ‚’้…็ฝฎใ™ใ‚‹ใ“ใจใงใ™ใ€‚ใƒ€ใ‚คใ‚ชใƒผใƒ‰ใฏใ€้›ปๆตใŒไธ€ๆ–นๅ‘ใซใฎใฟๆตใ‚Œใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ๅ‰ใฎไพ‹ใงไป–ใฎๅˆ—ใจ่กŒใŒใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใซใชใ‚‰ใชใ„ใ‚ˆใ†ใซใ—ใพใ™ใ€‚ใƒ€ใ‚คใ‚ชใƒผใƒ‰ใƒžใƒˆใƒชใƒƒใ‚ฏใ‚นใ‚’ใ“ใฎใ‚ˆใ†ใซ่กจใ—ใพใ™;

    Column 0 being scanned     Column 1 being scanned
                x                                   x
              col0      col1              col0     col1
                โ”‚        โ”‚                 |        โ”‚
             (key0)   (key1)            (key0)   (key1)
              ! โ”‚      ! โ”‚               ! |      ! โ”‚
    row0 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚     row0 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
                โ”‚        โ”‚                 |        โ”‚
             (key2)   (key3)            (key2)   (key3)
              !        !                 !        !
    row1 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       row1 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅฎŸ้š›ใฎ็”จ้€”ใงใฏใ€ใƒ€ใ‚คใ‚ชใƒผใƒ‰ใฎ้ป’ใ„็ทšใŒ่กŒใซ้ขใ™ใ‚‹ใ‚ˆใ†ใซใ€ใ‚ญใƒผใ‚นใ‚คใƒƒใƒใ‹ใ‚‰้›ขใ‚Œใ‚‹ใ‚ˆใ†ใซ้…็ฝฎใ•ใ‚Œใพใ™ - ใ“ใฎๅ ดๅˆใฎ ! ใฏใƒ€ใ‚คใ‚ชใƒผใƒ‰ใงใ€้š™้–“ใฏ้ป’ใ„็ทšใ‚’่กจใ—ใพใ™ใ€‚ใ“ใ‚Œใ‚’่ฆšใˆใ‚‹่‰ฏใ„ๆ–นๆณ•ใฏใ€ไปฅไธ‹ใฎใ‚ทใƒณใƒœใƒซใ‚’่€ƒใˆใ‚‹ใ“ใจใงใ™: >|

ๆฌกใซใ€3ใคใฎใ‚ญใƒผใ‚’ๆŠผใ—ใฆใ€ใ‚ดใƒผใ‚นใƒˆใ‚ทใƒŠใƒชใ‚ชใจใชใ‚‹ใ‚‚ใฎใ‚’ๅฎŸๆ–ฝใ—ใพใ™:

    Column 0 being scanned     Column 1 being scanned
                x                                   x
              col0      col1              col0     col1
                โ”‚        โ”‚                 โ”‚        โ”‚
             (โ”Œโ”€โ”ค0)   (โ”Œโ”€โ”ค1)            (โ”Œโ”€โ”ค0)   (โ”Œโ”€โ”ค1)
              ! โ”‚      ! โ”‚               ! โ”‚      ! โ”‚
  x row0 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚   x row0 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
                โ”‚        โ”‚                 โ”‚        โ”‚
             (key2)   (โ”Œโ”€โ”˜3)            (key2)   (โ”Œโ”€โ”˜3)
              !        !                 !        !
    row1 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     x row1 โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅ…จใฆใŒๆœŸๅพ…้€šใ‚Šใซๅ‹•ใใพใ™๏ผใ“ใ‚Œใซใ‚ˆใ‚Šใ€ไปฅไธ‹ใฎใƒ‡ใƒผใ‚ฟใŒๅ–ๅพ—ใ•ใ‚Œใพใ™:

col0: 0b01
col1: 0b11
        โ”‚โ””row0
        โ””row1

ใƒ•ใ‚กใƒผใƒ ใ‚ฆใ‚งใ‚ขใฏใ“ใฎๆญฃใ—ใ„ใƒ‡ใƒผใ‚ฟใ‚’ไฝฟใฃใฆใ€ไฝ•ใ‚’ใ™ในใใ‹ใ‚’ใ€ๆœ€็ต‚็š„ใซใฏ OS ใซ้€ไฟกใ™ใ‚‹ๅฟ…่ฆใฎใ‚ใ‚‹ไฟกๅทใ‚’ๆคœๅ‡บใงใใพใ™ใ€‚

ๅ‚่€ƒๆ–‡็Œฎ: