Raspberry pi 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.

    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 Π³.

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

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