精华内容
下载资源
问答
  • Arduino与Processing交互学习笔记二——图片-附件资源
  • 从金湖回扬州后,就开始收拾新房,学习进度慢了一些,好久没有更新Arduino与Processing交互学习笔记了。最近新房收拾完,又开始折腾了。 上一篇简单介绍了Arduino如何与Processing传输数据,这一篇通过一个案列介绍...

    前言

    从金湖回扬州后,就开始收拾新房,学习进度慢了一些,好久没有更新Arduino与Processing交互学习笔记了。最近新房收拾完,又开始折腾了。
    上一篇简单介绍了Arduino如何与Processing传输数据,这一篇通过一个案列介绍如何用Processing与Arduino互动播放动画(图片)。

    接线

    Arduino的接线如下所示,比较简单。使用的光敏电阻型号为5516,用万用表测试,正常光照下,电阻为1.6KΩ 左右;用手遮挡光源后,阻值趋于无穷大。串联的电阻阻值为12KΩ 。

    接线

    简介

    思路是通过触碰猫的不同部位,processing播放对应动画。比如触摸头时,猫会很开心;触摸脚时,猫会发怒;触摸球时,猫会跑去捡球。。。。。。(没按这个做,找不到相应的动画,我也不会自己画)

    猫

    猫的3D打印件下载地址Cat silhouette
    链接:https://www.thingiverse.com/thing:3676722

    实现方法采用的是光敏电阻,即手触碰相应部位时,会挡住该区域光敏电阻,导致光敏电阻的阻值发生变化。由于光敏电阻与12KΩ的电阻串联,中间电压值也会随着光敏电阻的阻值变化,通过Arduino的模拟口检测中间电压值,即可作出相应判断。

    优点是比较廉价,缺点也很明显,无法在黑暗中使用。

    代码

    Arduino代码

    #define ballPin 3
    #define footPin 4
    #define headPin 5  
    
    int ballValue, footValue, headValue;
    
    void setup() {
      Serial.begin(9600);  //与processing波特率相同
      pinMode(ballPin, INPUT);
      pinMode(footPin, INPUT);
      pinMode(headPin, INPUT);
    }
    
    void loop() {
      ballValue = analogRead(ballPin);
      footValue = analogRead(footPin);
      headValue = analogRead(headPin);  //分别检测三个光敏电阻的中间电压
      delay(300);
    
      if (ballValue <= 500){
        Serial.write("a");
      }
    
      if (footValue <= 500){
        Serial.write("b");
      }
    
      if (headValue <= 500){
        Serial.write("c");
      }
    
      if(ballValue > 700 && footValue > 700 && headValue > 700){
        Serial.write("d");
      }
    }
    

    Processing代码

    import processing.serial.*;
    Serial port;
    
    PImage cat;
    int numFrames = 68;
    int wait = 56 ;
    int head = 39 ;
    int circle = 0 ;
    int huaban = 22 ;
    PImage[] images = new PImage[numFrames];
    
    void setup() {
      size(1280,720);
      noStroke();
      cat = loadImage("cat.jpg");
      frameRate(20);  //播放图片的帧数
      images[0] = loadImage("circle01.jpg");
      images[1] = loadImage("circle02.jpg");
      images[2] = loadImage("circle03.jpg");
      images[3] = loadImage("circle04.jpg");
      images[4] = loadImage("circle05.jpg");
      images[5] = loadImage("circle06.jpg");
      images[6] = loadImage("circle07.jpg");
      images[7] = loadImage("circle08.jpg");
      images[8] = loadImage("circle09.jpg");
      images[9] = loadImage("circle10.jpg");
      images[10] = loadImage("circle11.jpg");
      images[11] = loadImage("circle12.jpg");
      images[12] = loadImage("circle13.jpg");
      images[13] = loadImage("circle14.jpg");
      images[14] = loadImage("circle15.jpg");
      images[15] = loadImage("circle16.jpg");
      images[16] = loadImage("circle17.jpg");
      images[17] = loadImage("circle18.jpg");
      images[18] = loadImage("circle19.jpg");
      images[19] = loadImage("circle20.jpg");
      images[20] = loadImage("circle21.jpg");
      images[21] = loadImage("circle22.jpg");
      images[22] = loadImage("huaban01.jpg");
      images[23] = loadImage("huaban02.jpg");
      images[24] = loadImage("huaban03.jpg");
      images[25] = loadImage("huaban04.jpg");
      images[26] = loadImage("huaban05.jpg");
      images[27] = loadImage("huaban06.jpg");
      images[28] = loadImage("huaban07.jpg");
      images[29] = loadImage("huaban08.jpg");
      images[30] = loadImage("huaban09.jpg");
      images[31] = loadImage("huaban10.jpg");
      images[32] = loadImage("huaban11.jpg");
      images[33] = loadImage("huaban12.jpg");
      images[34] = loadImage("huaban13.jpg");
      images[35] = loadImage("huaban14.jpg");
      images[36] = loadImage("huaban15.jpg");
      images[37] = loadImage("huaban16.jpg");
      images[38] = loadImage("huaban17.jpg");
      images[39] = loadImage("head01.jpg");
      images[40] = loadImage("head02.jpg");
      images[41] = loadImage("head03.jpg");
      images[42] = loadImage("head04.jpg");
      images[43] = loadImage("head05.jpg");
      images[44] = loadImage("head06.jpg");
      images[45] = loadImage("head07.jpg");
      images[46] = loadImage("head08.jpg");
      images[47] = loadImage("head09.jpg");
      images[48] = loadImage("head10.jpg");
      images[49] = loadImage("head11.jpg");
      images[50] = loadImage("head12.jpg");
      images[51] = loadImage("head13.jpg");
      images[52] = loadImage("head14.jpg");
      images[53] = loadImage("head15.jpg");
      images[54] = loadImage("head16.jpg");
      images[55] = loadImage("head17.jpg");
      images[56] = loadImage("wait01.jpg");
      images[57] = loadImage("wait02.jpg");
      images[58] = loadImage("wait03.jpg");
      images[59] = loadImage("wait04.jpg");
      images[60] = loadImage("wait05.jpg");
      images[61] = loadImage("wait06.jpg");
      images[62] = loadImage("wait07.jpg");
      images[63] = loadImage("wait08.jpg");
      images[64] = loadImage("wait09.jpg");
      images[65] = loadImage("wait10.jpg");
      images[66] = loadImage("wait11.jpg");
      images[67] = loadImage("wait12.jpg");  //将需要使用的图片编号
      
      port = new Serial(this,"COM4",9600);  //与arduino串口号和波特率相同
      background(cat);
    }
    
    void draw() {  
      while(port.available()>0){
        char input = port.readChar();
        
        switch(input){
          case'a':
          circle++;
          if (circle == 21){
            circle = 0;
          }
          image(images[circle],0,0);  //循环播放编号0-21的图片 
          break;
          
          case'b':
          huaban++;
          if (huaban == 38){
            huaban = 22;
          }
          image(images[huaban],0,0);  //循环播放编号22-38的图片  
          break;
          
          case'c':      
          head++;
          if (head == 55){
            head = 39;
          }
          image(images[head],0,0);   //循环播放编号39-55的图片   
          break;
          
          case'd':
          wait++;
          if(wait == 67){
            wait = 56;
          }
          image(images[wait],0,0);  //循环播放编号56-67的图片
          break;
          
          default: break;
        }
      }
    }
    

    Processing代码需要相应的data才能正常运行,所以直接打包在百度网盘了。cat
    链接:https://pan.baidu.com/s/1ys3G8AW_2EogvpmUfVOajQ
    提取码:7azk

    演示

    交互三——图片
    本人菜鸟,如果有好的提议,欢迎指出,谢谢大家!

    展开全文
  • } } } 用键盘的“←”和“→”键控制公交车的远离或靠近墙,Processing界面效果如下: 6-Arduino与Processing交互 读取超声波传感器的数值,将值显示在屏幕的右上角。根据该距离值来绘制公交车与墙之间的距离。...

    公众号:STCode

    1-超声波测距传感器简介

    超声波测距传感器是利用频率高于20kHz的声波在空气中传播,遇到障碍物反射回来,通过计算发射和接收时间差,可以计算出发射点与障碍物间的距离。
    超声波测距的公式如下: L=Vx(T2-T)/2
    式中L为测量的距离长度;V为超声波在空气中的传播速度(在20℃时为344m/s);T为测量距离的起始时间;T2为收到
    回波的时间;速度乘以时间差等于来回的距离,除以2可以得到实际距离。

    超声波测距传感器的种类繁多,有的模块带有串口或I2C输出,这种能直接输出距离值。本设计选用了市面上性价比较高的模块HC-SR04,如图所示。该传感器测量距离为2~450cm,精度为3mm。

    image.png

    超声波测距目前已经广泛应用于汽车倒车雷达等设备,机器人爱好者也将其用于机器人导航、智能小车避障等。超声波传感器的测量精度往往只能达到厘米数量级,若要进一步提高精度,需进行温度补偿计算。声速受温度影响较为明显,例如,当温度为0℃时超声波速度是332m/s,30℃时是350m/s。温度变化引起的超声波速度变化为18m/s。HC-SR04超声波测距模块引脚说明如下:

    image.png

    2-Arduino读取超声波传感器

    HC-SR04模块的工作原理如下:

    1)单片机引脚拉低Trig,给予至少10us的高电平信号去触发。
    2)模块触发后会发射8个40KHz的方波,并开始自动检测是否有信号返回。
    3)若接收到信号返回,则通过Echo输出一个高电平,高电平持续的时间便是超声波从发射到接收的时间,该模块工作时序如图所示。

    image.png

    触发脉冲触发后。HC-SR04模块会自动发射8个40kHz的方波。并自动检测是否有信号返回,如果有信号返回,通过ECHO输出一个高电平、高电平持续的时间便是超声波从发射到接收的时间。

    那么测试距离=高电平持续时间x340m/sx0.5。


    3-接线图

    image.png

    4-超声波测距代码

    int outputPin =2;              //接超声波Trig到数字D2脚
    int inputPin =3;               //接超声波Echo到数字D3脚
    
    void setup()
    {
      Serial.begin(9600);
      pinMode(inputPin,INPUT);
      pinMode(outputPin,OUTPUT);
    }
    
    void loop()
    {
      digitalWrite(outputPin,LOW);
      delayMicroseconds(2);
      digitalWrite(outputPin,HIGH);//发出持续时间为10微秒到Trig脚驱动超声波检测
      delayMicroseconds(10);
      digitalWrite(outputPin,LOW);
      int distance =pulseIn(inputPin,HIGH);   //接收脉冲的时间
      distance =distance/58;                  //将脉冲时间转换为距离值
      Serial.print("The distance is :");      
      Serial.println(distance);
      delay(50);
    }
    

    接好电路后,下载该程序到Arduino控制器,打开串口监视器将能看到超声波传感器检测到的距离值。

    image.png

    5-Processing绘制距离值与提示

    读取一张公交车的图片,在界面的右边画上一堵墙,墙上的读数是公交车与墙的距离。用键盘的“←”和“→”键控制公交车的远离或靠近墙。与墙的实际距离会显示在屏幕的右上角,最远距离为450cm,最近为0cm。

    公交车图片如下,注意要将该图片拖动到Processing草稿区。

    image.png

    代码如下:

    PImage BUS;
    int x =0,y =220;
    int distance =0;
    
    void setup()
    {
      size(640,480);
      BUS =loadImage("bus.png");      //读取图片
      background(255);                           
      image(BUS,x,y);
    }
    
    void draw()
    {
      background(255);
      fill(30,40,40);
      rect(600,80,30,395);
      image(BUS,x,y);
      distance=450-x*450/(600-BUS.width);  //换算与墙之间的距离,设其最大值为450m
      text("Distance is "+distance+"CM",250,50);
    }
    
    void keyPressed()                             //特殊键的key值为CODED,此时需要keyCode再次判断
    {
     if(key==CODED)
     {
       switch(keyCode)
       {
         case LEFT:                               //按下“左”键
              if(x>0)
              {
                x=x-1;
              }
              else
              {
                x=0;
              }
              break;
         case RIGHT:                               //按下“右”键
         if(x<(600-BUS.width))
         {
           x=x+1;
         }
         else
         {
           x= 600-BUS.width;
         }
         break;
         default:
         break;
     }
     }
    }
    

    用键盘的“←”和“→”键控制公交车的远离或靠近墙,Processing界面效果如下:

    image.png image.png

    6-Arduino与Processing交互

    读取超声波传感器的数值,将值显示在屏幕的右上角。根据该距离值来绘制公交车与墙之间的距离。超声波测距传感器的数值大,则公交车与墙的距离远,读取的数值小,则公交车离墙的距离近。

    Processing端代码:

    import processing.serial.*;
    Serial myPort;
    PImage BUS;
    int x =0,y =220;
    int distance =0;
    
    void setup()
    {
      size(640,480);
      BUS =loadImage("bus.png");
      myPort =new Serial(this,"COM10",9600);
    }
    
    void draw()
    {
      if(myPort.available()>0)
      {
        distance =myPort.read();
        println(distance);
      }
    
      background(255);
      fill(30,40,40);
      rect(600,80,30,395);
      x =(450-distance)*(600-BUS.width)/450; //将读取的距离值换算成实际的坐标
      image(BUS,x,y);
      text("Distance is "+distance+"CM",250,50);
    }
    

    Arduino端代码:

    int outputPin =2;              //接超声波Trig到数字D2脚
    int inputPin =3;               //接超声波Echo到数字D3脚
    
    void setup()
    {
      Serial.begin(9600);
      pinMode(inputPin,INPUT);
      pinMode(outputPin,OUTPUT);
    }
    
    void loop()
    {
      digitalWrite(outputPin,LOW);
      delayMicroseconds(2);
      digitalWrite(outputPin,HIGH);//发出持续时间为10微秒到Trig脚驱动超声波检测
      delayMicroseconds(10);
      digitalWrite(outputPin,LOW);
      int distance =pulseIn(inputPin,HIGH);   //接收脉冲的时间
      distance =distance/58;                  //将脉冲时间转换为距离值      
      Serial.write(distance);
      delay(50);
    }
    
    

    上传代码验证下效果吧~

    展开全文
  • 简单的processing交互,模拟一种透视关系
  • 一个简单的processing交互程序
  • 两个简单的交互程序,第一个使用到了更改坐标轴的指令,第二个是一个简单的左右手互搏小游戏
  • Arduino与Processing交互学习笔记一

    千次阅读 2019-06-10 21:51:12
    更进一步,可以通过第三方软件进行串口数据可视化处理,Processing是使用得比较多的一个,以下是第一篇Processing学习笔记。通过两个简单的案列说明了Arduino如何与Processing传输数据,第一个是通过Procesing发送...

    前言

    Arduino可以搭载各式各样的传感器,使用Arduino IDE自带的串口监视器可以查看传感器的数据,但是不够形象。更进一步,可以通过第三方软件进行串口数据可视化处理,Processing是使用得比较多的一个,以下是第一篇Processing学习笔记。通过两个简单的案列说明了Arduino如何与Processing传输数据,第一个是通过Procesing发送指令控制Arduino,第二个是通过Arduino发送指令控制Processsing。

    Processing 在 2001 年诞生于麻省理工学院(MIT)的媒体实验室,主创者为 Ben Fry 和 Casey Reas,项目发起的初衷,本是为了满足他们自身的教学和学习需要。后来,当Casey在意大利的伊夫雷亚交互设计学院(Interaction Design Institute Ivrea)进行教学的时候,基于Processing,衍生出了Wiring和Arduino项目。随着时间的推移,又诞生了多个语言的版本,比如基于JavaScript的Processing.js,还有基于Python、Ruby、ActionScript以及Scala等版本。而当前的Processing,成立了相应的基金会,由基金会负责软件的开发和维护工作。

    Processing项目是Java开发的,支持Linux、Windows以及Mac OSX三大平台,并且支持将图像导出成各种格式。对于动态应用程序,甚至可以将 Processing 应用程序作为 Java™ applet 导出以用在 Web 环境内。为了降低设计师的学习门槛,用Processing进行图形设计的编程语言并不是Java,而是重新开发了一门类C的编程语言,易于上手。Processing支持OpenGL和WebGL,不但可以渲染2D图形,还可以渲染3D图形。Processing可不只是能够渲染漂亮的图形,还支持与其他软件的通信,结合之前提到的Arduino项目,甚至可以和外部硬件进行交互。

    案列一:鼠标点击控制

    通过Processing画三个不同颜色的矩形,点击不同的矩形时,Arduino控制的该颜色LED灯亮。

    案列一接线

    案列一接线

    案列一代码

    • Arduino代码
    int redPin = 3;
    int greenPin = 4;
    int bluePin = 5;
    
    int c = 0;
    
    void setup()
    {
      Serial.begin(9600);  //比特率设置为一致方可通信
      pinMode(redPin,OUTPUT);
      pinMode(greenPin,OUTPUT);
      pinMode(bluePin,OUTPUT);
    }
    
    void loop()
    {
      if(Serial.available());
      c = Serial.read();
      if (c == 97)  //a的ASCII码值为97
      {
        digitalWrite(redPin,HIGH);   
        delay(500);
        digitalWrite(redPin,LOW); 
      }
      if (c == 98)  //b的ASCII码值为98
      {
        digitalWrite(greenPin,HIGH);   
        delay(500);
        digitalWrite(greenPin,LOW);    
      }
      if (c == 99)  
      {
        digitalWrite(bluePin,HIGH);   
        delay(500);
        digitalWrite(bluePin,LOW);
      }
    }
    
    • Processing代码
    import processing.serial.*;
    Serial port;
    
    void setup(){
      port=new Serial(this,"COM4",9600); //Arduino板的端口号
      size(600,200);
    }
    
    void draw(){
      fill(255,0,0);
      rect(50,50,100,100);
      
      fill(0,255,0);
      rect(250,50,100,100);
      
      fill(0,0,255);
      rect(450,50,100,100);  
    }
    
    void mouseClicked(){
      if((mouseX>=50)&(mouseX<=150)&(mouseY>=50)&(mouseY<=150))
      {
        println("red");
        port.write("a");
      }
      else if((mouseX>=250)&(mouseX<=350)&(mouseY>=50)&(mouseY<=150))
      {
        println("green");
        port.write("b");
      }
      else if((mouseX>=450)&(mouseX<=550)&(mouseY>=50)&(mouseY<=150))
      {
        println("blue");
        port.write("c");
      }
    }
    

    案列一演示

    ASCII(美国信息交换标准代码)

    ASCII(American Standard Code for Information Interchange:美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。新建一个文本文档,按住ALT+要查询的码值(注意,这里是十进制),松开即可显示出对应字符。例如:按住ALT+97,则会显示出’a’。

    来自百度百科的介绍

    案列二:移动图形

    Arduino接四个立式轻触开关,控制Processing中图形的上下左右移动。

    案列二接线

    案列二接线

    案列二代码

    • Arduino代码
    int upPin = 3;
    int downPin = 4;
    int leftPin = 5;
    int rightPin = 6; //分别控制上下左右
    
    int up1,down1,left1,right1;
    
    void setup() {
      pinMode(upPin,INPUT_PULLUP);
      pinMode(downPin,INPUT_PULLUP);
      pinMode(leftPin,INPUT_PULLUP);
      pinMode(rightPin,INPUT_PULLUP);
      Serial.begin(9600);  //比特率设置为一致方可通信
    }
    
    void loop() {
      
      up1 = digitalRead(upPin);
      down1 = digitalRead(downPin);
      left1 = digitalRead(leftPin);
      right1 = digitalRead(rightPin);  //按下开关对应的模拟针脚电平会发送改变
      
      if(up1 == 0)
      {
        delay(500);
        Serial.write("a");
      }
      else if(down1 == 0)
      {
        delay(500);
        Serial.write("b");
      }
      else if(left1 == 0)
      {
        delay(500);
        Serial.write("c");
      }
      else if(right1 == 0)
      {
        delay(500);
        Serial.write("d");
      }
    }
    
    • Processing代码
    import processing.serial.*;
    Serial port;
    int a = 300;
    int b = 300;  //ab为圆心的坐标
    
    void setup(){
      size(600,600);
      background(200,200,200);
      fill(255,0,0);
      ellipse(a,b,30,30); 
      port = new Serial(this,"COM4",9600);
    }
    
    void draw()
    {
      while(port.available()>0)
      {
        char input = port.readChar(); //读取Arduino来信息
        switch(input)
        {
          case'a':      
          background(200,200,200);
          fill(255,0,0); 
          b -= 20; 
          ellipse(a,b,30,30); 
          break;
          
          case'b':      
          background(200,200,200);
          fill(255,0,0); 
          b += 20;
          ellipse(a,b,30,30);
          break;  
          
          case'c':      
          background(200,200,200);
          fill(255,0,0); 
          a -= 20;
          ellipse(a,b,30,30); 
          break;
          
          case'd':      
          background(200,200,200);
          fill(255,0,0); 
          a += 20;
          ellipse(a,b,30,30); 
          break;
          default:break;
        }
      }
    }
    

    案列二演示

    本人菜鸟,如有错误,欢迎指出,谢谢大家。

    展开全文
  • 列线图 使用 Processing 绘制交互式列线图。 在以下位置查找结果: :
  • 【搬运】processing 实现声音交互
  • 基于processing实现的数据可视化,用户做出的测试结果保存在表格中,程序可读取数据并绘制出图像,与鼠标进行交互,鼠标放上去时显示具体分数。增加了平均值与标准差,把浮动直接加于平均值上绘制
  • 我们假设的场景就是,用超声波 测量与某个物体的距离,当拿起某个物体的时候,距离产生了变化,根据这个信号发给processing程序,来控制视频的跳转。 用到的是arduino uno 的开发板 将开发板与超声波传感器...
    用 超声波传感器来控制视频走向

    我们假设的场景就是,用超声波 测量与某个物体的距离,当拿起某个物体的时候,距离产生了变化,根据这个信号发给processing程序,来控制视频的跳转。

    用到的是arduino uno 的开发板

    • 将开发板与超声波传感器进行连接

      超声波传感器主要为4个口分别连接开发板接口

      • GND(地线) ——GND
      • Vcc(电源线) ——5V
      • Tri(控制器) ——2引脚
      • Echo(接收端) ——3引脚
    • 用到的是arduino uno 的开发板,将电脑与开发板连接

    • 开发arduino的程序 用来监测超声波测到的距离

    • 主要开发其实就是超声波测试距离的程序

    
    int triPin=2;
    int echoPin=3;
    
    void setup(){
        Serial.begin(9600);
       pintMode(echoPin,INPUT);
       printMode(triPin,OUTPUT);
    	
    
    }
    
    void loop() { 
    	digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin 
    	delayMicroseconds(2);       // delayMicroseconds在更小的时间内延时准确
    	digitalWrite(TrigPin, HIGH); 
    	delayMicroseconds(10); 
    	digitalWrite(TrigPin, LOW); //通过这里控制超声波的发射	
    	cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm 
    	cm = (int(cm * 100.0)) / 100.0; //保留两位小数 
    	//当拿起某个物体,距离产生了变化  就发送不一样的数据 
    	//这里假设这个物体距离超声波  20cm  
    	if(cm>20){
    	  Serial.print("1");
    	}
    	else
    	{
    	 Serial.pint("0");	
    	}				
    	delay(1000); 
    }
    
    

    下面再来开发 processing 的程序 主要用来控制视频的走向 :

    import processing.serial.*;
    Serial serial;
    Movie mov;
    int jumpTime=60void setup(){
        fullScreen();//全屏
        port=new Serial(this,"COM1",9600);  //这个可以看下程序中的开发板的端口信息
        mov=new Movie(this,"2.mov");
        mov.loop();//视频循环播放	
    }
    
     void movieEvent(Movie mov) {
        mov.read();
      }
    
    void draw(){
    
          String inString=serial.readString().trim();
      if(inString!=null){
        if("1".equals(inString)){
         mov.jump(jumpTime);   //当监听到传来了的数据是1  就证明  物体已经被拿起了
    }
    }
    	
    	
    
    }
    
    
    
    

    这样就有了 当拿起某个物体的时候,视频就会主动的去跳转到我们预设的视频位置,当我们需要多个传感器的时候,需要面包板来做连接,通过引脚的不同来传递不同的值,

    将多个值一起拼成字符串进行发送数据,再用processing 接受数据进行解析数据跟判断,具体视频跳转业务逻辑根据自己的业务需求来判断与处理。

    展开全文
  • 功能:通过arduino读取电位器的值,控制七彩灯带,并把指令传给processing,由processing控制播放具体视频 注意点:arduino print传输的是字符形式,比如说数据是'12'的时候,在processing端使用read只是读取一个...
  • Processing交互应用——躲避炸弹

    千次阅读 2019-05-05 10:54:57
    Processing交互应用——躲避炸弹融入动画技术的交互应用交互游戏的构思游戏程序结构的介绍截图 融入动画技术的交互应用 这是一个涉及到动画技术的小的交互应用游戏,通过鼠标移动来控制飞机的移动方向和移动速度,...
  • processing-源码

    2021-03-15 11:28:09
    processing
  • processing交互应用——双人对战游戏

    千次阅读 多人点赞 2019-04-28 21:31:19
    这是一项基于processing实现的双人对战小游戏,参考了openprocessing中一款十分有趣的射击小游戏设计,操作方式则类似以前经常完的死神vs火影之类的pk游戏。效果如下: 功能 这个小游戏能实现双人之间的pk对战,...
  • } 4-Arduino与Processing交互 下面示例代码演示了如何从Arduino获取光敏传感器的数值,并用数值控制图中太阳的亮度,在黑暗的环境中,太阳图片变暗;在光亮的环境中,太阳图片变得明亮。 Processing端: PImage img...
  • 基于Processing的动画交互

    千次阅读 多人点赞 2019-04-25 11:25:41
    基于processing的动画交互基本介绍总览结果分部设计及源代码1、 添加字体2、球随鼠标3、两个对象之间的引力4、小型粒子系统心得想法 基本介绍 大致看了《代码本色》这本书之后,在原有的编程经验的基础上,对于在...
  • 【06】processing-交互(中文)

    千次阅读 2020-07-14 19:24:22
    } 并非所有的鼠标都有多个按钮,如果软件分布广泛,交互就不应该依赖于检测哪个按钮被按下。 键盘数据 处理记录最近按下的键以及当前是否按下某个键。如果按键,则布尔变量key pressed为true,否则为false。在if...
  • import ddf.minim.analysis.*; import ddf.minim.*; Minim minim; AudioPlayer jingle; FFT fft; void setup() { size(1920, 1080, P3D); smooth(); minim = new Minim(this);... jingle =...
  • 鲤——processing动画交互应用

    千次阅读 多人点赞 2019-05-03 21:41:50
    鲤——processing动画交互应用 前言 目录 1.应用设计 2.编写过程 3.最终成果 4.参考资料 应用设计 编写过程 最终成果 参考资料
  • 基于processing交互动态绘画系统

    千次阅读 2018-12-30 15:45:34
    关于绘画 我认为绘画就是将自己的意识与思想通过一些手段呈现在载体上的作品,这种呈现方式可以是多种多样的,不论是用画笔涂鸦,颜料泼洒,或者是通过手势肢体控制,...这次的绘画系统结合了一些交互动态的效果,...
  • processing实现动态和交互-屁民科普

    万次阅读 多人点赞 2018-11-24 18:43:25
    processing实现动态和交互-屁民科普 一开始看了很多的例子,寻找灵感,做了几个小尝试 (因为博主不太会搞动态图,所以这些交互的部分,没有办法看动图233,所以就贴了个图,有点丑陋,想看效果的可以把代码复制...
  • Processing+ Kinect 粒子系统交互

    千次阅读 2019-10-09 09:32:00
    最近在做交互,以前用unity+Kinect做粒子交互发现很麻烦,现在研究开始研究Processing。 那么废话少数,接下来我们的思路是:找到深度图的中心点标记出来,将粒子系统跟随这个中心点 这串代码是入口: import ...
  • processing图片处理

    2017-05-25 01:18:14
    如何用processing处理图片像素//点画效果的实现
  • 在第一篇中,学习了如何绘图,我们现在学习如何让图形运动起来以及Processing中鼠标、键盘等事件交互方式。 一、运动 把2d图形中的坐标点设置为变量,在draw()函数中,让变量不断的变化,那么2d图形就动起来了。...
  • 在这里使用零知标准板和Processing通过Firmata通信,实现了音乐LED炫酷的效果。 1、硬件 零知标准板 RGB彩色LED 3个 电阻-220Ω-9个 2、软件 软件方面需要零知-标准板程序和Processing程序,它们之间通过...
  • 交互媒体设计作业:Processing射击游戏 一、简介 这是一个全年龄向的双人射击游戏,操作简单,容易上手,只需操控四个方向键,就能操控你的小球吐出子弹全屏弹跳,攻击你的对手。这个简单的小游戏通过processing...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,554
精华内容 16,621
关键字:

processing交互