0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用ArduinoUNO和Wekinator控制伺服电机

454398 来源:工程师吴畏 2019-08-03 09:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

所需硬件

Arduino UNO

2伺服电机

面包板

跳线

必需的软件

Wekinator

Arduino IDE

Wekinator控制的伺服电机电路图

首先连接每个伺服上的红线连接到Arduino的5V引脚。然后将每个伺服的黑线连接到Arduino的地线。最后,将其中一个伺服电机的黄色线连接到Arduino上的引脚8,将黄色线从另一个伺服器连接到引脚9.

通过Wekinator控制伺服系统的电路图

如何在Arduino IDE中运行Wekinator

将本帖末尾提供的Arduino专用代码粘贴到Arduino的IDE中并上传。

然后你需要从Wekinator下载草图文件快速演练页面。

下载演练页面上的屏幕鼠标控制示例。解压缩文件并在处理中运行草图。该草图为Wekinator提供输入。您需要另一个输出部分的草图,您可以在本文末尾找到它。将该代码粘贴到处理窗口并运行它 - 两个处理输出窗口应如下所示:

处理Wekinator中的输出窗口

打开Wekinator并按如下所示更新设置:

将输入窗口设置为2

将输出窗口设置为2

将类型设置为自定义

更新设置后,单击“配置”。

在Wekinator中创建新项目窗口。

单击“配置”后,将打开“自定义输出类型”窗口。在此窗口中,按如下方式调整设置:

在Wekinator中自定义输出类型窗口。

拖动处理中的绿框窗口到左侧中心并将Wekinator窗口中的设置调整为下面显示的值,然后短暂开始和停止录制。

将处理窗口中的绿色框移动到屏幕右侧的中心,并调整Wekinator窗口中的设置,如下所示。再一次,短暂地开始和停止录制

接下来,将处理窗口中的绿框拖到窗口的中央顶部区域并调整设置在下面的Wekinator窗口中显示的那些。再次,快速开始和停止录制。

最后,将处理窗口中的绿色框拖到窗口的底部中心,并将设置调整为反映Wekinator窗口中显示的那些。最后一次,快速开始和停止录制。

单击“训练”按钮,然后选择“运行”。在处理窗口中拖动绿色框时,连接到Arduino的伺服器将相应移动。

处理代码(Wekinator的输出)

import vsync.*; // Importing the library that will help us in sending and receiving the values from the Arduino

import processing.serial.*; // Importing the serial library

// Below libraries will connect and send, receive the values from Wekinator

import oscP5.*;

import netP5.*;

// Creating the instances

OscP5 oscP5;

NetAddress dest;

ValueSender sender;

// These variables will be synchronized with the Arduino and they should be same on the Arduino side.

public int output;

public int output1;

void setup()

{

// Starting the serial communication, the baudrate and the com port should be same as on the Arduino side.

Serial serial = new Serial(this, “COM10”, 19200);

sender = new ValueSender(this, serial);

// Synchronizing the variables as on the Arduino side. The order should be same.

sender.observe(“output”);

sender.observe(“output1”);

// Starting the communication with Wekinator. listen on port 12000, return messages on port 6448

oscP5 = new OscP5(this, 12000);

dest = new NetAddress(“127.0.0.1”, 6448);

}

// Recieve OSC messages from Wekinator

void oscEvent(OscMessage theOscMessage) {

if (theOscMessage.checkAddrPattern(“/wek/outputs”) == true) {

// Receiving the output from Wekinator

float value = theOscMessage.get(0).floatValue(); // First output

float val = theOscMessage.get(1).floatValue(); // Second output

// Converting the output to int type

output = int(value);

output1 = int(val);

}

}

void draw()

{

// Nothing to be drawn for this example

}

Weoulator控制的舵机的Arduino代码

#include // Including the library that will help us in receiving and sending the values from processing

#include // Including the servo library

ValueReceiver《2》 receiver; /*Creating the receiver that will receive up to 2 values.

Put the number of values to synchronize in the brackets */

/* The below two variables will be synchronized in the processing

and they should be same on both sides. */

int output;

int output1;

// Creating the instances

Servo myservo;

Servo myservo1;

void setup()

{

/* Starting the serial communication because we are communicating with the

Arduino through serial. The baudrate should be same as on the processing side. */

Serial.begin(19200);

// Initializing the servo pins

myservo.attach(8);

myservo1.attach(9);

// Synchronizing the variables with the processing. The variables must be int type.

receiver.observe(output);

receiver.observe(output1);

}

void loop()

{

// Receiving the output from the processing.

receiver.sync();

// Check for the info we‘re looking for from Processing

if (output 《 180) {

myservo.write(output);

}

if (output1 《180)

{

myservo1.write(output1);

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 伺服电机
    +关注

    关注

    88

    文章

    2214

    浏览量

    61750
  • Arduino
    +关注

    关注

    191

    文章

    6535

    浏览量

    197916
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    欧姆龙Accurax G5伺服电机:精确运动控制的理想之选

    欧姆龙Accurax G5伺服电机:精确运动控制的理想之选 在工业自动化领域,精确的运动控制是实现高效生产和优质产品的关键。欧姆龙的Accurax G5
    的头像 发表于 06-10 14:50 65次阅读

    OMRON Accurax G5伺服电机:高精度运动控制的理想之选

    OMRON Accurax G5伺服电机:高精度运动控制的理想之选 在工业自动化领域,伺服电机作为关键的动力设备,对于实现精确的运动
    的头像 发表于 06-10 14:50 64次阅读

    欧姆龙Sigma-II旋转伺服电机:运动控制的理想之选

    欧姆龙Sigma-II旋转伺服电机:运动控制的理想之选 在运动控制领域,伺服电机的性能直接影响着
    的头像 发表于 06-10 14:40 72次阅读

    MMP742105 - 24:伺服电机控制板的技术剖析

    MMP742105 - 24:伺服电机控制板的技术剖析 在伺服电机控制领域,MMP742105
    的头像 发表于 06-08 14:05 64次阅读

    PLC怎么控制多台交流伺服电机达到同步工作

    在现代工业自动化控制系统中,多台交流伺服电机的同步控制是实现高精度运动控制的关键技术之一。PLC(可编程逻辑
    的头像 发表于 02-27 17:04 1178次阅读
    PLC怎么<b class='flag-5'>控制</b>多台交流<b class='flag-5'>伺服</b><b class='flag-5'>电机</b>达到同步工作

    三菱FX3U PLC控制伺服电机的高速脉冲模式解析

    三菱FX3U做为一款入门级PLC,应用很广泛,其实学习PLC就几点,开关量的输入、输出,就是我们平常所说的IO、伺服(或者步进电机)的控制、Modbus通信、模拟量输入输出,掌握了这些,基本可以做80%的项目了,小编今天主要来和
    的头像 发表于 01-27 15:51 2437次阅读
    三菱FX3U PLC<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>的高速脉冲模式解析

    伺服电机增益详解

    伺服电机增益调节是运动控制中的核心环节,直接影响系统的响应速度、稳定性和精度。本文将深入解析增益参数的作用机理、调节方法及典型应用场景,帮助工程师实现伺服系统的最佳性能匹配。 一、增益
    的头像 发表于 12-08 07:42 2152次阅读

    伺服电机控制方式简述

    伺服电机作为自动化控制系统的核心执行元件,其控制方式直接决定了设备的动态响应、定位精度和运行效率。随着工业4.0和智能制造的发展,伺服
    的头像 发表于 12-01 07:37 1253次阅读
    <b class='flag-5'>伺服</b><b class='flag-5'>电机</b>的<b class='flag-5'>控制</b>方式简述

    派克Parker防爆伺服电机与普通伺服电机的区别

    Parker提供了多款不同的伺服电机,性能各有不同,针对特定易燃易爆场所使用的防爆伺服电机,与普通通用伺服
    的头像 发表于 11-20 13:36 733次阅读
    派克Parker防爆<b class='flag-5'>伺服</b><b class='flag-5'>电机</b>与普通<b class='flag-5'>伺服</b><b class='flag-5'>电机</b>的区别

    伺服电机控制系统的高宽带电流环参数设计

    上回我们介绍了EtherCAT是如何利用SSC产生的sync信号,与电机控制系统完成同步的,如此我们即可保证整个控制系统的同步性能伺服控制
    的头像 发表于 11-17 09:53 8068次阅读
    <b class='flag-5'>伺服</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>系统的高宽带电流环参数设计

    伺服电机和步进电机的核心区别

    大家在运动控制的时候是伺服电机的还是步进电机做定位控制
    的头像 发表于 10-15 14:32 2184次阅读
    <b class='flag-5'>伺服</b><b class='flag-5'>电机</b>和步进<b class='flag-5'>电机</b>的核心区别

    舵机与伺服电机的区别是什么?

    舵机与伺服电机都属于 可精确控制的驱动装置 ,但二者在定义范围、结构组成、控制方式和应用场景上存在显著差异,并非完全等同(舵机是伺服
    的头像 发表于 10-13 10:21 2702次阅读

    MT6825磁编芯片如何突破伺服电机控制精度瓶颈

    伺服电机作为工业自动化、机器人、数控机床等高端装备的核心执行部件,其控制精度直接影响设备性能。传统光电编码器受限于机械结构易磨损、抗干扰能力弱等问题,难以满足高精度场景需求。而MT6825磁编码器
    的头像 发表于 07-28 17:20 1117次阅读
    MT6825磁编芯片如何突破<b class='flag-5'>伺服</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>精度瓶颈

    伺服电机中的回原点方式

    伺服电机的运行需要一个参考点,这个参考点就是原点。原点通常是由光电开关或机械开关来确定的,其位置是固定的。当伺服电机运行时,控制器会根据原点
    的头像 发表于 07-26 09:43 4026次阅读
    <b class='flag-5'>伺服</b><b class='flag-5'>电机</b>中的回原点方式

    步进电机控制指令详解

    这些指令主要是针对 PLC 直接联动伺服放大器,目的是可以不借助其他扩展设备(例如1GM 模块)来进行简单的点位控制, 使用这些指令时最好配合三菱的伺服放大器 (如 MR-J2)。然
    的头像 发表于 06-12 10:33 2559次阅读
    步进<b class='flag-5'>电机</b><b class='flag-5'>控制</b>指令详解