Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ внСшний Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΡŒ для всСх iOS-устройств, совмСстим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 Π΄ΠΎ 24:00 ΠΏΠ½-ΠΏΡ‚ | c 10:00 Π΄ΠΎ 18:00 сб
0 Comments

Wiring Pi – Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GPIO. Π§Π°ΡΡ‚ΡŒ 1

Данная ΡΡ‚Π°Ρ‚ΡŒΡ рассчитана Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… прСдставлСния ΠΎΠ± основах GPIO Raspberry Pi.

Если эта Ρ‚Π΅ΠΌΠ° для вас новая, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ознакомится с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡΡ‚Π°Ρ‚ΡŒΡΠΌΠΈ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Π½Π° Ρ‚Π΅ΠΌΡƒ GPIO – ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ “ДокумСнтация”

Π’ настоящСС врСмя самой популярной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GPIO Π½Π° Raspberry Pi стала wiringPi

1. Если Ρƒ вас Π½Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ git для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с github-рСпозиториями, Ρ‚ΠΎ устанавливаСм:

sudo apt-get install git-core

2. Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ исходники Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ· рСпозитория –

git clone git://git.drogon.net/wiringPi

!!!UPD: Π°Π²Ρ‚ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΠ» Π΅Ρ‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. ΠšΡ€Π°ΠΉΠ½ΡΡ вСрсия WiringPi ΠΎΡ‚ Π“ΠΎΡ€Π΄ΠΎΠ½Π° Π₯СндСрсона Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π½Π° Raspberry Pi 4. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, которая разрабатываСтся сообщСством:

git clone https://github.com/WiringPi/WiringPi. git

3. Π£ΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌοΌš

cd wiringPi
./build

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° wiring Pi установлСна, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

#include  <wiringPi.h&gt //ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
int main (void)
{
  wiringPiSetup () ; //ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ
  pinMode (0, OUTPUT) ;
  for (;;)
  {
    digitalWrite (0, HIGH) ; delay (500) ;
    digitalWrite (0,  LOW) ; delay (500) ;
  }
  return 0 ;
}

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ исходник:

gcc -Wall -o example example.c -lwiringPi

ЗапускаСм:

sudo ./example

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ wiringPiSetup() ПослС этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Если Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±Ρ‹Π»Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ wiringPiSetup() , Ρ‚ΠΎ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ слСдуСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ “Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ” Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΈΠ½Π°. Π’Π°Π±Π»ΠΈΡ†Ρƒ соотвСтствия “Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ…” ΠΏΠΈΠ½ΠΎΠ² (ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° wPi) Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

gpio readall (ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° gpio устанавливаСтся автоматичСски вмСстС с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ WiringPi)

void pinMode (int pin, int mode) УстанавливаСт Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΈΠ½Π°. ДоступныС значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° mode: INPUT, OUTPUT, PWM_OUTPUT, GPIO_CLOCK. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ PWM_OUTPUT поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΈΠ½ΠΎΠΌ BCM_GPIO 18, Ρ€Π΅ΠΆΠΈΠΌ GPIO_CLOCK поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΈΠ½ΠΎΠΌ BCM_GPIO 4

void pullUpDnControl (int pin, int pud) Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ рСзисторы для ΠΏΠΈΠ½Π°, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ INPUT. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния PUD_OFF (ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ рСзисторы ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹), PUD_DOWN (подтяТка ΠΊ Π·Π΅ΠΌΠ»Π΅), PUD_UP (подтяТка ΠΊ 3.3v)/Π‘ΠΎΠΏΡ€ΠΎΡ‚ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… рСзисторов Π½Π° Raspberry Pi составляСт ΠΎΠΊΠΎΠ»ΠΎ 50KОм

void digitalWrite (int pin, int value) УстанавливаСт высокий (value=1)/Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ(value=0) Π½Π° ΠΏΠΈΠ½Π΅, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ OUTPUT

void pwmWrite (int pin, int value) ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ value Π·Π°Π΄Π°Ρ‘Ρ‚ коэффициСнт заполнСния ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° (ΠΏΡ€ΠΎ ШИМ ΠΈ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ – https://raspberrypi.ru/50-gpio-dlya-chaynikov-chast-4), value ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ значСния ΠΎΡ‚ 0 (0% заполнСния ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°) Π΄ΠΎ 1024 (100% Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°). Аппаратная ШИМ поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΈΠ½ΠΎΠΌ BCM_GPIO 18

int digitalRead (int pin) Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ состояния ΠΏΠΈΠ½Π°. Π’ зависимости ΠΎΡ‚ логичСского уровня функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0 ΠΈΠ»ΠΈ 1

analogRead (int pin) Ѐункция считываСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ АЦП. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° Raspberry Pi Π½Π΅Ρ‚ встроСнного АЦП, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ внСшний АЦП (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ – https://raspberrypi.ru/571-poluchenie-dannyh-s-analogovyh-datchikov-podklyuchennyh-k-raspberry-pi)

analogWrite (int pin, int value) Ѐункция записываСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² АЦП.

unsigned int millis (void) Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ врСмя (Π² миллисСкундах) ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (wiringPiSetup) Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ WiringPi. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сбрасываСтся Ρ‡Π΅Ρ€Π΅Π· 49 Π΄Π½Π΅ΠΉ

unsigned int micros (void) Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ врСмя (Π² микросСкундах) ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (wiringPiSetup) Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ WiringPi. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сбрасываСтся ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 71 ΠΌΠΈΠ½ΡƒΡ‚Ρƒ

void delay (unsigned int howLong)

ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ howLong (задаётся Π² миллисСкундах)

void delayMicroseconds (unsigned int howLong) ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ howLong (задаётся Π² микросСкундах)

int wiringPiISR (int pin, int edgeType, void (*function)(void)) РСгистрируСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΡ€ΠΈ наступлСнии условия прСрывания. УсловиС прСрывания (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ edgeType) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния:

  • INT_EDGE_FALLING (ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ смСнС уровня Π½Π° ΠΏΠΈΠ½Π΅ с высокого Π½Π° Π½ΠΈΠ·ΠΊΠΈΠΉ)
  • INT_EDGE_RISING (ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ смСнС уровня Π½Π° ΠΏΠΈΠ½Π΅ с Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Π½Π° высокий)
  • INT_EDGE_BOTH (ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ любой смСнС уровня Π½Π° ΠΏΠΈΠ½Π΅)
  • INT_EDGE_SETUP

ΠŸΡ€ΠΈ условии INT_EDGE_SETUP Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΈΠ½Π° – подразумСваСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ Π±Ρ‹Π» настроСн Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π’ случаС Ссли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ наступаСт Π΄ΠΎ окончания ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ, Ρ‚ΠΎ ΠΎΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ. Но Ссли 2 прСрывания Π±ΡƒΠ΄ΡƒΡ‚ находится Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прСрывания Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Ѐункция-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прСрывания выполняСтся с высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ (Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root) ΠΈ выполняСтсяодноврСмСннос основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ Ρ‚.Π΄

ВмСстС с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Wiring Pi поставляСтся удобная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° gpio (я Π΅Ρ‘ упомянул Π² Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ). Π‘ Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ быстро ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΈΠ½Ρ‹ Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ состояниС ΠΈΠ· консоли.

  • gpio mode &lt;pin&amp;gt; in/out/pwm/clock/up/down/tri – установка Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΈΠ½Π°.
  • gpio write &amp;amp;amp;lt;pin&amp;amp;amp;gt; 0/1 – ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ высокий/Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½Π° ΠΏΠΈΠ½Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ OUT
  • gpio pwm &amp;amp;amp;lt;pin&amp;amp;amp;gt; &amp;amp;amp;lt;value&amp;amp;amp;gt;&amp;amp;amp;nbsp; – гСнСрация ШИМ сигнала Π½Π° ΠΏΠΈΠ½Π΅. value Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 1023 опрСдСляСт коэффициСнт заполнСния
  • gpio read &amp;amp;amp;lt;pin&amp;amp;amp;gt; – ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ состояниС ΠΏΠΈΠ½Π°. 0 ΠΈΠ»ΠΈ 1

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ слСдуСт…

ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ WiringPi [BPI-WiringPi2] Π½Π° Banana Pi BPI-M64


WiringPi – это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для доступа ΠΊ GPIO-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»Π°ΡΡŒ для Ρ‡ΠΈΠΏΠ° BCM2835, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² Raspberry Pi. Написана Π½Π° языкС C, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GNU LGPLv3 ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для использования Π² C, C++ ΠΈ RTB (BASIC), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках (Π½ΠΎ для этого Π½ΡƒΠΆΠ½Ρ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ). Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° WiringPi создавалась с ΠΏΡ€ΠΈΡ†Π΅Π»ΠΎΠΌ Π½Π° ΡΡ…ΠΎΠΆΠ΅ΡΡ‚ΡŒ с языком Wiring, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Arduino.

WiringPi Π±Ρ‹Π»Π° ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΎΠ΄Π½Π°ΠΊΠΎ Π°Π²Ρ‚ΠΎΡ€ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ WiringPi ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ этих вСрсий Π½Π΅ занимаСтся.

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ WiringPi доступны ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΈ интСрфСйсы: Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π²Ρ…ΠΎΠ΄/Π²Ρ‹Ρ…ΠΎΠ΄, PWM (ШИМ), I2C, SPI, UART.

Π’ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с WiringPi ΠΈΠ΄Π΅Ρ‚ gpio, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для программирования ΠΈ настройки GPIO-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ². Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ shell-скриптов.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ WiringPi ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Gertboard устройства с Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΌ интСрфСйсом, Π΄Ρ€ΡƒΠ³ΠΎΠΉ – ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ MCP23x17 ΠΈ MCP23x08, популярными Ρ‡ΠΈΠΏΠ°ΠΌΠΈ для увСличСния количСства GPIO-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ², Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ WiringPi для Π²Ρ‹Π²ΠΎΠ΄Π° 32 Π±ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ 4 сдвиговых рСгистров 74Γ—595, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ для увСличСния количСства GPIO-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ATmega (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Arduino ΠΈΠ»ΠΈ Gertboard) – Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ для WiringPi собствСнныС Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ†Π΅ΠΏΡŒ с Pi собствСнноС ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ΅ устройство.

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ devLib

Π’ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с WiringPi ΠΈΠ΄Π΅Ρ‚ devLib – это Π½Π°Π±ΠΎΡ€ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… доступ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ популярным ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ устройствам. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… устройств: LCD-дисплСи (Π½Π° Π±Π°Π·Π΅ Ρ‡ΠΈΠΏΠΎΠ² Hitachi HD44780U) ΠΈ графичСскиС дисплСи (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ дисплСи с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ 128Ρ…64, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° Ρ‡ΠΈΠΏΠ΅-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ 12864H). Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ DS1302 (Ρ‡ΠΈΠΏ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠ°ΠΊ часы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ), Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ Π½Π° Π±Π°Π·Π΅ Ρ‡ΠΈΠΏΠΎΠ² Maxdetect (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, RHT003), ΠΏΠ»Π°Ρ‚Ρ‹ Gertboard/PiFace ΠΈ Ρ‚.Π΄.

Установка

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ WiringPi для  Banana Pi BPI-M64 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ссылкС.

ΠŸΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ вСрсия BPI-WiringPi2 ΠΏΠΎΠΌΠΈΠΌΠΎ Banana Pi BPI-M64 Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ‹: Banana Pi[New], Banana Pi[X86], Banana Pi M1[A20], Banana Pi M1+[A20], Banana Pi R1[A20], Banana Pi M2[A31s], Banana Pi M3[A83T], Banana Pi M2+[h4], Banana Pi M2 Ultra[R40], Banana Pi M2 Magic[R16], Banana Pi M2+[h3+], Banana Pi M2+[H5], Banana Pi M2 Ultra[V40], Banana Pi M2 Zero[h3+/h4].

Установка Π½Π° Armbian, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ubuntu:


$ sudo apt-get update
$ sudo apt-get install git
$ cd ~/
$ git clone https://github. com/BPI-SINOVOIP/BPI-WiringPi2
$ cd ~/BPI-WiringPi2
$ ./build

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΈ установка Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ Π±Π΅Π· ошибок, прСдупрСТдСния компилятора Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚:

ПослС этого скрипт скомпилируСт ΠΈ установит Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ *.so ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ /usr/local/lib.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ WiringPi:


./build uninstall

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… дистрибутивах Π½Π΅Ρ‚ /usr/local/lib ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠ°ΠΊ LD_LIBRARY_PATH. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ этой Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Ρ„Π°ΠΉΠ» /etc/ld.so.conf Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строку: /usr/local/lib. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ

sudo ldconfig

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:


$ cd ~/BPI-WiringPi2
$ make static
$ sudo make install-static

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° gpio

Π’ состав WiringPi Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° gpio, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰Π°Ρ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ встроСнным GPIO-интСрфСйсом. gpio ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² скриптах, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ GPIO-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ – Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΈ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ².
Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ gpio, встроСнной Π² shell-скрипт, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ это Π½Π΅ самый эффСктивный ΠΌΠ΅Ρ‚ΠΎΠ΄. Π”Ρ€ΡƒΠ³ΠΎΠΉ способ Π΅Π΅ использования – Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ system() (Π² языках C/C++) ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-эквивалСнтС ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ языка программирования.

Команда gpio Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ устанавливаСтся с Ρ„Π»Π°Π³ΠΎΠΌ ΠΏΡ€Π°Π²Π° доступа setuid. Благодаря этому ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π΅ Π±Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sudo ΠΈΠ»ΠΈ залогинивания Π² Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ root-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Помимо управлСния, считывания ΠΈ записи Π½Π° GPIO ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° gpio позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  • Π­ΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ/Ρ€Π΅ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· интСрфСйс /sys/class/gpio, Π³Π΄Π΅ ΠΎΠ½ΠΈ становятся доступны для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Ρ‚.Π΅. ΠΈΡ… Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· sudo).
  • Π­ΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· интСрфСйс /sys/class/gpio для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, запускаСмых Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°.
  • Π—Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для шин I2C ΠΈ SPI, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² Β«/dev/Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запустил gpio, запись/считываниС Π΄Π°Π½Π½Ρ‹Ρ….
  • Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ i2cdetect с Ρ„Π»Π°Π³Π°ΠΌΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ вСрсии вашСй ΠΏΠ»Π°Ρ‚Ρ‹.
    Π—Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° SPI ΠΈ скорости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… I2C (ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ).
    ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ‹.

ИспользованиС gpio

ПослС установки WiringPi Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, которая ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΏΠ»Π°Ρ‚Ρ‹:


$ gpio -v

Команда:


$ gpio readall

β€” считываСт Π΄Π°Π½Π½Ρ‹Π΅ со всСх доступных ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Π΅ΡΡ‚Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² (Ρ‚.Π΅. распиновку WiringPi, распиновку BCM_GPIO ΠΈ распиновку согласно полоТСнию Π½Π° ΠΏΠ»Π°Ρ‚Π΅), Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ значСния ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΈ Ρ€Π΅ΠΆΠΈΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ выставлСны. На ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ снимкС экрана ΠΏΠΎΠΊΠ°Π·Π°Π½Π° нумСрация Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² согласно WiringPi, BCM (нумСрация GPIO) ΠΈ физичСская нумСрация ( BOARD):

ИспользованиС

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ классичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΌΠΎΡ€Π³Π°Π΅ΠΌ свСтодиодом. Для этого Π½Π°ΠΌ потрСбуСтся свСтодиод, рСзистор, ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ всС это Π½Π° 32-pin, GPIO-26, Π½ΠΎΠΌΠ΅Ρ€ GPIO Π½Π° Ρ‡ΠΈΠΏΠ΅ Allwinner = 39.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π°Π΄ΠΈΠΌ Β«1Β» Π½Π° GPIO-26 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ gpio. Команда:


gpio write 0/1

, выставляСт Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π² состояниС HIGH (Β«1Β») ΠΈΠ»ΠΈ LOW (Β«0Β»). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ свСтодиода Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ:


$ gpio write 26 1

Если свСтодиод Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ Π·Π½Π°Ρ‡ΠΈΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ Π±Ρ‹Π» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ pin.

Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ~/BPI-WiringPi2/examples, Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GPIO. Нам потрСбуСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ blink.c, создадим копию Ρ„Π°ΠΉΠ»Π° для рСдактирования ΠΈ установим mc вмСстС с ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ mcedit:


$ sudo apt-get install -y mc
$ cd ~/BPI-WiringPi2/examples
$ cp blink. c blink_pin32.c
$ mcedit blink_pin32.c

ИзмСним Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° для свСтодиода: #define LED 0, Π½Π° #define LED 26. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ измСнСния β€” F2 β€” save, Π²Ρ‹Ρ…ΠΎΠ΄ F10.

blink_pin32.c:


#include ;
#include ;

// LED Pin - wiringPi pin 0 is BCM_GPIO 17.

#define LED 26

int main (void)
{
printf ("Raspberry Pi blink\n") ;

wiringPiSetup () ;
pinMode (LED, OUTPUT) ;
for (;;)
{
digitalWrite (LED, HIGH) ; // On
delay (500) ; // mS
digitalWrite (LED, LOW) ; // Off
delay (500) ;
}
return 0 ;
}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ скомпилируСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:


$ gcc -Wall -pthread -o blink_pin32 blink_pin32.c -lwiringPi -lm -lpthread -lcrypt -lrt

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° создаст исполняСмый Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ blink_pin32. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:


$ . /blink_pin32

Π‘Π²Π΅Ρ‚ΠΎΠ΄ΠΈΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΈΠ³Π°Ρ‚ΡŒ с частотой Π² полсСкунды Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Бсылки

  • GitHub BPI-WiringPi2
  • Raspberry Pi:Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ/WiringPi
  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ/WiringPi/Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° gpio
  • Raspberry Pi:Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ/WiringPi/Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ DevLib
  • Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ WiringPi Π½Π° Raspberry Pi
  • WiringPI для Raspberry PI, +Python
  • Wiring Pi
  • GPIO Interface library for the Raspberry Pi
  • WiringPi β€” Unofficial mirror and ports of WiringPi
  • WiringPi β€” Banana Pi BPI-M64
  • Установка ΠΈ настройка WiringOP/WiringPi Π½Π° Orange Pi PC
  • How to enable wiringpi GPIO control inside a Docker container

WiringPi

WiringPi β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° доступа GPIO Π½Π° основС PIN , написанная Π½Π° C для устройств SoC BCM2835, BCM2836 ΠΈ BCM2837, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π²ΠΎ всСх Raspberry Pi. вСрсий. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ являСтся общСдоступным, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдоставлСн Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ ΠΆΠ΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ.

Он ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования с C ΠΈ RTB (BASIC) Π’ΠžΠ›Π¬ΠšΠž НА RASPBERRY PI.

Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌ людям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовали Arduino Β« ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠ° ” систСма 1 Β ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для использования ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌΠΈ программистами C/C++. Π­Ρ‚ΠΎ Π½Π΅ инструмСнт обучСния Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ страницу новостСй.

WiringPi Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ нСпосрСдствСнно Π½Π° Raspberry Pi с 32-разрядной вСрсиСй Raspbian.

Π― Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, кросс-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы. Он Π±Ρ‹Π» ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ кросс-компиляции, ΠΎΠ΄Π½Π°ΠΊΠΎ я Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽ эти систСмы. Если Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ wirePi Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΎΡ‚ Raspberry Pi с Raspbian, Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ с Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сдСлал ΠΏΠΎΡ€Ρ‚, Π° Π½Π΅ со ΠΌΠ½ΠΎΠΉ.

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ вСрсия Raspberry Pi Model A ΠΈ B вСрсии B1 прСдставляла собой ΠΎΠ΄Π½ΠΎΠΏΠ»Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ 35 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² с 26-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΌ Ρ€Π°Π·ΡŠΠ΅ΠΌΠΎΠΌ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния (GPIO), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нСсСт Π½Π°Π±ΠΎΡ€ сигналов ΠΈ шин. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ 8 Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ Π²Ρ…ΠΎΠ΄Ρ‹. Π”Π²Π° ΠΈΠ· этих ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² (Π½Π° 40-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠΌ Pi ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π½Π° 26-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠΌ Pi) Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° ШИМ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, имССтся 2-ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ интСрфСйс I2C ΠΈ 4-ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ интСрфСйс SPI (со Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ Π²Ρ‹Π±ΠΎΡ€Π°, всСго 5 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²) ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ UART с Π΅Ρ‰Π΅ 2 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ.

Π—Π° ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ Π³ΠΎΠ΄Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ обновлСния:

  • ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ модСль B с 26-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΌ Ρ€Π°Π·ΡŠΠ΅ΠΌΠΎΠΌ GPIO.
  • МодСль B, вСрсия 1.1 Raspberry Pi ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ 4 Π»ΠΈΠ½ΠΈΠΈ GPIO Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π°Π·ΡŠΠ΅ΠΌΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΏΠ°ΡΡ‚ΡŒ ΠΊ ΠΏΠ»Π°Ρ‚Π΅.
  • МодСль A, аналогичная ΠΌΠΎΠ΄Π΅Π»ΠΈ B v1.1, Π½ΠΎ Π±Π΅Π· ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ‚ΠΎΡ€Π° USB ΠΈ Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° Ethernet.
  • МодСль Raspberry Pi ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ A+ ΠΈ B+ прСдставляСт собой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄Π²ΡƒΡ… Π»Π΅Ρ‚ исслСдований, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ ΠΈ испытаний ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ оснащСна ΠΎΠ΄Π½ΠΈΠΌ 40-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΌ Ρ€Π°Π·ΡŠΠ΅ΠΌΠΎΠΌ GPIO с 28 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ GPIO ΠΈ 4 Ρ€Π°Π·ΡŠΠ΅ΠΌΠ°ΠΌΠΈ USB. (НСт USB ΠΈΠ»ΠΈ Ethernet Π½Π° A+)
  • МодСль B v2 оснащСна Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…ΡŠΡΠ΄Π΅Ρ€Π½Ρ‹ΠΌ процСссором Arm A7 с 1 Π“Π‘ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Π’ΠΎΡ‚ ΠΆΠ΅ GPIO.
  • МодСль Zero β€” это форсированный (1 Π“Π“Ρ†) ΡƒΡ€Π΅Π·Π°Π½Π½Ρ‹ΠΉ Pi A+. 40-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΠ΅ΠΌ GPIO ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π¦Π΅Π½Π½ΠΈΠΊ 5 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ².
  • МодСль B v3 оснащСна Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…ΡŠΡΠ΄Π΅Ρ€Π½Ρ‹ΠΌ процСссором Arm A8 (64-разрядная вСрсия) с Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ GPIO, Ρ‡Ρ‚ΠΎ ΠΈ модСль 2, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ встроСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Wi-Fi ΠΈ Bluetooth. ВсС Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ†Π΅Π½Π½ΠΈΠΊ Π² 35 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ².
  • МодСль Zero-W добавляСт встроСнный Wi-Fi, Bluetooth ΠΈ Ρ€Π°Π·ΡŠΠ΅ΠΌ для ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ Pi ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ»Π°Ρ‚Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Zero.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ I2C, SPI ΠΈ UART Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² своих Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… ΡˆΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π² ΠΎΠ±Ρ‰Π΅ΠΉ слоТности 8 + 2 + 5 + 2 = 17 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° . РазъСм P1 (плюс Π΅Ρ‰Π΅ 4 Π½Π° Ρ€Π°Π·ΡŠΠ΅ΠΌΠ΅ P5 Π½Π° Revision 2 Pi) ΠΈ 28 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΠΏΠ»Π°Ρ‚Π°Ρ… B+ ΠΈ вСрсии 2 ΠΈ 3 (хотя 2 Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для интСрфСйса HAT I2C, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ GPIO, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ»Π°Ρ‚Π° HAT)

WiringPi Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки gpio , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для программирования ΠΈ настройки ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это для чтСния ΠΈ записи ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для управлСния ΠΈΠΌΠΈ ΠΈΠ· сцСнариСв ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

WiringPi являСтся Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΌ, ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ WiringPi для использования устройств Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ интСрфСйса Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Gertboard, Π° Ρ‚Π°ΠΊΠΆΠ΅ для использования популярных MCP23x17/MCP23x08 (I2C 7 SPI) микросхСм Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ IO ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ 4 74 Γ— 595 рСгистров сдвига , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ вмСстС для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. (ΠŸΡ€ΠΈ нСобходимости Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΎ 4 74×595). Один ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ позволяСт Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ATmega (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Arduino ΠΈΠ»ΠΈ Gertboard) Π² качСствС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ GPIO β€” Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ Pi.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свои собствСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π²Π°ΡˆΠΈΡ… собствСнных ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств с wireingPi ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости.

WiringPi ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись, ΠΈ, хотя ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° Pi Π½Π΅Ρ‚ собствСнного Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ оборудования, прСдусмотрСны ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… микросхСм Gertboards, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ устройства A/D ΠΈ D/A ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•.

БущСствуСт вСрсия wireingPi , размСщСнная Π½Π° Github. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠΈ Pi . Он сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для облСгчСния создания ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ Ruby ΠΈ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ написаны ΠΊΠ΅ΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вСрсии wirePi Π½Π° github β€” всС ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»Π΅Π½Ρ‹ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ эти вСрсии, Π²Ρ‹ Π”ΠžΠ›Π–ΠΠ« ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ с Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сдСлал эту Ρ„ΠΎΡ€ΠΌΡƒ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. ΠŸΡ€ΠΎΡΡŒΠ±Ρ‹ ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΎΡ‚ мСня Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

TheWiringPi devLib

devLib прСдставляСт собой Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… с использованиСм wiringPi , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΈΠΉ доступ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ популярным ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ устройствам. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ устройства Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π–Πš-дисплСи (Π½Π° Π±Π°Π·Π΅ Ρ‡ΠΈΠΏΠΎΠ² Hitachi HD44780U), Ρ‚Π°ΠΊ ΠΈ графичСскиС β€” Π½Π°ΠΏΡ€. ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ дисплСи с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ 128 Γ— 64 пиксСлСй с ΠΎΠ±Ρ‰ΠΈΠΌ Ρ‡ΠΈΠΏΠΎΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° 12864H. Π§ΠΈΠΏ часов DS1302 RTC, Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ Π½Π° Π±Π°Π·Π΅ Ρ‡ΠΈΠΏΠΎΠ² Maxdetect (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, RHT003), интСрфСйсныС ΠΏΠ»Π°Ρ‚Ρ‹ Gertboard ΠΈ PiFace ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

РСсурсы WiringPi

  • Raspberry Pi GPIO НумСрация ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²
  • Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈ установитС
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ инструкции
  • Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ руководство/докумСнтация ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ WiringPi
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ GPIO
  • DevLib
  • Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° GPIO

PiFace

WiringPi ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» ΠΏΠ»Π°Ρ‚Ρƒ PiFace, Π½ΠΎ Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСйчас сильно устарСла.

Π“Π΅Ρ€Ρ‚Π±ΠΎΡ€Π΄

WiringPi ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Gertboard, Π½ΠΎ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСйчас сильно устарСла.

Β 


1 Arduino Π½Π° самом Π΄Π΅Π»Π΅ состоит ΠΈΠ· Π΄Π²ΡƒΡ… Π²Π΅Ρ‰Π΅ΠΉ; ΠΎΠ΄ΠΈΠ½ β€” это аппаратная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π° Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния β€” это ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Wiring . ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠ° являСтся ядром Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° для Arduino, поэтому я ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ воспроизвСсти эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (ΠΈΠ»ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ подмноТСство с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ Raspberry Pi) Π½Π° Raspberry Pi.

ΠœΠ°Π»ΠΈΠ½ΠΎΠ²Ρ‹ΠΉ Пи | Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠ° | Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ

WiringPi β€” это ΠŸΠ Π•Π”Π£Π‘Π’ΠΠΠžΠ’Π›Π•ΠΠΠ«Π™ со стандартными систСмами Raspbian. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, НЕ ΠŸΠ«Π’ΠΠ™Π’Π•Π‘Π¬ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ инструкциям ΠΏΠΎ установкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°Ρ‚ΡŒ Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅. ЭВА БВРАНИЦА являСтся ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ способом ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это.

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: WiringPi Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΈ протСстирован Π’ΠžΠ›Π¬ΠšΠž Π½Π° Raspberry Pi. Π­Ρ‚ΠΎ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ C ΠΈ RTB BASIC. Если Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Π΅, Ρ‚ΠΎ ΡƒΠ΄Π°Ρ‡ΠΈ.

Для обновлСния ΠΈΠ»ΠΈ установки Π² систСмС Raspbian-Lite:

 sudo apt-get install wirepi 

β€” это всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.

Из источника:

WiringPi поддСрТиваСтся GIT для простоты отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ сущСствуСт Plan B , Ссли Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GIT ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ваш брандмауэр Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ вас, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ сначала ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ это!)

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ : wirePi – это , Π° НЕ , Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π½Π° Github. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°ΠΌ, Π½ΠΎ это Π½Π΅ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ вСрсия, поддСрТиваСмая ΠΌΠ½ΠΎΠΉ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ источники WiringPi, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ адрСсу:

https://git.drogon.net/

ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ссылку WiringPi.

Для установки…

Π‘Π½Π°Ρ‡Π°Π»Π° ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ установлСн wirePi. Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ запуститС:

 $ gpio -v 

Если Π²Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΎΠ½ΠΎ Ρƒ вас ΡƒΠΆΠ΅ установлСно. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг β€” Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, установлСн Π»ΠΈ ΠΎΠ½ Ρ‡Π΅Ρ€Π΅Π· стандартный ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ ΠΈΠ· исходного ΠΊΠΎΠ΄Π°. Если Π²Ρ‹ установили Π΅Π³ΠΎ ΠΈΠ· исходного ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ β€” ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ β€” Π½ΠΎ Ссли ΠΎΠ½ установлСн ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сначала ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚. Для этого:

 $ sudo apt-get purge wirepi
$ hash -r 

Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅.

Если Ρƒ вас Π½Π΅ установлСн GIT, Ρ‚ΠΎ ΠΏΠΎΠ΄ любой ΠΈΠ· вСрсий Debian (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Raspbian) Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

 $ sudo apt-get install git-core 

Если Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ошибки, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ ваш Pi ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎ послСднСй вСрсии Raspbian: (Π² любом случаС, это Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ идСя Π΄Π΅Π»Π°Ρ‚ΡŒ рСгулярно)

 $ sudo apt-get update
$ sudo apt-get upgrade 

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ WiringPi с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GIT:

 $ ΠΊΠ΄
$ git clone git://git.drogon.net/wiringPi 

Если Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ использовали ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ клонирования, Ρ‚ΠΎ

 $ cd ~/wiringPi
$ git pull origin 

Π‘ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° обновлСнная вСрсия, послС Ρ‡Π΅Π³ΠΎ Π²Ρ‹ смоТСтС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ скрипт сборки.

Для сборки/установки Π΅ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ скрипт:

 $ cd ~/wiringPi
$ . /build 

Новый сцСнарий сборки скомпилируСт ΠΈ установит всС это Π·Π° вас β€” Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ sudo, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сцСнарий ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ запуском.


План B

НаТмитС Π½Π° этот URL-адрСс: (ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΡΡ Π½Π° Π½ΠΎΠ²ΠΎΠΉ страницС)

https://git.drogon.net/?p=wiringPi;a=summary

Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ссылку с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ снимок справа. Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ.

Π‘ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Ρ„Π°ΠΉΠ» tar.gz с ΠΈΠΌΠ΅Π½Π΅ΠΌ , Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ wirePi-98bcb20.tar.gz. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ Π±ΡƒΠΊΠ²Ρ‹ послС wireingPi (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС 98bcb20), вСроятно, Π±ΡƒΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ β€” ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ выпуска.

Π—Π°Ρ‚Π΅ΠΌ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это для установки:

 $ cd
ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠ° $tar xfzPi-98bcb20.tar.gz
$ΠΊΠ΄ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠ°Pi-98bcb20
$ ./build 

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ фактичСскоС имя Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ β€” Π²Π°ΠΌ придСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ имя ΠΈ внСсти ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния.


ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° установки WiringPi

ЗапуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ gpio для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ установки:

 $ gpio -v
$ gpio readall 

Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ Π²Π°ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

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

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