使用UE4duino實現ue4與arduino通訊

2020-09-28 12:02:12

使用UE4Duino外掛實現ue4引擎與arduino串列埠通訊

預設大家都會使用ue4開發,畢竟會ue4的人才會想和微控制器通訊。
一.到GitHub下載UE4Duino外掛
1.下載地址
在這裡插入圖片描述這裡的版本是最新的版本,檢視自己的ue4版本,下拉介面
在這裡插入圖片描述找到Thread for this version,點進去就進入以下介面
根據自己ue4的版本進行下載外掛。
在這裡插入圖片描述
二.新增至UE4工程檔案中
1.在ue4工程檔案新建一個名稱為Plugins的資料夾(若工程檔案中已有Plugins請忽略),將下載的外掛解壓放入Plugins中
在這裡插入圖片描述其中microfluidics_ac為我的工程檔名稱。
然後開啟工程檔案在關卡藍圖進行設定
在這裡插入圖片描述這兩個是必要設定的,其他自由發揮。串列埠號視你連線微控制器時的串列埠號而定,可在裝置管理器檢視。(注意:ue4裡串列埠只能開啟一次,停止執行時候一定要關閉串列埠,串列埠關閉了才能再次開啟)
三.貼個arduino的例程

const int out=9;
int a=4000;   // 加速度
float t=1;
int w=3000;
int deltapwm;
int intpwm;
int pwm;
String inString = ""; 
void setup() 
{
 Serial.begin(9600);
 pinMode(out,OUTPUT);

}

void loop()
{
  
  if (Serial.available() > 0) 
  {
     for(int k=0;k<=11;k+=1)
    {
    char inChar = Serial.read();
    if (inChar!="a"||inChar!="w"||inChar!="t") 
    {
      inString += (char)inChar;
    }
    if (inChar == 'a') 
    {
      a=inString.toInt();  
      inString = "";
    }
     if (inChar == 't') 
    {
      t=inString.toInt(); 
      inString = "" ;
    }
     if (inChar == 'w') 
    {
      w=inString.toInt()-100;
      inString = "" ;  
    }
  }
  step1();
  delay(4000);
  step2();
  delay(4000);
  step3();
  delay(50);

  }

 }



void step1()
{
 intpwm=(w+1832)/32.1;
  pwm=0;
  
  for(pwm;pwm<=intpwm;pwm+=1)
  {  
  analogWrite(out,pwm);
  delay(100);
  }
}
void step2()//獲得減速加速度
{
  intpwm=(w+1832)/32.1;
  pwm=intpwm;
  deltapwm=a*t/32.1;
  for(pwm;pwm>=intpwm-deltapwm;pwm-=1)
  {  
  analogWrite(out,pwm);
  delay(t*1000/deltapwm);

  }
  
}
void step3()//獲得加速加速度
{
  analogWrite(out,0);

}

這是一個利用ue4與微控制器串列埠通訊實現電機加減速的程式。
**注意:**可能會出現在ue4裡能實現和微控制器通訊,打包之後不能通訊的問題,甚至介面崩潰。這時候開啟ue4工程檔案中的[Project].uproject(用記事本方式開啟)
在這裡插入圖片描述這時候你看到的介面應該是這樣的,在"Description": ""後面加一個,(逗號)注意是英文模式下的,然後複製上這段code
「Plugins」: [
{
「Name」: 「UE4Duino」,
「Enabled」: true
}
]
後點選儲存關掉就可以重新在打包,如下圖。
在這裡插入圖片描述這裡手動加上的code是為了讓外掛enable。
最後附上我的上位機串列埠輸出圖
在這裡插入圖片描述實質上就是輸出一堆字串給微控制器