Giter Site home page Giter Site logo

michunie99 / balance_robot_stm32 Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 3.58 MB

It's my hobby project of a self-balancing robot using a STM32F411 as a controller.

C 97.46% Assembly 0.43% Makefile 2.11%
complementary-filter imc20948 pid-control robotics stm32f4

balance_robot_stm32's Introduction

balance_robot_stm32

It's my hobby robotics project. The robot is based on STM32F411 Nuceleo-64 board as a controller. The robot uses simple complementary filter to calculate tilt angle and a PID controller.

Hardware

  • Controler - STM32F411 Nucleo-64
  • Motors - Pololu 75:1 Metal Gearmotor 25D MP 12V
  • Motor controler - MAX14870 Single Brushed DC Motor Driver
  • Custom power distribution board - unfortunately I lost the schematic and all the files for my design

My code

My code can be found in /Core/Inc (header files) and /Core/Src (source files)

  • balance_pid.h/balance_pid.c - PID controller used to control angle of the robot,
  • comp_filter.h/comp_filter.c - complementary filter used to filter IMU data and calculate robots' angle,
  • ICM20948_I2C.h/ICM20948_I2C.c - simple library to set up ICM20948 and read acceleration and gyro data using I2C,
  • max14870.h/max14870.c - library to control PWM motor driver.

Video

robot

Robots still needs some tuning

Future plans

  • Create model and simulation of the robot in Python (for LQR regulator),
  • Implement Kalman filter to be able to use state controller,
  • Add speed controller to be able to drive robot around.

balance_robot_stm32's People

Contributors

michunie99 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.