项目简介
本项目是一个结合了STM32嵌入式系统与PC端应用程序的星空指向系统,采用C++和Python编程语言开发。通过WiFi通信,PC端接收用户输入的待观测星体信息并发送给STM32。STM32依据接收到的数据,利用磁力计获取设备方向信息,进而控制步进电机和舵机,使星空指向器准确指向目标星体。
项目的主要特性和功能
- WiFi通信:实现PC与STM32之间的数据实时交互。
- 磁力计功能:读取设备的偏航角、俯仰角和翻滚角等方向信息。
- 电机控制:根据接收到的数据控制步进电机和舵机转动,实现星空指向。
- 校准重置:提供磁力计校准和设备重置功能,保障数据准确和设备正常运行。
- 用户交互:PC端通过GUI界面,允许用户输入待观测星体名称。
安装使用步骤
环境准备
确保PC和STM32连接到同一WiFi网络。
PC端操作
- 复制
skypointer_pc
文件夹。 - 安装所需库:
bash pip install -r requirements.txt
- 配置WiFi:
- 修改
main.py
中的IP地址为PC的IP地址:python HOST = "YOUR_IP_ADDRESS" PORT = YOUR_PORT
- 修改
source/my_wifi.h
中的端口地址为套接字监听的端口:c++ static constexpr size_t REMOTE_PORT = YOUR_PORT;
- 修改
- 运行程序:
运行
main.py
,程序开始监听端口,等待来自微控制器的数据,此时会弹出GUI界面,在文本框中输入想要观测的星体并按回车键。
STM32端操作
- 复制
skypointer_stm32
文件夹。 - 配置WiFi:
- 修改
mbed_app.json
中的WiFi SSID和密码:c++ "nsapi.default-wifi-ssid": "\"YOUR_WIFI_ID\"", "nsapi.default-wifi-password": "\"YOUR_WIFI_PASSWORD\"",
- 修改
mbed_app.json
中的IP地址为PC的IP地址和端口:json "config": { "hostname": { "value": "\"PC_IP_ADDRESS\"" }, }
- 修改
- 运行程序: 使用MbedOS 6编译程序,并下载到微控制器。
硬件连接
- 连接STM32与步进电机驱动器 | 步进电机驱动器 | STM32 | | ----- | ------------------ | | EN | D1 | | MS1 | D2 | | MS2 | D3 | | MS3 | D4 | | STEP | D10 | | DIR | D0 | | VDD | 5V | | GND(靠近VDD) | GND |
- 连接步进电机驱动器与步进电机 | 驱动器 | 步进电机 | | ----- | ------ | | 2B | 红色 | | 2A | 绿色 | | 1A | 蓝色 | | 1B | 黑色 | | STEP | D10 | | DIR | D0 |
- 连接舵机与STM32 | STM32 | 舵机 | | ----- | ----- | | D6 | 信号 | | 5V | VCC | | GND | GND |
使用方法
- PC端:在文本框中输入想要观测的星体,点击回车键。若星体不在数据库中,指向器将指向北极星。
- STM32端
- 设置:WiFi套接字连接成功后,橙色LED亮起;校准完成后,LED 3亮起。校准过程中请勿移动微控制器。
- 重新校准:若需要重新校准微控制器,按下微控制器上的用户按钮。请在平坦表面进行校准。
- 观测:校准完成后,可在PC端文本框中输入想要观测的星体并点击回车键,星空指向器将指向目标星体。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】