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

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

3天内不再提示

怎样用Wekinator和Arduino制作颜色分类器

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

电路图

怎样用Wekinator和Arduino制作颜色分类器

如何运行程序

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

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

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

Wekinator的输出需要另一个草图。该草图的代码在本文末尾。将其粘贴到处理中并运行草图。该草图将从Wekinator输出并将其发送到Arduino,LED将亮起。

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

现在打开Wekinator并进行如下图所示的设置。将输入设置为100,将输出设置为1.将类型设置为3的所有分类器,然后单击下一步。

在前面拿一张彩色纸摄像头并开始录制半秒。

现在将班级更改为2.再次,向网络摄像头显示另一种颜色的纸张,开始录制半秒钟。

现在将类更改为3,显示另一种颜色的纸张,然后开始录制半秒钟。

之后,单击“Train”,然后单击“Run”。现在连接到Arduino的LED将根据您在网络摄像头前显示的颜色亮起。

ArduinoCode

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

ValueReceiver《1》 receiver; /*Creating the receiver that will receive only one value.

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

/* The below variable will be synchronized in the processing

and they should be same on both sides. */

int output;

// Initializing the pins for led‘s

int led1 = 8;

int led2 = 9;

int led3 = 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(led1, OUTPUT);

pinMode(led2, OUTPUT);

pinMode(led3, OUTPUT);

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

receiver.observe(output);

}

void loop()

{

// Receiving the output from the processing.

receiver.sync();

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

if (output == 1)

{

digitalWrite(led1, HIGH);

digitalWrite(led2, LOW);

digitalWrite(led3, LOW);

}

else if (output == 2)

{

digitalWrite(led1, LOW);

digitalWrite(led2, HIGH);

digitalWrite(led3, LOW);

}

else if (output == 3)

{

digitalWrite(led1, LOW);

digitalWrite(led2, LOW);

digitalWrite(led3, HIGH);

}

}

处理代码

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;

// This variable will be syncronized with the Arduino and it should be same on the Arduino side.

public int output;

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 variable as on the Arduino side. The order should be same.

sender.observe(“output”);

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

// Converting the output to int type

output = int(value);

}

}

void draw()

{

// Nothing to be drawn for this example

}

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

    关注

    188

    文章

    6471

    浏览量

    187249
收藏 人收藏

    评论

    相关推荐

    如何用SS1系列颜色传感示教多通道颜色

    基于白色LED光源的特性,深视智能SS1系列颜色传感突破了传统单色RGB、融合光RGB的波长限制,将发射波长的范围覆盖到整个可见光谱,最大支持检测16种颜色。那么,我们如何利用SS1系列颜色
    的头像 发表于 12-23 08:17 210次阅读
    如何用SS1系列<b class='flag-5'>颜色</b>传感<b class='flag-5'>器</b>示教多通道<b class='flag-5'>颜色</b>?

    怎样用THS3201实现输出功率可调?

    怎样用THS3201实现输出功率可调?
    发表于 08-26 08:28

    OPA735加OPA333,怎样用TINA TI去仿真?

    当输入信号VG1从7.06V慢慢变化到7.22V时。 输出电压Vout的变化必须是接近线性变化的。我想知道我该怎样用TINA TI去仿真?怎样设置那个输入信号VG1才能达到我的目的。因为这个电压源好像
    发表于 08-02 08:39

    怎样用表测稳压管稳压值

    表是一种常用的电子测量工具,可以用来测量电压、电流、电阻等多种参数。在测量稳压管的稳压值时,我们可以使用万表的直流电压测量功能。以下是步骤和注意事项: 准备工具和材料 万表 稳压管 电源
    的头像 发表于 07-31 14:26 1754次阅读

    怎样用Arduino测试锂电池容量

    本文详细介绍了如何用Arduino测量锂电池的容量。并附有电路图和Arduino的程序代码。
    的头像 发表于 07-30 09:14 926次阅读
    <b class='flag-5'>怎样用</b><b class='flag-5'>Arduino</b>测试锂电池容量

    Arduino自制点焊机

    组装18650电池组,要用到点焊机,本文介绍Arduino控制点焊机的点焊时间。
    发表于 07-29 10:14 6次下载

    求助,在esp-idf中使用arduino作为组件后怎样使用arduino的库?

    在esp-idf中使用arduino作为组件后怎样使用arduino的库,例如我此时需要使用arduino的第三方库blinker,怎样使用
    发表于 06-12 07:21

    怎样用STM8L的PB3/TIM2_TRIG的引脚测量脉宽?

    怎样用STM8L的PB3/TIM2_TRIG的引脚测量脉宽?
    发表于 05-07 06:55

    stm32f100怎样用重映射功能?

    的是stm32f100c8t6b芯片,现在想用将PB1映射为TIM1_CH3N,在调用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)时, GPIO_PinAFConfig和GPIO_AF_TIM1都没定义,stm32f100
    发表于 05-07 06:06

    如何用Arduino制作一个简易自动喂鱼

    如果你家里养有鱼,并想找到一种自动化喂食的方法,这个项目可能会对你有所启发。 在这个教程中,作者将展示如何制作自己的基于Arduino的自动喂鱼,让小鱼不在饿肚子。 自动喂鱼
    发表于 03-28 11:25

    STM32F412G-DISCO怎样用MX生成fatfs的代码?

    STM32F412G-DISCO怎样用MX生成fatfs的代码? SD卡例程能跑,但mx生成的代码不能正常运行,我生成代码后是不是还要配置一些东西?(我生成后只写了测试代码) 问题解决了,虽然我不知道我为什么不能直接使用mx生成的代码去操作sd卡,但我通过复制粘贴例程的代码完成了测试。
    发表于 03-12 08:15

    如何制作自己的Arduino电容计

    在这个项目中,您将学习如何制作自己的Arduino电容计(测量电容器的值,范围从pF到1000的uF)。一般来说,电子爱好者喜欢设计自己的小工具而不是购买。在这个项目中,我们使用两种电容测量方法,即
    的头像 发表于 02-25 15:10 1611次阅读
    如何<b class='flag-5'>制作</b>自己的<b class='flag-5'>Arduino</b>电容计

    如何使用Arduino制作智能垃圾箱

    在这个项目中,我将向您展示如何使用Arduino制作智能垃圾箱,当您带着垃圾接近时,垃圾箱的盖子会自动打开。
    的头像 发表于 02-11 12:22 3072次阅读
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>智能垃圾箱

    如何使用Arduino控制RGB LED

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

    阿童木颜色传感应用:汽车车身颜色识别

    引言 随着科技的不断进步,汽车制造业也在不断迭代升级,全自动化生产技术成为现代汽车生产的主流。本文将深入探讨某大型汽车生产企业在其全国生产基地中,采用阿童木颜色传感(CL2)对车身颜色进行识别
    的头像 发表于 01-26 14:45 474次阅读
    阿童木<b class='flag-5'>颜色</b>传感<b class='flag-5'>器</b>应用:汽车车身<b class='flag-5'>颜色</b>识别