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

news2024/11/15 22:03:42

地平线旭日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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/757624.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux——动静态库的制作和使用(实操+代码+原理介绍)

动静态库的制作和使用 1️⃣.动静态库介绍&#x1f3c0;静态库⚽️动态库&#x1f3c8;区别&#x1f3d0;使用动态库的优点包括&#xff1a;&#x1f3c9; 使用静态库的优点包括&#xff1a; 2️⃣静态库的制作&#x1f34a;Q:库文件能不能有main()函数&#xff1f;&#x1f34…

imazing是什么软件?2023年imazing官网中文版下载

最近很小伙们&#xff0c;咨询兔八哥&#xff0c;imazing是什么软件&#xff1f;&#xff0c;今天兔八哥爱分享整理一下imazing到底是什么软件&#xff1f;好用吗&#xff1f; imazing是一款iOS设备管理软件,借助 iMazing 的独有 iOS 备份技术&#xff08;无线、隐私和自动&am…

地震正演基础知识

文章目录 地震正演1. 地震正演基础知识1.1 地震波1.2 波动方程1.3 有限差分方法1.4 边界条件1.5 记录数据 2. 公式2.1 泰勒级数回顾2.2 二维声波方程&#xff08;连续的偏微分方程&#xff09;2.2.1 二维声波方程&#xff08;连续的偏微分方程&#xff09;2.2.2 离散化二维声波…

【C++】vector模拟实现

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…

Netty 为什么有如此高的性能?

文章首发地址 Netty高性能的三个主题 I/O传输模型&#xff1a;用什么样的通道将数据发送给对方&#xff0c;是BIO、NIO还是AIO&#xff0c;I/O传输模型在很大程度上决定了框架的性能。数据协议&#xff1a;采用什么样的通信协议&#xff0c;是HTTP还是内部私有协议。协议的选…

1767_Perl中的全词匹配

全部学习汇总&#xff1a; GreyZhang/perl_basic: some perl basic learning notes. (github.com) 当我在上一家公司工作的时候遇到过一个问题&#xff0c;为了解决软件接口的冲突我们需要把一个软件工程中的所有变量全都修改加一个前缀。我觉得用Perl处理是一个很好的注意&…

数据库作业3

1.查询student表的所有记录 2.查询student表的第2条到4条记录 3.从student表查询所有学生的学号&#xff08;id&#xff09;、姓名&#xff08;name&#xff09;和院系&#xff08;department&#xff09;的信息 4.从student表中查询计算机系和英语系的学生的信息 5.从student表…

pytest 通过conftest.py获取测试所有执行case断言失败的结果

conftest.py import pytest from datetime import datetimedef pytest_exception_interact(node, call, report):if report.failed:with open("error.log", "a", encoding"utf-8") as f:test_case f"测试文件&#xff1a;{node.nodeid} |…

备战CAIP——PTA甲级刷题

目录 引入2023年 真题1001 AB Format (20 分) 小数字相加再格式化输出1002 AB for Polynomials (25 分) 多项式相加1003 Emergency 救援最短路径和最大救援部队 引入 2023睿抗 RoboCom机器人开发者大赛CAIP编程设计赛道编程技能赛 考察知识点 https://mp.weixin.qq.com/s/lXp5…

靶机渗透之SICKOS: 1.1(解法2)

SICKOS: 1.1 靶机渗透测试是否存在shellshock构造payload获取bash权限切换shell构造pythonpayload&#xff0c;放置到py定时任务中开始监听py文件 靶机渗透 sudo nikto -h 192.168.133.139 -useproxy http://192.168.133.139:3128 - Nikto v2.5.0 ---------------------------…

Python应用实例(一)外星人入侵(八)

外星人入侵&#xff08;八&#xff09; 1.添加Play按钮1.1 创建Button类1.2 在屏幕上绘制按钮1.3 开始游戏1.4 重置游戏1.5 将play按钮切换到非活动状态1.6 隐藏鼠标光标 我们添加一个Play按钮&#xff0c;用于根据需要启动游戏以及在游戏结束后重启游戏&#xff0c;还会修改这…

FreeRTOS实时操作系统(十五)Tickless低功耗模式

系列文章 FreeRTOS实时操作系统&#xff08;一&#xff09;RTOS的基本概念 FreeRTOS实时操作系统&#xff08;二&#xff09;任务创建与任务删除&#xff08;HAL库&#xff09; FreeRTOS实时操作系统&#xff08;三&#xff09;任务挂起与恢复 FreeRTOS实时操作系统&#x…

线程栈溢出异常,程序崩溃在汇编代码test dword ptr [eax],eax上的问题排查

目录 1、问题描述 2、使用Windbg静态分析dump文件 3、将Windbg附加到进程上进行动态调试 4、使用Visual Studio进行Debug调试 4.1、使用if条件断点和汇编代码单步调试 4.2、分析消息响应函数入口处为什么会产生崩溃 4.3、解决办法 5、线程栈溢出的相关细节点说明 6、引…

JS-24 async异步函数、 await关键字;异步函数的执行流程;进程和线程;浏览器的事件循环;宏任务和微任务;Promise面试题

目录 1_异步函数1.1_async1.2_异步函数的执行流程2_await关键字 2_浏览器进程、线程2.1_进程和线程2.2_操作系统的工作方式2.3_浏览器中的JavaScript线程2.4_浏览器的事件循环2.3_宏任务和微任务2.4_Promise面试题题一题二 1_异步函数 1.1_async async是asynchronous单词的缩…

大模型基础:理论与技术的演进概述

大模型基础&#xff1a;理论与技术的演进概述 人工智能发展历程 人工智能发展历程可以概括为以下几个主要阶段: 起源阶段(1956-1980年代)&#xff0c;这一时期被称为人工智能的“黄金时代”, 达特茅斯会议首次提出人工智能概念, 开发出传统人工智能系统, 如ELIZA、深蓝等。知…

【InsCode Stable Diffusion 美图活动一期】生成着玩

此为内容创作模板&#xff0c;请按照格式补充内容&#xff0c;在发布之前请将不必要的内容删除 一、 Stable Diffusion 模型在线使用地址&#xff1a; https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型相关版本和参数配置&#xff1a; 三、图片生成提示词与反向…

C++ | 多态

目录 前言 一、多态的概念 二、多态的定义与使用 1、多态的构成条件 2、虚函数 3、虚函数的重写&#xff08;覆盖&#xff09; 4、虚函数重写的两个例外 &#xff08;1&#xff09;协变 &#xff08;2&#xff09;析构函数的重写 5、子类的指针或者引用调用 6、C11的…

unity对象池系统

当游戏场景中出现大量的可重复利用的物体时&#xff0c;通过Destory来销毁再创建会触发不必要的GC回收机制&#xff0c;浪费性能&#xff0c;我们可以利用unity自带的对象池系统&#xff0c;从而节约性能来得到同样的效果。 为了使用这个对象池系统&#xff0c;我写了一个瞬间产…

element-plus 报错 ResizeObserver loop limit exceeded 解决

使用Element-plus&#xff0c;页面重置大小时&#xff0c;出现如下报错&#xff1a; Uncaught runtime errors: ERROR ResizeObserver loop limit exceeded at handleError (webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:252:58) at ev…

DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries

DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries 目的 本文提出了一个 仅使用 2D 信息的&#xff0c;3D 目标检测网络&#xff0c;并且比依赖与 密集的深度预测 或者 3D 重建的过程。该网络使用了 和 DETR 相似的 trasformer decoder &#xff0c;…