91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用Arduino和處理的Flappy Bird

使用Arduino和處理的Flappy Bird

2022-12-12 | zip | 0.02 MB | 次下載 | 免費(fèi)

資料介紹

描述

大家好?。。g迎來(lái)到基于 Arduino 的新項(xiàng)目。我們一生中都玩過(guò)飛揚(yáng)的小鳥(niǎo)游戲。如果我們?cè)谖覀兊?PC 上播放它并使用我們的 Arduino 控制它怎么辦?按照下面給出的所有步驟操作,到本教程結(jié)束時(shí),您將使用微控制器控制游戲。

項(xiàng)目工作簡(jiǎn)介:

?
?
?
poYBAGOSqF6AKcqvAACiwxwZUvA527.jpg
?
1 / 3
?

我們?cè)谶@里使用超聲波傳感器的原因是為了獲取我們的手和傳感器之間的距離數(shù)據(jù),并使用這些值來(lái)調(diào)整移動(dòng)的鳥(niǎo)的高度。游戲在 Processing 中創(chuàng)建,Arduino 使用串行端口與其通信。我已經(jīng)鏈接了上面游戲的幾張圖片,所以請(qǐng)看一下它們以便對(duì)這個(gè)項(xiàng)目有所了解。

贊助商鏈接 - UTSource.net。

讓我們做連接:

pYYBAGOSqGGAYJxzAAA-GLCnOJU708.jpg
?

首先將 SR-04 傳感器連接到 Arduino 板上。由于只有一個(gè)傳感器接口,我不會(huì)為這個(gè)項(xiàng)目添加電路圖。連接如下 -

SR-04 >> Arduino Uno

電源 >> 5V

接地 >> 接地

觸發(fā)針 >> 數(shù)字針 11

Echo Pin >> 數(shù)字引腳 10

就是這樣,連接就完成了。

上傳 Arduino 代碼:

poYBAGOSqGaAXF6gAAEokimMo5c419.jpg
?

現(xiàn)在是時(shí)候?qū)⒋a上傳到您的 Arduino 開(kāi)發(fā)板了。

從下面復(fù)制代碼。

在上傳代碼之前,請(qǐng)確保選擇正確的 com 端口和波特率,因?yàn)槲覀儗⑹褂盟蛴螒虬l(fā)送數(shù)據(jù)。

const int trigPin=11;  //DECLARE TRIG PIN AT D11
int echoPin=10;         //DECLARE ECHO PIN AT D10
int safezone=10; 
void setup() 
{
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
Serial.begin(9600);
}
void loop()
{
long duration,cm;           //DECLARE VARIABLES TO STORE SENSOR O/P
digitalWrite(trigPin,LOW);  //MAKE THE TRIG PIN LOW
delayMicroseconds(2);       //WAIT FOR FEW MICROSECONDS
digitalWrite(trigPin,HIGH); //NOW SET THE TRIG PIN
delayMicroseconds(5);       //WAIT FOR FEW MICROSECONDS UNTIL THE TRIG PULSE IS SENT
digitalWrite(trigPin,LOW);  //MAKE THE TRIG PIN LOW AGAIN
duration=pulseIn(echoPin,HIGH); //MAKE ECHO PIN HIGH AND STORE THE BOUNCED PULSE IN VARIABLE DURATION
cm=microsecondsToCentimeters(duration); 
long inch= cm/2.54;
Serial.println(cm);
}
long microsecondsToCentimeters(long microseconds) //SPEED OF SOUND IS 29 uSEC PER CM
{
return microseconds/29/2;  //THE PULSE TRAVELS FROM THE SENSOR AND AGAIN COMES BACK SO WE DIVIDE IT BY 2 TO TAKE ONLY HALF OF THE TOTAL DISTANCE
}

打開(kāi)處理程序:

poYBAGOSqGiAbq3-AADBTrDM-oM600.jpg
?

上傳 Arduino 代碼后,下載并打開(kāi)處理代碼。再次

設(shè)置與之前相同的波特率并提及正確的 com 端口。

import processing.serial.*;
int DistanceUltra;
int IncomingDistance;
Serial myPort;
String DataIn;
Pipe p1 = new Pipe();
Pipe p2 = new Pipe();
Pipe p3 = new Pipe();
 
//bird height and width location
float birdy = 46;
float birdx = 56;
float gravity = 5;
 
//the speed of the pipes
int speed;
 
//score and game state
boolean gameOver = false;
int score = 0;
int highscore = 0;
 
int point = 1;
 
color birdColor = color(255, 204, 0);
 
 
void setup(){
  size(400,600);
  p1.x = width + 50;
  p2.x = width + 220;
  p3.x = width + 370;
  myPort = new Serial(this, "COM3", 9600);
  myPort.bufferUntil(10);
}
void serialEvent (Serial myPort){
DataIn = myPort.readString();
println(DataIn);
IncomingDistance = int(trim(DataIn));
println("incoming distance="+IncomingDistance);
if (IncomingDistance>1 && IncomingDistance<100 ) { DistanceUltra = IncomingDistance; //save the value only if its in the range 1 to 100 } }
}
}
 
void draw(){
 
  background(0);
  p1.pipe();
  p2.pipe();
  p3.pipe();
 
  fill(birdColor);
  ellipse(birdx, birdy, 55,55);
 // birdy += gravity;
  play();
  success(p1);
  success(p2);
  success(p3);
 
  if (IncomingDistance>10)
  {
    //birdy -= jumpForce;
    birdy -= gravity;
  }    
  else
  {
    birdy += gravity;
  }
  
}
 
 
void play(){
 
  if(gameOver == false)
  {
    speed = 2;
    p1.x -= speed;
    p2.x -= speed;
    p3.x -= speed;
   
    textSize(24);
    fill(255,255,255);
    text(score, width/2, 30);  
  }
 
  if(gameOver == true)
  {
    speed = 0;
    p1.x -= speed;
    p2.x -= speed;
    p3.x -= speed;
   
    if( highscore < score)
    {
       highscore = score;
    }
   
    textSize(16);
    fill(0, 102, 153);
    textAlign(CENTER);
    text("Click : Play Again", width/2, height/2);
    text("Score: " + score, width/2, height/2 - 20);
    text("High-Score: " + highscore, width/2, height/2 - 40);
   
    if (mousePressed)
    {
       delay(900);
       score = 0;
       gameOver = false;
       birdy = 100;
       birdx = 56;
       p1.x = width + 50;
       p2.x = width + 220;
       p3.x = width + 370;
       p1.top = random(height/2);
       p1.bottom = random(height/2);
       p2.top = random(height/2);
       p2.bottom = random(height/2);
       p3.top = random(height/2);
       p3.bottom = random(height/2);
 
    }  
  }
 
}
 
void success(Pipe test){
 
  if(birdy < test.top || birdy > height - test.bottom)
  {
    if(birdx > test.x && birdx < test.x + test.w)
    {
      gameOver = true;
    }
  }
}
class Pipe
{
  float top = random(height/3 + 200);
  float bottom = random(height/3 +200);
 
 
  float x = width + 150;
  float w = 70;
  color pipeColor = color(0, 255, 0);
 
  void pipe()
  {
    fill(pipeColor);
    rect(x, 0, w, top);
    rect(x, height-bottom, w, bottom);
   
    if(x < -100)
    {
     score += point;
     x = width;
     top = random(height/2);
     bottom = random(height/2);
    }
 
   
  }
 
 
}

現(xiàn)在讓我們來(lái)試試這個(gè)游戲。只需單擊處理IDE中的運(yùn)行按鈕,然后

你已準(zhǔn)備好出發(fā)。小鳥(niǎo)會(huì)根據(jù)你手之間的距離移動(dòng)

和傳感器。如果您對(duì)此項(xiàng)目有任何疑問(wèn),請(qǐng)隨時(shí)發(fā)表評(píng)論

以下。


微控制器 超聲波傳感器 Arduino
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1耗盡型MOS FET產(chǎn)品目錄選型表
  2. 0.14 MB   |  2次下載  |  免費(fèi)
  3. 2TI系列-米爾TI AM62L核心板開(kāi)發(fā)板-高能效低功耗嵌入式平臺(tái)
  4. 1.51 MB  |  次下載  |  免費(fèi)
  5. 3WILLSEMI韋爾20年半年度報(bào)告由代理分銷(xiāo)經(jīng)銷(xiāo)一級(jí)代理分銷(xiāo)經(jīng)銷(xiāo)
  6. 3.30 MB  |  次下載  |  免費(fèi)
  7. 4LRC 樂(lè)山無(wú)線電InTWSApplications家電由原廠代理分銷(xiāo)經(jīng)銷(xiāo)一級(jí)代理分銷(xiāo)經(jīng)銷(xiāo)供應(yīng)
  8. 85.84 KB  |  次下載  |  免費(fèi)
  9. 5LAT1596 一文說(shuō)明白 STM32G4 雙 Bank 啟動(dòng)與升級(jí)
  10. 0.64 MB   |  次下載  |  5 積分
  11. 6LAT1594_基于事件喚醒低功耗之介紹
  12. 0.37 MB   |  次下載  |  5 積分
  13. 7PT8P2309 觸控 A/D 型 8-Bit MCU規(guī)格書(shū)
  14. 4.05 MB   |  次下載  |  免費(fèi)
  15. 8PT8P2308 觸控 A/D 型 8-Bit MCU規(guī)格書(shū)
  16. 4.13 MB   |  次下載  |  免費(fèi)

本月

  1. 1美的電磁爐電路原理圖資料
  2. 4.39 MB   |  19次下載  |  10 積分
  3. 2反激式開(kāi)關(guān)電源設(shè)計(jì)解析
  4. 0.89 MB   |  11次下載  |  5 積分
  5. 3耗盡型MOS FET產(chǎn)品目錄選型表
  6. 0.14 MB   |  2次下載  |  免費(fèi)
  7. 4簡(jiǎn)易光伏控制器原理圖資料
  8. 0.07 MB   |  1次下載  |  5 積分
  9. 52EDL05x06xx系列 600V半橋門(mén)驅(qū)動(dòng)器帶集成自舉二極管(BSD)手冊(cè)
  10. 0.69 MB   |  1次下載  |  免費(fèi)
  11. 6國(guó)產(chǎn)千兆網(wǎng)口芯片PT153S中文資料
  12. 1.35 MB   |  次下載  |  免費(fèi)
  13. 7斯丹電子 | 用于芯片測(cè)試系統(tǒng)的射頻干簧繼電器
  14. 5.11 MB  |  次下載  |  免費(fèi)
  15. 8SFI立昌ESD/TVS管原廠代理分銷(xiāo)經(jīng)銷(xiāo)一級(jí)代理分銷(xiāo)經(jīng)銷(xiāo)
  16. 294.76 KB  |  次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233095次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191448次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183360次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81605次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73829次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分