2021年1月18日 星期一

week13_鄭皓文

 

      今天又有新設備了,是個手柄上頭的搖桿,講真我總覺得這貨比switch上頭的那個joycon還還好些,而且居然還有下壓回饋,比隔壁N開頭的企業强多了,早知道要用杜邦綫我就上淘寶成捆的,單芯綫真的容易接觸不良。

      接完綫之後我們先寫一個按壓就會發聲的程式,大致的代碼如下:

 

void setup()

{

  pinMode(2,INPUT_PULLUP);

  pinMode(8,OUTPUT);

}

int state=0;

void loop()

{

  if(digitalRead(2)==LOW)

    tone(8,2500,100);

  else

    noTone(8);

}

要注意的是兩個COM端口不能同時用,要不然會衝突

   現在我們的搖桿有了觸發按鍵的功能,但是除了讓它發出聲音,我們也可以通過程式展示它目前的運行狀態,例如我們可以通過顯示1/0查看此時的搖桿是否被按下,程式碼如下:
void setup()

{

  Serial.begin(9600);

  pinMode(2,INPUT_PULLUP);

  pinMode(8,OUTPUT);

}

int state=0;

void loop()

{

  if(digitalRead(2)==LOW && state==0)

  {

    state=1;

    Serial.write("1");

  }

  if(digitalRead(2)==HIGH && state==1)

  {

    state=0;

    Serial.write("0");

  }

  delay(100);

}

所以如果可以識別長按或短按的話是不是可以發摩斯電碼

   再此之後我們便可以利用上周學到的與Processing連接的功能,使用P語言展示此時的按鍵使用狀態,設定好鏈接后Processing程式碼如下:

import processing.serial.*;

Serial myPont;

 

int button=0;

void setup(){

  size(300,300);

  myPont = new Serial(this, "COM5",9600);

 

}

void draw(){

  if(myPont.available()>0){

    int now = myPont.read();

    if(now == '1')button=1;

    else button=0;

  }

  if(button==1)background(#F5ABAB);

  else background(#FF0303);

 

}

          Arduino的代碼基本相同這裏就不放了,多了一個設定步驟

   最後我們還可以學到如何用UDP的方式傳送信息到老師的電腦上,這個比較簡單,所以學了這麽久我寫的第一個網絡相關程式居然是這個?代碼如下:

import hypermedia.net.*;

UDP udp;

void setup(){

  size(300,200);

  udp = new UDP(this,6000);

  udp.send("Connect","120.125.70.41",6100);

 

}

void draw(){

 

}

void mousePressed(){

  udp.send("mousePressed","120.125.70.53",6100);

}

               然後我發現只要你按的夠快就可以手動RGB漸變

最後發一張宿舍的IP地址圖,歡迎大家來DDOS我(誤)

沒有留言:

張貼留言