# initialize GPIO and variablesredLed = int(sys.argv[1])freq = int(sys.argv[2])GPIO.setmode(GPIO.BCM)GPIO.setup(redLed, GPIO.OUT)GPIO.setwarnings(False)
print("n [INFO] Blinking LED (5 times) connected at GPIO {0}at every {1} second(s)".format(redLed, freq))fori inrange(5):GPIO.output(redLed, GPIO.LOW)time.sleep(freq)GPIO.output(redLed, GPIO.HIGH)time.sleep(freq)# do a bit of cleanupprint("n [INFO] Exiting Program and cleanup stuff n")GPIO.cleanup
上边的代码需要一个GPIO端口号和一个LED闪烁频率作为参数。LED闪烁5次后程序结束。结束之前记得释放GPIO。
也就是说,运行脚本时要给出两个参数:“LED GPIO”和frequency。举个例子:
pythonLED_simple_test.py21 1
上边的指令意味着使用“GPIO 21”上连接的LED灯,并且每1秒闪烁一次,总共闪烁五次。
同样,上边这段代码也可以在GitHub下载:GPIO_LED_test.py
上边的图片显示了我的程序结果。至于LED灯亮不亮,就要各位自己去检验啦。
好,下面让我们把OpenCV和基本GPIO操作一起耍起来~
7. 识别颜色和GPIO(General-purpose input/output:通用型输入输出)交互
让我们开始集成 OpenCV 代码和 GPIO 进行交互。我们会从 最后的OpenCV 代码开始,并且我们将会把 GPIO_RPI 库集成到代码中,其目的是在摄像头检测到我们的着色物体时,能使红色LED常亮。这一步骤使用的代码是基于 Adrian 写得非常不错的教程OpenCV, RPi.GPIO, and GPIO Zero on the Raspberry Pi
第一件需要做的事情是:”创建“我们的LED对象,目的是为了连接上指定的GPIO。
importRPi.GPIO asGPIOredLed = 21GPIO.setmode(GPIO.BCM)GPIO.setwarnings(False)GPIO.setup(redLed, GPIO.OUT)
第二,我们必须初始化LED(关灯状态):
GPIO.output(redLed, GPIO.L