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> //ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ 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)
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 <pin&gt; in/out/pwm/clock/up/down/tri – ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΠΈΠ½Π°.
- gpio write &amp;amp;lt;pin&amp;amp;gt; 0/1 – ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΡΠΎΠΊΠΈΠΉ/Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π° ΠΏΠΈΠ½Π΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π±ΠΎΡΡ OUT
- gpio pwm &amp;amp;lt;pin&amp;amp;gt; &amp;amp;lt;value&amp;amp;gt;&amp;amp;nbsp; – Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π¨ΠΠ ΡΠΈΠ³Π½Π°Π»Π° Π½Π° ΠΏΠΈΠ½Π΅.
value Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0 Π΄ΠΎ 1023 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
- gpio read &amp;amp;lt;pin&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 Ρ ΡΠ»Π°Π³Π°ΠΌΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΠΈ Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΠ»Π°ΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ 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
ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π°ΡΡ Π²Π°ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.