## Quadruped robot control board QR-Board
![img1.png]

## Introduction
QR-Board is a quadruped robot control board based on STM32G0 microcontroller. It supports a series of commonly used hardware modules for quadruped robots (such as servos, IMU, ultrasonic ranging, WiFi, OLED and other modules), and provides complete usage routines, which can easily complete the development of robot and other application functions
! [img2.jpg]

## Demonstration and code
[bilibili: QR -Board onboard function demonstration](https://www.bilibili.com/video/BV1KF411n76f?spm_id_from=333.999.0.0)
[GitHub: QR-Board code](https://github.com/Zhou-yunchuan/QR -Board)
## Hardware Resources
> **Dual MCU Application**
STM32G070CBT6 microcontroller, 64MHz frequency, 128KB FLASH, 36KB SRAM, supports SWD/UART program download
ESP-01S WiFi module, can be based on Arduino programming or AT commands Control, support UART program download
> **Onboard peripheral interface**
8 optocoupler isolated 5V PWM servo interfaces
3 Feite scs series bus servo interfaces
1 MPU6050 module interface 1
I2C OLED module interface
HC-SR04 ultrasonic ranging module interface
1 USB to TTL
MicroUSB
communication
interface Software routine
software tool
- STM32CubeMX - Board support package routine provided by
MDK-ARM Keil5 | Serial number | Project name | Project description | | ---- | ---------- | ---- -------------------------------------------------- ------ | | 1 | led | RGB three-color LED light board-level support package, supports LED on, off, level flip, running water light | | 2 | key | Keyboard-level support package based on multi_button, supports Single click, double click, and long press of the button | | 3 | pwmbuzzer | Passive buzzer board-level support package, driven by PWM to produce sound, supporting the on, off, and sound frequency settings of the buzzer | | 4 | pwmservo | PWM helm Board-level support package, driven by PWM with a period of 20ms (high level accounts for 0.5ms to 2.5ms), supports 0° to 180° output of 8-channel servos | | 5 | scservo | Feite SCS series bus servos Board-level support package, driven by serial port USART2 | | 6 | smservo | Feite SMS series bus servo board-level support package, driven by serial port USART2 | | 7 | mpu6050 | MPU6050 module board-level support package, driven by analog I2C, supported Acquisition of raw data of three-axis gyroscope and accelerometer, module temperature, Euler angle based on DMP solution | | 8 | stm32flash | STM32 internal FLASH board-level support package, supports page-based reading and writing of STM32 internal FLASH | | 9 | rtt | rt-thread board-level support package, providing static and dynamic thread creation examples | | 10 | battery | Battery board-level support package, using ADC+DMA to obtain lithium battery voltage | | 11 | esp8266 | ESP8266 module board level Support package, the ESP8266 module connects to STM32 through the serial port USART1 and sends data. STM32 uses DMA+IDLE to parse the data frames from the ESP8266 module | | 12 | hcsr04 | HC-SR04 module board-level support package, using PWM input capture and state machine implementation Obtaining ultrasonic ranging information|