Π‘Π»ΠΎΠΌΠ°Π½Π½ΡΠΉ Π½ΠΎΡΡΠ±ΡΠΊ Ρ ΡΠ°Π±ΠΎΡΠΈΠΌ ΡΠ°ΡΠΏΠ°Π΄ΠΎΠΌ ΠΈΠ»ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π²Π²ΠΎΠ΄Π° β ΠΎΠ±Π΅ ΡΡΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²Π΅Π΄ΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ: ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅Π½ΡΠΎΡΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΠΎΡ Π»ΡΠΏΡΠΎΠΏΠ° ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΡΠ΅ΡΠ΅Π· USB-ΠΏΠΎΡΡ? ΠΡΠ²Π΅Ρ ΡΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, Π½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΡ
Π½Π°Π²ΡΠΊΠΎΠ², Π½ΠΎ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ². Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΠΏΠ°Π΄Ρ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ, ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠ°Ρ ΠΏΠ°ΠΉΠΊΠ° ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠ² ΠΊ ΡΠ°Π·ΡΡΠΌΡ USB Type-A ΠΏΠΎΡΡΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΡΠΏΠ°Π΄Ρ Π½ΠΎΡΡΠ±ΡΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΠ²ΡΠ·ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, PS/2 ΠΈΠ»ΠΈ I2C), ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ USB HID-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π²ΡΠΎΠ΄Π΅ Arduino ΠΈΠ»ΠΈ STM32, Π° ΡΠ°ΠΊΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, USB-I2C ΠΌΠΎΡΡΠΎΠ²) ΠΌΠΎΠΆΠ½ΠΎ "ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ" ΡΠΈΠ³Π½Π°Π»Ρ ΡΠ΅Π½ΡΠΎΡΠ° Π² ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ Π΄Π»Ρ ΠΠ ΡΠΎΡΠΌΠ°Ρ. ΠΠΎΡΠΎΠ²Ρ Π»ΠΈ Π²Ρ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ Π² ΠΌΠΈΡ ΠΏΠ°ΡΠ»ΡΠ½ΠΈΠΊΠΎΠ², ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ²? Π’ΠΎΠ³Π΄Π° Π½Π°ΡΠ½ΡΠΌ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ β ΠΎΡΠ΅Π½ΠΊΠΈ ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΠΏΠ°Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ USB, Π° ΠΊΠ°ΠΊΠΈΠ΅ β Π½Π΅Ρ
ΠΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΡΠΏΠ°Π΄ ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡ "ΡΠ΅Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ" Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ USB-ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ°ΠΊΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ:
- π§ Π’ΠΈΠΏ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΠΎΠΉ ΠΏΠ»Π°ΡΠ΅. Π’Π°ΡΠΏΠ°Π΄Ρ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ PS/2 (4-6 ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²) ΠΏΡΠΎΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ I2C ΠΈΠ»ΠΈ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Apple ΠΈΠ»ΠΈ Dell Latitude).
- π± ΠΠ°Π»ΠΈΡΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΠΉΠ΄ΡΡΠ΅ Π΄Π°ΡΠ°ΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ°ΡΠΏΠ°Π΄Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Synaptics TM3000 ΠΈΠ»ΠΈ ELAN Tech), ΡΠ°Π½ΡΡ Π½Π° ΡΡΠΏΠ΅Ρ Π²ΠΎΠ·ΡΠ°ΡΡΡΡ Π² ΡΠ°Π·Ρ.
- π» Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π½ΡΠΎΡΡ ΡΡΠ΅Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ ΡΠΏΡΠ°Π²ΠΈΡΡΡ Arduino Uno, Π½ΠΎ ΡΠΏΡΠ°Π²ΠΈΡΡΡ STM32F4.
- π Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΡΠ»ΠΈ ΡΠ°ΡΠΏΠ°Π΄ ΠΌΠ΅Ρ Π°Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄ΡΠ½ (ΡΡΠ΅ΡΠΈΠ½Ρ, ΠΎΡΡΠ»ΠΎΠ΅Π½ΠΈΠ΅ ΡΠ΅Π½ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ), Π΅Π³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π΄ΠΎΡΠΎΠΆΠ΅, ΡΠ΅ΠΌ ΠΏΠΎΠΊΡΠΏΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ USB-ΡΠ°ΡΠΏΠ°Π΄Π°.
Π‘Π°ΠΌΡΠ΅ "Π΄ΡΡΠΆΠ΅Π»ΡΠ±Π½ΡΠ΅" ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΠΊΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ β ΡΠ°ΡΠΏΠ°Π΄Ρ ΠΎΡ Π½ΠΎΡΡΠ±ΡΠΊΠΎΠ² Lenovo ThinkPad (ΡΠ΅ΡΠΈΠΈ T4xx, X2xx), Acer Aspire ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
HP ProBook. ΠΡ
ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΡΠ°ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ Π²ΡΠΎΠ΄Π΅ libusbp ΠΈΠ»ΠΈ HID-Project. Π Π²ΠΎΡ ΡΠ°ΡΠΏΠ°Π΄Ρ ΠΎΡ MacBook (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ Force Touch) ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±Π΅Π· Π³Π»ΡΠ±ΠΎΠΊΠΈΡ
Π·Π½Π°Π½ΠΈΠΉ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’Π°ΡΠΏΠ°Π΄Ρ Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ClickPad ΠΎΡ Synaptics) ΠΌΠΎΠ³ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΌΡΠ»ΡΡΠΈΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΉ Π² ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅. ΠΠ΅Π· ΡΡΠΎΠ³ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ΅Π½ΡΠΎΡΠ½Π°Ρ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ ΠΎΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΊΠ°ΡΠ°Π½ΠΈΡ.
| ΠΠΎΠ΄Π΅Π»Ρ Π½ΠΎΡΡΠ±ΡΠΊΠ° | Π’ΠΈΠΏ ΡΠ°ΡΠΏΠ°Π΄Π° | ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ | Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ | Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ Π°Π΄Π°ΠΏΡΠ΅Ρ |
|---|---|---|---|---|
| Lenovo ThinkPad T480 | Synaptics TM3000 | PS/2 | ΠΠΈΠ·ΠΊΠ°Ρ | USB-PS/2 Π°Π΄Π°ΠΏΡΠ΅Ρ Π½Π° ATmega32U4 |
| Acer Aspire E15 | ELAN 1200 | I2C | Π‘ΡΠ΅Π΄Π½ΡΡ | STM32 + Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ELAN-I2C-HID |
| HP Pavilion 15 | Synaptics ClickPad | PS/2 + GPIO | ΠΡΡΠΎΠΊΠ°Ρ | Arduino Leonardo + ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° |
| Dell XPS 13 (2018) | ALPS U1 | I2C + ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠΉ | ΠΡΠ΅Π½Ρ Π²ΡΡΠΎΠΊΠ°Ρ | ESP32 Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° |
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΡΡΠΈΠ΅
Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΡΠ°ΡΠΏΠ°Π΄ Π² USB-ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΠ»ΡΠ½ΠΈΠΊ, Π½ΠΎ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠΎΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ:
- π₯ ΠΠ°ΡΠ»ΡΠ½Π°Ρ ΡΡΠ°Π½ΡΠΈΡ Ρ ΡΠΎΠ½ΠΊΠΈΠΌ ΠΆΠ°Π»ΠΎΠΌ (Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ SMD-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ). ΠΠΎΡΠ½ΠΎΡΡΡ β Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 40 ΠΡ.
- π ΠΡΠΏΠ° ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡΠΎΡΠΊΠΎΠΏ (ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΡΠ°ΡΠΏΠ°Π΄Π° ΡΠ°ΡΡΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π³ ΠΌΠ΅Π½Π΅Π΅ 1 ΠΌΠΌ).
- πΆ ΠΡΠ»ΡΡΠΈΠΌΠ΅ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΠΏΠ΅ΠΉ ΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠΉ.
- π₯οΈ ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ: Arduino Leonardo (Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²) ΠΈΠ»ΠΈ STM32F103 (Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ²).
- π ΠΠ΄Π°ΠΏΡΠ΅ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π½ΠΈΠΊΠΈ:
USB-UART(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, CP2102) Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ.I2C-USB ΠΌΠΎΡΡ(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, FT232H) Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
- π οΈ Π Π°ΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΈ: ΠΏΡΠΈΠΏΠΎΠΉ
Sn63Pb37, ΡΠ»ΡΡ RMA-223, ΡΠ΅ΡΠΌΠΎΡΡΠ°Π΄ΠΎΡΠ½Π°Ρ ΡΡΡΠ±ΠΊΠ°, ΠΏΡΠΎΠ²ΠΎΠ΄Π°AWG 30.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ»Π°ΡΡ Π²ΡΠΎΠ΄Π΅ Teensy (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ HID "ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ") ΠΈΠ»ΠΈ Raspberry Pi Pico (Π³ΠΈΠ±ΠΊΠ°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° Π½Π° MicroPython). ΠΠ»Ρ ΡΠ°ΡΠΏΠ°Π΄ΠΎΠ² Ρ I2C ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Saleae Logic), ΡΡΠΎΠ±Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°ΡΠΏΠ°Π΄Π°ΠΌΠΈ Apple (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡ MacBook Pro 2015-2017) Π±ΡΠ΄ΡΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ (Broadcom BCM5976) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ΅Π· ΡΠ΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
- Arduino (Leonardo/Micro)
- STM32 (Π»ΡΠ±Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ)
- ESP32
- Raspberry Pi Pico
- ΠΡΡΠ³ΠΎΠΉ/ΠΠ΅ Π·Π½Π°Ρ
Π¨Π°Π³ 1: ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΠ°Π΄Π° ΠΈΠ· Π½ΠΎΡΡΠ±ΡΠΊΠ°
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ°ΡΠΏΠ°Π΄ ΠΊ USB, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΈΠ· ΠΊΠΎΡΠΏΡΡΠ° Π½ΠΎΡΡΠ±ΡΠΊΠ°. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ: ΡΠ΅Π½ΡΠΎΡΠ½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π° Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΠΎΠΉ ΠΏΠ»Π°ΡΠΎΠΉ ΡΠΎΠ½ΠΊΠΈΠΌ ΡΠ»Π΅ΠΉΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡ.
ΠΡΠΊΠ»ΡΡΠΈΡΠ΅ Π½ΠΎΡΡΠ±ΡΠΊ ΠΎΡ ΡΠ΅ΡΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠΈΡΠ΅ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ|
Π‘ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡΡΠΉΡΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΉΡΠΎΠ² ΠΈ Π²ΠΈΠ½ΡΠΎΠ²|
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ»Π°ΡΡΠΈΠΊΠΎΠ²ΡΠΉ ΠΌΠ΅Π΄ΠΈΠ°ΡΠΎΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π·Π°ΡΡΠ»ΠΎΠΊ|
Π₯ΡΠ°Π½ΠΈΡΠ΅ Π²ΠΈΠ½ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ (ΠΎΠ½ΠΈ ΡΠ°ΡΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅)-->
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
- Π‘Π½ΠΈΠΌΠΈΡΠ΅ Π·Π°Π΄Π½ΡΡ ΠΊΡΡΡΠΊΡ Π½ΠΎΡΡΠ±ΡΠΊΠ°, ΠΎΡΠΊΡΡΡΠΈΠ² Π²ΡΠ΅ Π²ΠΈΠ½ΡΡ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, MacBook Air) ΠΊΡΡΡΠΊΠ° ΠΏΡΠΈΠΊΠ»Π΅Π΅Π½Π° β ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅Π½ Π΄Π»Ρ ΡΠ°Π·ΠΌΡΠ³ΡΠ΅Π½ΠΈΡ ΠΊΠ»Π΅Ρ.
- ΠΡΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΡΠ»Π΅ΠΉΡ ΡΠ°ΡΠΏΠ°Π΄Π° ΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΠΎΠΉ ΠΏΠ»Π°ΡΡ. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡΡ Π·Π°ΡΡΠ»ΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΠΏΡΠΈΠΏΠΎΠ΄Π½ΡΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΠΉ ΠΎΡΠ²ΡΡΡΠΊΠΎΠΉ.
- ΠΡΠΊΡΡΡΠΈΡΠ΅ Π²ΠΈΠ½ΡΡ, ΠΊΡΠ΅ΠΏΡΡΠΈΠ΅ ΡΠ°ΡΠΏΠ°Π΄ ΠΊ ΠΊΠΎΡΠΏΡΡΡ. ΠΡΠ΄ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ: Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΈΠ½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΡΡΡΡ ΠΏΠΎΠ΄ Π½Π°ΠΊΠ»Π΅ΠΉΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΠΌΠΈ Π½ΠΎΠΆΠΊΠ°ΠΌΠΈ.
- ΠΠ·Π²Π»Π΅ΠΊΠΈΡΠ΅ ΡΠ°ΡΠΏΠ°Π΄ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΌΠ΅ΡΠ°Π»Π»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΠΌΠΊΠΎΠΉ (Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π΅ΡΡΡ). ΠΠ΅ ΡΡΠ½ΠΈΡΠ΅ Π·Π° ΡΠ»Π΅ΠΉΡ β ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ!
ΠΡΠ»ΠΈ ΡΠ°ΡΠΏΠ°Π΄ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ Π² Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΡΠΏΡΡΠ° (ΠΊΠ°ΠΊ Π² Dell XPS 13), ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ Π½ΠΎΡΡΠ±ΡΠΊ ΠΏΠΎΡΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ, ΡΡΠΎΠΈΡ Π»ΠΈ ΠΈΠ³ΡΠ° ΡΠ²Π΅Ρ: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΎΡΠ΅ ΠΊΡΠΏΠΈΡΡ Π±/Ρ ΡΠ°ΡΠΏΠ°Π΄ Π½Π° AliExpress ΠΈΠ»ΠΈ eBay ΡΠΆΠ΅ Π² ΡΠ°Π·ΠΎΠ±ΡΠ°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΡΠ»Π΅ΠΉΡ ΠΏΠΎΡΠ²Π°Π»ΡΡ?
ΠΡΠ»ΠΈ ΡΠ»Π΅ΠΉΡ ΡΠ°ΡΠΏΠ°Π΄Π° ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄ΡΠ½, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
1. ΠΠ°ΠΉΠΊΠ° Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠ² ΠΊ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌ ΡΠ»Π΅ΠΉΡΠ° (ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ).
2. ΠΠ°ΠΌΠ΅Π½Π° ΡΠ»Π΅ΠΉΡΠ° Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΎΡ Π΄ΠΎΠ½ΠΎΡΡΠΊΠΎΠ³ΠΎ Π½ΠΎΡΡΠ±ΡΠΊΠ° (Π½ΠΎΠΌΠ΅Ρ Π΄Π΅ΡΠ°Π»ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½ Π½Π° ΡΠ°ΠΌΠΎΠΌ ΡΠ»Π΅ΠΉΡΠ΅).
Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ» ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΠΊΠ»Π΅ΠΉ Π΄Π»Ρ ΡΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
Π¨Π°Π³ 2: ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°
Π‘Π°ΠΌΡΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΡΠ°ΠΏ β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΡΠ»Π΅ΠΉΡΠ° Π·Π° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°ΡΡ. ΠΠ΅Π· ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ USB Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
1. ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠΌΠΎΡΡ. ΠΠ° ΡΠ»Π΅ΠΉΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΠ΅ ΡΠ°ΡΠΏΠ°Π΄Π° ΡΠ°ΡΡΠΎ Π΅ΡΡΡ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²: GND, VCC, SCL, SDA (Π΄Π»Ρ I2C) ΠΈΠ»ΠΈ CLK, DATA (Π΄Π»Ρ PS/2). ΠΡΠ»ΠΈ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅Ρ, ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅ΡΡ.
2. ΠΡΠΎΠ·Π²ΠΎΠ½ΠΊΠ°. ΠΠΊΠ»ΡΡΠΈΡΠ΅ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΈΠΎΠ΄ΠΎΠ² ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ GND ΠΈ VCC (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΊΡΠ°ΠΉΠ½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ). ΠΠ°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°ΡΠΏΠ°Π΄ΠΎΠ² β 3.3V ΠΈΠ»ΠΈ 5V.
3. ΠΠ½Π°Π»ΠΈΠ· ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°. ΠΠ»Ρ I2C-ΡΠ°ΡΠΏΠ°Π΄ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΊ Π»ΠΈΠ½ΠΈΡΠΌ SCL/SDA ΠΈ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΈ ΠΊΠ°ΡΠ°Π½ΠΈΠΈ. ΠΠ»Ρ PS/2 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°Ρ ΠΈΠ»ΠΈ Arduino Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ SoftwareSerial.
ΠΡΠΈΡΠΈΡΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ: Π΅ΡΠ»ΠΈ ΡΠ°ΡΠΏΠ°Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» (ΠΊΠ°ΠΊ Π² MacBook ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ASUS ROG), Π±Π΅Π· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΠ±ΡΠ΅ΡΡΠ½ Π½Π° ΠΏΡΠΎΠ²Π°Π». Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΡ ΠΎΠ΄ β ΠΏΠΎΠΈΡΠΊ ΡΠ½ΡΡΠ·ΠΈΠ°ΡΡΠΎΠ², ΡΠΆΠ΅ ΡΠ΅ΡΠΈΠ²ΡΠΈΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠΎΡΡΠΌΠ°Ρ EEVblog ΠΈΠ»ΠΈ XDA Developers).
| ΠΡΠΎΡΠΎΠΊΠΎΠ» | ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° | ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ |
|---|---|---|
| PS/2 | Arduino + Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° PS2Mouse |
|
| I2C | ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ + PulseView |
|
Π¨Π°Π³ 3: ΠΡΠ±ΠΎΡ ΡΡ Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°
ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΡΠ°ΡΠΏΠ°Π΄Π° Π² USB HID. ΠΠ°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡΠΈ:
- π ΠΠΎΡΠΎΠ²ΡΠΉ Π°Π΄Π°ΠΏΡΠ΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ»Π°ΡΡ USB-PS/2 Π½Π° Π±Π°Π·Π΅ CH340G ΠΈΠ»ΠΈ FT232RL. ΠΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ PS/2-ΡΠ°ΡΠΏΠ°Π΄ΠΎΠ².
- π± ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΎΠΉ. Arduino Leonardo ΠΈΠ»ΠΈ Teensy ΠΌΠΎΠ³ΡΡ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ USB-ΠΌΡΡΡ, Π΅ΡΠ»ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π² Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄.
- π» ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ½Π²Π΅ΡΡΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ². ΠΠ»Ρ I2C ΠΈΠ»ΠΈ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ STM32 Ρ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΎΠΉ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΏΡΠΎΡΠΈΠ²ΠΊΡ Arduino Leonardo Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ PS/2-ΡΠ°ΡΠΏΠ°Π΄ΠΎΠΌ:
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΡΠ°ΡΠΏΠ°Π΄Π° ΠΊ Arduino:
DATAβPin 5CLKβPin 6VCCβ5VGNDβGND
PS2Mouse ΡΠ΅ΡΠ΅Π· Arduino IDE.#include
#include
PS2Mouse mouse(6, 5);
void setup() {
mouse.begin();
Mouse.begin();
}
void loop() {
if (mouse.available()) {
PS2Data data = mouse.read();
Mouse.move(data.x, -data.y); // ΠΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ Y-ΠΎΡΡ
}
}
ΠΠ»Ρ I2C-ΡΠ°ΡΠΏΠ°Π΄ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ELAN) ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅: ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ°ΡΡΠΈΡΡ ΡΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ΅Π½ΡΠΎΡΠ° ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ
Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ HID. ΠΠΎΡΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΅ΡΡΡ Π½Π° GitHub (ΠΏΠΎΠΈΡΠΈΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π²ΡΠΎΠ΄Π΅ ELAN-Touchpad-USB).
ΠΡΠ»ΠΈ ΡΠ°ΡΠΏΠ°Π΄ Π½Π΅ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΠΊΠ°ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ CLK/DATA. ΠΠ½ΠΎΠ³Π΄Π° ΡΠΈΠ³Π½Π°Π»Ρ Π½ΡΠΆΠ½ΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, digitalWrite(CLK, !digitalRead(CLK))).
Π¨Π°Π³ 4: Π‘Π±ΠΎΡΠΊΠ° ΡΡ Π΅ΠΌΡ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° Π³ΠΎΡΠΎΠ²Π°, ΠΎΡΡΠ°ΡΡΡΡ ΡΠΎΠ±ΡΠ°ΡΡ ΡΡ Π΅ΠΌΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. ΠΠΎΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ:
- π₯ ΠΠ°ΠΉΠΊΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ½ΠΊΠΈΠΉ ΠΏΡΠΈΠΏΠΎΠΉ ΠΈ ΡΠ»ΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ Π·Π°ΠΌΠΊΠ½ΡΡΡ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ. ΠΠ»Ρ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄Π° Π³ΠΎΡΡΡΠΈΠΌ ΠΊΠ»Π΅Π΅ΠΌ.
- π‘οΈ ΠΠ·ΠΎΠ»ΡΡΠΈΡ. ΠΠ±ΠΌΠΎΡΠ°ΠΉΡΠ΅ ΠΎΠ³ΠΎΠ»ΡΠ½Π½ΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ ΡΠ΅ΡΠΌΠΎΡΡΠ°Π΄ΠΎΡΠ½ΠΎΠΉ ΡΡΡΠ±ΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ»Π΅Π½ΡΠΎΠΉ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΊΠΎΡΠΎΡΠΊΠΈΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ.
- π‘ ΠΠΈΡΠ°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΡΠ°ΡΠΏΠ°Π΄ ΡΡΠ΅Π±ΡΠ΅Ρ
3.3V, Π° Π²Ρ ΠΏΠΎΠ΄Π°Π»ΠΈ5V, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ³ΠΎΡΠ΅ΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, AMS1117). - π₯οΈ ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΠ. ΠΡΡΠ°Π²ΡΡΠ΅ Arduino Π² USB-ΠΏΠΎΡΡ. ΠΡΠ»ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΠΈΡ Ρ ΡΠ°ΠΉΡΠ° Arduino.
ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
- Π£ΡΠΈΠ»ΠΈΡΡ
MouseTester(ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ raw-Π΄Π°Π½Π½ΡΠ΅ Ρ USB-ΡΡΡΡΠΎΠΉΡΡΠ²). - Heidi Debugger (Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°
HID-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ). - Paint ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ (ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠ»Π°Π²Π½ΠΎΡΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊΡΡΡΠΎΡΠ°).
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅:
- π ΠΡΡΡΠΎΡ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ ΡΡΠ²ΠΊΠ°ΠΌΠΈ β ΡΠ²Π΅Π»ΠΈΡΡΡΠ΅ ΡΠ°ΡΡΠΎΡΡ ΠΎΠΏΡΠΎΡΠ° Π² ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅.
- β Π’Π°ΡΠΏΠ°Π΄ Π½Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡΡΡ β ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅
VID/PIDΠ² ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ (Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΡHID). - π Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ β ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΏΠΈΡΠ°Π½ΠΈΠΈ (Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡ
100nFΠΌΠ΅ΠΆΠ΄ΡVCCΠΈGND).
ΠΡΠ»ΠΈ ΡΠ°ΡΠΏΠ°Π΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π΅ Π½Π°ΠΆΠΈΠΌΠ°ΡΡΡΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ Π²Π°ΡΠ° ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° ΡΠΌΡΠ»ΡΡΠΈΡ ΠΊΠ»ΠΈΠΊΠΎΠ². Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ mouse.buttons() ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Mouse.press()/Mouse.release().
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΈ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΡ
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°ΡΠΏΠ°Π΄ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΡΡ ΠΊΠ°ΠΊ USB-ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ. ΠΠΎΡ ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ Windows ΠΈ Linux:
ΠΠ»Ρ Windows:
- ΠΡΠΊΡΠΎΠΉΡΠ΅
ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ Π²Π°ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ΠΡΡΠΈ ΠΈ ΠΈΠ½ΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. - ΠΡΠ»ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΡΡ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ Π²ΡΡΡΠ½ΡΡ, ΡΠΊΠ°Π·Π°Π² ΠΏΠ°ΠΏΠΊΡ Ρ
inf-ΡΠ°ΠΉΠ»ΠΎΠΌ(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,mouhid.infΠ΄Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡHID-ΡΡΡΡΠΎΠΉΡΡΠ²). - ΠΠ»Ρ ΡΠΎΠ½ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Synaptics Control Panel ΠΈΠ»ΠΈ ELAN Smart-Pad (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ).
ΠΠ»Ρ Linux:
- ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡΡΡ Π»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
lsusb | grep -i mouse - ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅Π½ΡΠΎΡΠ° ΡΠ΅ΡΠ΅Π·
xinput:xinput list # ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ID Π²Π°ΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°xinput set-prop [ID] "libinput Tapping Enabled" 1
- ΠΠ»Ρ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΆΠ΅ΡΡΠΎΠ² ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ libinput-gestures ΠΈΠ»ΠΈ touchegg.
ΠΡΠ»ΠΈ ΡΠ°ΡΠΏΠ°Π΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ "Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ", ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅:
- π ΠΠ΅ΡΠ΅ΠΏΡΠΎΡΠΈΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ
VID/PID(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,0x046D:0xC52BΠ΄Π»Ρ ΡΠΌΡΠ»ΡΡΠΈΠΈ Logitech). - π₯ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Zadig Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ
USB-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Π½Π°libusb. - π§ ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ
descriptorΠ² ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅, ΡΡΠΎΠ±Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ ΠΊΠ°ΠΊHID-compliant mouse.
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΌΡΠ»ΡΡΠΈΡΠ°ΡΠ°?
ΠΠ»Ρ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΠΌΡΠ»ΡΡΠΈΡΠ°ΡΠ° (ΠΆΠ΅ΡΡΡ, ΡΠΊΡΠΎΠ»Π» Π΄Π²ΡΠΌΡ ΠΏΠ°Π»ΡΡΠ°ΠΌΠΈ) ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Mouse.h Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ:
1. ΠΡΠΎΡΠΈΠ²ΠΊΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ°Ρ HID Multi-Touch Protocol (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, USBHIDTouchScreen Π΄Π»Ρ Teensy).
2. ΠΠ°ΡΡΠΈΠ½Π³ Π΄Π°Π½Π½ΡΡ
ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠΎΡΠΊΠ°Ρ
ΠΊΠ°ΡΠ°Π½ΠΈΡ (Π΄Π»Ρ I2C-ΡΠ°ΡΠΏΠ°Π΄ΠΎΠ² ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π±Π°ΠΉΡΡ Ρ Π°Π΄ΡΠ΅ΡΠΎΠ² 0x02-0x0A).
3. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° report descriptor Π² ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅, ΡΡΠΎΠ±Ρ ΠΠ‘ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π»Π° ΠΆΠ΅ΡΡΡ.
ΠΠΎΡΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΅ΡΡΡ Π΄Π»Ρ ΡΠ°ΡΠΏΠ°Π΄ΠΎΠ² Synaptics (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° SynapticsPS2) ΠΈ ELAN (ΠΏΡΠΎΠ΅ΠΊΡ ELAN-Touchpad Π½Π° GitHub).
FAQ: Π§Π°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΡΠΏΠ°Π΄ ΠΎΡ MacBook ΠΊ USB?
Π’Π°ΡΠΏΠ°Π΄Ρ Apple (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ Force Touch) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Π½Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ USB. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β ΡΡΠ°ΡΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ (MacBook Pro 2012-2015), Π½ΠΎ ΠΈ ΡΠ°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°.
ΠΠΎΡΠ΅ΠΌΡ ΠΊΡΡΡΠΎΡ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΡ ΡΡΠΎΡΠΎΠ½Ρ?
ΠΡΠΎ ΡΠΈΠΏΠΈΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΈΠ½Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΎΡΠ΅ΠΉ. Π ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ Arduino ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΠΊ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ:
Mouse.move(-data.x, data.y); // ΠΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ X-ΠΎΡΡ
ΠΠ»Ρ I2C-ΡΠ°ΡΠΏΠ°Π΄ΠΎΠ² ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡΠΎΠ² Π² ΡΡΡΡΡ
Π΄Π°Π½Π½ΡΡ
(ΠΈΠ½ΠΎΠ³Π΄Π° X ΠΈ Y ΠΏΠ΅ΡΠ΅ΠΏΡΡΠ°Π½Ρ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ).
ΠΡΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠ°ΡΡΡ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· ΠΏΠ°ΠΉΠΊΠΈ?
Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΡΠΆΠΈΠ½Π½ΡΠ΅ ΠΊΠΎΠ½Π½Π΅ΠΊΡΠΎΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, pomona clips) ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄Π° Ρ Π·Π°ΠΆΠΈΠΌΠ°ΠΌΠΈ "ΠΊΡΠΎΠΊΠΎΠ΄ΠΈΠ»", Π½ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π΅Π½Π°Π΄ΡΠΆΠ½ΡΠΌ. ΠΠ°ΠΉΠΊΠ° β Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ°ΠΊΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΡΠΏΠ°Π΄ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ.
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΏΠ°Π΄ ΡΠ°Π±ΠΎΡΠ°Π» ΠΊΠ°ΠΊ Π² Π½ΠΎΡΡΠ±ΡΠΊΠ΅ (Ρ ΠΆΠ΅ΡΡΠ°ΠΌΠΈ)?
ΠΠ»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΆΠ΅ΡΡΠΎΠ² (ΡΠΊΡΠΎΠ»Π», ΡΠ²Π°ΠΉΠΏΡ, Π·ΡΠΌ) Π½ΡΠΆΠ½ΠΎ:
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ
HID Multi-Touch(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Teensy 3.2+). - ΠΠ°ΡΡΡΠΎΠΈΡΡ ΠΏΠ°ΡΡΠΈΠ½Π³ Π΄Π°Π½Π½ΡΡ
ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΠ°Π»ΡΡΠ°Ρ
(Π΄Π»Ρ Synaptics ΡΡΠΎ Π±Π°ΠΉΡΡ
Finger1-XY,Finger2-XYΠΈ Ρ.Π΄.). - ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΆΠ΅ΡΡΠΎΠ² Π² ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²Π°ΠΉΠΏ Π²Π²Π΅ΡΡ
=
PAGE_UP). - Π Windows ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Synaptics Gesture Suite, Π² Linux β touchegg.
ΠΠΎΡΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΅ΡΡΡ Π΄Π»Ρ ΡΠ°ΡΠΏΠ°Π΄ΠΎΠ² Lenovo ΠΈ Acer.
ΠΠ΄Π΅ ΠΊΡΠΏΠΈΡΡ ΡΠ»Π΅ΠΉΡ ΠΈΠ»ΠΈ Π°Π΄Π°ΠΏΡΠ΅Ρ Π΄Π»Ρ ΡΠ°ΡΠΏΠ°Π΄Π°?
Π¨Π»Π΅ΠΉΡΡ ΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ:
- ΠΠ° AliExpress (ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½ΠΎΡΡΠ±ΡΠΊΠ° + "touchpad cable").
- ΠΠ° eBay (ΡΠΈΠ»ΡΡΡ ΠΏΠΎ "used/lot" Π΄Π»Ρ Π΄ΠΎΠ½ΠΎΡΡΠΊΠΈΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ).
- Π ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, LCSC Π΄Π»Ρ SMD-Π΄Π΅ΡΠ°Π»Π΅ΠΉ).
- ΠΠ° ΡΠΎΡΡΠΌΠ°Ρ ΠΏΠΎ ΡΠ΅ΠΌΠΎΠ½ΡΡ Π½ΠΎΡΡΠ±ΡΠΊΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, NotebookReview ΠΈΠ»ΠΈ BadCaps).
Π¦Π΅Π½Ρ Π²Π°ΡΡΠΈΡΡΡΡΡΡ ΠΎΡ $5 Π·Π° ΡΠ»Π΅ΠΉΡ Π΄ΠΎ $50 Π·Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π°Π΄Π°ΠΏΡΠ΅ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, USB-I2C ΠΌΠΎΡΡΡ).