舵机控制编程

简介: 舵机控制编程

博客写作背景----项目中解决的问题

最近遇到一个使用Arduino Uno单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。为啥用labview呢,因为LabVIEW是NI的数据采集创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),是一种基于图形语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。LabVIEW并不局限于虚拟仪器的开发,它的作用是为大型复杂测试系统提供通用的软件开发平台。目前,LabVIEW已经成为测试领域应用最广泛和最有前途的软件开发平台之一。


下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。


(1)编程知识点–舵机控制编程

利用LIAT函数库通过LabVIEW和Arduino Uno控制板实现对单个舵机转动角度的控制。


(2)硬件连接

将9g舵机的电源线分别接至Arduino Uno控制板上的5V和GND引脚上,信号线接至数字引脚D2上,如图1所示。


11a1b3c03ea94c6db0654ea6ff61ec8b.png


(3)程序设计

本例修改自LabVIEW Interface for Arduino函数库中的示例,位于函数选板“函数”→"Arduino"→"Example"→"Servo Example",修改后的LabVIEW前面板和程序框图如图2和图3所示。


a6191c14aedb4ccbaa07552241f126b1.png

18c3cd9130044221ac34a39b06619e10.png


LabVIEW程序首先通过设置的串口号与Arduino Uno控制板建立连接,然后调用Servo函数库中的Set Number of Servo和Configure Servo函数节点以设置舵机的数目为1和舵机的连接引脚,接着进入While循环并不断调用Servo Write Angle和Servo Read Angle函数节点先向舵机写入转动的角度值,并读取舵机当前的角度值。最后,断开与Arduino Uno控制板的连接。


点击运行按钮,LabVIEW程序开始执行,通过调节设置角度的旋钮,可以看到舵机随着角度的改变而转动,同时,当前角度值也随着舵机的转动而实时改变。


多个舵机的控制

将两个9g舵机的电源线分别接至Arduino Uno控制板上的5V和GND引脚上,信号线分别接至数字引脚D2和D3上.


修改LabVIEW Interface for Arduino函数库中的示例,位于函数选板“函数”→"Arduino"→"Example"→"Servo Example",修改后的LabVIEW前面板和程序框图如图1和图1所示。


577d6a0d6dfb49c19611c5fc125d3dda.png577b7f9099334170a19d97a4b90ecff1.png


LabVIEW程序首先通过设置的串口号与Arduino Uno控制板建立连接,然后调用Servo函数库中的Set Number of Servo和Configure Servo函数节点以设置舵机的数目为2和每个舵机所连接的引脚,接着进入While循环并不断调用Servo Write Angle和Servo Read Angle函数节点向指定舵机写入转动的角度值,并读取出指定舵机当前的角度值。最后,断开与Arduino Uno控制板的连接。


点击运行按钮,LabVIEW程序开始执行,通过舵机1和舵机2的调节设置角度旋钮,可以看到舵机1和舵机2随着角度的改变而转动,同时,舵机1和舵机2的当前角度值也随着舵机1和舵机2的转动而实时改变。


目录
相关文章
|
Ubuntu
ubuntu 22.04 阿里源
ubuntu 22.04 阿里源
15068 0
|
人工智能 前端开发 JavaScript
【AI】命令行调用大模型
通过命令行调用AI大模型以提高效率,文章介绍了一个使用前端npm的方法。首先创建npm包项目,初始化配置,然后编写`constant.js`、`kiwi.js`和`main.js`三个文件,分别存放API密钥、调用接口和主逻辑。在`kiwi.js`中使用axios与大模型API交互,`main.js`接收命令行参数并输出结果。通过修改`package.json`设置入口文件,并使用`npm link`全局安装,实现命令行调用,如`moon 你好`。
841 0
|
自然语言处理 分布式计算 Java
基于OpenSearch向量检索版和智能问答版搭建企业专属对话搜索系统
本文将介绍如何使用OpenSearch向量检索版和智能问答版,搭建灵活自定义的企业专属对话搜索系统。
2257 1
|
负载均衡 Java 网络架构
在SpringCloud2023中快速集成SpringCloudGateway网关
本文主要简单介绍SpringCloud2023实战中SpringCoudGateway的搭建。后续的文章将会介绍在微服务中使用熔断Sentinel、鉴权OAuth2、SSO等技术。
591 2
在SpringCloud2023中快速集成SpringCloudGateway网关
|
机器学习/深度学习 人工智能 安全
云工开物合作动态丨2025西安交通大学 -阿里云课程(第一批)上线
2025年春季学期,西安交通大学联合阿里云推出九门特色课程,涵盖工程、法律、生命科学、经济管理等领域。这些课程打破传统学科壁垒,提供AI实践工具、动手实验资源及专属算力支持,帮助学生在理论学习之余进行实际操作,提升能力。结课后还将颁发阿里云创作者证书,助力学生成长为跨领域复合型人才。无论专业背景如何,都能找到适合自己的AI进化路径。机会难得,不容错过!
|
数据可视化 API 调度
Pandas 2.2 中文官方教程和指南(十一·一)(1)
Pandas 2.2 中文官方教程和指南(十一·一)
253 1
|
存储 分布式计算 监控
揭秘阿里云EMR:如何巧妙降低你的数据湖成本,让大数据不再昂贵?
【8月更文挑战第26天】阿里云EMR是一种高效的大数据处理服务,助力企业优化数据湖的成本效益。它提供弹性计算资源,支持根据需求调整规模;兼容并优化了Hadoop、Spark等开源工具,提升性能同时降低资源消耗。借助DataWorks及Data Lake Formation等工具,EMR简化了数据湖构建与管理流程,实现了数据的统一化治理。此外,EMR还支持OSS、Table Store等多种存储选项,并配备监控优化工具,确保数据处理流程高效稳定。通过这些措施,EMR帮助企业显著降低了数据处理和存储成本。
559 3
|
敏捷开发 数据可视化 持续交付
敏捷开发方法:理论与实践
【8月更文第22天】随着信息技术的发展,软件项目的复杂度不断提高,传统的瀑布式开发模式越来越难以适应快速变化的市场需求。为了解决这些问题,敏捷开发方法应运而生。本文将探讨敏捷开发的核心理念、敏捷宣言与原则、Scrum框架、Kanban方法以及相关的敏捷实践与工具。
1901 2
|
芯片
【PCB设计】Mac系统Autodesk EAGLE PCB使用入门教程
Mac系统下使用Autodesk EAGLE PCB设计软件的基本教程,包括软件的安装、常用命令和工具的使用方法。
776 4
|
存储 编解码 算法
栅格数据矢量化(附有完整代码)
栅格数据矢量化(附有完整代码)