fan controller added
This commit is contained in:
@@ -41,3 +41,6 @@ docker pull ros:jazzy-ros-core
|
||||
3) запустить образ:
|
||||
docker run -it --rm ros:jazzy-ros-core
|
||||
|
||||
## Управление вентилятором
|
||||
|
||||
Класс управления вентилятором находится в файле wave_rover_controller/fan_gpio. При создании надо указать номер контакта на разъёме Raspberry Pi (от 1 до 40), через который будет выполняться управления. Методы enable и disable включают и выключают транзисторный ключ вентилятора, метод finish желательно вызвать по окончании работы. Пример запуска есть в конце этого же файла.
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# controller for fan using Raspberry Pi GPIO interface
|
||||
|
||||
import RPi.GPIO as GPIO
|
||||
|
||||
class GPIOController:
|
||||
def __init__(self, board_pin):
|
||||
# start processing using board numbering
|
||||
# (all pins are numbered from 1 to 40)
|
||||
GPIO.setmode(GPIO.BOARD)
|
||||
self.board_pin = board_pin
|
||||
GPIO.setup(self.board_pin, GPIO.OUT)
|
||||
|
||||
def enable(self):
|
||||
# set high output on the pin
|
||||
GPIO.output(self.board_pin, GPIO.HIGH)
|
||||
|
||||
def disable(self):
|
||||
# set low output on the pin
|
||||
GPIO.output(self.board_pin, GPIO.LOW)
|
||||
|
||||
def finish(self):
|
||||
# drop settings of the pin
|
||||
GPIO.cleanup(self.board_pin)
|
||||
|
||||
if __name__ == '__main__':
|
||||
import time
|
||||
gc = GPIOController(13)
|
||||
print('testing in progress...')
|
||||
for i in range(10):
|
||||
gc.enable()
|
||||
time.sleep(5)
|
||||
gc.disable()
|
||||
time.sleep(5)
|
||||
gc.finish()
|
||||
print('testing finished')
|
||||
|
||||
Reference in New Issue
Block a user