fan controller added
This commit is contained in:
@@ -41,3 +41,6 @@ docker pull ros:jazzy-ros-core
|
|||||||
3) запустить образ:
|
3) запустить образ:
|
||||||
docker run -it --rm ros:jazzy-ros-core
|
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