ย
Language : C
Program : IAREWARM, VSCode, STM32CubeIDE, STM32CubeMx, ST-Link, Matlab
ย
Frame : length 500mm
Board : Nucleo-F439Zi (ARM Cortex-M4)
BLDC motor : dys G-Power Series
ESC : 30A ESC
IMU sensor : MPU6050 GY521
Alt sensor : BMP180
Sample rate : Sensors 1kHz, ESC 40Hz
ย
ESC : PWM signal PA0(front), PB3(back), PB10(left), PA3(right)
BMP180 : I2C SCL PB9, SDA PB6
IMU : I2C SCL PF1, SDA PF0
ย
void IMU_read_data(I2C_HandleTypeDef* hi2c, mpu6050* MPU6050){
MPU6050->Gyro_x = MPU6050->Angle_x + MPU6050->gyro_dps_x * dt;
MPU6050->Gyro_y = MPU6050->Angle_y + MPU6050->gyro_dps_x * dt;
MPU6050->Accel_x = atan2(MPU6050->acc_raw_y, sqrt(pow(MPU6050->acc_raw_x, 2) + pow(MPU6050->acc_raw_z, 2)))* Rad_to_deg;
MPU6050->Accel_y = atan2(-1 * MPU6050->acc_raw_x,sqrt(pow(MPU6050->acc_raw_y, 2) + pow(MPU6050->acc_raw_z, 2)))* Rad_to_deg;
MPU6050->Angle_x = alpha * MPU6050->Gyro_x + (1 - alpha) * MPU6050->Accel_x;
MPU6050->Angle_y = alpha * MPU6050->Gyro_y + (1 - alpha) * MPU6050->Accel_y;
}ย
[1] Eunhye Seok (2021.02.20.). STM32_HAL_MPU6050_lib. https://github.com/mokhwasomssi.
[2] Fanni, M., & Khalifa, A. (2017). A new 6-DOF quadrotor manipulation system: Design, kinematics, dynamics, and control. IEEE/ASME Transactions On Mechatronics, 22(3), 1315-1326.
[3] ๊น์ง์, ์์๋, ํ์ฌ์. (2012). ์ผ์ ๊ฒฐํฉ์ ํตํ ์ฟผ๋์ฝฅํฐ์ ์์ธ์ ์ด ์๋ฎฌ๋ ์ดํฐ ๊ตฌํ. ํ๊ตญ์ ๋ณด๊ธฐ์ ํํ๋
ผ๋ฌธ์ง, 10(7), 1-11.
[4] ๋ฅ์ฑ์ง. (2016). ๋๋ก ์ ์์ฉํ(ๅธธ็จๅ)์ ๋ฐ๋ฅธ ์์ ๊ณผ ๋ฒ์ ๋ฌธ์ . ๋ฒ์ ์ฐ๊ตฌ, 51, 241-282.
[5] ์๋ฏผ์ฐ. (2021). ESP32 ์๋์ด๋
ธ ๋๋ก ๋ง๋ค๊ณ ์ง์ ์ฝ๋ฉ์ผ๋ก PID ์ ์ดํ๊ธฐ. ๊ณ ์: ์ค์จ๋ถ.
[6] ์ํ์, ์ด๋์ค. (2016). ๋๋ก ๋นํ์ ์ด ๋ฐ ์ํ์ถ์ ๊ธฐ์ด. ํ๊ตญํต์ ํํ์ง(์ ๋ณด์ํต์ ), 33(2), 86-92.
[7] ์ค๋์ฉ. (2017). (ARM Cortex-M0) STM32F091 ์ ๋ณต:OK-STM091 ํคํธ. ์์ธ : Ohm์ฌ.
[8] ํ๋ด์กฐ. (2022). (๊ธฐ์ด์์ ์์ฉ๊น์ง) STM32Fx Cortex ARM ํ๋ก๊ทธ๋๋ฐ : ๊ธฐ์ดํธ. ์์ธ : ์ง์๊ณผ๊ฐ์ฑ#
