• 方案介紹
    • 3D 打印迷你貪吃蛇游戲機:
  • 附件下載
  • 相關推薦
申請入駐 產業(yè)圖譜

基于Arduino的貪吃蛇游戲機

5小時前
193
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

聯系方式.txt

共1個文件

3D 打印迷你貪吃蛇游戲機:

在數字娛樂高度發(fā)達的今天,我們常常懷念那些經典的復古游戲。其中,貪吃蛇游戲無疑是許多人童年的記憶。今天,我將帶你走進一個有趣的 DIY 項目——3D 打印迷你貪吃蛇游戲機。這個項目不僅能夠讓你重溫經典,還能讓你親手制作一個屬于自己的便攜式游戲機。讓我們一起探索如何將 3D 打印技術和 Arduino 結合起來,打造一個迷你而功能完備的貪吃蛇游戲機。
在這里插入圖片描述

項目簡介

這個迷你貪吃蛇游戲機是由 CrazyScience 在 Instructables 上分享的。它是一個基于 Arduino 的便攜式游戲機,內置經典的貪吃蛇游戲,通過一個搖桿控制器操作,還能發(fā)出復古的游戲音效。整個游戲機的外殼是通過 3D 打印制作的,小巧便攜,可以通過 USB 供電,隨時隨地享受游戲的樂趣。

所需材料

在開始制作之前,我們需要準備以下材料和工具:

電子元件

  • Arduino Nano:這是一個功能強大的微型控制器,適合用于各種小型項目。
  • 搖桿模塊:用于控制貪吃蛇的移動方向。
  • 蜂鳴器:用于在游戲中發(fā)出音效,增加游戲的趣味性。
  • OLED 顯示模塊:用于顯示游戲畫面,OLED 屏幕具有高對比度和低功耗的特點,非常適合這個項目。
  • 跳線:用于連接各個電子元件。
  • 小型面包板:方便搭建電路,無需焊接。
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述

3D 打印材料

  • PLA 耗材(黑色和白色):用于打印游戲機的外殼。
  • 3D 打印機:用于打印外殼部件。

軟件工具

  • Arduino IDE:用于編寫和上傳代碼到 Arduino Nano。
  • Ultimaker Cura 切片軟件:用于將 3D 模型文件轉換為打印機可以識別的 G-code 文件。

其他工具

  • 熱熔膠槍:用于固定電子元件和組裝外殼。
  • 螺絲刀(可選):用于安裝搖桿模塊。

設計與 3D 打印

設計思路

這個項目的核心在于設計一個既小巧又實用的游戲機外殼。設計時,我考慮到了所有電子元件的尺寸,確保它們能夠完美地嵌入外殼中。外殼分為上下兩部分,底部用于放置 Arduino Nano 和其他電子元件,頂部則設計了專門的槽位來安裝 OLED 顯示屏和搖桿模塊。

3D 打印過程

  1. 模型設計:使用 Tinkercad 軟件設計了游戲機的外殼模型。Tinkercad 是一個非常易用的在線 3D 建模工具,適合初學者快速上手。你可以根據自己的需求調整模型的尺寸和形狀,甚至可以添加一些個性化的裝飾元素。
  2. 切片設置:將設計好的模型文件導出為 STL 格式,然后導入到 Ultimaker Cura 切片軟件中。在切片軟件中,你可以設置打印參數,如層高、填充密度等。建議使用默認的打印參數,以確保打印質量。
  3. 打印過程:將 PLA 耗材裝入 3D 打印機,開始打印。整個打印過程大約需要 30-40 分鐘,具體時間取決于你的打印機性能和設置的打印參數。打印完成后,檢查模型是否有瑕疵,如有需要可以進行簡單的清理。

如果你沒有 3D 打印機,也可以使用硬紙板按照設計尺寸制作外殼,并用膠水固定,雖然效果可能沒有 3D 打印的那么精致,但同樣可以完成項目。
在這里插入圖片描述
在這里插入圖片描述

電路搭建與代碼上傳

電路連接

在這里插入圖片描述
在這里插入圖片描述

在搭建電路之前,我們需要先將代碼上傳到 Arduino Nano 開發(fā)板。以下是詳細的連接步驟:

  1. 連接 OLED 顯示屏與開發(fā)板
    • OLED 的 SCL 引腳連接到 Arduino Nano 的 A4 引腳。
    • OLED 的 SDA 引腳連接到 Arduino Nano 的 A5 引腳。
    • OLED 的 VCC 引腳連接到 Arduino Nano 的 5V 引腳。
    • OLED 的 GND 引腳連接到 Arduino Nano 的 GND 引腳。
  2. 連接搖桿模塊與開發(fā)板
    • 搖桿模塊的 VRx 引腳連接到 Arduino Nano 的 A0 引腳。
    • 搖桿模塊的 VRy 引腳連接到 Arduino Nano 的 A1 引腳。
    • 搖桿模塊的 VCC 引腳連接到 Arduino Nano 的 5V 引腳。
    • 搖桿模塊的 GND 引腳連接到 Arduino Nano 的 GND 引腳。
  3. 連接蜂鳴器與開發(fā)板
    • 蜂鳴器的正極引腳連接到 Arduino Nano 的 D2 引腳。
    • 蜂鳴器的負極引腳連接到 Arduino Nano 的 GND 引腳。
  4. 連接電源
    • 將 USB 數據線的一端連接到 Arduino Nano 的 USB 接口,另一端連接到電腦或其他 USB 電源設備。

代碼上傳

  1. 安裝 Arduino IDE:從 Arduino 官方網站下載并安裝 Arduino IDE。
  2. 安裝 OLED 庫:在 Arduino IDE 中,打開“草圖”->“包含庫”->“管理庫”,搜索并安裝以下庫:
    • Adafruit GFX Library
    • Adafruit SSD1306 Library
  3. 上傳代碼:將提供的代碼復制到 Arduino IDE 中,選擇正確的開發(fā)板類型(Arduino Nano)和 COM 端口,然后點擊“上傳”按鈕。

以下是代碼示例(部分代碼):

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED顯示屏幕的寬度,以像素為單位
#define SCREEN_HEIGHT 64 // OLED顯示屏幕的高度,以像素為單位

// 定義OLED顯示屏的復位引腳,如果不適用可以設置為 -1
#define OLED_RESET     -1

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// 游戲變量
int snakeX[20], snakeY[20];
int appleX, appleY;
int direction = 0; // 0: 向右,1: 向下,2: 向左,3: 向上
int length = 3;

void setup() {
  // 初始化OLED顯示屏
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;);
  }
  display.clearDisplay();
  display.setTextSize(1);                      // 設置文本大小
  display.setTextColor(SSD1306_WHITE);          // 設置文本顏色
  display.setCursor(0, 10);                    // 設置文本起始位置
  display.println(F("Snake Game"));            // 顯示文本
  display.display();                           // 將以上圖形操作顯示出來
  delay(2000);                                 // 等待2秒

  // 初始化貪吃蛇和蘋果的位置
  snakeX[0] = 64; snakeY[0] = 32;
  snakeX[1] = 56; snakeY[1] = 32;
  snakeX[2] = 48; snakeY[2] = 32;
  spawnApple();
}

void loop() {
  // 游戲邏輯
  moveSnake();
  checkCollision();
  displaySnake();
  delay(200); // 控制游戲速度
}

void moveSnake() {
  // 移動貪吃蛇
  for (int i = length - 1; i > 0; i--) {
    snakeX[i] = snakeX[i - 1];
    snakeY[i] = snakeY[i - 1];
  }
  switch (direction) {
    case 0: snakeX[0] += 8; break; // 向右移動
    case 1: snakeY[0] += 8; break; // 向下移動
    case 2: snakeX[0] -= 8; break; // 向左移動
    case 3: snakeY[0] -= 8; break; // 向上移動
  }
  // 檢查是否吃到蘋果
  if (snakeX[0] == appleX && snakeY[0] == appleY) {
    length++;
    spawnApple();
  }
}

void checkCollision() {
  // 檢查碰撞
  for (int i = 1; i < length; i++) {
    if (snakeX[0] == snakeX[i] && snakeY[0] == snakeY[i]) {
      // 碰撞到自己,游戲結束
      display.clearDisplay();
      display.setTextSize(2);
      display.setTextColor(SSD1306_WHITE);
      display.setCursor(10, 20);
      display.println(F("Game Over!"));
      display.display();
      while (1); // 停止程序
    }
  }
}

void displaySnake() {
  // 顯示貪吃蛇
  display.clearDisplay();
  for (int i = 0; i < length; i++) {
    display.fillRect(snakeX[i], snakeY[i], 8, 8, SSD1306_WHITE);
  }
  display.fillRect(appleX, appleY, 8, 8, SSD1306_RED);
  display.display();
}

void spawnApple() {
  // 隨機生成蘋果
  appleX = random(0, SCREEN_WIDTH / 8) * 8;
  appleY = random(0, SCREEN_HEIGHT / 8) * 8;
}

最終組裝

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

固定 Arduino Nano

  1. 粘貼 Arduino Nano:將 Arduino Nano 使用熱熔膠固定在 3D 打印的底座上。確保 USB 接口朝向底座的開口,以便連接電源。
  2. 安裝 OLED 顯示屏:將 OLED 顯示屏插入頂部外殼的槽位中,并使用熱熔膠固定。
  3. 安裝搖桿模塊:將搖桿模塊插入頂部外殼的槽位中,并使用熱熔膠固定。

組裝外殼

  1. 粘合上下外殼:使用熱熔膠將頂部外殼和底座粘合在一起。注意不要使用過多的膠水,以免影響外殼的外觀。
  2. 檢查連接:確保所有電子元件的連接牢固,搖桿模塊和 OLED 顯示屏能夠正常工作。

測試與使用

測試步驟

在這里插入圖片描述
在這里插入圖片描述

  1. 連接電源:將 USB 數據線的一端連接到 Arduino Nano 的 USB 接口,另一端連接到充電寶或其他 USB 電源設備。
  2. 啟動游戲:按下搖桿模塊的按鈕,OLED 顯示屏上應該顯示貪吃蛇游戲的界面。使用搖桿模塊控制貪吃蛇的移動方向,讓貪吃蛇吃掉屏幕上的蘋果。
  3. 游戲規(guī)則:當貪吃蛇吃到蘋果時,蜂鳴器會發(fā)出“嗶”的一聲,同時貪吃蛇的長度會增加。如果貪吃蛇的頭部撞到自己的身體,游戲結束,OLED 顯示屏上會顯示“Game Over”。

使用建議

  • 便攜性:由于游戲機可以通過 USB 供電,你可以將其連接到任何帶有 USB 接口的設備上,如充電寶、電腦等,隨時隨地享受游戲。
  • 個性化:你可以通過修改代碼來改變游戲的難度、速度或顯示效果。例如,你可以增加更多的水果類型、調整貪吃蛇的移動速度或添加新的音效。
  • 擴展功能:你可以嘗試添加更多的功能,如計分系統、多個游戲模式或與其他玩家對戰(zhàn)的功能。

項目擴展

這個項目不僅是一個有趣的 DIY 項目,還可以根據你的需求進行擴展和定制。以下是一些擴展建議:

  1. 添加計分系統:通過修改代碼,為游戲添加一個計分系統,記錄玩家的得分,并在 OLED 顯示屏上顯示。
  2. 增加游戲難度:隨著游戲的進行,逐漸增加貪吃蛇的移動速度,或者在屏幕上添加障礙物,增加游戲的挑戰(zhàn)性。
  3. 添加更多游戲模式:除了經典的貪吃蛇模式,你還可以添加其他游戲模式,如“時間挑戰(zhàn)模式”或“無盡模式”。
  4. 美化外殼:你可以使用噴漆或貼紙來美化 3D 打印的外殼,使其更加符合你的個人風格。
  5. 添加 LED 燈效:在游戲機的外殼上安裝一些 LED 燈,通過 Arduino 編程控制 LED 的閃爍,為游戲增加更多的視覺效果。

總結

這個 3D 打印迷你貪吃蛇游戲機項目是一個非常有趣且實用的 DIY 項目,它不僅能夠讓你重溫經典的游戲,還能讓你親手制作一個屬于自己的便攜式游戲機。通過這個項目,你可以學習到 3D 打印、電子電路搭建和 Arduino 編程的基礎知識。更重要的是,你可以根據自己的需求對項目進行擴展和定制,讓它成為你獨一無二的桌面小玩具。

希望這篇文章能夠激發(fā)你的創(chuàng)造力,讓你動手制作屬于自己的迷你貪吃蛇游戲機。如果你在制作過程中遇到任何問題,歡迎在評論區(qū)留言,我會盡力為你解答。如果你已經完成了這個項目,也歡迎在評論區(qū)分享你的作品,讓我們一起交流和學習!

希望你喜歡這個項目,并在構建過程中找到樂趣!如果你有任何問題或需要幫助,歡迎在評論區(qū)交流。

作者:Svan.


注意:本博文為不得在未經本人同意進行轉載或者二次創(chuàng)作,違者必究!?。?/p>

博客主頁:https://blog.csdn.net/weixin_51141489,需要源碼或相關資料實物的友友請關注、點贊,私信吧!

  • 聯系方式.txt
    下載

相關推薦