рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдЕрдЬрдЧрд░ рд╕реЗ GPIO рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдореИрдВ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдХрд╛рд░реНрдп рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рд▓реЗрдЦ рдЙрди рджреЛ рдХрд╛рдо рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ GPIO рдкреЛрд░реНрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ GPIO рдкреЛрд░реНрдЯ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИрдВ:

рдЫрд╡рд┐



GPIO рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ Sysfs рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред рдпрд╣рд╛рдБ Sysfs GPIO рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, GPIO рдкреЛрд░реНрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕реЗрд╕ рдФрд░ рд░рд╛рдЗрдЯ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЖрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрдирдкреБрдЯ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреА рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреА рд╣реЛрдЧреАред рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред

рдкреЛрд░реНрдЯ рдЖрд░рдХреНрд╖рдг (XX - рдЖрд╡рд╢реНрдпрдХ рдкреЛрд░реНрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛):

$ echo XX > /sys/class/gpio/export 


рд╕рдлрд▓ рдмреИрдХрдЕрдк рдкрд░, рдПрдХ рдирдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдкрддрд╛ /sys/class/gpio/gpioXX/ ред рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

 $ echo "out" > /sys/class/gpio/gpioXX/direction 


рдпрд╛ рддреЛ:

 $ echo "in" > /sys/class/gpio/gpioXX/direction 


рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рдФрд░ рдирд┐рдореНрди рд╕реНрддрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

 $ echo 1 > /sys/class/gpio/gpioXX/value $ echo 0 > /sys/class/gpio/gpioXX/value 


рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдкреЛрд░реНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 $ cat /sys/class/gpio/gpioXX/value 


рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдмрд╛рдж рдкреЛрд░реНрдЯ рдЬрд╛рд░реА рдХрд░реЗрдВ:

 $ echo XX > /sys/class/gpio/unexport 


Sysfs рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ GPIO рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рджреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдореЗрдВ рдЖрдпрд╛ред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ WiringPi GPIO рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ , рджреВрд╕рд░рд╛ quick2wire-gpio-admin рд╣реИ ред

рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЬреАрдкреАрдЖрдИрдУ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ рд╣реИред рдЗрд╕реА рд╕рдордп, WiringPi GPIO рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИред

GPIO рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ RPIO рдкреИрдХреЗрдЬ рдкрд░ (рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдмрд╛рдж рд╡рд╛рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг 0.10.0 рдерд╛) рдкрд░ рдмрд╕ рдЧрдпрд╛ред рдпрд╣ рдкреИрдХреЗрдЬ рд╕реАрдзреЗ GPIO рдкреЛрд░реНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдг /dev/mem рдорд╛рдзреНрдпрдо рд╕реЗ BCM2708 рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдмрдирд╛рддрд╛ рд╣реИред RPIO рдХреНрдпрд╛ рд╣реИ:

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рдЙрдиреНрдирдд GPIOред PWM, GPIO рдЗрдВрдЯрд░рд░рдЕрдкреНрд╕, TCP рд╕реЙрдХреЗрдЯ рдЗрдВрдЯрд░рдкреНрдЯ, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ рдХреЗ рд╕рд╛рде RPi.GPIO рдмрдврд╝рд╛рддрд╛ рд╣реИред


RPIO рдПрдХ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ RPI.GPIO рдХреЗ рдмреЗрд╣рддрд░ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рд╣реИред RPIO рдкрд░ рд╕реАрдзреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЗрд╡рд▓ рдЙрди рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрддрд╛ рд╣реИ рдЬреЛ RPI.GPIO рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз RPi.GPIO рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 $ sudo pip install RPIO 


рдЕрдЬрдЧрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рджреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ: рдЖрд░рдкреАрдУ-рд╢рд╛рдк рдФрд░ рдЖрд░рдкреАрдЖрдИрдУред рдЙрдирдХреА рдорджрдж рд╕реЗ, рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, GPIO рдХреА рд╡рд░реНрддрдорд╛рди рдореЛрдб рдФрд░ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░, рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ rpio- рд╢рд╛рдк рдХреЗ рд╕рд╛рде рд▓рдЧ рд░рд╣рд╛ рд╣реИ:

рдЫрд╡рд┐

рддреЛ рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 $ rpio --sysinfo 000f: Model B, Revision 2.0, RAM: 512 MB, Maker: Qisda 


RPIO рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЕрдЬрдЧрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо:

 import RPIO import time NRF_CE = 24 # set up output channel with an initial state RPIO.setup(NRF_CE, RPIO.OUT, initial=RPIO.LOW) for i in range(10): RPIO.output(NRF_CE, 1) time.sleep(1) RPIO.output(NRF_CE, 0) time.sleep(1) # reset every channel that has been set up by this program, # and unexport interrupt gpio interfaces RPIO.cleanup() 

Source: https://habr.com/ru/post/In214839/


All Articles