项目简介
本项目是为STM32F746ZG开发板打造的嵌入式系统固件。它具备基于PID控制器的机械臂控制程序,能通过USB HID接口与MATLAB等软件通信,接收控制指令并发送传感器数据。同时,系统提供了Dummy模拟模式和物理模式,可分别用于机械臂运行模拟测试以及真实环境中的机械臂控制。
项目的主要特性和功能
- PID控制:借助PID控制器调整机械臂关节位置,精确追踪设定的目标位置。
- 双模式支持:提供Dummy模拟模式,便于在未连接机械臂时进行测试与调试;支持物理模式,可在真实环境中控制机械臂。
- 通信交互:利用USB HID协议与MATLAB等软件进行交互,实现对机械臂的控制与监测。
安装使用步骤
1. 配置环境
- 驱动和udev规则:在非实验室机器上,需安装udev规则,使用以下命令:
sudo cp 81-neuronrobotics.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo adduser $USER dialout
- 工具链安装:安装必要的工具链,使用以下命令:
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt install gcc-arm-embedded automake libusb-1.0-0-dev putty libhidapi-dev python-pip libtool git oracle-java8-set-default oracle-java8-installer sudo pip install mbed-cli git clone http://repo.or.cz/r/openocd.git cd openocd ./bootstrap ./configure --enable-stlink --enable-ftdi --enable-cmsis-dap --prefix=/usr/local make -j8 sudo make install
完成后,注销并重新登录以使权限生效。
2. 配置SSH密钥
3. 配置Git
设置全局用户名和邮箱:
git config --global user.name "John Doe"
git config --global user.email johndoe@wpi.edu
可使用以下命令检查配置:
git config --list
git config --list|grep user
4. 复制项目
- 首次设置:从共享URL复制项目,并设置私有仓库:
cd RBE3001_nucleo_firmware git remote set-url origin DO_NOT_COPY_THIS_REPLACE_IT_WITH_MY_Private_Repo_URL_here git checkout master git push -u origin master git remote -v
- 后续复制:在新机器上,从私有仓库复制项目:
git clone MY_Private_Repo_URL_here cd M-Repo_Folder
5. 初始化、编译和部署固件
git submodule init
git submodule update
mbed deploy
mbed-cli compile -j0 -t GCC_ARM -m nucleo_f746zg --source . --source ./mbed-os/features/unsupported/USBDevice/USBDevice/ --source ./mbed-os/features/unsupported/USBDevice/USBHID/ -f
若构建过程结束时出现错误信息,检查开发板是否连接到计算机并重新尝试。
6. 验证通信
使用putty监听串口ttyACM0:
putty -serial /dev/ttyACM0
若成功,应能看到预期输出。
7. 安装Eclipse (CDT)
从Direct Download Link for Eclipse下载Eclipse,解压并运行安装程序,选择C/C++版本并安装在默认位置。
8. Eclipse设置
- 安装GNU ARM Eclipse插件,地址为
http://gnu-mcu-eclipse.netlify.com/v4-neon-updates
,安装后重启Eclipse。 - 设置MCU的工具链路径:Window->Preferences->MCU->Global ARM Toolchain Paths->Toolchain folder为
/usr/arm-none-eabi/bin/
,应用并关闭。 - 导入项目:File菜单->Import... ->C/C++ -> Existing Code as Makefile Project,选择项目目录,选择ARM Cross GCC,完成导入。
- 设置构建命令:右键点击项目->Properties->C/C++ Build,Builder Settings->Build Command为
mbed-cli compile -j0 -t GCC_ARM -m nucleo_f746zg --source . --source ./mbed-os/features/unsupported/USBDevice/USBDevice/ --source ./mbed-os/features/unsupported/USBDevice/USBHID/
。 - 修复标准类型错误:右键点击项目->Properties->C/C++ Build ->Settings->Toolchains->Toolchain path设置为
/usr/arm-none-eabi/bin/
,应用并保存,然后右键点击项目->Index-> Rebuild,等待C/C++索引器完成。
9. 核心固件维护和问题报告
- 上游更新:当课程工作人员更新或修复系统代码或依赖库时,运行以下命令:
git pull RBE-UPSTREAM master git submodule init git submodule update cd lib/AS5050/ git pull origin master cd .. cd lib/MbedPwmServo/ git pull origin master cd .. cd lib/PID_Bowler/ git pull origin master cd .. cd lib/SimplePacketComs/ git pull origin master cd ..
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】