//这是一个追星云台的小程序
//配合Look4sat蓝牙传输数据(W*** A***),并让电机做出动作
//app设置内填好ESP32的蓝牙MAC,数据格式:W$AZ A$EL
//希望大家可以共同改进
//移除使能Pin,有待研究
//尽量注释了,思考了一个大概框架,用Ai来Debug
//2025.2.22 1800 BJ HoyAngX
#include <BluetoothSerial.h>
// Bluetooth实例
BluetoothSerial SerialBT;
// DRV8825引脚定义(已移除使能引脚控制)
#define DIR_PIN_AZ 16 // 方位角电机DIR(步进方向)引脚
#define STEP_PIN_AZ 17 // 方位角电机STEP(脉冲 PUL)引脚
#define DIR_PIN_EL 22 // 仰角电机DIR(步进方向)引脚
#define STEP_PIN_EL 23 // 仰角电机STEP(脉冲 PUL)引脚
#define LED_PIN 2 // LED引脚(ESP32内置LED)
// 全局变量
float targetAzimuth = 0.0; // 目标方位角
float targetElevation = 0.0; // 目标仰角
const float STEP_ANGLE = 1.8 / 32; // 32细分,每步0.05625°
const long STEPS_PER_REV = 200 * 32; // 每圈步数:6400步(42电机,200步/圈)
const long MAX_EL_STEPS = 90 / STEP_ANGLE; // 仰角最大步数:1600步(90°)
long currentAzSteps = 0; // 当前方位角步数
long currentElSteps = 0; // 当前仰角步数
bool wasConnected = false; // 记录上一次蓝牙连接状态
void setup() {
Serial.begin(115200); // 调试串口
SerialBT.begin("StarTracker"); // Bluetooth名称
// 初始化LED引脚
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
Serial.println("LED引脚已初始化");
// 初始化DRV8825引脚(仅DIR和STEP)
pinMode(DIR_PIN_AZ, OUTPUT);
pinMode(STEP_PIN_AZ, OUTPUT);
pinMode(DIR_PIN_EL, OUTPUT);
pinMode(STEP_PIN_EL, OUTPUT);
Serial.println("DRV8825引脚已初始化");
// 初始化
Serial.println("开始初始化序列...");
initializeGimbal();
Serial.println("追星云台已就绪&#
Look4sat蓝牙追星云台
于 2025-02-22 18:20:11 首次发布