2) LED : 用户控制
当将 led 的触发条件设置为 none 后,用户可以通过命令来控制 led 灯亮灭。
-
root@okg2l:/# echo none > /sys/class/leds/heartbeat/trigger //设置触发条件为 none
-
root@okg2l:/# echo 1 > /sys/class/leds/heartbeat/brightness //点亮 led 灯
-
root@okg2l:/# echo 0 > /sys/class/leds/heartbeat/brightness //熄灭 led 灯
复制代码
3)将蓝色 LED 灯改为心跳灯
-
echo heartbeat > /sys/class/leds/heartbeat/trigger //设置触发条件为 heartbeat
复制代码
2 GPIO PWM 测试
OK-G2LD-C 底板在 P23 ,P25 引出 gpio, 根据原理图标识的引脚名称,使用 sysfs 方式控制 gpio,设
置 gpio 输出电平高低。 (此原理图对应底板的 P25 丝印, 1 脚对应底板丝印小三角)
gpio 编号计算方式: GPIO_ID = GPIO_port * 8 + GPIO_pin + 120
例如引脚 P17_1 对应的 gpio 编号为 17*8+1+120=257;
目的:将一个小舵机直接连接到开发板的5伏
电源上,并使用GPIO数字输出端口采用软件PWM的方式来控制它。警告:只能使用微型舵机(如:SG90),因为开发板5 V供电的限制,大型号的舵机电流过大对控制板安全不利。
连接舵机的棕色线(或黑色线)至开发板的 GND (pin #6), 舵机红色线至开发板的 5 V (pin #2),舵机黄色线连接至开发板的任意 GPIO 输出端口. 此时舵机由开发板的 5 V供电, GPIO的控制电压是 3.3 V。(开发板引脚可参见:开发板的外部I/O接口)当然我们也可以使用充电宝给舵机供电。
-
# Software PWM Servo.py
-
-
import RPi.GPIO as GPIO
-
import time
-
-
P_SERVO = 22 # GPIO端口号,根据实际修改
-
fPWM = 50 # Hz (软件PWM方式,频率不能设置过高)
-
a = 10
-
b = 2
-
-
def setup():
-
global pwm
-
GPIO.setmode(GPIO.BOARD)
-
GPIO.setup(P_SERVO, GPIO.OUT)
-
pwm = GPIO.PWM(P_SERVO, fPWM)
-
pwm.start(0)
-
-
def setDirection(direction):
-
duty = a / 180 * direction + b
-
pwm.ChangeDutyCycle(duty)
-
print "direction =", direction, "-> duty =", duty
-
time.sleep(1)
-
-
print "starting"
-
setup()
-
for direction in range(0, 181, 10):
-
setDirection(direction)
-
direction = 0
-
setDirection(0)
-
GPIO.cleanup()
-
print "done"
复制代码