前往
大廳
主題

大家好我目前高中三年級

我愛山芋 | 2025-02-26 12:05:49 | 巴幣 0 | 人氣 38

大家好我目前高中三年級,我目前有需要做專題的需求,當我在課本上看到分離卡不能量側角度時,我就想讓我更常用的游標卡尺可以量測角度,以上是我問Ai的結果,如果可以的話請大家播出空檔幫我看看,能不能成功,謝謝。🙇🏻♂️🙇🏻♂️

數位化「分離卡測量角度」裝置製作步驟

這份指南將帶你從材料準備、硬體組裝到程式編寫與測試,確保你的專題能順利完成。

🔹 1. 材料準備

項目 用途 預估成本 (台幣)
數位游標卡尺 測量長度 200-500
MPU6050 角度感測器 測量角度 100
Arduino Nano(或 Uno) 控制處理數據 200
OLED 0.96” 顯示器 顯示測量結果 150
杜邦線 連接元件 50
3D 列印固定架(可選) 穩定感測器與卡尺 50
鋰電池模組(可選) 提供行動電源 100
總計 約 700 - 1000

🔹 2. 硬體組裝

(1) 安裝數位游標卡尺
• 選擇 具有數據輸出功能 的數位游標卡尺(如帶 RS232、USB、或 SPI 通訊協定的型號)。
• 若卡尺不支援數據輸出,可改為「手動輸入長度」,後續再優化。

(2) 固定 MPU6050 角度感測器
• 固定方式:
• 使用 3D 列印支架(最佳選擇)
• 或用熱熔膠、雙面膠、螺絲固定在卡尺的一端
• 感測器擺放位置:
• 方式 1(推薦):固定在卡尺的「滑動端」,這樣當卡尺夾住物品時,感測器可以測得「開合角度」。
• 方式 2:固定在卡尺的「固定端」,測量整個裝置相對於桌面的傾角。

(3) 連接電子元件

使用杜邦線連接 MPU6050、OLED 顯示器與 Arduino:

元件 Arduino Nano 接腳
MPU6050 VCC 5V
MPU6050 GND GND
MPU6050 SCL A5
MPU6050 SDA A4
OLED VCC 5V
OLED GND GND
OLED SCL A5
OLED SDA A4

📌 注意:
• MPU6050 和 OLED 共用 I2C 通訊,所以 SCL、SDA 接同樣的 Arduino 腳位(A4, A5)。
• 若使用鋰電池供電,需確保 Arduino 能夠穩定供電給感測器和螢幕。

🔹 3. 程式編寫

(1) 安裝 Arduino 開發環境
1. 下載並安裝 Arduino IDE。
2. 安裝 MPU6050 庫 和 Adafruit SSD1306 顯示庫:
• MPU6050:
工具 → 庫管理員 → 搜尋 Adafruit MPU6050 → 安裝
• OLED 顯示器:
工具 → 庫管理員 → 搜尋 Adafruit SSD1306 → 安裝

(2) 上傳 Arduino 程式

📌 程式功能:
• 讀取 MPU6050 傳感器的 角度
• 顯示 長度(手動輸入)與角度 在 OLED 螢幕
• 可擴展至 數位卡尺自動讀取長度

#include <wire.h>
#include <adafruit_mpu6050.h>
#include <adafruit_ssd1306.h>
#include <adafruit_gfx.h>

// 初始化 MPU6050 傳感器 & OLED
Adafruit_MPU6050 mpu;
Adafruit_SSD1306 display(128, 64, &Wire);

void setup() {
Serial.begin(115200);
Wire.begin();

// 初始化 MPU6050
if (!mpu.begin()) {
Serial.println("MPU6050 初始化失敗!");
while (1);
}

// 初始化 OLED 顯示器
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("OLED 顯示初始化失敗!");
while (1);
}

display.clearDisplay();
}

void loop() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);

// 計算角度
float angle = atan2(a.acceleration.y, a.acceleration.x) * 180 / PI;

// 顯示數據
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0,0);
display.print("Length: ");
display.print(10.50); // TODO: 若有卡尺輸出,可改為讀取數據
display.print(" cm");

display.setCursor(0, 20);
display.print("Angle: ");
display.print(angle);
display.println(" deg");

display.display();
delay(500);
}

🔹 4. 測試與校準

(1) 測試 OLED 顯示
• 上電後,應該看到「長度: 10.50 cm」、「角度: XX.X°」在 OLED 螢幕上。

(2) 測試角度感測器
1. 擺放卡尺 在桌面,記錄 OLED 顯示的角度(應接近 0°)。
2. 將卡尺張開不同角度(例如 30°、45°、90°),確認 OLED 顯示角度是否合理。

(3) 校準角度感測器
• 若角度有偏差,可透過「補償值」修正:

float angle_offset = 2.5; // 手動調整這個數值
float angle = atan2(a.acceleration.y, a.acceleration.x) * 180 / PI + angle_offset;



(4) 若要加入數位卡尺自動讀取
1. 確認你的數位卡尺是否有數據輸出(RS232、USB、SPI)。
2. 若有,需使用「TTL 轉 RS232 模組」來讀取卡尺數據並傳入 Arduino。
</adafruit_gfx.h></adafruit_ssd1306.h></adafruit_mpu6050.h></wire.h>

0則留言

更多創作