8-900-374-94-44
[email protected]
Slide Image
МСню

Raspberry pi 3 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ gpio: GPIO для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ² (Ρ‡Π°ΡΡ‚ΡŒ 1)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

hexvolt-Π±Π»ΠΎΠ³: Raspberry Pi. Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с GPIO Π½Π° Python

Как-Ρ‚ΠΎ я писал ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Raspberry Pi Π² качСствС Π²Π΅Π±-сСрвСра, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΌΠΎΠΈΠΌ устройством. ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ Π½Π°Π΄ интСрфСйсом ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π£ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΆΠ΅Π»Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ своС ΠΆΠ΅Π»Π΅Π·ΠΎ ΠΊ Raspberry Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΡƒΡ‚ΠΈ: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для этого USB ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния (GPIO). Π‘ возмоТностями USB всС ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ понятно (Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ пост ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с внСшним ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· USB). О GPIO ΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, Π΄Π° ΠΈ ΠΎΠΏΡ‹Ρ‚Π° Π΅Π³ΠΎ использования Π½Π΅Ρ‚. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ я заинтСрСсовался GPIO ΠΈ Π΅Π³ΠΎ возмоТностями. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°Ρ… ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния Raspberry PiGPIO:

  • возмоТности 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 Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ управляСмых Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ²

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих 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 — (General Purpose Clock) Π²Ρ‹Π²ΠΎΠ΄ для формирования Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΉ частоты для Π²Π½Π΅ΡˆΠ½ΠΈΡ… устройств
  • 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 ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ UARTRXD ΠΈ 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 ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ являСтся Ρ„Π°ΠΉΠ»ΠΎΠΌ.

    ИмСнно это позволяСт Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ сигналы с GPIO ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ bash прямо Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅! Π’Ρ‹Π²ΠΎΠ΄ логичСской Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈ этом выглядит ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° записи «1» Π² Ρ„Π°ΠΉΠ», ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρƒ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄Π°Π½Ρ‹ здСсь.Β 

    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, Π»ΠΈΠ±ΠΎ это Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΈΠ½Π° (P1-26) Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Raspberry (см. распиновку). Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΎ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, сразу послС ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ «ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅», ΠΊΠ°ΠΊΡƒΡŽ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.
    Β  Β  Β 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.

    Raspberry Pi. Π Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° GPIO.

    Π’ сСгодняшнСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим основныС Π½ΡŽΠ°Π½ΡΡ‹ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ управлСния ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° GPIO ΠΏΠ»Π°Ρ‚Ρ‹ Raspberri Pi. И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, всС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π½Π° практичСском ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

    ВсС вСрсии Raspberry Pi оснащСны ΡˆΡ‚Ρ‹Ρ€Π΅Π²Ρ‹ΠΌ Ρ€Π°Π·ΡŠΠ΅ΠΌΠΎΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ ΠΏΠΎΡ€Ρ‚Ρ‹ GPIO. Начиная с 2014-Π³ΠΎ Π³ΠΎΠ΄Π° Ρ€Π°Π·ΡŠΠ΅ΠΌ стал 40-ΠΏΠΈΠ½ΠΎΠ²Ρ‹ΠΌ (Ρ€Π°Π½Π΅Π΅ Π±Ρ‹Π»ΠΎ 26). На вСрсиях Pi Zero ΠΈ Pi Zero W присутствуСт посадочноС мСсто для Ρ€Π°Π·ΡŠΠ΅ΠΌΠ°, Π½ΠΎ физичСски ΠΎΠ½ Π½Π΅ распаян:

    Π’ любом случаС, ΠΊΠ°ΠΊ ΠΈ с любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ»Π°Ρ‚ΠΎΠΉ, располоТСниС сигналов Π½Π° этом Ρ€Π°Π·ΡŠΠ΅ΠΌΠ΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π΄Π°Ρ‚Π°ΡˆΠΈΡ‚Ρƒ. Π₯отя Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚ 40-ΠΏΠΈΠ½ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π·ΡŠΠ΅ΠΌΡ‹ для совмСстимости ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹. Распиновка ΠΈ сам Ρ€Π°Π·ΡŠΠ΅ΠΌ выглядят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

    ΠŸΠΎΡ€Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° нСсколько ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ:

    Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ… ΠŸΠΈΠ½Ρ‹ 3.3V ΠΈ 5V ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для питания Π²Π½Π΅ΡˆΠ½ΠΈΡ… устройств, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊ ΠΏΠ»Π°Ρ‚Π΅. ΠŸΡ€ΠΈ этом ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ‚ΠΎΠΊΡƒ выглядит Ρ‚Π°ΠΊ:

    • ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΊ для Π²Ρ‹Π²ΠΎΠ΄Π° 5V опрСдСляСтся ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅:
    I_{5V} = I_{Π²Ρ…} \medspace - \medspace I_{ΠΏ}

    Π³Π΄Π΅ I_{Π²Ρ…} — это Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΠΊ источника, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ для питания ΠΏΠ»Π°Ρ‚Ρ‹. А I_{ΠΏ} — это Ρ‚ΠΎΠΊ, потрСбляСмый самой ΠΏΠ»Π°Ρ‚ΠΎΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ внСшними устройствами, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎ USB. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ ΠΏΠΎΠ΄Π°Π΅ΠΌ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΠΊ, Ρ‡Π°ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ ΡƒΠ·Π»Ρ‹ ΠΏΠ»Π°Ρ‚Ρ‹, Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ остаСтся ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… устройств, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊ ΠΏΠΈΠ½Ρƒ 5V.

    • Для Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² 3.3V всС ΠΏΡ€ΠΎΡ‰Π΅ — ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΊ составляСт 50 мА ΠΈ Π½Π° этом Ρ‚ΠΎΡ‡ΠΊΠ°.

    Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π·Π° Π²Ρ‹Ρ‡Π΅Ρ‚ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² 3.3V, 5V ΠΈ Ground ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ 28 ΠΏΠΈΠ½ΠΎΠ² GPIO, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… Π½Π° схСмС Π·Π΅Π»Π΅Π½Ρ‹ΠΌ. GPIO0 ΠΈ GPIO1 ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ (ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ обсудим Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, остаСтся 26 Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ-своСму ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сконфигурирован Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’ΠΎΡ‚, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² для ΠΏΠ»Π°Ρ‚Ρ‹ Raspberry Pi 4:

    Π’ΠΎ Π΅ΡΡ‚ΡŒ любой ΠΈΠ· ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄ΠΎ 6-Ρ‚ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’ частности, GPIO2 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΊΠ°ΠΊ сигнал SDA для I2C1 (SDA1), Π»ΠΈΠ±ΠΎ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΊΠ°ΠΊ сигнал MOSI для интСрфСйса SPI3 (SPI3_MOSI).

    Об I2C ΠΈ SPI ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ…, Π° сСгодня нас интСрСсуСт использованиС GPIO Π² качСствС «ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ…» Π²Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ². Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½Π° ΠΏΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π²Π΅Π΄Π΅Π½ высокий (3.3 Π’) ΠΈΠ»ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΉ (0 Π’) ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ напряТСния. А, соотвСтствСнно, Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ…ΠΎΠ΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ΄Π°Π½ Π½Π° ΠΏΠΈΠ½ — высокий ΠΈΠ»ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΉ — 3.3 Π’ ΠΈΠ»ΠΈ 0 Π’. Π’ΡƒΡ‚ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€Ρ‚Ρ‹ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»Π΅Ρ€Π°Π½Ρ‚Π½Ρ‹ΠΌΠΈ ΠΊ 5 Π’, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ Π½Π° Π²Ρ…ΠΎΠ΄ 5 Π’ катСгоричСски нСльзя.

    Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ…ΠΎΠ΄Π° для любого ΠΈΠ· GPIO ΠΌΠΎΠΆΠ½ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ подтяТку ΠΊ ΠΏΠΈΡ‚Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ Π·Π΅ΠΌΠ»Π΅ (pull-up/pull-down). Если Π²Ρ‹Π²ΠΎΠ΄ настроСн Π½Π° использованиС подтяТки Π²Π²Π΅Ρ€Ρ…, Ρ‚ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ отсутствии сигнала со Π²Ρ…ΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π‘ pull-down ситуация обратная — Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

    Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΈΠ½Ρ‹ GPIO2 ΠΈ GPIO3. Они ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ подтяТку Π²Π²Π΅Ρ€Ρ…, Π±Π΅Π· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².

    Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΌΡ‹ снова возвращаСмся ΠΊ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡŽ ΠΏΠΎ Ρ‚ΠΎΠΊΡƒ. ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΊ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° составляСт 16 мА. ΠŸΡ€ΠΈ этом, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ нСсколько Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ², Ρ‚ΠΎ суммарный Ρ‚ΠΎΠΊ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 50 мА. ΠŸΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с большой Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π²Ρ‹Π³ΠΎΡ€Π°Π½ΠΈΡŽ ΠΏΠΎΡ€Ρ‚Π°.

    БобствСнно, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ЗадСйствуСм Π΄Π²Π° Π²Ρ‹Π²ΠΎΠ΄Π° GPIO — ΠΎΠ΄ΠΈΠ½ Π² качСствС Π²Ρ…ΠΎΠ΄Π°, Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π² качСствС Π²Ρ‹Ρ…ΠΎΠ΄Π°. На Π²Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ, Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ — свСтодиод. И Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ сигнал Π½Π° Π²Ρ…ΠΎΠ΄Π΅ ΠΈ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π·Π°ΠΆΠΈΠ³Π°Ρ‚ΡŒ свСтодиод.

    Π’Ρ‹Π±Π΅Ρ€Π΅ΠΌ GPIO3 для свСтодиода ΠΈ GPIO4 для ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ:

    Π”Π°Π²Π°ΠΉΡ‚Π΅ Π² Π΄Π²ΡƒΡ… словах Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ. НачнСм с ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌ для GPIO4 подтяТку Π²Π²Π΅Ρ€Ρ…, поэтому Ссли ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ Π½Π°ΠΆΠ°Ρ‚Π° ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½Π° Π²Ρ…ΠΎΠ΄Π΅ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ (Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ). БоотвСтствСнно, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π΅Π΅ ΠΊ Π·Π΅ΠΌΠ»Π΅. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ (логичСский ноль). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ подтяТку, Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ внСшний рСзистор подтяТки Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ.

    РСзистор R_{1} — Ρ‚ΠΎΠΊΠΎΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Как Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ· названия ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½ для ограничСния Ρ‚ΠΎΠΊΠ° ) Рассмотрим, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π²Ρ‹Π²ΠΎΠ΄ GPIO4 Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ настроСн Π½Π΅ ΠΊΠ°ΠΊ Π²Ρ…ΠΎΠ΄, Π° ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈ Π½Π° Π½Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ 3.3 Π’. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ 3.3 Π’ Π½Π° зСмлю, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΏΠΎΡ€Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ‹. Π­Ρ‚ΠΎ Π² случаС отсутствия рСзистора.

    А ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ рСзистора Ρ‚ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ:

    I = \frac{3.3 \medspace Π’}{1000 \medspace Ом} = 3.3 \medspace мА

    Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ 3.3 мА, Ρ‡Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ допустимо, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚Ρƒ Тизнь Π² случаС возникновСния замыкания.

    Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Π΄ΠΈΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ‡Π΅Ρ€Π΅Π· рСзистор R_{2}. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π΄ΠΈΠΎΠ΄Ρƒ соотвСтствуСт своя собствСнная Π²ΠΎΠ»ΡŒΡ‚-ампСрная характСристика (ВАΠ₯), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния прямого напряТСния ΠΈ Ρ‚ΠΎΠΊΠ°. Рассмотрим ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ попавшийся ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΡƒ свСтодиод, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠΉ — ссылка:

    ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΄Π°Ρ‚Π°ΡˆΠΈΡ‚ Π½Π° Π½Π΅Π³ΠΎ ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠΊΠ° ΠΎΡ‚ напряТСния ΠΏΡ€ΠΈ прямом Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ:

    ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΊ для GPIO Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ выяснили, составляСт 16 мА. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π°Π΄ΠΈΠΌ Π½Π° свСтодиод, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 10 мА. Π­Ρ‚ΠΎΠΌΡƒ Ρ‚ΠΎΠΊΡƒ, исходя ΠΈΠ· Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, соотвСтствуСт напряТСниС 2 Π’. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ Π·Π°ΠΊΠΎΠ½Ρƒ Ома Π½Π°ΠΌ остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ рСзистора. На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ GPIO Ρƒ нас 3.3 Π’, Π½Π° Π΄ΠΈΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠ°Π΄Π°Ρ‚ΡŒ 2 Π’, Π·Π½Π°Ρ‡ΠΈΡ‚ Π½Π° рСзисторС остаСтся:

    U_{Ρ€Π΅Π·} = 3.3 \medspace Π’ \medspace - \medspace 2 \medspace Π’ = 1.3 \medspace Π’

    ΠŸΡ€ΠΈ этом Ρ‚ΠΎΠΊ Π² Ρ†Π΅ΠΏΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π΅Π½ 10 мА, Ρ‚ΠΎΠ³Π΄Π° сопротивлСниС рСзистора:

    R_{2} = \frac{1.3 \medspace Π’}{10 \medspace мА} = 130 \medspace Ом

    Если Ρ‚ΠΎΡ‡Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ Π½Π΅Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ рСзистор Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠΌ Ρ‡ΡƒΡ‚ΡŒ большС. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, ΡΡƒΡ‚ΡŒ Ρ‚ΡƒΡ‚ ΠΎΠ΄Π½Π° — ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚ΠΎΠΊ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Ρ…ΠΎΠ΄ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ допустимыС 16 мА. Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° свСтодиодов Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ просто приводятся ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ значСния напряТСния ΠΈ Ρ‚ΠΎΠΊΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 2.5 Π’ ΠΈ 15 мА. РасчСт Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ рассмотрСнный, просто значСния Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

    Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, врСмя ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. БущСствуСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… способов для управлСния GPIO, ΠΌΡ‹ ΠΆΠ΅ сСгодня остановимся Π½Π° использовании python.

    И для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ/ΠΌΠΎΠ΄ΡƒΠ»ΡŒ RPi.GPIO. Π’ Raspberry Pi OS ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ Π² случаС отсутствия ΠΊΠΎΠΌΠ°Π½Π΄Π° для установки такая:

    sudo apt-get install python-rpi.gpio

    Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» gpio_test.py ΠΈ добавляСм Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

    import RPi.GPIO as GPIO
    import time
    GPIO_LED = 3
    GPIO_BUTTON = 4
    DELAY_TIME = 0.5
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(GPIO_LED, GPIO.OUT)
    GPIO.output(GPIO_LED, GPIO. LOW)
    GPIO.setup(GPIO_BUTTON, GPIO.IN, pull_up_down=GPIO.PUD_UP)
    try:
        while True:
            time.sleep(DELAY_TIME)
            
            if GPIO.input(GPIO_BUTTON) == 0:
                GPIO.output(GPIO_LED, GPIO.HIGH)
                print('led on')
            else:
                GPIO.output(GPIO_LED, GPIO.LOW)
                print('led off')
    except KeyboardInterrupt:
        GPIO.cleanup()
        print('exiting')

    ΠŸΡ€ΠΎΠΉΠ΄Π΅ΠΌΡΡ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅, прямо ΠΏΠΎ всСм строкам ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Π”Π΅Π»Π°Π΅ΠΌ import ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GPIO ΠΈ для использования Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ:

    import RPi.GPIO as GPIO
    import time

    Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для хранСния Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π£ нас свСтодиод Π½Π° GPIO3, Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π° GPIO4. Π’Π°ΠΊ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ:

    GPIO_LED = 3
    GPIO_BUTTON = 4
    DELAY_TIME = 0. 5

    Π”Π°Π»Π΅Π΅ настроим Ρ€Π΅ΠΆΠΈΠΌ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΠΌΠ΅Ρ€Π° соотвСтствовали названию сигнала (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, GPIO3), Π° Π½Π΅ порядковому Π½ΠΎΠΌΠ΅Ρ€Ρƒ Π½Π° Ρ€Π°Π·ΡŠΠ΅ΠΌΠ΅:

    GPIO.setmode(GPIO.BCM)

    НастраиваСм GPIO3 Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈ гасим свСтодиод, ΠΏΠΎΠ΄Π°Π² Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ:

    GPIO.setup(GPIO_LED, GPIO.OUT)
    GPIO.output(GPIO_LED, GPIO.LOW)

    GPIO4 — Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ…ΠΎΠ΄Π° с подтяТкой Π²Π²Π΅Ρ€Ρ…:

    GPIO.setup(GPIO_BUTTON, GPIO. IN, pull_up_down=GPIO.PUD_UP)

    Π”Π°Π»Π΅Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ Π²Π΅Ρ‡Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» while True, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ состояниС ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΌΠΈΠ³Π°Ρ‚ΡŒ свСтодиодом. Волько ΠΎΠ±Π΅Ρ€Π½Π΅ΠΌ Π΅Π³ΠΎ Π² Π±Π»ΠΎΠΊ try, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ процСсс (Π½Π°ΠΆΠ°Π² Ctrl + C). Π’ случаС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ GPIO.cleanup():

    try:
        while True:
            time.sleep(DELAY_TIME)
            
            if GPIO.input(GPIO_BUTTON) == 0:
                GPIO.output(GPIO_LED, GPIO.HIGH)
                print('led on')
            else:
                GPIO.output(GPIO_LED, GPIO.LOW)
                print('led off')
    except KeyboardInterrupt:
        GPIO.cleanup()
        print('exiting')

    Ну ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, здСсь ΠΆΠ΅ Ρƒ нас вся полСзная Ρ€Π°Π±ΠΎΡ‚Π°. Если ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°Ρ‚Π° (Π° Π² нашСй схСмС этому соотвСтствуСт Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ/логичСский ноль Π½Π° GPIO4), Ρ‚ΠΎ Π·Π°ΠΆΠΈΠ³Π°Π΅ΠΌ свСтодиод ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС «led on«. ΠŸΡ€ΠΈ отпускании ΠΊΠ½ΠΎΠΏΠΊΠΈ — ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ процСсс. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π±ΡƒΠ΄Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 0.5 с (DELAY_TIME).

    ЗапускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

    python gpio_test.py

    И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, наТимая ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ свСтодиода, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ πŸ‘

    Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ GPIO для Raspberry Pi

    : объяснСниС основ

    Π’ этом ΡƒΡ‡Π΅Π±Π½ΠΎΠΌ пособии ΠΏΠΎ GPIO для Raspberry Pi ΠΌΡ‹ рассмотрим всС основы ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO, Ρ‚Π°ΠΊΠΆΠ΅ извСстных ΠΊΠ°ΠΊ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния.

    Π­Ρ‚ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ схСмами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ схСмы ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

    Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этих Π±ΡƒΠ»Π°Π²ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ интСрСсноС. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΌΡ‹ рассмотрим Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ эти Π±ΡƒΠ»Π°Π²ΠΊΠΈ.

    Об этих Π±ΡƒΠ»Π°Π²ΠΊΠ°Ρ… Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ довольно ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ этому руководству, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈΡ…, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ.

    Π’Π°ΠΊΠΆΠ΅ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ нашС Π²ΠΈΠ΄Π΅ΠΎ ΠΎ Raspberry Pi GPIO Π² спискС оборудования. Он ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас Ρ‡Π΅Ρ€Π΅Π· всС основы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ.

    ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с GPIO рискованно ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ΅ вашСго Raspberry Pi. Π—Π½Π°Π½ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ мощности ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅, являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

    ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅

    ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π² этом руководствС Raspberry Pi GPIO, ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

    РСкомСндуСтся

    Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ

    • ΠšΠΎΡ€ΠΏΡƒΡ Raspberry Pi с доступом ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ GPIO

    ВидСоруководство

    НашС Π²ΠΈΠ΄Π΅ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас ΠΏΠΎ всСм Ρ‚Π΅ΠΌΠ°ΠΌ, описанным Π² этом руководствС. Если Π²Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ, ΡΠ»ΡƒΡˆΠ°Ρ ΠΈ видя, Ρ‚ΠΎ я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ.

    Если Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ Π²ΠΈΠ΄Π΅ΠΎ, ΠΏΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° нас ΠΈΠ»ΠΈ слСдитС Π·Π° Π½Π°ΠΌΠΈ Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² курсС всСх самых ΠΊΡ€ΡƒΡ‚Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Raspberry Pi, руководств ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

    Adblock удаляСт Π²ΠΈΠ΄Π΅ΠΎ? ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ нас, подписавшись Π½Π° наш сСрвис Π±Π΅Π· Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹.

    Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ GPIO для Raspberry Pi

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ приступим ΠΊ этому ΡƒΡ‡Π΅Π±Π½ΠΎΠΌΡƒ пособию ΠΏΠΎ GPIO для Raspberry Pi, ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ доступных Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π½Π°Π±ΠΎΡ€ для ΠΏΡ€ΠΎΡ€Ρ‹Π²Π° ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΊΠ°ΠΊ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ схСму.

    Если Π²Ρ‹ ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ Raspberry Pi B+, 2, Zero ΠΈΠ»ΠΈ 3, Ρ‚ΠΎ всСго Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ 40 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ². Π‘ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Raspberry Pi B, ΠΈΠΌΠ΅ΡŽΡ‚ всСго 26 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ².

    Π‘ΠΌ. Π½ΠΈΠΆΠ΅ схСму Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² Raspberry Pi GPIO. ΠœΡ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ всС Ρ‚Ρ€ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Pi для схСмы Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ².

    Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° PDF-вСрсия схСмы Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π΅Π΅ здСсь.


    Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π΅ΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стандартныС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, Π½ΠΎ ΠΈ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° I2C, SPI ΠΈ UART.

    • GPIO β€” это ваши стандартныС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ устройств. НапримСр, свСтодиод.
    • ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ I2C (Inter-Integrated Circuit) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ модулями, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ этот ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» (ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» I2C). Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°.
    • ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ SPI (шина ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ интСрфСйса) ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с устройствами SPI. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ I2C, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ».
    • UART (ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ асинхронный ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ/ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊ) β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ устройствами.
    • DNC ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡΒ», это Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ само Π·Π° сСбя.
    • ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ питания ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ нСпосрСдствСнно ΠΎΡ‚ Raspberry Pi.
    • GND β€” это ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для зазСмлСния Π²Π°ΡˆΠΈΡ… устройств. НСваТно, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π»ΠΈΠ½ΠΈΠΈ.

    ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ всС это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΡƒΠ³Π°ΡŽΡ‰ΠΈΠΌ, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅, всС Π±ΡƒΠ΄Π΅Ρ‚ довольно просто. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€ ΠΈ тСхничСского ΠΆΠ°Ρ€Π³ΠΎΠ½Π° сразу ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ людСй.

    Настройка ΠΈ использованиС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²

    Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ ΠΊΡ€Π°Ρ‚ΠΊΠΎ коснСмся Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° Raspberry Pi. ΠœΡ‹ Π΅Ρ‰Π΅ большС углубимся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ использованиС Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Raspberry Pi.

    Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Raspbian. Если ΠΎΠ½ Ρƒ вас Π½Π΅ установлСн, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ, слСдуя ΠΌΠΎΠ΅ΠΌΡƒ руководству ΠΏΠΎ установкС Raspbian.

    Настройка GPIO

    Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Raspbian, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ GPIO Π±Π΅Π· нСобходимости Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки.

    Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ Π² любом случаС ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Pi Π΄ΠΎ послСдних ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Если Π²Ρ‹ этого Π½Π΅ сдСлали, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

    Если Ρƒ вас Π½Π΅ установлСн ΠΏΠ°ΠΊΠ΅Ρ‚ GPIO, просто установитС Π΅Π³ΠΎ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

    Настройка Raspberry Pi I2C

    Настройка Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² I2C Π½Π° Raspberry Pi ΠΎΡ‡Π΅Π½ΡŒ проста ΠΈ Π·Π°ΠΉΠΌΠ΅Ρ‚ всСго ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚.

    Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ инструмСнту Raspi-Config, ввСдя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

    Π—Π΄Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ интСрфСйса , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊ I2c , Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ I2c, Π²Ρ‹Π±Ρ€Π°Π² Π”Π° .

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Pi Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ вас, Ρ‡Ρ‚ΠΎ I2C Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ спросит, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ загруТался ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π”Π°Β», Ссли Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ I2c ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Raspberry Pi.

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹. Для этого Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

    Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π΅Ρ€Π½Π΅Ρ‚ всС Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, начиная с i2c. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого i2c_BCM2708 .

    Настройка Raspberry Pi SPI

    Настройка Raspberry Pi SPI ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° I2c ΠΈ ΠΎΡ‡Π΅Π½ΡŒ проста, это Π·Π°ΠΉΠΌΠ΅Ρ‚ всСго ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚.

    Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ инструмСнту Raspi-Config, ввСдя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

    ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ инструмСнта ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ интСрфСйса , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊ БПИ .

    Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ SPI, ΠΈ ΠΎΠ½ сообщит Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ПослС этого ΠΎΠ½ спросит, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ загруТался ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π”Π°, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Pi.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ SPI ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

    Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π΅Ρ€Π½Π΅Ρ‚ всС Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, начиная с SPI. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ spi_bcm2835 . Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ пСрСзапустили Pi, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

    ИспользованиС ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° для ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ

    ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ для ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ позволяСт Π²Π·ΡΡ‚ΡŒ всС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π»Π΅Π½Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ кабСля ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊ ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ устройству. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ бСзопаснСС, Ρ‡Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ Raspberry Pi.

    БущСствуСт нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π½Π°Π±ΠΎΡ€ΠΎΠ² для развСтвлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΡƒΠΏΠΈΡ‚ΡŒ для Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² Raspberry Pi GPIO.

    Π›ΠΈΡ‡Π½ΠΎ я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ Ρ‚ΠΈΠΏ T, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Если Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ для ΠΏΡ€ΠΎΡ€Ρ‹Π²Π°, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ со списком оборудования Π²Ρ‹ΡˆΠ΅.

    ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π»Π΅Π½Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ кабСля Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ подсоСдинСн ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ установки Π»Π΅Π½Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ кабСля с Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚ΠΎΠΉ Ρ‚ΠΈΠΏΠ° T прямо Π½ΠΈΠΆΠ΅.

    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO Raspberry Pi

    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO Π½Π° Raspberry Pi ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСтся с использованиСм языка программирования Python. Π­Ρ‚Π° конкрСтная схСма ΠΈ ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ просты Π² использовании ΠΈ совсСм Π½Π΅ Π·Π°ΠΉΠΌΡƒΡ‚ Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

    Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ каТСтся Π²Π°ΠΌ слишком слоТным ΠΈ Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, вас ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Raspberry Pi Cayenne. ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ GPIO ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ‡Π΅Π½ΡŒ простого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.

    GPIO BOARD ΠΈ GPIO BCM

    БущСствуСт огромная Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ, ΠΈ Π²Π°ΠΌ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π£ ΠΎΠ±ΠΎΠΈΡ… Π΅ΡΡ‚ΡŒ свои ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы.

    ΠŸΠ»Π°Ρ‚Π° GPIO ( GPIO.Board ) ссылаСтся Π½Π° Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ². НапримСр, Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ ΡˆΡ‚ΠΈΡ„Ρ‚ Ρ€Π°Π²Π΅Π½ 1, Π° Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΡˆΡ‚ΠΈΡ„Ρ‚ β€” 2. Он ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ продвиТСния свСрху Π²Π½ΠΈΠ·, ΠΏΠΎΠΊΠ° Π½Π΅ закончатся ΡˆΡ‚ΠΈΡ„Ρ‚Ρ‹. На нашСй Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ эту Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² сСрСдинС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹.

    GPIO BCM ( GPIO.BCM ) β€” это Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠ°Π½Π°Π»Π° B roadcom S oc C . На ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΎΠΌΠ΅Ρ€ послС GPIO. НапримСр, Π½Π° Raspberry Pi 3 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π½ΠΈΠΆΠ΅ 3v3 β€” это GPIO2, поэтому Π½ΠΎΠΌΠ΅Ρ€ этого ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° Ρ€Π°Π²Π΅Π½ 2 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ BCM.

    НСдостатком BCM являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ мСнялись ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями (Raspberry Pi Rev 1 ΠΈ Raspberry Pi Rev 2) ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π±Ρ‹Ρ‚ΡŒ Π² бСзопасности, я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ»Π°Ρ‚Ρ‹ GPIO, Π½ΠΎ, ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Ρ€Π°Π½Π΅Π΅, Π²Π°ΠΌ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹.

    Код для простой свСтодиодной схСмы

    Если Π²Π°ΠΌ нравится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ ΠΎ Python, посмотритС ΠΌΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅.

    Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΄Π°Π²Π°ΠΉΡ‚Π΅ настроим Π½Π°ΡˆΡƒ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ схСму. Π£ мСня Π΅ΡΡ‚ΡŒ полСзная простая Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΈΠΆΠ΅. Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚, схСма, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ваши ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΎΡ‚ сапоТника.

    Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ просто ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Π΅Ρ† свСтодиода ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ 7 (GPIO4), Π° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Π΅Ρ† β€” ΠΊ рСзистору, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ зазСмлСния.

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Ρ„Π°ΠΉΠ» Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ввСсти наш скрипт Python.

    Π”Π°Π²Π°ΠΉΡ‚Π΅ напишСм нСбольшой скрипт. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Python чувствитСлСн ΠΊ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌ.

    НапримСр, Π² Ρ†ΠΈΠΊΠ»Π΅ для ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Π° для всСго Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ дальшС, GPIO.output(7, true) Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΏΠ΅Ρ€Π΅Π΄ Π½Π΅ΠΉ.

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈ сохранитС, Π½Π°ΠΆΠ°Π² ctrl+x ΠΈ Π·Π°Ρ‚Π΅ΠΌ y .

    Если Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ наш нСбольшой скрипт, схСма Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΆΠΈΡ‚ΡŒ.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сцСнарий Python, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ запускали Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ sudo .

    Π― надСюсь, Ρ‡Ρ‚ΠΎ это руководство ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π²Π°ΠΌ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с основами Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² GPIO.

    Как я ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» Ρ€Π°Π½Π΅Π΅ Π² этом руководствС, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ я Π±ΡƒΠ΄Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ мноТСство ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ Raspberry Pi GPIO. Π­Ρ‚ΠΎΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя использованиС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² двиТСния, Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ двигатСлями ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

    Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы, ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΈΠ»ΠΈ Ссли я Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пропустил, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½ΠΈΠΆΠ΅.

    ΠžΠ¨Π˜Π‘ΠšΠ — 404 — НЕ НАЙДЕНА

    • Главная
    • Π§Π΅Ρ‚Ρ‹Ρ€Π΅-Π½ΠΎ-Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅

    Наши сСрвСрныС Π³Π½ΠΎΠΌΡ‹ Π½Π΅ смогли Π½Π°ΠΉΡ‚ΠΈ страницу, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅.

    ΠŸΠΎΡ…ΠΎΠΆΠ΅, Π²Ρ‹ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°Π±Ρ€Π°Π»ΠΈ URL-адрСс Π² адрСсной строкС ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ ΠΏΠΎ старой Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅.

    Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ вас Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ?

    Мини фотоэлСмСнт

    Π’ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ SEN-09088

    7

    Π˜Π·Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π›ΡŽΠ±ΠΈΠΌΡ‹ΠΉ 69

    Бписок ТСланий

    Π’Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ питания цилиндричСского Π΄ΠΎΠΌΠΊΡ€Π°Ρ‚Π° β€” M-F (3 дюйма)

    Π’ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ COM-11705

    Π˜Π·Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π›ΡŽΠ±ΠΈΠΌΡ‹ΠΉ 30

    Бписок ТСланий

    НСсущая ΠΏΠ»Π°Ρ‚Π° SparkFun MicroMod для рСгистрации Π΄Π°Π½Π½Ρ‹Ρ…

    31 Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ DEV-16829

    21,50 $

    1

    Π˜Π·Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π›ΡŽΠ±ΠΈΠΌΡ‹ΠΉ 9

    Бписок ТСланий

    Π’ΠΎΠ½ΠΊΠΈΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊ — 4 Ом, 2,5 Π’Ρ‚, 28 ΠΌΠΌ

    Π’ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ COM-21311

    Π˜Π·Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π›ΡŽΠ±ΠΈΠΌΡ‹ΠΉ 1

    Бписок ТСланий

    Π‘ Π”Π½Π΅ΠΌ БлагодарСния ΠΎΡ‚ SparkFun

    25 ноября 2021 Π³.

    ΠœΡ‹ Ρ‚Π°ΠΊ любим Π”Π΅Π½ΡŒ Π’ΡƒΡ€Ρ†ΠΈΠΈ!

    Π˜Π·Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π›ΡŽΠ±ΠΈΠΌΡ‹ΠΉ 0

    Π”Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° GPS-RTK для максимальной точности

    8 июля 2022 г.

    На этой Π½Π΅Π΄Π΅Π»Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° GPS-RTK с ZED-F9P ΠΈ ZED-F9R, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° с двумя Π°Π½Ρ‚Π΅Π½Π½Π°ΠΌΠΈ ESP32 WROOM!

    Π˜Π·Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π›ΡŽΠ±ΠΈΠΌΡ‹ΠΉ 0

    Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ»ΡŽΠΌΠΈΠ½Π΅ΡΡ†Π΅Π½Ρ‚Π½Ρ‹ΠΌ (EL) ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠΌ

    13 июля 2018 г.

    Π­Ρ‚ΠΎ руководство ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ»ΡŽΠΌΠΈΠ½Π΅ΡΡ†Π΅Π½Ρ‚Π½Ρ‹ΠΌ (EL) ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠΌ, Π»Π΅Π½Ρ‚ΠΎΠΉ, панСлью, ΠΏΡ€ΠΎΠ²ΠΎΠ»ΠΎΠΊΠΎΠΉ для Ρ‡Π΅ΠΊΠ°Π½ΠΊΠΈ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ засиял!

    Π˜Π·Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π›ΡŽΠ±ΠΈΠΌΡ‹ΠΉ 14

    Руководство ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

    22 ΠΌΠ°Ρ€Ρ‚Π° 2019 Π³.

    Π’Π°ΠΆΠ½Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… (ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ…) Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат всС основныС сквозныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ со встроСнными ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

    Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *