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

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

3天内不再提示

如何训练Wekinator控制Arduino

454398 来源:工程师吴畏 2019-07-31 09:00 次阅读

电路图

Arduino的引脚11连接到橙色LED的正极引线,通过220欧姆电阻将LED的负极引线连接到Arduino的地。类似地,通过220欧姆电阻将白色LED的正极引线连接到Arduino的引脚10和LED的负极引线连接到Arduino。

如何训练Wekinator控制Arduino

程序入门

首先,在Arduino IDE中加载下面为Arduino提供的代码。然后上传给定代码以在IDE中处理。

之后,打开Wekinator并将输入更改为1并输出为2并离开另一个选项。

点击“下一步”,会出现一个新窗口。现在从处理的输入窗口,单击橙色框,在Wekinator中,在输出-1框中输入1,然后开始录制半秒。

现在,单击处理中的白色框,在Wekinator中,在输出-1框中输入0并在输出-2框中输入1并开始记录半秒。

现在点击“Train”,然后点击“Run”。现在,当您点击橙色框时,连接到引脚11的LED将亮起,当您单击白色框时,连接到Arduino引脚10的LED将亮起。

Arduino代码

代码用注释解释。

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

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;

// Initializing thepins forled‘s

int orange_led = 11;

int white_led = 10;

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);

pinMode(white_led, OUTPUT);

pinMode(orange_led, OUTPUT);

// 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();

// Matching the received output to light up led’s

if (output == 1)

{

digitalWrite(orange_led, HIGH);

}

else if (output == 0)

{

digitalWrite(orange_led, LOW);

}

if (output1 == 1)

{

digitalWrite(white_led, HIGH);

}

else if(output1 == 0)

{

digitalWrite(white_led, LOW);

}

}

处理代码(输入到Wekinator)

// Importing the library which will help us in communicating with the wekinator

import oscP5.*;

import netP5.*;

//creating the instances

OscP5 oscP5;

NetAddress dest;

float bx;

void setup() {

// Size of output window

size(400, 100, P3D);

// Starting the communication with wekinator. listen on port 9000, return messages on port 6448

oscP5 = new OscP5(this,9000);

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

}

void draw() {

// Creating the boxes in window

blocks();

// Send the OSC message to wekinator

sendOsc();

}

void mousePressed()

{

if (mouseX 》 25 && mouseX 《 75)

{

bx=1;

}

if (mouseX 》 325 && mouseX 《 375)

{

bx=2;

}

}

void sendOsc() {

OscMessage msg = new OscMessage(“/wek/inputs”);

msg.add((float)bx);

oscP5.send(msg, dest);

}

void blocks()

{

background(0);

fill(255, 155, 0);

rect(25, 25, 50, 50);

fill(255, 255, 255);

rect(325, 25, 50, 50);

}

处理代码(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 syncronized 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 value1 = theOscMessage.get(1).floatValue(); // Second output

// Converting the output to int type

output = int(value);

output1 = int(value1);

}

}

void draw()

{

// Nothing to be drawn for this example

}

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

    关注

    186

    文章

    6452

    浏览量

    185744
收藏 人收藏

    评论

    相关推荐

    arduino控制步进电机代码

    Arduino是一种开放源代码的电路板平台,它可以用于 控制各种不同的电子设备,包括步进电机。步进电机是一种电动机,可以通过下达特定的指令来 控制每个步进的角度,从而使电机旋转到指定的位置。在本文
    的头像 发表于02-14 16:29 1541次阅读

    arduino中while循环怎么跳出

    执行某段代码的情况。然而,如何在合适的时机跳出 while 循环是一个需要注意的问题。本文将详细介绍 Arduino中 while 循环的基本概念,以及如何使用不同的技巧跳出该循环来实现代码的灵活 控制
    的头像 发表于02-14 16:22 1669次阅读

    如何使用Arduino控制RGB LED

    在本指南中,您将学习如何使用 Arduino 控制RGB LED。RGB(红-绿-蓝)LED可以通过混合不同强度的红、绿、蓝光来产生多种颜色。您将学习创建一个基本 ArduinoRGB LED电路,并以一些基本颜色为例循环。
    的头像 发表于02-11 10:28 3324次阅读
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>RGB LED

    如何使用ArduinoUNO板和电位器控制伺服电机

    在本 Arduino伺服电机教程中,您将学习如何使用 ArduinoUNO板和电位器 控制伺服电机。
    的头像 发表于02-11 10:11 1753次阅读
    如何使用<b class='flag-5'>Arduino</b> UNO板和电位器<b class='flag-5'>控制</b>伺服电机

    如何设置ArduinoIR发射器电路

    在本指南中,您将学习如何设置 ArduinoIR发射器电路。它使您可以 控制IR(红外线)LED,并从 Arduino发送任何远程 控制代码。这意味着你可以用它来
    的头像 发表于02-11 09:44 629次阅读
    如何设置<b class='flag-5'>Arduino</b> IR发射器电路

    如何使用arduino控制接触器?

    我将避免铅酸电池过载。我想通过使用近 30A 的接触器和 arduinouno 板来 控制电池过载。如何使用 arduino控制接触器?
    发表于01-22 07:14

    工程师说 | 使用Chat-GPT为RL78 MCU(Arduino)编写AI代码

    使用时需要注意这一点。 什么是 ArduinoArduino是一个用于轻松进行电子项目的开源平台。它由一个配备有微 控制器的板( Arduino板)和一个软件开发
    的头像 发表于12-21 18:20 784次阅读
    工程师说 | 使用Chat-GPT为RL78 MCU(<b class='flag-5'>Arduino</b>)编写AI代码

    基于WiFi的Arduino网络控制方案

    德赢Vwin官网 网站提供《基于WiFi的 Arduino网络 控制方案.rar》资料免费下载
    发表于11-10 10:30 0次下载
    基于WiFi的<b class='flag-5'>Arduino</b>网络<b class='flag-5'>控制</b>方案

    能否用arduino代替PLC做机器的控制

    能否用 arduino代替PLC做机器的 控制
    发表于11-09 08:06

    Arduino提供的PWM控制功能入门(1)

    今天来学习一下 Arduino提供的 PWM 控制功能,它可以用来 控制电机转速,LED 明亮等。
    的头像 发表于10-31 16:32 1845次阅读
    <b class='flag-5'>Arduino</b>提供的PWM<b class='flag-5'>控制</b>功能入门(1)

    怎么用arduino控制舵机转动一定角度?

    怎么用 arduino 控制舵机转动一定角度
    发表于10-18 06:16

    如何使用Python和PinPong库控制Arduino

    与传感器和其他物理设备集成的应用程序。如果您已经掌握了Python的基础知识,那么您可以通过使用Python来 控制 Arduino来入门。本文目的主要是向您展示如何使用PinPong库通过Python
    的头像 发表于10-13 10:59 679次阅读
    如何使用Python和PinPong库<b class='flag-5'>控制</b><b class='flag-5'>Arduino</b>

    基于arduino设计的手势控制小车

    基于 arduino的手势 控制小车
    发表于09-25 06:06

    利用Arduino制作智能空调

    宿舍总是太热,我们决定用 Arduino来建造我们自己的空调。每个房间都有自己的温度传感器、通风井和风扇 控制器。 Arduino的工作是监控室温并 控制风扇以达到所需的温度。
    发表于09-22 06:32

    Arduino的PWM控制代码

    如果你需要一个具体的代码示例,我可以为你提供一个 Arduino的PWM 控制代码。 Arduino是一款常用的开源电子原型平台,它提供了PWM功能。以下是一个简单的 Arduino代码示例,
    发表于09-21 08:57