hexvolt-Π±Π»ΠΎΠ³: Raspberry Pi. Π Π°Π±ΠΎΡΠ°Π΅ΠΌ Ρ GPIO Π½Π° Python
ΠΠ°ΠΊ-ΡΠΎ Ρ ΠΏΠΈΡΠ°Π» ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Raspberry Pi Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΠΌΠΎΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ. ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ Π½Π°Π΄ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π£ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΆΠ΅Π»Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ²ΠΎΠ΅ ΠΆΠ΅Π»Π΅Π·ΠΎ ΠΊ Raspberry Π΅ΡΡΡ Π΄Π²Π° ΠΏΡΡΠΈ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ USB ΠΈΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (GPIO). Π‘ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ USB Π²ΡΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ (Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΡΡ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ ΡΠ΅ΡΠ΅Π· USB). Π GPIO ΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, Π΄Π° ΠΈ ΠΎΠΏΡΡΠ° Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅Ρ. Π ΠΎΠ±ΡΠ΅ΠΌ Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π»ΡΡ GPIO ΠΈ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ. Π ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎ Π²ΡΠ²ΠΎΠ΄Π°Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡΒ Raspberry Pi — GPIO:
- Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ GPIO
- ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ° GPIO
- ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΒ GPIOΒ Π½Π°Β Python
- Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ GPIO (ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ)
- ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡΒ GPIO Raspberry
ΠΠΎΡΡ
GPIO — Π²ΡΠ²ΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Raspberry PiΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ Π½Π°Π»Π°Π΄ΠΈΠ» ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Raspberry Pi ΡΠ΅ΡΠ΅Π· SSH, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Β ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Ρ ΠΌΠ΅Π½Ρ ΠΊ Raspberry ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° «ΠΏΡΠΎΠ²ΠΎΠ΄Π°»: ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠ°Π±Π΅Π»Ρ Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΡΠΎΡΡΠ΅ΡΠΎΠΌ. Π₯ΠΎΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ: Π²ΡΠ΅ Π½ΠΈΠΆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ, ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ Raspberry ΡΠ΅ΡΠ΅Π· SSH, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
ΠΠΎΡΡ GPIO (ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ General Purpose Input Output) — ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄Ρ (Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»Π°) ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π²ΡΡ ΠΎΠ΄Ρ (Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΈΠ³Π½Π°Π»Π°). ΠΠ° Raspberry PiΒ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡΡ ΡΡΠ΄ΠΎΠ² ΡΡΡΡΡΠΊΠΎΠ² Ρ ΡΠ°Π³ΠΎΠΌ Π² 2,54 ΠΌΠΌ (ΡΠ°Π·ΡΠ΅ΠΌΒ PLD). ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ «ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠΈ Π²ΡΠ²ΠΎΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠΈΡ ΡΠ΅Π»ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΅ΠΌΡ Π·Π°Ρ ΠΎΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ GPIO ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅ΡΡ Π²Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΠΎ ΡΠΈΡΡΠΎΠ²ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ 3,3 Π, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π½Π° GPIO Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π» ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π°Π²Π°ΡΡ Π½Π° Π½Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π» ΠΈΠ·Π²Π½Π΅ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π½Π΅Π»ΡΠ·Ρ.
ΠΡΠ°ΠΊ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΡΡ GPIO ΠΈ ΠΊΠ°ΠΊΠΎΠ²Ρ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ? GPIO ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π² ΡΠ΅Π±Π΅ 26 Π²ΡΠ²ΠΎΠ΄ΠΎΠ², ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ
ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
- 2 Π²ΡΠ²ΠΎΠ΄Π° Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ 5 Π
- 2 Π²ΡΠ²ΠΎΠ΄Π° Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ 3,3 Π
- 5 ΠΎΠ±ΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² (Π·Π΅ΠΌΠ»Ρ)
- 17 ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ²
ΡΡΠ½ΠΊΡΠΈΠΈ. Π§ΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ? ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΠ°ΠΊΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ Π²ΡΠ²ΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² GPIOΒ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ ΠΌΠΎΠ³ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ I2C, SPI ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ UART.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠΎ Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ². ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π½Π΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ ΠΈ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΠΎΠΊΠ° ΠΆΠ΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ «1» ΠΈ «0» Π½Π° Π½ΡΠΆΠ½ΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π΅ — Π·Π½Π°Π½ΠΈΡ ΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π½Π΅ Π±ΡΠ΄Ρ Π·Π΄Π΅ΡΡ ΡΠ΄Π΅Π»ΡΡΡ ΡΡΠΎΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π‘ΠΊΠ°ΠΆΡ ΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎ ΡΡΠ΅Π΄ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² (ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π°ΡΡΠΈΠΊΠΈ, ΠΠ¦Π, Π¦ΠΠ, ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΏΠ°ΠΌΡΡΠΈ) ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² ΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π² GPIO RaspberryΒ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΈ Ρ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° «Π½Π°ΡΡΠΈΡΡ» Raspberry «ΠΎΠ±ΡΠ°ΡΡΡΡ» Ρ Π²Π°ΡΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ.
ΠΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ Π³Π΄Π΅ ΠΊΠ°ΠΊΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ? ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ° (ΡΠΎΠΊΠΎΠ»Π΅Π²ΠΊΠ°) GPIO. Π ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ° ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ GPIO Raspberry Pi. ΠΠ΄Π΅ΡΡ Ρ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΡΠ°ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΡ GPIOΒ — Π΄Π»Ρ Raspberry Pi Model B Rev.2:
ΠΠ° ΡΡ
Π΅ΠΌΠ΅ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ
ΡΠΊΠ°Π·Π°Π½Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π°:
- SDA, SCL — Π²ΡΠ²ΠΎΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° I2C
- TXD, RXD — Π²ΡΠ²ΠΎΠ΄Ρ UART
- MOSI, MISO, SCLK, CE0, CE1 — Π²ΡΠ²ΠΎΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° SPI
- GPCLK0 — (
- PCM_CLK, PCM_DOUT — Π²ΡΠ²ΠΎΠ΄Ρ Π°ΡΠ΄ΠΈΠΎ-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° I2S
Π§ΡΠΎ ΠΠΠΠΠ Π·Π½Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π±ΠΎΡΠΎΠΉ Ρ
GPIO Raspberry PiΠΠΎΠΆΠ°Π»ΡΠΉ, ΡΡΠΎ ΡΠ°ΠΌΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π». ΠΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ GPIO ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ Π½Π΅ Π·Π°Π»Π΅ΡΠ΅ΡΡ Π΅ΡΠ΅ Π½Π° 35-50$ Π½Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡΒ Raspberry. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΡΠ°ΠΊΠΈΠ΅ «ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ», Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΡΠ°Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ, ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
- ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΌΠΌΠ°ΡΠ½ΡΠΉ ΡΠΎΠΊ ΠΎΠ±ΠΎΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² 3.3 Π ΡΠ°Π²Π΅Π½ 50 ΠΌΠ! ΠΠΎΡΡΠΎΠΌΡ ΡΡΠΈ Π²ΡΠ²ΠΎΠ΄Ρ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ², ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΡΠΉ ΡΠΎΠΊ ΠΌΠ΅Π½ΡΡΠ΅ 50 ΠΌΠ.
- ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΌΠΌΠ°ΡΠ½ΡΠΉ ΡΠΎΠΊ ΠΎΠ±ΠΎΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² 5 Π ΡΠ°Π²Π΅Π½ 300 ΠΌΠ! Β ΠΡΠΈ Π²ΡΠ²ΠΎΠ΄Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΡΠΉ ΡΠΎΠΊ ΠΌΠ΅Π½ΡΡΠ΅ 300 ΠΌΠ.
- ΠΠ΅Π»ΡΠ·Ρ Π½Π° GPIO ΠΏΠΎΠ΄Π°Π²Π°ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ 3,3 Π!Β Π¦ΠΈΡΡΠΎΠ²ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ GPIO ΠΈΠΌΠ΅ΡΡ ΡΡΠΎΠ²Π½ΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ 0 — 3,3 Π ΠΈ Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΡΠΎΠ²Π½ΡΠΌΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡΒ 0 — 5Π!Β ΠΠΎΡΡΠΎΠΌΡ Π½Π΅Π»ΡΠ·Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡ Raspberry Pi ΠΈ ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ TTL-ΡΡΠΎΠ²Π½ΡΠΌΠΈ 5 Π. ΠΡΠ»ΠΈ ΠΏΠΎΠ΄Π°ΡΡ Π½Π° GPIO Π²ΡΠ²ΠΎΠ΄ Raspberry Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎΠ±ΠΎΠΉ 5 Π, Π° Π½Π΅ 3,3 Π — Π²ΡΠ²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΉΡΠΈ ΠΈΠ· ΡΡΡΠΎΡ.
- ΠΡΠ²ΠΎΠ΄Ρ GPIO 14 ΠΈ GPIO 15 ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ²ΠΎΠ΄Π°ΠΌΠΈ UART — RXD ΠΈ TXD.Β ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π° Π½ΠΈΡ
ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ 3,3 Π. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΎΠ±ΡΡΠ½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅
GPIO ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ RaspberryΒ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠΈΡΡΠΎΠ²ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ. - ΠΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠΈΠ½ΡΒ GPIO ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ Π²Ρ ΠΎΠ΄Π°ΠΌΠΈ.Β Π ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅ΡΡ Π²ΡΡΠΎΠΊΠΎΠ΅ Π²Ρ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ΄ΡΡΠΆΠΊΠ° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Ρ Π½ΠΈΡ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π°, Π²ΡΠ²ΠΎΠ΄Ρ «Π²ΠΈΡΡΡ Π² Π²ΠΎΠ·Π΄ΡΡ Π΅», ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Raspberry Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ «ΠΏΠ»Π°Π²Π°ΡΡ». ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ 2 ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π°:
- ΠΡΠ²ΠΎΠ΄Ρ GPIO 0 (SDA) ΠΈ GPIO 1 (SCL) ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ «ΠΏΠΎΠ΄ΡΡΠ½ΡΡΡ» ΠΊ ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Raspberry Π½Π° Π½ΠΈΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΡ (3,3 Π).
- Π‘ΠΈΠ³Π½Π°Π» Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΈΠ· ΡΠΈΡΡΠΎΠ²ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΡΠ°Π½ΡΡΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ ΠΏΠΎΠΉΠΌΠ΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π² Raspberry Pi — ΠΏΠΎΠΊΠ° ΡΡΠΎ ΠΈΠ΄Π΅Ρ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ°.
ΠΠΎΠΆΠ°Π»ΡΠΉ, Π²ΡΠ΅.. ΠΡ ΠΈ Π² ΡΠ΅Π»ΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ GPIO — ΡΡΠΎ Π²ΡΠ²ΠΎΠ΄Ρ, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Raspberry Pi,Β ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π½ΠΈΠΌ. ΠΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Ρ GPIO ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠ° ΡΡΠΎΠΌ Ρ «ΠΏΡΠ³Π°Π»ΠΊΠ°ΠΌΠΈ» Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ. ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΈ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ — Π½Π΅ ΠΏΠΎΠ΄Π°Π²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΎΠΊ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ Π΄Π΅Π»Ρ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ
GPIO Π½Π° PythonΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π Π°Π±ΠΎΡΠ°ΡΡ Ρ GPIO,Β ΠΏΠΎ ΡΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
1) ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ bash ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Rasbian
Raspbian ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux, Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Linux ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠΌ.
2) ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠ°ΠΌΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΠΎΡ C Π΄ΠΎ ΠΡΠΉΡΠΈΠΊΠ°)
ΠΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ GPIO Raspberry ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ , Π²Π½ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π·Π΄Π΅ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ. ΠΠΈΠΆΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ GPIO Π½Π° Python.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ «1» ΠΈΠ»ΠΈ «0» Π½Π° GPIO7 ΠΈ ΡΡΠΈΡΠ°ΡΡ ΡΠΈΠ³Π½Π°Π» Ρ GPIO 8.
0) ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ GPIO Π½Π° Python Π½ΡΠΆΠ½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° RPi.GPIO. Π‘Π΅ΠΉΡΠ°Ρ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΡΠΌΠΎ Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π², Π° Π½Π΅ ΠΊΠ°ΡΠ°ΡΡ Π°ΡΡ ΠΈΠ² ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π²ΡΡΡΠ½ΡΡ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠ°Π½ΡΡΠ΅.
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ:Β Β Β sudo apt-get install python-rpi.gpio (ΠΈΠ»ΠΈ python3-rpi.gpio Π΄Π»Ρ 3-ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΠΈΡΠΎΠ½Π°)
ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, Π² Π½ΠΎΠ²ΠΎΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ Raspbian ΠΎΠ½Π° ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π²ΠΈΠ³Π°Π΅ΠΌΡΡ Π΄Π°Π»ΡΡΠ΅.
0.5)Β GPIOΒ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Raspbian, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΠΈΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΡΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΡΠΌΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΒ python:Β
Β Β Β sudo python
1)Β ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ GPIO:
Β Β Β import RPi.GPIO as GPIO
2)Β Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠΏΠΎΡΠΎΠ± Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² GPIO.
ΠΠ°ΡΠ΅ΠΌ? ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΡΠ½ΠΊΡΠΈΡΡ
ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½ΠΎΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π°, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ. Β ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ: Π»ΠΈΠ±ΠΎ ΡΡΠΎ Π½ΠΎΠΌΠ΅Ρ
Β Β Β GPIO.setmode(GPIO.BCM) Β #GPIO.BCM — Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ GPIOΒ
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β #GPIO.BOARD — Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΈΠ½ΠΎΠ² P1-26
3)Β ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄Ρ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΈΠ³Π½Π°Π»Ρ Π½Π° GPIO 7, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎΒ ΠΊΠ°ΠΊ Π²ΡΡ
ΠΎΠ΄, Π° GPIO 8 — ΠΊΠ°ΠΊ Π²Ρ
ΠΎΠ΄:
Β Β Β GPIO.setup(7, GPIO.OUT) Β Β #ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ GPIO 7 ΠΊΠ°ΠΊ Π²ΡΡ
ΠΎΠ΄
Β Β Β GPIO.setup(8, GPIO.IN)Β Β Β Β Β #ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ GPIO 8 ΠΊΠ°ΠΊ Π²Ρ
ΠΎΠ΄
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° GPIO 7 ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΎΠ²Π½ΠΎ 0 Π, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ Π²ΡΠ²ΠΎΠ΄ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Ρ ΠΎΠ΄ΠΎΠΌ ΠΈ Π½Π° Π½Π΅ΠΌ Π½Π΅Ρ «ΠΏΠ»Π°Π²Π°ΡΡΠ΅Π³ΠΎ» ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π°.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° pull_up_down ΡΡΠ½ΠΊΡΠΈΠΈ setup ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ «ΠΏΠΎΠ΄ΡΡΠΆΠΊΡ» Π²ΡΠ²ΠΎΠ΄Π° ΠΊ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊ Π·Π΅ΠΌΠ»Π΅:
Β Β Β GPIO.setup(8, GPIO.IN, pull_up_down=GPIO.PUD_UP) Β Β Β Β Β #ΠΏΠΎΠ΄ΡΡΠΆΠΊΠ° ΠΊ ΠΏΠΈΡΠ°Π½ΠΈΡ 3,3 Π
Β Β Β GPIO. setup(8, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) Β #ΠΏΠΎΠ΄ΡΡΠΆΠΊΠ° ΠΊ Π·Π΅ΠΌΠ»Π΅ 0 Π
Β Β Β GPIO.setup(8, GPIO.IN, pull_up_down=GPIO.PUD_OFF) Β Β Β Β #ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
4)Β Π€ΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΠΈ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠΈΠ³Π½Π°Π»Ρ
Π€ΠΎΡΠΌΠΈΡΡΠ΅ΠΌ «1» ΠΈ «0» Π½Π° GPIO 7 ΠΈ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠΈΠ³Π½Π°Π» Ρ GPIO 8:
Β Β Β GPIO.output(7, True) Β Β Β Β Β Β #Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° GPIO 7 Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ «1» (3.3 V)
Β Β Β GPIO.output(7, False) Β Β Β Β Β Β #Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° GPIO 7 Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ «0»
Β Β Β signal = GPIO.input(8) Β Β Β Β Β Β #ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠΈΠ³Π½Π°Π» Ρ GPIO 8 Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ signal
5)Β ΠΠ°Π²Π΅ΡΡΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡ
ΠΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ
Π½ΡΠΆΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡ:
Β Β Β GPIO.cleanup()
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² GPIO Π² ΠΏΠ΅ΡΠ²ΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΡΠΎ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· python, Π²ΡΠ²ΠΎΠ΄Ρ GPIO ΠΎΡΡΠ°Π½ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ΅Π²Π°ΡΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΈΠΌΠΈ Π²ΡΠ²ΠΎΠ΄Π°ΠΌΠΈ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ:Β «RuntimeWarning: This channel is already in use, continuing anyway. «
ΠΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ:
Β Β Β import RPi.GPIO as GPIO Β Β Β Β #ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ
Β Β Β GPIO.setmode(GPIO.BCM) Β Β #ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅ΠΆΠΈΠΌ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΠΈ
Β Β Β GPIO.setup(7, GPIO.OUT)Β Β Β Β #ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ GPIO 7 ΠΊΠ°ΠΊ Π²ΡΡ
ΠΎΠ΄
Β Β Β GPIO.setup(8, GPIO.IN)Β Β Β Β Β Β #ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ GPIO 8 ΠΊΠ°ΠΊ Π²Ρ
ΠΎΠ΄
Β Β Β GPIO.output(7, True) Β Β Β Β Β Β Β Β Β #Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° GPIO 7 Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ «1» (3.3 V)
Β Β Β GPIO.output(7, False) Β Β Β Β Β Β Β Β #Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° GPIO 7 Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ «0»
Β Β Β signal = GPIO.input(8) Β Β Β Β Β Β Β Β #ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠΈΠ³Π½Π°Π» Ρ GPIO 8 Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ signal
Β Β Β GPIO.cleanup() Β Β Β Β Β Β Β Β Β Β Β Β #Π·Π°Π²Π΅ΡΡΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ GPIO
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΈΠ· Π²ΡΠ΅Ρ
Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ GPIO, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ — Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ· «1» Π² «0» ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ. ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
Β Β Β import RPi.GPIO as GPIO
Β Β Β GPIO. setmode(GPIO.BCM)
Β Β Β GPIO.setup(7, GPIO.OUT)
Β Β Β while (1):
Β Β Β Β Β Β GPIO.output(7, True)Β
Β Β Β Β Β Β GPIO.output(7, False)
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ ΡΡΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅? ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ «1» ΠΈΠ»ΠΈ «0» Π½Π° GPIO?
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΈΠ³Π°ΡΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π°ΠΌΠΈ!ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΈΠ»ΠΎΠ²ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ / Π²ΡΠΊΠ»ΡΡΠ°ΡΡ Π»ΡΠ±ΡΠ΅ Π±ΡΡΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ±ΠΎΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ ΠΎΡ ΡΠ΅ΡΠΈ 220 Π. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Raspberry Pi ΠΈ Π²ΡΠ΅Π³ΠΎ 7 Π΄Π΅ΡΠ°Π»Π΅ΠΉ. Π‘Ρ Π΅ΠΌΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ «Π²ΡΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ» ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½ΠΈΠΆΠ΅:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ°-ΠΎΠΏΡΠΎΠ΄ΡΠ°ΠΉΠ²Π΅Ρ MOC3041M ΠΈΠΌΠ΅Π΅Ρ Π³Π°Π»ΡΠ²Π°Π½ΠΈΡΠ΅ΡΠΊΡΡ ΡΠ°Π·Π²ΡΠ·ΠΊΡ ΡΠΈΠ»ΠΎΠ²ΡΡ ΡΠ΅ΠΏΠ΅ΠΉ ΠΎΡ ΡΠ»Π°Π±ΠΎΡΠΎΡΠ½ΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ «Π±Π°ΡΡΠ΅ΡΠΎΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ» ΠΌΠ΅ΠΆΠ΄Ρ Raspberry ΠΈ ΡΠ΅ΡΡΡ 220 Π, Π²ΡΡ ΠΎΠ΄ Π΅Π΅ ΠΈΠ· ΡΡΡΠΎΡ Π½Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡ Raspberry. ΠΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡ C8 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΡΠΎΠΊΠΎΠ²ΠΎΠ»ΡΡΠ½ΡΠΌ ΠΈ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ~400 Π.
ΠΠ°Π½Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΠΌΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΊΠΈ Π΄ΠΎ 16Π. ΠΠ½Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ»Π°ΠΆΠ΅Π½Π°, ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π° Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ ΠΌΠ΅ΡΡΠ° (ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ ΡΠΎΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π³Π΄Π΅ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ). ΠΠΎΠ΄Π°ΡΠ° «1» Π½Π° GPIO 7 Raspberry Pi ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΠΎΠΏΡΠΎΠ΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠΈΠΌΠΈΡΡΠΎΡΠ° V2, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ½Π΅Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π±Ρ ΡΠΎΠΊ, ΠΈΠ΄ΡΡΠΈΠΉ ΠΎΡ ΡΠ΅ΡΠΈ 220 Π ΠΊ ΡΠΈΠ»ΠΎΠ²ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅. ΠΡΠΈΠ±ΠΎΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° GPIO 7 Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ «0» — ΡΠΈΠΌΠΈΡΡΠΎΡ V2 Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΡΠ΅ΠΏΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°Π·ΠΌΡΠΊΠ°Π΅ΡΡΡ. ΠΡΠΈΠ±ΠΎΡ Π²ΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ. ΠΡΠ΅ ΠΏΡΠΎΡΡΠΎ!
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Raspberry Pi ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ, ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΏΡΠΈ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π°ΡΠ΅ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² (ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΠΈΠ³Π½Π°Π» Ρ ΠΏΡΠ»ΡΡΠ° Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π²ΠΎΡΠΎΡ) ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ΅ΡΠ΅Π· ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ Raspberry). ΠΠ΄Π½ΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ, Raspberry ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΡΠ°Π½ΡΠ°Π·ΠΈΡ.
ΠΠ° ΡΡΠΎΠΌ Π²ΡΠ΅. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅ ΠΎ Raspberry ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ UART ΠΈ SPI.
GPIO-ΠΏΠΈΠ½Ρ Raspberry Pi ΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· Python
Π ΡΠΆΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ Π½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΡΠ΅, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΌ Raspberry Pi, ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΎΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ ΠΈ ΠΎΡΠ΅Π½Ρ Π΄Π΅ΡΠ΅Π²ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. ΠΠ΅ΡΡΠΏΠΎΡΠ½ΠΎ, Raspberry Pi ΠΈΠΌ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ. ΠΠΎ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, Ρ Raspberry Pi Π΅ΡΡΡ Π΅ΡΠ΅ ΠΈ 26 ΠΏΠΈΠ½ΠΎΠ² GPIO (General Purpose Input Output), ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΊΡΡΠ°ΡΠΈ Π² ΡΠ²Π΅ΡΠ΅ ΠΌΠΎΠ΅Π³ΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ ΡΠ²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠΎΠΉ. ΠΠΎΡΠ΅ΠΌΡ? ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ.
ΠΡΠΌΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½ΠΈΠΆΠ΅ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ Π΄Π»Ρ Raspberry Pi 2 Model B. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΄ΡΡΠ³Π°Ρ ΠΌΠ°Π»ΠΈΠ½Π°, ΡΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΠ½ΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅ΡΡΡΠ΅ΡΡ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ΅Π»ΠΈΠ· Raspbian ΠΎΡ 2016-09-28, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π·Π΄Π΅ΡΡ.
ΠΡΠ°ΠΊ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΠ½ΠΎΠ² ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅:
ΠΠ° ΡΡΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΡΠ²Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ³Π»ΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΡΠ»Π΅Π²Π° Π²Π²Π΅ΡΡ Ρ), ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΠΎΠ²Π°ΡΡ ΠΏΠΈΠ½Ρ Π²Π²Π΅ΡΡ Π½ΠΎΠ³Π°ΠΌΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ ΠΊΡΡΠΈΠ»ΠΈ ΡΠ΅Π±ΡΡΠ°, ΡΠ΅ΡΠΈΠ²ΡΠΈΠ΅ ΡΠ°ΠΊ Π½ΡΠΌΠ΅ΡΠΎΠ²Π°ΡΡ ΠΏΠΈΠ½Ρ.
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΡΠΌ Π½Π° 2-ΠΉ ΠΏΠΈΠ½. ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ΅Π· sysfs.
ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ Β«ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΒ» ΠΏΠΈΠ½, Π±Π΅Π· ΡΡΠΎΠ³ΠΎ ΡΠ°Π³Π° ΠΈΠΌ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ:
echo 2 > /sys/class/gpio/export
ΠΠ΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ out-ΠΏΠΈΠ½ΠΎΠΌ, ΡΠΎ Π΅ΡΡΡ, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄Π°Π²Π°ΡΡ, Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π°Π²Π°ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² 3. 3 Π²ΠΎΠ»ΡΡΠ°:
echo out > /sys/class/gpio/gpio2/direction
ΠΠΎΠ΄Π°Π΅ΠΌ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅:
echo 1 > /sys/class/gpio/gpio2/value
ΠΠ΅ΡΠ΅ΡΡΠ°Π΅ΠΌ ΠΏΠΎΠ΄Π°Π²Π°ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅:
echo 0 > /sys/class/gpio/gpio2/value
Π£Π·Π½Π°Π΅ΠΌ, ΠΏΠΎΠ΄Π°Π΅ΡΡΡ Π»ΠΈ ΡΠ΅ΠΉΡΠ°Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅:
cat /sys/class/gpio/gpio2/value
ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΠΈΠ½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ unexport:
echo 2 > /sys/class/gpio/unexport
ΠΡΡΡ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΡΡΠΎ 3.3 Π²ΠΎΠ»ΡΡΠ° β ΡΡΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΌΠ°Π»ΠΎΠ²Π°ΡΠΎ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅. Π£Π²Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π½ΠΈΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ Raspberry Pi Π½Π΅ ΡΠΌΠ΅Π΅Ρ. ΠΠΎΠ³ΠΎΠ²Π°ΡΠΈΠ²Π°ΡΡ, ΡΡΠΎ ΡΠΌΠ΅Π΅Ρ Arduino, Π½ΠΎ ΠΎΠΏΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΈΡ ΡΡΡΠΎΠΊ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ.
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΈΠ½ ΠΊ ΡΠ΅ΠΏΠΈ ΠΈΠ· ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π° ΠΈ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° Ρ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ 470Β ΠΠΌ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π²ΡΡΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΒ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ. ΠΠ»Ρ Π·Π΅ΠΌΠ»ΠΈ (ΡΠΎ Π΅ΡΡΡ, ΠΌΠΈΠ½ΡΡΠ°) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΏΠΈΠ½, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΡΠΉ Π½Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΡΡ Π΅ΠΌΠ΅ ΡΠ΅ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ. ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΡ Ρ sysfs ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ Π²ΠΊΡΡΡ.
ΠΠ°ΠΆΠ½ΠΎ! ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Raspberry Pi Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΈΠ½Ρ ΠΏΠΎ Π΄ΡΡΠΎΠ»ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄Π°Π²Π°ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π½Π΅ ΡΠΎ, ΡΠ΅Π³ΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΠΏΠΈ. Π£ ΠΌΠ΅Π½Ρ ΠΏΠΎ Π΄ΡΡΠΎΠ»ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π½Π° ΠΏΠΈΠ½Π°Ρ 2, 3 ΠΈ 14. Π― Π±Ρ ΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Raspberry Pi ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Raspbian. ΠΠΌΠ΅ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π²Π°ΠΌΠΈ ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΈΠ½Ρ Π²Β Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΈΠ±ΡΠ΅ΡΠ΅ Π΅Π΅ killβΠΎΠΌ).
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ out-ΠΏΠΈΠ½Ρ. ΠΠ½ΠΈ ΠΊΠ°ΠΊ Π±Ρ Β«ΠΏΠΈΡΡΡΒ» Π½Π° ΠΌΠ°ΠΊΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡ, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ·Π½Π°ΡΡ Π΅Π΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΠΆΠ°ΡΠ° Π»ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠΈΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ°. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ΅ΠΏΡ ΡΠ°Π·ΠΎΠΌΠΊΠ½ΡΡΠ°, out-ΠΏΠΈΠ½Ρ ΠΎΠ± ΡΡΠΎΠΌ Π½Π΅ Π·Π½Π°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΡΡ Π΅ΡΠ΅ ΠΈ in-ΠΏΠΈΠ½Ρ.
ΠΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ 5-ΡΠΉ ΠΏΠΈΠ½ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ in-ΠΏΠΈΠ½ΠΎΠΌ:
echo 5 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio5/direction
ΠΡΠΎΡ ΠΏΠΈΠ½ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ» ΠΊ ΡΠ΅ΠΏΠΈ ΠΈΠ· ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ 10 ΠΊΠΠΌ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π½Π°ΠΆΠ°ΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π·Π°ΠΌΡΠΊΠ°Π΅Ρ ΡΠ΅ΠΏΡ, Π° Π² ΠΎΡΠΏΡΡΠ΅Π½Π½ΠΎΠΌ ΡΠ°Π·ΠΌΡΠΊΠ°Π΅Ρ.
Β«ΠΡΠΎΡΠΈΡΠ°ΡΡΒ» ΠΊΠ½ΠΎΠΏΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ:
cat /sys/class/gpio/gpio5/value
Π‘ΡΠΈΡΡΠ²Π°Π΅ΡΡΡ 1, Π΅ΡΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ Π½Π°ΠΆΠ°ΡΠ°, ΡΠΎ Π΅ΡΡΡ, ΡΠ΅ΠΏΡ ΡΠ°Π·ΠΎΠΌΠΊΠ½ΡΡΠ°, ΠΈ 0, Π΅ΡΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°ΡΠ°, ΡΠΎ Π΅ΡΡΡ, ΡΠ΅ΠΏΡ Π·Π°ΠΌΠΊΠ½ΡΡΠ°.
Π ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ ΡΠ°ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ (ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ ΠΏΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΡ Π²Π·ΡΡΠ° ΠΎΡΡΡΠ΄Π°):
Π Π²ΠΎΡ ΠΈ ΡΠΊΡΠΈΠΏΡ Π½Π° Python, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΡΡΡΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ ΠΈ Π·Π°ΠΆΠΈΠ³Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π° Π½ΠΈΠΌ:
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
# Use «logical» pin numbers
GPIO.setmode(GPIO.BCM)
# Disable «This channel is already in use» warnings
GPIO.setwarnings(False)
# Setup LED’s: 2 — green, 3 — yellow, 4 — red
for i in range(2,5):
Β Β GPIO.setup(i, GPIO.OUT)
Β Β GPIO.output(i, False)
current_led = 2
GPIO.output(current_led, True)
# Prepare to read button state
BUTTON = 5
PRESSED_CODE = 0
GPIO.setup(BUTTON, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
# Β Β GPIO. wait_for_edge(BUTTON, GPIO.FALLING)
# Β Β print(«Button pressed»)
# Β Β GPIO.wait_for_edge(BUTTON, GPIO.RISING)
# Β Β print(«Button released»)
Β Β time.sleep(0.05)
Β Β if GPIO.input(BUTTON) == PRESSED_CODE:
Β Β Β Β GPIO.output(current_led, False)
Β Β Β Β current_led = max(2, (current_led + 1) % 5)
Β Β Β Β GPIO.output(current_led, True)
Β Β Β Β time.sleep(0.1)
ΠΠΏΡΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΠ΅ΡΠΎΠ΄ wait_for_edge Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π·Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π·Π°ΠΆΠΈΠ³Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ΠΎΠ² Π² ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΠΏΠΎΡΡΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΡΠ΅ΡΡ Π²ΡΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ GPIO Π½Π° Raspberry Pi. ΠΠΎΠΏΡΠ°Π²ΡΡΠ΅, Π΅ΡΠ»ΠΈ Ρ Π½Π΅ ΠΏΡΠ°Π².
ΠΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ GPIO Π² ΠΎΠ΄Π½ΠΎΠΏΠ»Π°ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π·Π°ΠΌΠ΅ΡΠΊΠ° Π Π΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ ΡΠΎΡΡΠ΅ΡΠ° Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ GL. iNet GL-AR750. Π’Π°ΠΊΠΆΠ΅ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΡΡ ΠΠΎΠ΄ΡΠ»ΠΈ ΡΠ΄ΡΠ° Linux: ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΈ GPIO.
ΠΠ΅ΡΠΊΠΈ: Linux, Python, ΠΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠ°.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Raspberry Pi GPIO ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ
- ΠΠ»Π°Π²Π½Π°Ρ
- Π£ΡΠ΅Π±Π½ΠΈΠΊΠΈ
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Raspberry Pi GPIO ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ
β‘ Π‘ΡΡΠ°Π½ΠΈΡ
ΠΠ²ΡΠΎΡΡ: asassy
ΠΠ·Π±ΡΠ°Π½Π½ΠΎΠ΅ ΠΡΠ±ΠΈΠΌΡΠΉ 6
ΠΡΠ°ΠΊ, ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ Raspberry Pi, ΠΈ Π²Π°ΠΌ Π½Π΅ ΡΠ΅ΡΠΏΠΈΡΡΡ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΠ Π΄Π»Ρ Π²Π΅Π±-ΡΠ΅ΡΡΠΈΠ½Π³Π°, ΠΏΡΠΎΡΠΌΠΎΡΡΠ° YouTube ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΊΠΎΡΠ°ΡΡΠΈΡ ΠΌΠ΅ΠΌΠΎΠ². ΠΠΎ Π³Π΄Π΅ ΠΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±Π»ΠΈΡΡΠ°Π΅Ρ ΡΠ²ΠΎΠΈΠΌ 40-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΌ GPIO (Π²Π²ΠΎΠ΄ ΠΈ Π²ΡΠ²ΠΎΠ΄ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ). GPIO ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (Π²ΡΡ ΠΎΠ΄) ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ Π΄Π°ΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ (Π²Ρ ΠΎΠ΄). ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Raspberry Pi ΠΊΠΎ Π²ΡΠ΅ΠΌΡ, ΠΎΡ ΡΠΌΠ½ΠΎΠ³ΠΎ Π·Π΅ΡΠΊΠ°Π»Π° Π΄ΠΎ ΠΌΠ΅ΡΠ΅ΠΎΡΡΠ°Π½ΡΠΈΠΈ ΠΈ ΡΠΎΠ±ΠΎΡΠ° Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π°ΠΊΡΠΈΠ²ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ Π³Π»ΡΠ±ΠΆΠ΅ ΠΏΠΎΠ³ΡΡΠ·ΠΈΠΌΡΡ Π² ΡΠΎ, ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ GPIO! ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΡ Π΅ΠΌΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² GPIO, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Raspberry Pi Foundation Π½ΠΈΠΆΠ΅, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²:
ΠΠΎΠ½ΡΠ°ΠΊΡΡ ΠΏΠΈΡΠ°Π½ΠΈΡ
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² ΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠ°ΠΊ 3,3 Π, ΡΠ°ΠΊ ΠΈ 5 Π. ΠΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΡ ΠΎΠ΄Π° Π΄Π»Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ².
ΠΠ°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅
Π Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π΄Π΅ΡΡ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΏΠΈ Ρ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ, ΡΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΉ Π²Π½ΡΡΡΠΈ ΡΡΠΈΡΡΠΎΠ².
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ GPIO
Π£Π΄Π°Π»ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΡ, ΠΈ Ρ Π²Π°Ρ ΠΎΡΡΠ°Π½ΡΡΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°. ΠΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ Π·Π°Π΄Π°Ρ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°!
ΠΠΎΠ½ΡΠ°ΠΊΡΡ Chatty Cathy
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ GPIO ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ. ΠΠΎΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ ΡΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΡΠ²ΡΠ·ΠΈ!
- ΠΠΎΠ½ΡΠ°ΠΊΡΡ SPI β ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (SPI) β ΡΡΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠ²ΡΠ·ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Raspberry Pi, ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. ΠΡΠ²ΠΎΠ΄ MISO ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, Π° Π²ΡΠ²ΠΎΠ΄ MOSI ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ Raspberry Pi. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΠΈΠΌΠΏΡΠ»ΡΡΡ Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Raspberry Pi ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ SPI Ρ ΡΠΎΠΉ ΠΆΠ΅ ΡΠΊΠΎΡΠΎΡΡΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ.
- ΠΠΎΠ½ΡΠ°ΠΊΡΡ UART β UART ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ-ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΊ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΡΡ Π΅ΠΌΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
- ΠΠΎΠ½ΡΠ°ΠΊΡΡ Π¨ΠΠ β Π¨ΠΠ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΡΠΈΡΠΎΡΠ½ΠΎ-ΠΈΠΌΠΏΡΠ»ΡΡΠ½Π°Ρ ΠΌΠΎΠ΄ΡΠ»ΡΡΠΈΡΒ», ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠ²ΡΠ·ΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ Π΄Π²ΠΈΠΆΡΡΠΈΠΌΠΈΡΡ ΠΈ ΡΠ²Π΅ΡΡΡΠΈΠΌΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ: Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΡΠΌΠΈ, ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π°ΠΌΠΈ ΠΈ Ρ. Π΄.
- ΠΡΠ²ΠΎΠ΄Ρ I2C β I 2 C β ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ inter-integrated Circuit (Π΄Π²Π° Β«ΠΌΠ΅ΠΆΒ» ΠΈΠ»ΠΈ I Β«ΠΊΠ²Π°Π΄ΡΠ°ΡΒ» C). ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ SPI, Π½ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²ΡΠ²ΠΎΠ΄ΠΎΠ².
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² GPIO… ΠΏΠ΅ΡΠ²ΡΠΉ β ΠΏΠΎ ΠΈΡ
ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ BOARD. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π° Broadcom SOC (BCM). ΠΡΠΊΡΡΠ² ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π·Π°ΠΏΡΡΡΠΈΠ² pinout
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΠ½ Π²Π΅ΡΠ½Π΅Ρ ΠΊΠ°ΡΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² GPIO Raspberry Pi ΠΈ ΠΈΡ
ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΡ Broadcom Π½Π° ΠΏΠ»Π°ΡΠ΅.
ΠΠ°ΡΡΠ° Π΄Π»Ρ Raspberry Pi 4 Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠΈ.
ΠΡΠ»ΠΈ Π²Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ³Π»ΡΠ±ΠΈΡΡΡΡ Π² ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΡ Raspberry Pi GPIO, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ΅ Raspberry Pi GPIO, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠΈΠΏΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π½Π° ΠΏΠ»Π°ΡΠ΅. ΠΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΎΠ±Π·ΠΎΡΠ°, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ!
ΠΠ¨ΠΠΠΠ — 404 — ΠΠ ΠΠΠΠΠΠΠ
- ΠΠΎΠΌ
- ΠΠ’Π ΠΠΠΠ£Π¨ΠΠ!
ΠΠ°ΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ Π³Π½ΠΎΠΌΡ Π½Π΅ ΡΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΉΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΈΡΠ΅ΡΠ΅.
ΠΠΎΡ ΠΎΠΆΠ΅, Π²Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°Π±ΡΠ°Π»ΠΈ URL-Π°Π΄ΡΠ΅Ρ Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ ΠΏΠΎ ΡΡΠ°ΡΠΎΠΉ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π²Π°Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ?
ΠΡΠΎΡΠΈΠ²ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ β ΠΌΠ΅ΡΠ°Π»Π»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΡΡΠΈΠ³ΡΠ°Π½Π½ΠΈΠΊ (4-40; 3/8 Π΄ΡΠΉΠΌΠ°; 10 ΡΡ. Π² ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅)
Π Π½Π°Π»ΠΈΡΠΈΠΈ ΠΠ Π’-10463
ΠΠ·Π±ΡΠ°Π½Π½ΠΎΠ΅ ΠΡΠ±ΠΈΠΌΡΠΉ 7
Π‘ΠΏΠΈΡΠΎΠΊ ΠΆΠ΅Π»Π°Π½ΠΈΠΉ
SparkFun MicroView β OLED-ΠΌΠΎΠ΄ΡΠ»Ρ Arduino
Π Π½Π°Π»ΠΈΡΠΈΠΈ DEV-12923
44,95 $
47
ΠΠ·Π±ΡΠ°Π½Π½ΠΎΠ΅ ΠΡΠ±ΠΈΠΌΡΠΉ 113
Π‘ΠΏΠΈΡΠΎΠΊ ΠΆΠ΅Π»Π°Π½ΠΈΠΉ
ΠΡΠΊΠ²Π΅Π½Π½ΠΎ-ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ SparkFun Qwiic β ΠΊΡΠ°ΡΠ½ΡΠΉ ΠΈ Π±Π΅Π»ΡΠΉ
Π Π½Π°Π»ΠΈΡΠΈΠΈ ΠΠΠΠΠΠΠΠ’-18624
22,95 $
ΠΠ·Π±ΡΠ°Π½Π½ΠΎΠ΅ ΠΡΠ±ΠΈΠΌΡΠΉ 3
Π‘ΠΏΠΈΡΠΎΠΊ ΠΆΠ΅Π»Π°Π½ΠΈΠΉ
ΠΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½Π°Ρ ΠΊΠ°ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Machinechat β JEDI One
19 Π΄ΠΎΡΡΡΠΏΠ½ΠΎ COM-20674
79,00 $
ΠΠ·Π±ΡΠ°Π½Π½ΠΎΠ΅ ΠΡΠ±ΠΈΠΌΡΠΉ 1
Π‘ΠΏΠΈΡΠΎΠΊ ΠΆΠ΅Π»Π°Π½ΠΈΠΉ
DA16200 ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΊ Π΄Π΅Π»Ρ+
16 ΡΠ΅Π½ΡΡΠ±ΡΡ 2022 Π³.