电路图
首先,将LED的正极连接到Raspberry Pi的GPIO4,然后将LED的负极连接到gro Raspberry Pi的引脚通过220欧姆电阻器。
安装软件
您需要在Raspberry Pi上安装处理IDE。在这里下载Linux ARMv6hf的处理。
下载后,将其放入要安装处理的文件夹中。然后,右键单击它并单击“在此处提取”。现在将创建一个名为“处理”的文件夹。右键单击此文件夹,然后选择“在终端中打开”。终端窗口将打开。在其中键入以下命令,处理IDE将打开。
。/processing
现在您需要安装Wekinator软件。所以转到下面的链接并点击“任何操作系统,包括Linux”。
下载后,将其放在要安装的位置,然后右键单击它,然后单击“在此处提取”。将创建一个新目录。右键单击它并选择“Run in terminal”。在终端中,编写以下命令,Wekinator将开始运行。
java -jar WekiMini.jar
入门
现在将这篇文章末尾给出的代码粘贴在两个单独的处理草图中并运行它们。在Wekinator窗口中,进行如下设置。将输入和输出设置为1,将类型设置为“所有分类器”,分为2个类。
点击“下一步”,将打开一个新窗口如下所示。
打开处理窗口,单击绿色三角形,然后开始录制半秒钟。单击红色圆圈并将类更改为2(在输出-1前面)。然后开始录制半秒钟。
之后,单击“训练”,然后单击“运行”。现在,当您点击绿色三角形时,连接到Raspberry Pi的LED将亮起,当您点击红色圆圈时,连接到Raspberry Pi的LED将关闭。
处理代码(输入到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(200, 50, 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 output window
blocks();
// Send the OSC message to wekinator
sendOsc();
}
void mousePressed()
{
// If mouse is pressed in the first box
if (mouseX 》 0 && mouseX 《 50)
{
bx=1;
}
// If mouse is pressed in the second box
if (mouseX 》 100 && mouseX 《 150)
{
bx=2;
}
}
void sendOsc() {
OscMessage msg = new OscMessage(“/wek/inputs”);
msg.add((float)bx);
oscP5.send(msg, dest);
}
void blocks()
{
background(0);
fill(0, 128, 0);
ellipse(25, 25, 50, 50);
fill(255);
text(“ON”, 10, 30);
fill(255, 0, 0);
ellipse(125, 25, 50, 50);
fill(255);
text(“OFF”, 120, 30);
}
处理代码(Wekinator的输出)
// Importing the library that will help us in controlling the GPIO pins of raspberry pi
import processing.io.*;
// Importing the library which will help us in communicating with the wekinator
import oscP5.*;
import netP5.*;
// Creating the instances
OscP5 oscP5;
NetAddress dest;
// Variable to store the output
public int output;
void setup()
{
// Setting the GPIO 4 as output pin
GPIO.pinMode(4, GPIO.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()
{
// Making the led HIGH or LOW depending on the output from the wekinator
if (output == 1)
{
GPIO.digitalWrite(4, GPIO.HIGH);
}
else if (output == 2)
{
GPIO.digitalWrite(4, GPIO.LOW);
}
}
-
led
+关注
关注
242文章
23160浏览量
658697 -
树莓派
+关注
关注
116文章
1699浏览量
105548
发布评论请先 登录
相关推荐
评论