diff --git a/Readme.md b/Readme.md index 90d3b9b..39f56e2 100644 --- a/Readme.md +++ b/Readme.md @@ -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 желательно вызвать по окончании работы. Пример запуска есть в конце этого же файла. diff --git a/wave_rover_controller/fan_gpio.py b/wave_rover_controller/fan_gpio.py new file mode 100644 index 0000000..deef2f5 --- /dev/null +++ b/wave_rover_controller/fan_gpio.py @@ -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') +