地平线旭日x3派40pin引脚控制,点亮小灯,控制舵机

地平线旭日x3派40pin引脚控制,点亮小灯,控制舵机


官方用户手册中只有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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值