地平线旭日x3派40pin引脚控制,点亮小灯,控制舵机
- 引脚对照表
- 点亮RGB小灯
- 安装旭日X3派WiringPi
- 使用WiringPi点亮RGB小灯
- 使用软件PWM功能
官方用户手册中只有python控制教程,没有c语言控制教程。且官方的教程中并没有软件pwm功能。本教程在开发版上安装WiringPi,使用WiringPi来控制GPIO引脚,并使用软件模拟PWM。
引脚对照表
点亮RGB小灯
根据官方的python用户手册可以点亮小灯。建议参考。注意在python中,使用的包为Hobot.GPIO,在这个包中不支持软件模拟PWM功能(官方手册中如是说)
将RGB小灯的G口使用杜邦线连接到开发版的29号引脚,并接GND。然后运行程序,灯将绿色闪烁。
#!/usr/bin/env python3
import Hobot.GPIO as GPIO
import time
# 定义使用的GPIO通道为29
blue_pin = 29 # BOARD 编码 29
def main():
# 设置管脚编码模式为硬件编码 BOARD
GPIO.setmode(GPIO.BOARD)
# 设置为输出模式,并且初始化为低电平
GPIO.setup(blue_pin, GPIO.OUT, initial=GPIO.LOW)
print("Starting demo now! Press CTRL+C to exit")
try:
while True:
GPIO.output(blue_pin, GPIO.HIGH)
time.sleep(1)
GPIO.output(blue_pin, GPIO.LOW)
time.sleep(1)
finally:
GPIO.cleanup()
if __name__=='__main__':
main()
安装旭日X3派WiringPi
参考官方教程可顺利安装。注意在WiringPi中,默认使用BCM引脚编号。在上图中,BCM引脚为5是,对应GPIO119,BOARD物理编号为29 。
使用WiringPi点亮RGB小灯
编译下面的c代码,然后使用sudo权限运行可执行程序。灯将绿色闪烁。
编译命令参考
/usr/bin/g++ -fdiagnostics-color=always -g /home/sunrise/Documents/step_motor/cycle50.cpp -o /home/sunrise/Documents/step_motor/cycle50 -lwiringPi -lpthread
#include <wiringPi.h>
#include <softPwm.h>
int green_pin = 5;
int main(void)
{
wiringPiSetup();
pinMode(green_pin, OUTPUT);
while(1)
{
digitalWrite(green_pin,HIGH);
delay(1000);
digitalWrite(green_pin,LOW);
delay(1000);
}
return 0;
}
使用软件PWM功能
将伺服电机SG90信号线连接开发版36引脚,也就是BCM编码下16引脚。并连接地线和电源线。编译下面代码。sudo执行编译后文件。电机将正转180度后反转180度。
/usr/bin/g++ -fdiagnostics-color=always -g /home/sunrise/Documents/step_motor/cycle50.cpp -o /home/sunrise/Documents/step_motor/cycle50 -lwiringPi -lpthread
#include <wiringPi.h>
#include <softPwm.h>
#include <stdio.h>
#define pwm_pin 16
int main(void)
{
wiringPiSetup(); // 初始化wiringPi库
softPwmCreate(pwm_pin, 0, 100); // 创建软件PWM对象,设置占空比范围为0-100
int val = 5;
while (1)
{
// 切换占空比值
if (val == 25)
val = 5;
else
val = 25;
softPwmWrite(pwm_pin, val); // 设置PWM引脚的占空比
delay(400); // 延迟一段时间
}
return 0;
}