STM32H7-Based Battery-Powered Robotic System with Ultrasonic Sensing
View and Edit Project In Cirkit Designer
Circuit Documentation
Summary
This document provides a detailed overview of a circuit that includes a variety of components such as a LiPo battery, motor drivers, DC motors, linear actuators, directional switches, an ultrasonic sensor, and an STM32H7 microcontroller. The circuit is designed to control motors and actuators based on sensor inputs and directional switches, with the STM32H7 microcontroller serving as the central control unit.
Component List
LiPo Battery 2200mAH 30C
- Description: A rechargeable lithium polymer battery with a capacity of 2200mAH and a discharge rate of 30C.
- Pins: VCC, GND
Motor Driver
- Description: A motor driver used to control the speed and direction of DC motors and linear actuators.
- Pins: VB+, VB-, M1A, M1B, M2A, M2B, 5V, GND
DC Motor
- Description: A simple DC motor used for various mechanical movements.
- Pins: pin 1, pin 2
Linear Actuator
- Description: A device that creates motion in a straight line, used for applications requiring linear movement.
- Pins: +, -
Directional Switch
- Description: A switch used to control the direction of current flow.
- Pins: Out 2, IN, Out 1
HC-SR04 Ultrasonic Sensor
- Description: An ultrasonic sensor used for distance measurement.
- Pins: VCC, TRIG, ECHO, GND
STM32H7 Microcontroller
- Description: A high-performance microcontroller used for controlling various components in the circuit.
- Pins: PC11, PC10, PD2, PC12, VDD, E5V, BT0, GND, PF6, NC, IOREF, PF7, PA13, NRST, 3V3, PA14, PA15, PB7, PC13, PC14, PC15, OSCI, OSCD, VBAT, PC2, PC3, PD4, PD5, PD6, PD7, PE3, PF1, PF0, PD1, PD0, PG0, PE1, PG9, PG12, PD9, 5V, VIN, PA0, PA1, PA4, PB0, PC1, PC0, PD3, PG2, PG11, PG13, PG10, PG15, PEG, PG1, PF9, PF8, PF2, PE5, PE4, PE2, PG3, PC9, PC8, PB8, PB9, PC5, VREF+, PC6, U5V, PD8, PA5, PA12, PA6, PA11, PA7, PB12, PB6, PB11, PC7, PA9, PB2, PA8, PB1, PB10, PB15, PB4, PB14, PB5, PB13, PB3, AGND, PA10, PA2, PC4, PF5, PF4, PA3, PE8, PD13, PF10, PD12, PD11, PE10, PE12, PG4, PG7, PD10, PG14, PF12, PF13, PE13, PE14, PE15, PE7, PD14, PD15, PF14, PE9, PE11, PF3, PF15, PF11, PE0, PG8, PG5, PG6
Wiring Details
LiPo Battery 2200mAH 30C
VCC is connected to:
- Motor Driver (VB+)
- Motor Driver (VB+)
- Motor Driver (VB+)
- STM32H7 (VIN)
GND is connected to:
- Motor Driver (VB-)
- Motor Driver (VB-)
- STM32H7 (GND)
Motor Driver
VB+ is connected to:
- LiPo Battery (VCC)
- LiPo Battery (VCC)
- LiPo Battery (VCC)
VB- is connected to:
- LiPo Battery (GND)
- LiPo Battery (GND)
- STM32H7 (GND)
M1A is connected to:
- STM32H7 (PA7)
- Linear Actuator (-)
- DC Motor (pin 2)
M1B is connected to:
- STM32H7 (PA6)
- Linear Actuator (+)
- DC Motor (pin 1)
5V is connected to:
- STM32H7 (5V)
- Directional Switch (IN)
- Directional Switch (IN)
- Directional Switch (IN)
- Directional Switch (IN)
GND is connected to:
- STM32H7 (GND)
- STM32H7 (GND)
DC Motor
pin 1 is connected to:
- Motor Driver (M1B)
pin 2 is connected to:
- Motor Driver (M1A)
Linear Actuator
+ is connected to:
- Motor Driver (M1B)
- Motor Driver (M1B)
- is connected to:
- Motor Driver (M1A)
- Motor Driver (M1A)
Directional Switch
Out 2 is connected to:
- STM32H7 (PG9)
- STM32H7 (PG13)
Out 1 is connected to:
- STM32H7 (PG12)
- STM32H7 (PG11)
IN is connected to:
- STM32H7 (5V)
- STM32H7 (GND)
HC-SR04 Ultrasonic Sensor
VCC is connected to:
- STM32H7 (3V3)
TRIG is connected to:
- STM32H7 (PA1)
ECHO is connected to:
- STM32H7 (PA0)
GND is connected to:
- STM32H7 (GND)
STM32H7 Microcontroller
3V3 is connected to:
- HC-SR04 Ultrasonic Sensor (VCC)
PA0 is connected to:
- HC-SR04 Ultrasonic Sensor (ECHO)
PA1 is connected to:
- HC-SR04 Ultrasonic Sensor (TRIG)
PA6 is connected to:
- Motor Driver (M1B)
PA7 is connected to:
- Motor Driver (M1A)
PA8 is connected to:
- Motor Driver (M1A)
PA9 is connected to:
- Motor Driver (M1B)
PA2 is connected to:
- Motor Driver (M1B)
PA3 is connected to:
- Motor Driver (M1A)
PG9 is connected to:
- Directional Switch (Out 2)
PG12 is connected to:
- Directional Switch (Out 1)
PG11 is connected to:
- Directional Switch (Out 1)
PG13 is connected to:
- Directional Switch (Out 2)
5V is connected to:
- Motor Driver (5V)
- Directional Switch (IN)
VIN is connected to:
- LiPo Battery (VCC)
GND is connected to:
- LiPo Battery (GND)
- Motor Driver (VB-)
- HC-SR04 Ultrasonic Sensor (GND)
Code Documentation
sketch.ino
void setup() {
// put your setup code here, to run once:
}
void loop() {
#include "stm32f1xx_hal.h"
// Function prototypes
void SystemClock_Config(void);
void init_GPIO(void);
void init_I2C(void);
void init_UART(void);
void read_DHT11(void);
void read_RTC(void);
void read_PulseOximeter(void);
void read_BodyTemp(void);
void check_SmokeDetector(void);
void handle_Buttons(void);
void send_GSM_Alert(void);
void update_LCD(void);
int main(void) {
HAL_Init();
SystemClock_Config();
init_GPIO();
init_I2C();
init_UART();
while (1) {
read_DHT11();
read_RTC();
read_PulseOximeter();
read_BodyTemp();
check_SmokeDetector();
handle_Buttons();
update_LCD();
HAL_Delay(1000); // Delay for 1 second
}
}
void init_GPIO(void) {
// Initialize GPIO pins for all components
}
void init_I2C(void) {
// Initialize I2C communication
}
void init_UART(void) {
// Initialize UART communication
}
void read_DHT11(void) {
// Read data from DHT11 sensor
}
void read_RTC(void) {
// Read time from RTC Module
}
void read_PulseOximeter(void)