Skip to content

renhong-zhang/stm32-crawler-robot-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

@renhong-zhang/stm32-crawler-robot-platform

A Crawler Robot Project Based on STM32 H7 and STM32 F4
This crawler robot is a multitasking platform with sensing, data processing, decision-making, and path-following functions managed by a closed-loop control system with high accuracy and fast response. I am the Team Leader of this ten-person Robot Project. My responsibilities include member recruitment, project management, software & hardware design, STM32 coding, control system design & implementation, 3D modeling & printing, and so on. I put the hardware library I coded and the control system I designed in this repository.
View Demo · Report bug · Request feature

Prerequisites Matlab
Languages & Tools C simulink STM32-HAL Solidworks UML LaTeX Pandoc
License License: GNU GPL v3.0
State Maintained

-----------------------------------------------------

Table of Contents
  1. About The Project
  2. Author
  3. How can I support you?
  4. Acknowledgments
  5. License

-----------------------------------------------------

About The Project

Framework

This robot is built from the ground up, and its main methods are defined before implementation. I designed the robot's code structure with Universal Modelling Language using ideas similar to object-oriented programming in C++, Python, and other languages (UML). Furthermore, because no tool exists to generate C code from a UML model, I created one using javascript that converts the model to C code that works well with the STM32's HAL. Robot Model in UML

Control System

I created this controller using Matlab and Simulink, and the C code generated by the controller runs successfully on the STM32 board. The algorithm instructs the robot to follow the expected path precisely. This model's screenshots and overview are shown below. Overview of the Closed-loop Control System The Control System Screenshot of Simulilnk The PID Motor Controller Constructed Using Measured Motor Data

Hardware Programming

The code used to control each component is carefully coded and tested using an oscilloscope to monitor input and output signals. You can find these codes in the ./Hardware/ directory.

PCB Design

I designed an STM32 F411CEU6 board with Cadence and its Allegro PCB Designer to control the servo and motor with the control system.

3D Design and Printing

By utilizing a linkage structure, the robot could easily drop a tennis ball into the basket as the task required. This structure has been meticulously calculated and modeled in Solidworks. Furthermore, to ensure that the components' installation does not conflict, I built the robot model using the data from the component documentation and the data I measured. After completing these steps, I ordered 3D printing with the corresponding files. Robot Model Linkage Working Process

Note and LaTeX

The experiments have well-formatted markdown notes generated as formal experiment notes with recorded details in a suitable format using the LaTex template I created and the Pandoc.

Management

Project Management

I managed this project using the project management tool OmniPlan, and tools I created to ensure a direct link between the project plan and all of our team members. Our project's Gantt Chart is shown below.

Code Management

I defined our code's style guide based on Google's C++ Style Guide to ensure the quality of code from each member. You can find this guide in ./Management/ directory. And the code is all managed with the GitHub Workflow.

Built With

Major Frameworks/Libraries C
Matlab
simulink
STM32-HAL
Solidworks
UML
LaTeX
Pandoc

-----------------------------------------------------

Author

demo Renhong Zhang
Github: @renhong-zhang

-----------------------------------------------------

How can I support you?

There are lots of ways to support me! I would be so happy if you give this repository a ⭐️ and tell your friends about this little corner of the Internet.

-----------------------------------------------------

Acknowledgments

-----------------------------------------------------

License

GNU General Public License version 3

Copyright © 2022-present, Renhong Zhang

About

A Crawler Robot Project Based on STM32 H7 and STM32 F4

Resources

License

Stars

Watchers

Forks

Languages