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
    +关注

    关注

    191

    文章

    6535

    浏览量

    197664
  • 手势控制
    +关注

    关注

    4

    文章

    44

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一文读懂手势识别传感器:原理、优势与应用场景

    引言人机交互的方式正在经历深刻变革。从早期的物理按键到触摸屏,再到如今逐步普及的语音控制手势操作,人们与电子设备之间的沟通变得越来越自然直观。手势识别作为一种非接触式的交互手段,近年来在智能家居
    的头像 发表于 04-28 17:41 1712次阅读
    一文读懂<b class='flag-5'>手势</b>识别传感器:原理、优势与应用场景

    零知IDE——基于零知标准板驱动PAJ7620U2手势控制L9110风扇模块和SG90舵机系统

    控制器,结合PAJ7620U2手势传感器实现对L9110风扇模块和SG90舵机的智能控制。系统通过识别9种不同的手势动作(上下、左右、顺时针
    发表于 01-06 11:56

    零知IDE——基于STM32F103RBT6的PAJ7620U2手势控制WS2812 RGB灯带系统

    ✔零知开源(零知IDE)是一个专为电子初学者/电子兴趣爱好者设计的开源软硬件平台,在硬件上提供超高性价比STM32系列开发板、物联网控制板。取消了Bootloader程序烧录,让开发重心从 “配置
    发表于 12-29 19:04

    零知IDE——基于STM32F103RBT6的PAJ7620U2手势控制WS2812 RGB灯带系统

    基于STM32F103RBT6的手势控制LED系统,通过PAJ7620U2传感器识别手势动作,驱动WS2812B灯带实现交互式灯光效果。系统采用软件I2C通信和SPI+DMA驱动方案,
    的头像 发表于 12-29 17:48 2209次阅读
    零知IDE——基于STM32F103RBT6的PAJ7620U2<b class='flag-5'>手势</b><b class='flag-5'>控制</b>WS2812 RGB灯带系统

    探索用于Arduino的TLE94112ES直流电机控制盾牌

    探索用于Arduino的TLE94112ES直流电机控制盾牌 引言 在电子工程领域,电机控制一直是至关重要的部分。对于Arduino开发者而言,一款功能强大且易于使用的电机
    的头像 发表于 12-18 16:35 600次阅读

    传统油烟机智能化升级之雷达手势感应唤醒控制方案

    传统的油烟机需要通过按键触摸开机或者语音控制开机,按键控制在炒菜的时候不是很方便,而语音控制在高档位噪音大时容易受到油烟机的噪音影响,现在新的控制
    的头像 发表于 11-12 09:28 662次阅读
    传统油烟机智能化升级之雷达<b class='flag-5'>手势</b>感应唤醒<b class='flag-5'>控制</b>方案

    贸泽电子开售全新Arduino UNO Q单板计算机

    贸泽电子开售全新Arduino UNO Q单板计算机。Arduino UNO Q单板计算机(SBC)将高性能计算与实时控制结合,提供理想的创新平台
    的头像 发表于 11-08 09:50 1692次阅读

    基于STMicroelectronics AEK-SNS-2TOFM1手势检测系统的技术解析与应用实践

    STMicroelectronics AEK-SNS-2TOFM1预定义手势检测系统包括两个飞行时间测距传感器。这些传感器彼此距离23cm放置。车载SPC582B60E1微控制器读取传感器数据并检测预定义的手势/脚势。该解决方案
    的头像 发表于 10-29 16:07 874次阅读
    基于STMicroelectronics AEK-SNS-2TOFM1<b class='flag-5'>手势</b>检测系统的技术解析与应用实践

    【技术讨论】智能戒指手势交互:如何优化PCBA成本与实现<20ms低延迟?

    我们正在开发一款通过手势实时控制音乐的嵌入式可穿戴设备(架构如图:nRF5340主控 + ICM-42607 IMU)。希望重构听众与音乐之间的关系。在早期小批量生产中,我们面临两个核心挑战,希望
    发表于 10-18 13:04

    无需手持更灵活!纳祥科技智能帽夹灯方案(红外感应+手势控制

    控制技术,有效解决了传统手持电筒笨重、依赖手持操作的局限性。方案概述本方案以低功耗单片机为中枢,支持感应和常规2种工作模式:感应模式可通过红外对管实现手势识别,来
    的头像 发表于 10-10 15:09 762次阅读
    无需手持更灵活!纳祥科技智能帽夹灯方案(红外感应+<b class='flag-5'>手势</b><b class='flag-5'>控制</b>)

    高通宣布收购 Arduino,加速普及前沿边缘计算与 AI 技术

    UNO Q 是 Arduino 首款由高通 Dragonwing 平台驱动的“双大脑”开发板,它桥接了高性能计算与实时控制,能够“眨眼间实
    的头像 发表于 10-08 11:15 1003次阅读
    高通宣布收购 <b class='flag-5'>Arduino</b>,加速普及前沿边缘计算与 AI 技术

    如何在 NuMaker-IoT-M467 板上使用 Arduino IDE 控制 Wi-Fi 模块?

    在NuMaker开发板上,有一个ESP-12F Wi-Fi模块;但是,Arduino IDE 中的 NuMaker UNO 包不提供该模块的相关控制。如果您希望在 Arduino IDE 中
    发表于 09-04 08:28

    XenG202G | 挥手手势识别参考设计(三维)

    WEMAKERFSMART-赋予万物感知的灵魂-矽典微ICLEGENDMICROXenG202G挥手手势识别(三维)毫米波传感器特征手势识别:非接触式控制,高精度手势动作识别,支持方向
    的头像 发表于 08-29 08:25 948次阅读
    XenG202G | 挥手<b class='flag-5'>手势</b>识别参考设计(三维)

    HarmonyOS应用统一拖拽解决方案

    拖拽操作是一种直观且高效的数据传输方式,它允许用户通过标准手势(包括用手指、鼠标或触控笔按住并移动)在应用程序之间及内部进行数据传输。
    的头像 发表于 07-31 09:31 1344次阅读
    HarmonyOS应用统一拖拽解决方案

    Arduino与LabVIEW联合编程指南

    Arduino编程并与LabVIEW上位机结合实现设备的远程控制与数据采集。
    发表于 06-19 15:54 3次下载