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

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

3天内不再提示

如何通过Wekinator平台使用手势控制Arduino

454398 来源:工程师吴畏 2019-07-30 14:35 次阅读

电路图

将其中一个蜂鸣器的正极连接到Arduino的9针和Arduino的10针的另一个蜂鸣器的正面。然后将两个蜂鸣器的负片连接到项目的Arduino.section的地面。

如何运行代码

首先,在Arduino IDE中粘贴为本文末尾的Arduino提供的代码并上传代码。

然后您需要从Wekinator的示例页面下载草图。

下载源代码以处理简单的10x10颜色网格。解压缩并在处理中运行代码。该程序将使用您的笔记本电脑网络摄像头,根据您在摄像头前所做的操作,它将为Wekinator提供输入。

您需要另一个草图来输出Wekinator的输出。这篇文章末尾的草图代码。将其粘贴到处理中并运行草图。这个草图将从Wekinator输出并将其发送到Arduino,蜂鸣器将播放不同的声音。

两个处理窗口应如下所示。

现在打开Wekinator并进行如下图所示的设置。将输入设置为100,将输出设置为2.将类型设置为“自定义”,然后单击“配置”。

点击“配置”时“,一个新窗口将打开,如下所示。更改设置,如下图所示。

现在退出网络摄像头并点击“随机化”。开始录制半秒。

现在将右手显示在网络摄像头的右侧,然后单击“随机化”。然后开始录制半秒。

现在将左手显示在网络摄像头的左侧,然后单击“随机化”。然后开始录制半秒。

然后,单击“训练”,然后单击“运行”。现在,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 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 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

}

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;

// Pin connected to buzzer

int buzzer = 9;

int buzzer1 = 10;

int i,j;

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

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

receiver.observe(output);

receiver.observe(output1);

// Defines the Buzzer pins as output

pinMode(buzzer,OUTPUT);

pinMode(buzzer1,OUTPUT);

}

void loop()

{

// Receiving the output from the processing.

receiver.sync();

// Making the buzzer to beep according to the output from the processing

tone(buzzer1, output);

delay(5);

noTone(buzzer1);

tone(buzzer,output1);

delay(5);

noTone(buzzer);

}

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

    关注

    188

    文章

    6469

    浏览量

    187094
  • 手势控制
    +关注

    关注

    4

    文章

    44

    浏览量

    21726
收藏 人收藏

    评论

    相关推荐

    如何使用Arduino实现CAN总线通信呢

    CAN(Controller Area Network)总线是一种常用于汽车和工业控制系统的串行通信协议,以其高可靠性和实时性而闻名。Arduino,作为一种流行的开源微控制平台,可
    的头像 发表于 12-23 09:06 151次阅读

    HAL库在Arduino平台上的使用

    HAL库在Arduino平台上的使用 Arduino平台是一个开源的电子原型平台,它包括硬件(基于微控制
    的头像 发表于 12-02 14:04 287次阅读

    stm32与Arduino的比较

    在微控制器的世界里,STM32和Arduino是两个经常被提及的名字。STM32是一系列由STMicroelectronics生产的高性能微控制器,而Arduino则是一个开源电子原型
    的头像 发表于 11-19 15:45 880次阅读

    如何使用Arduino实现CAN总线通信

    开源硬件平台通过添加CAN总线模块,也可以实现CAN通信。 硬件准备 Arduino开发板 :可以选择Arduino Uno、Mega等型号。 CAN总线模块 :如MCP2515或M
    的头像 发表于 11-12 10:09 865次阅读

    鸿蒙ArkTS声明式开发:跨平台支持列表 组合手势

    手势识别组合,即多种手势组合为复合手势,支持连续识别、并行识别和互斥识别。
    的头像 发表于 06-19 09:33 424次阅读
    鸿蒙ArkTS声明式开发:跨<b class='flag-5'>平台</b>支持列表 组合<b class='flag-5'>手势</b>

    鸿蒙ArkTS声明式开发:跨平台支持列表【绑定手势方法】 手势处理

    为组件绑定不同类型的手势事件,并设置事件的响应方法。
    的头像 发表于 06-15 09:17 787次阅读
    鸿蒙ArkTS声明式开发:跨<b class='flag-5'>平台</b>支持列表【绑定<b class='flag-5'>手势</b>方法】 <b class='flag-5'>手势</b>处理

    鸿蒙ArkTS声明式开发:跨平台支持列表【触摸热区设置】触摸交互控制

    适用于支持通用点击事件、通用触摸事件、通用手势处理的组件。
    的头像 发表于 06-13 10:33 461次阅读
    鸿蒙ArkTS声明式开发:跨<b class='flag-5'>平台</b>支持列表【触摸热区设置】触摸交互<b class='flag-5'>控制</b>

    基于毫米波雷达的手势识别算法

    与智能家居系统合作,提供更好的用户体验,例如通过远距离的“空中”手势控制智能家电。例如,用户可以直接上下挥动她的手来控制灯的状态,而不是触摸开关。此外,当用户坐在沙发上,想拉开远处的窗
    发表于 06-05 19:09

    OpenHarmony实战开发-手势事件

    手势表示由单个或多个事件识别的语义动作(例如:点击、拖动和长按)。一个完整的手势也可能由多个事件组成,对应手势的生命周期。支持的事件有:
    的头像 发表于 04-29 13:57 395次阅读

    基于FPGA威廉希尔官方网站 的手势识别控制型多功能机械臂系统

    首先通过图像采集设备来获取手势图像,通过手势建模将获取的手势图像用数学模型描述出来,最后根据得到的手势识别所需要的模型参量判别出具体的
    发表于 04-27 11:21 1254次阅读

    arduino控制步进电机代码

    Arduino是一种开放源代码的电路板平台,它可以用于控制各种不同的电子设备,包括步进电机。步进电机是一种电动机,可以通过下达特定的指令来控制
    的头像 发表于 02-14 16:29 2043次阅读

    如何使用Arduino控制RGB LED

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

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

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

    如何使用arduino控制接触器?

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

    arduino和单片机的区别比较

    和软件的微控制平台,它通过一种简化和标准化的方式,使电子开发变得更加容易。Arduino主板上集成了处理器、输入输出引脚、电源供应等电路,能够连接各种传感器和执行器,
    的头像 发表于 01-02 16:18 9784次阅读