Arduino 在構(gòu)建愛(ài)好項(xiàng)目和游戲方面非常受歡迎,我們之前使用 Arduino 構(gòu)建過(guò)貪吃蛇游戲、乒乓球游戲、太空競(jìng)賽游戲等。今天我們正在使用 Arduino- Buzz 線(xiàn)游戲或 Steady 手游戲構(gòu)建更流行的游戲。
對(duì)于這個(gè)項(xiàng)目,我們將使用 Arduino Uno、蜂鳴器和兩根鋁線(xiàn)。一個(gè)16x2 的 LCD也用于顯示游戲狀態(tài)。迷宮線(xiàn)的兩端將連接到 Arduino 的數(shù)字引腳 2 和 3,手柄線(xiàn)連接到 Arduino 的接地引腳。數(shù)字引腳定義為 INPUT_PULLUP 引腳。所以當(dāng)手柄線(xiàn)接觸到迷宮線(xiàn)時(shí),數(shù)字引腳狀態(tài)變?yōu)榈碗娖剑澍Q器發(fā)出聲音。
二極管連接在迷宮線(xiàn)的末端,因此當(dāng)您經(jīng)過(guò)該二極管并用圓形手柄線(xiàn)觸摸迷宮線(xiàn)時(shí),只有一個(gè)引腳(引腳 3)會(huì)變低。在這種情況下,LCD 上將顯示祝賀文字(做得好)。
所需組件
阿杜諾
鋁線(xiàn)
16x2 液晶
I 2 C 模塊
面包板
蜂鳴器
二極管
電路原理圖
上面給出了 Arduino Buzz Wire Game 的電路圖。I2C 模塊的 SCL 和 SDA 引腳連接到 Arduino 的 A5 和 A4 引腳,而 I2C 模塊的 V CC和 GND 引腳連接到 Arduino 的 5V 和 GND 引腳。蜂鳴器的正軌連接到 Arduino 的數(shù)字引腳 4,負(fù)軌連接到 GND。切割鋁線(xiàn)并將其彎曲成鋸齒形。在電線(xiàn)的一端焊接一個(gè)二極管。然后剪下另一根電線(xiàn)做一個(gè)把手,并將一端彎曲成一個(gè)環(huán)。
16x2 LCD 也可以在不使用 I2C 模塊的情況下與 Arduino連接。
將 Arduino 的 D2 和 D3 引腳連接到 Zig-Zag 線(xiàn)的兩端,并將手柄線(xiàn)連接到 Arduino 的 GND 引腳。
代碼說(shuō)明
此Arduino Buzz Wire 游戲的完整代碼在文檔末尾給出。
通過(guò)包含 LCD 模塊的庫(kù)文件開(kāi)始您的代碼。LiquidCrystal_I2C.h 庫(kù)用于 Arduino 和 LCD 模塊之間的 I2C 通信。
#include
之后,定義蜂鳴器的 Arduino 引腳、電線(xiàn)的起點(diǎn)和電線(xiàn)的終點(diǎn)。
常量 int startPin = 2; 常量 int endPin = 3; 常量 int 蜂鳴器 = 4;
然后定義兩個(gè)變量start&end_。這些變量將用于保存電線(xiàn)的讀數(shù)。
整數(shù)開(kāi)始,結(jié)束_;
現(xiàn)在將蜂鳴器引腳定義為輸出,將接線(xiàn)引腳定義為INPUT_PULLUP。Arduino 有內(nèi)部上拉電阻,其值約為 20k 歐姆。這些電阻可以使用INPUT_PULLUP在內(nèi)部連接。定義 INPUT_PULLUP 在功能上與在引腳和 +5V 之間連接一個(gè) ~20k 歐姆電阻器相同。
pinMode(蜂鳴器,輸出); pinMode(startPin, INPUT_PULLUP); pinMode(startPin, INPUT_PULLUP);
在void 循環(huán)內(nèi),讀取線(xiàn)引腳的狀態(tài)。
開(kāi)始 = digitalRead(startPin); end_ = digitalRead(endPin);
現(xiàn)在比較線(xiàn)針的讀數(shù)。如果兩個(gè)引腳都為低電平,則表示您已經(jīng)觸摸了電線(xiàn),因此蜂鳴器會(huì)發(fā)出聲音,如果電線(xiàn)的起始引腳為高電平,而結(jié)束引腳為低電平,則表示您已到達(dá)終點(diǎn)。
如果(開(kāi)始 == 低 && 結(jié)束_== 低){ 數(shù)字寫(xiě)入(蜂鳴器,高); 延遲(1000); 數(shù)字寫(xiě)入(蜂鳴器,低); lcd.setCursor(0,0); lcd.print("再試一次"); Serial.print("再試一次"); } else if (start == HIGH && end_== LOW){ lcd.setCursor(0,0); lcd.print("做得好"); Serial.print("做得好"); }
測(cè)試 Buzz Wire 游戲
連接硬件并上傳給定代碼后,您就可以開(kāi)始玩游戲了。因此,將帶有圓圈的電線(xiàn)握在手中,并嘗試將帶有圓圈的電線(xiàn)一直通過(guò)曲折線(xiàn)焊接到二極管上,而不要讓圓線(xiàn)接觸任何地方。如果您觸摸電線(xiàn),則蜂鳴器會(huì)發(fā)出聲音,LCD 會(huì)顯示“再試一次”。如果你在不接觸電線(xiàn)的情況下完成游戲,那么它會(huì)顯示“干得好”。
#include
LiquidCrystal_I2C lcd(0x27, 16, 2);
常量 int startPin = 2;
常量 int endPin = 3;
常量 int 蜂鳴器 = 4;
整數(shù)開(kāi)始,結(jié)束_;
無(wú)效設(shè)置(無(wú)效)
{
Serial.begin(9600);
液晶顯示器開(kāi)始();
lcd.clear();
pinMode(蜂鳴器,輸出);
pinMode(startPin, INPUT_PULLUP);
pinMode(startPin, INPUT_PULLUP);
}
無(wú)效循環(huán)(無(wú)效)
{
開(kāi)始 = digitalRead(startPin);
end_ = digitalRead(endPin);
串行打?。ㄩ_(kāi)始);
序列號(hào).print("\n");
Serial.print(end_);
if (start == LOW && end_== LOW ){
digitalWrite(buzzer, HIGH);
延遲(1000);
數(shù)字寫(xiě)入(蜂鳴器,低);
lcd.setCursor(0,0);
lcd.print("再試一次");
Serial.print("再試一次");
}
else if (start == HIGH && end_== LOW){
lcd.setCursor(0,0);
lcd.print("做得好");
Serial.print("做得好");
}
延遲(500);
}
-
蜂鳴器
+關(guān)注
關(guān)注
12文章
895瀏覽量
46971 -
Arduino
+關(guān)注
關(guān)注
190文章
6498瀏覽量
192264 -
游戲設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
3瀏覽量
2082
發(fā)布評(píng)論請(qǐng)先 登錄

制作一個(gè)simon say游戲
基于Arduino陀螺游戲輪
使用arduino pro micro制作一個(gè)游戲控制器
幾個(gè)Arduino創(chuàng)意制作分享
Buzz研討會(huì)和英特爾游戲開(kāi)發(fā)者計(jì)劃
基于arduino的游戲手柄的制作方法
怎樣使用Arduino制作Buzz Wire游戲
Arduino井字游戲和熄燈游戲開(kāi)源分享

如何使用游戲手柄模塊制作Arduino SNAKE游戲

評(píng)論