Toto je starší verze dokumentu!
Na vývojové desce STM32F4DISCOVERY s akcelerometrem LIS302DL/LIS3DSH realizujte výpočet příčného a podélného náklonu (roll, pitch). Uvažujte libovolnou polohu akcelerometru vůči základně, tj. implementujte derotaci vstupního datového vektoru dle postupu v DT0076.
Cieľom tohto projektu je:
Derotačná matica bude počítaná pomocou Matlabu, pretože obsahuje goniometrické funkcie. Program bude možno ovládať cez UART konzolu (vložiť derotačnú maticu, kompenzovať výpočet náklonu).
K realizácii projektu bola použitá vývojová deska STM32F4DISCOVERY od firmy STMicroelectronics, súčasťou ktorej je 3-osový MEMS akcelerometer LIS302DL/LIS3DSH. Taktiež obsahuje ST-Link/V2 programátor/debugger. Je založená na jadre ARM Cortex-M4, ktorý je taktovaný 8 MHz kryštálom, má 1MB Flash pamäť a 192kB RAM. K umožneniu ovládania programu z počítača cez konzolu pomocou sériovej linky bol použitý UART-USB prevodník s čipom CP2102.
float get_degree_tilt(float val, int16_t max_val) { float deg_tilt; /* constrain values */ if(val > max_val) { val = max_val; } else if(val < -max_val) { val = -max_val; } /*map values to range -90° - 90° */ deg_tilt = (90*val) / max_val; return deg_tilt; }
DT0076- Compensating for accelerometer installation error: zeroing pitch and roll for a reference orientation: https://www.st.com/resource/en/design_tip/dm00358510.pdf
Rotation matrix for rotations around x-axis: https://www.mathworks.com/help/phased/ref/rotx.html