Flappy Bird Arduino

by aaron629 in Circuits > Arduino

1088 Views, 0 Favorites, 0 Comments

Flappy Bird Arduino

image.jpg
image.jpg

我用 Arduino Leonardo 做出了一個類似 Google 小恐龍的一個小遊戲。這個裝置用了一個按鈕來操控遊戲裡小鳥的動作,還有一個LCD液晶電板來顯示整個遊戲。一開始,玩家要先按一次按鈕遊戲才會正式開始,開始後,小鳥會開始往前走,而玩家的工作就是要經由按按鈕來避開前方的障礙物,而當小鳥碰到前方障礙物時,遊戲則會結束並顯示你的分數是多少。這個裝置是設計給上班族和學生,因為這個裝置可以讓他們在許多各種壓力之下能抒發一點壓力,但是又不會因此對這個小遊戲上癮而耽誤正業,因為這個小遊戲玩法很簡單。

這個裝置是由這個連結的作者想做出來的!

https://www.instructables.com/Flappy-Bird-Game-Using-Arduino-LCD-Display/

Supplies

  1. Arduino Leonardo
  2. Arduino Breadboard
  3. 6條電線
  4. 1個按鈕
  5. LCD液晶電板
  6. 1個電腦或電池
  7. 紙板
  8. 1條傳輸線
  9. 透明膠帶

連接線路

image.jpg
image.jpg

這個步驟總共會用到六條電線,將第一條線的一端插到SDA連接口裡,將第二條的一端線插到SCL連接口裡,將第三條的一端線插到GND連接口裡,將第四條的一端線插到5V連接口裡,這四條線是給LCD液晶電板用的。接下來,將第五條的一端線插到7號連接口裡,將第六條的一端線插到GND連接口裡,這兩條線是給按鈕用的。

把線連接到LCD液晶電板

image.jpg

LCD液晶電板總共有四個地方可以提供連接,第一個是GND,第二個是VCC,第三個是SDA,第四個是SCL。首先,將插在GND上的線的另外一端插上LCD液晶電板的GND連接口,接下來,將插在5V上的線的另外一端插上LCD液晶電板的VCC連接口,然後,將插在SDA上的線的另外一端插上LCD液晶電板的SDA連接口,最後,將插在SCL上的線的另外一端插上LCD液晶電板的SCL連接口。這樣LCD液晶電板就能成功運作了。

把線連接到按鈕上

image.jpg
image.jpg

按鈕有兩個地方可以接上,第一個是正極,第二個是負極。首先,將插在5V的線的另一端插入按鈕上正極的那一端,最後,將插在GND的線的另一端插入按鈕負級的那一端。這樣按鈕就可以成功運作了。

紙板製作

image.jpg
image.jpg

首先些量測麵包版的大小並切割,接下來在那塊紙板上量測好LCD液晶電板的大小和按鈕的大小再去切割,最後將LCD液晶電板和按鈕對好切口並用透明膠帶去固定就完成了,這樣就部會讓醜陋又雜亂的電線露出來了。

程式

Screenshot (3).png

https://create.arduino.cc/editor/aaron629/177650a9...

以上是程式的連結!

這個程式主要是分成三大塊

  1. 將鳥還有障礙物進行構圖
  2. 利用按鈕來操控鳥的動作
  3. 顯示出鳥的動作

我改了程式的兩個地方都是改連接口的PIN,因為原本作者程式是設計給使用 Arduino Uno 的使用者,但由於我是用 Arduino Leonardo ,所以連接按鈕的連接口位置要改。作者當初是連接在2號連接口,但由於 Arduino Leonardo 的2號連接口不能使用,因此改成了7號連接口。這樣就要連程式也一起修改,所以我就把原本的 #define PIN_BUTTON 2 改成了 #define PIN_BUTTON 7。接下來,我還是編譯錯誤,然後就找到了attachInterrupt(0/*PIN_BUTTON*/, buttonPush, FALLING); 這一段是錯的,因此就查了一下,透過這個網站https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/,才發現attachInterrupt 這個東西裡面的第一個數字會根據使用者用的板子而改變,像是作者是用Arduino Uno 因此他填入數字0就是給 Arduino Uno 的2號連接口作使用,因此我改成了attachInterrupt(4/*PIN_BUTTON*/, buttonPush, FALLING);,我填入數字4就是給 Arduino Leonardo 的7號連接口作使用。

完成

Arduino Flappy Bird

將程式灌入 Arduino Leonardo 裡並開始就能暢玩了!