├── MATLAB ├── logs │ └── error_log.txt ├── d2r.m ├── r2d.m ├── images │ └── curve.png ├── kalmanFnc.m └── valve_curve.m ├── .gitattributes ├── doc └── images │ ├── EPFL.png │ ├── Logo.png │ ├── ARGOS.png │ ├── eSpace.jpg │ ├── loxam.jpg │ ├── logo_LMAF.png │ ├── Logo_large.png │ ├── MSP430_comm.png │ ├── SPACETEC_Rocketry.png │ └── Element_beton_mold_nosecone.png ├── msp430 ├── Debug │ ├── ccsObjs.opt │ ├── FlyARocket_GNC_MSP430_slave.obj │ ├── FlyARocket_GNC_MSP430_slave.out │ ├── objects.mk │ ├── subdir_vars.mk │ ├── subdir_rules.mk │ ├── FlyARocket_GNC_MSP430_slave.pp │ └── sources.mk ├── _ccsproject ├── targetConfigs │ ├── readme.txt │ └── MSP430G2553.ccxml └── _project ├── Doxygen ├── html │ ├── Logo.jpeg │ ├── Logo.png │ ├── bc_s.png │ ├── bdwn.png │ ├── nav_f.png │ ├── nav_g.png │ ├── nav_h.png │ ├── open.png │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ ├── closed.png │ ├── doxygen.png │ ├── ftv2cl.png │ ├── ftv2doc.png │ ├── ftv2mo.png │ ├── ftv2ns.png │ ├── sync_on.png │ ├── ftv2blank.png │ ├── ftv2link.png │ ├── ftv2mnode.png │ ├── ftv2node.png │ ├── ftv2pnode.png │ ├── sync_off.png │ ├── ftv2lastnode.png │ ├── ftv2splitbar.png │ ├── ftv2vertline.png │ ├── search │ │ ├── close.png │ │ ├── classes_2.js │ │ ├── mag_sel.png │ │ ├── search_l.png │ │ ├── search_m.png │ │ ├── search_r.png │ │ ├── classes_3.js │ │ ├── pages_0.js │ │ ├── classes_1.js │ │ ├── classes_0.js │ │ ├── all_8.js │ │ ├── variables_8.js │ │ ├── all_17.js │ │ ├── defines_4.js │ │ ├── defines_5.js │ │ ├── functions_3.js │ │ ├── typedefs_0.js │ │ ├── variables_16.js │ │ ├── variables_17.js │ │ ├── defines_2.js │ │ ├── functions_4.js │ │ ├── functions_5.js │ │ ├── variables_a.js │ │ ├── all_13.js │ │ ├── files_2.js │ │ ├── functions_c.js │ │ ├── files_1.js │ │ ├── functions_d.js │ │ ├── defines_6.js │ │ ├── files_0.js │ │ ├── files_4.js │ │ ├── files_5.js │ │ ├── variables_9.js │ │ ├── variables_1.js │ │ ├── all_18.js │ │ ├── defines_1.js │ │ ├── defines_0.js │ │ ├── functions_9.js │ │ ├── variables_13.js │ │ ├── functions_8.js │ │ ├── variables_d.js │ │ ├── all_9.js │ │ ├── functions_b.js │ │ ├── files_6.js │ │ ├── variables_6.js │ │ ├── defines_3.js │ │ ├── functions_7.js │ │ ├── all_a.js │ │ ├── files_3.js │ │ ├── all_14.js │ │ ├── functions_1.js │ │ ├── nomatches.html │ │ ├── functions_0.js │ │ ├── variables_14.js │ │ ├── all_1.js │ │ ├── functions_2.js │ │ ├── all_15.js │ │ ├── all_d.js │ │ ├── all_16.js │ │ ├── all_f.js │ │ ├── variables_15.js │ │ ├── variables_f.js │ │ ├── all_3.js │ │ ├── all_4.js │ │ ├── variables_3.js │ │ ├── variables_4.js │ │ ├── variables_5.js │ │ ├── variables_11.js │ │ ├── variables_c.js │ │ ├── all_c.js │ │ ├── variables_2.js │ │ ├── functions_a.js │ │ ├── all_0.html │ │ ├── all_1.html │ │ ├── all_2.html │ │ ├── all_3.html │ │ ├── all_4.html │ │ ├── all_5.html │ │ ├── all_6.html │ │ ├── all_7.html │ │ ├── all_8.html │ │ ├── all_9.html │ │ ├── all_a.html │ │ ├── all_b.html │ │ ├── all_c.html │ │ ├── all_d.html │ │ ├── all_e.html │ │ ├── all_f.html │ │ ├── all_10.html │ │ ├── all_11.html │ │ ├── all_12.html │ │ ├── all_13.html │ │ ├── all_14.html │ │ ├── all_15.html │ │ ├── all_16.html │ │ ├── all_17.html │ │ ├── all_18.html │ │ ├── files_0.html │ │ ├── files_1.html │ │ ├── files_2.html │ │ ├── files_3.html │ │ ├── files_4.html │ │ ├── files_5.html │ │ ├── files_6.html │ │ ├── pages_0.html │ │ ├── classes_0.html │ │ ├── classes_1.html │ │ ├── classes_2.html │ │ ├── classes_3.html │ │ ├── defines_0.html │ │ ├── defines_1.html │ │ ├── defines_2.html │ │ ├── defines_3.html │ │ ├── defines_4.html │ │ ├── defines_5.html │ │ ├── defines_6.html │ │ ├── typedefs_0.html │ │ ├── functions_0.html │ │ ├── functions_1.html │ │ ├── functions_2.html │ │ ├── functions_3.html │ │ ├── functions_4.html │ │ ├── functions_5.html │ │ ├── functions_6.html │ │ ├── functions_7.html │ │ ├── functions_8.html │ │ ├── functions_9.html │ │ ├── functions_a.html │ │ ├── functions_b.html │ │ ├── functions_c.html │ │ ├── functions_d.html │ │ ├── variables_0.html │ │ ├── variables_1.html │ │ ├── variables_10.html │ │ ├── variables_11.html │ │ ├── variables_12.html │ │ ├── variables_13.html │ │ ├── variables_14.html │ │ ├── variables_15.html │ │ ├── variables_16.html │ │ ├── variables_17.html │ │ ├── variables_2.html │ │ ├── variables_3.html │ │ ├── variables_4.html │ │ ├── variables_5.html │ │ ├── variables_6.html │ │ ├── variables_7.html │ │ ├── variables_8.html │ │ ├── variables_9.html │ │ ├── variables_a.html │ │ ├── variables_b.html │ │ ├── variables_c.html │ │ ├── variables_d.html │ │ ├── variables_e.html │ │ ├── variables_f.html │ │ ├── all_6.js │ │ ├── all_5.js │ │ ├── functions_6.js │ │ ├── variables_7.js │ │ ├── all_2.js │ │ ├── variables_12.js │ │ ├── all_7.js │ │ ├── all_12.js │ │ ├── all_11.js │ │ ├── variables_b.js │ │ ├── all_0.js │ │ └── variables_0.js │ ├── ftv2folderopen.png │ ├── ftv2mlastnode.png │ ├── ftv2plastnode.png │ ├── ftv2folderclosed.png │ └── tabs.css └── latex │ ├── refman.pdf │ ├── footer.tex │ ├── refman.ilg │ ├── Makefile │ ├── annotated.tex │ ├── la__header_8h.tex │ ├── structstruct.tex │ ├── structLQR__control__loop.tex │ ├── spycam__header_8h.tex │ ├── structMATRIX.tex │ ├── structbcm2835__peripheral.tex │ ├── structControl__loop.tex │ ├── control__header_8h.tex │ └── files.tex ├── spycam_header.h ├── la_header.h ├── LICENSE ├── msp430_header.h ├── control_funcs.c ├── rpi_gpio_funcs.c ├── control_header.h ├── rpi_gpio_header.h ├── simplex_header.h └── spycam_funcs.c /MATLAB/logs/error_log.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MATLAB/d2r.m: -------------------------------------------------------------------------------- 1 | function y=d2r(x) 2 | y=x*pi/180; 3 | end -------------------------------------------------------------------------------- /MATLAB/r2d.m: -------------------------------------------------------------------------------- 1 | function y=r2d(x) 2 | y=x*180/pi; 3 | end -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | Doxygen/* linguist-documentation 2 | doc/* linguist-documentation -------------------------------------------------------------------------------- /doc/images/EPFL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/doc/images/EPFL.png -------------------------------------------------------------------------------- /doc/images/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/doc/images/Logo.png -------------------------------------------------------------------------------- /msp430/Debug/ccsObjs.opt: -------------------------------------------------------------------------------- 1 | "./FlyARocket_GNC_MSP430_slave.obj" "../lnk_msp430g2553.cmd" -l"libc.a" -------------------------------------------------------------------------------- /Doxygen/html/Logo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/Logo.jpeg -------------------------------------------------------------------------------- /Doxygen/html/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/Logo.png -------------------------------------------------------------------------------- /Doxygen/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/bc_s.png -------------------------------------------------------------------------------- /Doxygen/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/bdwn.png -------------------------------------------------------------------------------- /Doxygen/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/nav_f.png -------------------------------------------------------------------------------- /Doxygen/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/nav_g.png -------------------------------------------------------------------------------- /Doxygen/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/nav_h.png -------------------------------------------------------------------------------- /Doxygen/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/open.png -------------------------------------------------------------------------------- /Doxygen/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/tab_a.png -------------------------------------------------------------------------------- /Doxygen/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/tab_b.png -------------------------------------------------------------------------------- /Doxygen/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/tab_h.png -------------------------------------------------------------------------------- /Doxygen/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/tab_s.png -------------------------------------------------------------------------------- /doc/images/ARGOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/doc/images/ARGOS.png -------------------------------------------------------------------------------- /doc/images/eSpace.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/doc/images/eSpace.jpg -------------------------------------------------------------------------------- /doc/images/loxam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/doc/images/loxam.jpg -------------------------------------------------------------------------------- /Doxygen/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/closed.png -------------------------------------------------------------------------------- /Doxygen/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/doxygen.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2cl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2cl.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2doc.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2mo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2mo.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2ns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2ns.png -------------------------------------------------------------------------------- /Doxygen/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/sync_on.png -------------------------------------------------------------------------------- /Doxygen/latex/refman.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/latex/refman.pdf -------------------------------------------------------------------------------- /MATLAB/images/curve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/MATLAB/images/curve.png -------------------------------------------------------------------------------- /doc/images/logo_LMAF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/doc/images/logo_LMAF.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2blank.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2link.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2mnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2mnode.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2node.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2pnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2pnode.png -------------------------------------------------------------------------------- /Doxygen/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/sync_off.png -------------------------------------------------------------------------------- /doc/images/Logo_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/doc/images/Logo_large.png -------------------------------------------------------------------------------- /doc/images/MSP430_comm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/doc/images/MSP430_comm.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2lastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2lastnode.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2splitbar.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2vertline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2vertline.png -------------------------------------------------------------------------------- /Doxygen/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/search/close.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2folderopen.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2mlastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2mlastnode.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2plastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2plastnode.png -------------------------------------------------------------------------------- /Doxygen/html/search/classes_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['matrix',['MATRIX',['../structMATRIX.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/search/mag_sel.png -------------------------------------------------------------------------------- /Doxygen/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/search/search_l.png -------------------------------------------------------------------------------- /Doxygen/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/search/search_m.png -------------------------------------------------------------------------------- /Doxygen/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/search/search_r.png -------------------------------------------------------------------------------- /doc/images/SPACETEC_Rocketry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/doc/images/SPACETEC_Rocketry.png -------------------------------------------------------------------------------- /Doxygen/html/ftv2folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/Doxygen/html/ftv2folderclosed.png -------------------------------------------------------------------------------- /Doxygen/html/search/classes_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['spi_5fdata',['SPI_data',['../structSPI__data.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['flyarocket_5fgnc',['FlyARocket_GNC',['../md_README.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/images/Element_beton_mold_nosecone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/doc/images/Element_beton_mold_nosecone.png -------------------------------------------------------------------------------- /Doxygen/html/search/classes_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['control_5floop',['Control_loop',['../structControl__loop.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /msp430/Debug/FlyARocket_GNC_MSP430_slave.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/msp430/Debug/FlyARocket_GNC_MSP430_slave.obj -------------------------------------------------------------------------------- /msp430/Debug/FlyARocket_GNC_MSP430_slave.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmalyuta/FlyARocket_GNC/HEAD/msp430/Debug/FlyARocket_GNC_MSP430_slave.out -------------------------------------------------------------------------------- /Doxygen/html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['bcm2835_5fperipheral',['bcm2835_peripheral',['../structbcm2835__peripheral.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['j',['j',['../simplex__header_8h.html#a37d972ae0b47b9099e30983131d31916',1,'simplex_header.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['j',['j',['../simplex__header_8h.html#a37d972ae0b47b9099e30983131d31916',1,'simplex_header.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_17.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['yaw_5fbytes',['yaw_bytes',['../imu__header_8h.html#a8eec6ec2b20a3e41d20120befec590cb',1,'imu_header.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['nmax',['NMAX',['../simplex__header_8h.html#a5de5d183f9a6a8d53316f743e1ca6dc2',1,'simplex_header.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['real',['REAL',['../simplex__header_8h.html#a4b654506f18b8bfd61ad2a29a7e38c25',1,'simplex_header.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['initmatrix',['initMatrix',['../la__funcs_8c.html#a3adcfc4926f7e83a7ab0df36709935cb',1,'la_funcs.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/typedefs_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mat',['MAT',['../simplex__header_8h.html#a42fde6adf063d0e30ad7a238b2d6e7da',1,'simplex_header.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_16.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['yaw_5fbytes',['yaw_bytes',['../imu__header_8h.html#a8eec6ec2b20a3e41d20120befec590cb',1,'imu_header.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_17.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['z_5ftemp',['z_temp',['../master__header_8h.html#a208beef538560359625f34731892c3a8',1,'master_header.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['inp_5fgpio',['INP_GPIO',['../rpi__gpio__header_8h.html#a03886f219aed83bfc164616c20270990',1,'rpi_gpio_header.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['kalman_5ffilter',['Kalman_filter',['../imu__funcs_8c.html#a0d3dd751864c0bf8eb525ba4d16b02da',1,'imu_funcs.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['linear_5fsearch',['linear_search',['../master__funcs_8c.html#a61a66362f264f2a07f6691edbfb616ff',1,'master_funcs.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['launch_5fdetect_5fgpio',['launch_detect_gpio',['../master_8c.html#a9fd9d19baa498f5f274cc0ed9a5bf19f',1,'master.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_13.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['unmap_5fperipheral',['unmap_peripheral',['../rpi__gpio__funcs_8c.html#a7296d60e6783b497a756672bee8f2b73',1,'rpi_gpio_funcs.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['la_5ffuncs_2ec',['la_funcs.c',['../la__funcs_8c.html',1,'']]], 4 | ['la_5fheader_2eh',['la_header.h',['../la__header_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['unmap_5fperipheral',['unmap_peripheral',['../rpi__gpio__funcs_8c.html#a7296d60e6783b497a756672bee8f2b73',1,'rpi_gpio_funcs.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['imu_5ffuncs_2ec',['imu_funcs.c',['../imu__funcs_8c.html',1,'']]], 4 | ['imu_5fheader_2eh',['imu_header.h',['../imu__header_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['write_5fto_5ffile_5fcustom',['write_to_file_custom',['../master__funcs_8c.html#a0ebc9cbfa5616a43caa96e7394543752',1,'master_funcs.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['valve_5fcharac_5fresolution',['VALVE_CHARAC_RESOLUTION',['../master__header_8h.html#ae3593488fd933fd856b687d074f25f91',1,'master_header.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['control_5ffuncs_2ec',['control_funcs.c',['../control__funcs_8c.html',1,'']]], 4 | ['control_5fheader_2eh',['control_header.h',['../control__header_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pressure_5ffuncs_2ec',['pressure_funcs.c',['../pressure__funcs_8c.html',1,'']]], 4 | ['pressure_5fheader_2eh',['pressure_header.h',['../pressure__header_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/latex/footer.tex: -------------------------------------------------------------------------------- 1 | % Latex footer for doxygen 1.8.6 2 | %--- End generated contents --- 3 | 4 | % Index 5 | \newpage 6 | \phantomsection 7 | \addcontentsline{toc}{chapter}{Index} 8 | \printindex 9 | 10 | \end{document} 11 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['rpi_5fgpio_5ffuncs_2ec',['rpi_gpio_funcs.c',['../rpi__gpio__funcs_8c.html',1,'']]], 4 | ['rpi_5fgpio_5fheader_2eh',['rpi_gpio_header.h',['../rpi__gpio__header_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['k',['K',['../structControl__loop.html#ac3aed43dcaf03d086e69ab794f1959f4',1,'Control_loop::K()'],['../master__header_8h.html#a107f0845bd2d21fa210455b619ced07c',1,'K(): master_header.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['bits',['bits',['../structSPI__data.html#a753df088a8164dcd9b1cacda6127da39',1,'SPI_data']]], 4 | ['buffer_5flength',['buffer_length',['../structSPI__data.html#a30db968277621df77b6ba5171c79da08',1,'SPI_data']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_18.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['z_5ftemp',['z_temp',['../master__header_8h.html#a208beef538560359625f34731892c3a8',1,'master_header.h']]], 4 | ['zero_5feuler_5fangles',['zero_Euler_angles',['../imu__funcs_8c.html#af774e625f637fc19cc15a923e77cfbe2',1,'imu_funcs.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /msp430/Debug/objects.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # Automatically-generated file. Do not edit! 3 | ################################################################################ 4 | 5 | USER_OBJS := 6 | 7 | LIBS := -l"libc.a" 8 | 9 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['gpio_5fbase',['GPIO_BASE',['../rpi__gpio__header_8h.html#acce3b8a909ed8b957b4e411dfb7cbd91',1,'rpi_gpio_header.h']]], 4 | ['gpio_5fread',['GPIO_READ',['../rpi__gpio__header_8h.html#a1b3cfde4a8e61549b9056e961d0c636f',1,'rpi_gpio_header.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['bcm2708_5fperi_5fbase',['BCM2708_PERI_BASE',['../rpi__gpio__header_8h.html#a11b27df3f0aad9252ceeeb93e6262a83',1,'rpi_gpio_header.h']]], 4 | ['byte_5fnumber',['BYTE_NUMBER',['../pressure__header_8h.html#a2d66f7ecdddd16be2061ccc58ed24c35',1,'pressure_header.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['read_5fimu_5fparallel',['read_IMU_parallel',['../imu__funcs_8c.html#adacd103cea6c5f68c6b1ea416394c9f4',1,'imu_funcs.c']]], 4 | ['reset_5fold_5fattr_5fport',['reset_old_attr_port',['../imu__funcs_8c.html#a7fa0bd6b1a0206326d09eb5e8d21eb5e',1,'imu_funcs.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_13.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['valve_5f_5fmax_5fthrust',['VALVE__MAX_THRUST',['../control__funcs_8c.html#aa8eaf2e84821e970845fd6233109f952',1,'VALVE__MAX_THRUST(): control_funcs.c'],['../master__header_8h.html#aa8eaf2e84821e970845fd6233109f952',1,'VALVE__MAX_THRUST(): control_funcs.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['passive_5fwait',['passive_wait',['../master__funcs_8c.html#aab039920099459bf8d53159b68485e24',1,'master_funcs.c']]], 4 | ['pressure_5fsensor_5fspi_5fconnect',['pressure_sensor_SPI_connect',['../pressure__funcs_8c.html#a13d931d4705e660b720ed2b8c0e28695',1,'pressure_funcs.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['old_5fmsp430_5fuart_5foptions',['old_msp430_uart_options',['../msp430__header_8h.html#a933965c1edf0c5b6f0e815debd4e2946',1,'msp430_header.h']]], 4 | ['old_5frazor_5fuart_5foptions',['old_razor_uart_options',['../imu__header_8h.html#a2eb75463dec46981ad5e4001ea2c5aa8',1,'imu_header.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['k',['K',['../structControl__loop.html#ac3aed43dcaf03d086e69ab794f1959f4',1,'Control_loop::K()'],['../master__header_8h.html#a107f0845bd2d21fa210455b619ced07c',1,'K(): master_header.h']]], 4 | ['kalman_5ffilter',['Kalman_filter',['../imu__funcs_8c.html#a0d3dd751864c0bf8eb525ba4d16b02da',1,'imu_funcs.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['to_5fdeg',['TO_DEG',['../imu__funcs_8c.html#a530aca183f3048a15b2018cef637d5f5',1,'imu_funcs.c']]], 4 | ['transpose',['transpose',['../la__funcs_8c.html#a10c538631864f825891da97cc8dc7d5d',1,'la_funcs.c']]], 5 | ['treat_5freply',['Treat_reply',['../imu__funcs_8c.html#a20a4f75f9d2fefab9dbc656f77eeda06',1,'imu_funcs.c']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['simplex_5ffuncs_2ec',['simplex_funcs.c',['../simplex__funcs_8c.html',1,'']]], 4 | ['simplex_5fheader_2eh',['simplex_header.h',['../simplex__header_8h.html',1,'']]], 5 | ['spycam_5ffuncs_2ec',['spycam_funcs.c',['../spycam__funcs_8c.html',1,'']]], 6 | ['spycam_5fheader_2eh',['spycam_header.h',['../spycam__header_8h.html',1,'']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['global_5f_5ftime_5fstartpoint',['GLOBAL__TIME_STARTPOINT',['../master__header_8h.html#ac252c85bbad7e441650702547296055d',1,'master_header.h']]], 4 | ['gpio',['gpio',['../master_8c.html#a9181fa0a34f8c0ed9983a6088fa1de19',1,'gpio(): master.c'],['../rpi__gpio__header_8h.html#a9181fa0a34f8c0ed9983a6088fa1de19',1,'gpio(): master.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['max_5fbuffer',['MAX_BUFFER',['../imu__header_8h.html#a1d5dab30b404fab91608086105afc78c',1,'imu_header.h']]], 4 | ['mmax',['MMAX',['../simplex__header_8h.html#ae640f769af4067b42af6136b98cf09c2',1,'simplex_header.h']]], 5 | ['msp430_5fmax_5fbuffer',['MSP430_MAX_BUFFER',['../msp430__header_8h.html#a5300b0b563af902d75ce92100e9fe1ab',1,'msp430_header.h']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['open_5ferror_5ffile',['open_error_file',['../master__funcs_8c.html#a74b332f6927a5430b862f575cdb07e72',1,'master_funcs.c']]], 4 | ['open_5ffile',['open_file',['../master__funcs_8c.html#acaeb180ec54844f644d844aef7ecb8d3',1,'master_funcs.c']]], 5 | ['open_5fserial_5fport',['open_serial_port',['../imu__funcs_8c.html#a628a7b5bc4a309137ce51e9e929bfabf',1,'imu_funcs.c']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['la_5ffuncs_2ec',['la_funcs.c',['../la__funcs_8c.html',1,'']]], 4 | ['la_5fheader_2eh',['la_header.h',['../la__header_8h.html',1,'']]], 5 | ['launch_5fdetect_5fgpio',['launch_detect_gpio',['../master_8c.html#a9fd9d19baa498f5f274cc0ed9a5bf19f',1,'master.c']]], 6 | ['linear_5fsearch',['linear_search',['../master__funcs_8c.html#a61a66362f264f2a07f6691edbfb616ff',1,'master_funcs.c']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['master_2ec',['master.c',['../master_8c.html',1,'']]], 4 | ['master_5ffuncs_2ec',['master_funcs.c',['../master__funcs_8c.html',1,'']]], 5 | ['master_5fheader_2eh',['master_header.h',['../master__header_8h.html',1,'']]], 6 | ['msp430_5ffuncs_2ec',['msp430_funcs.c',['../msp430__funcs_8c.html',1,'']]], 7 | ['msp430_5fheader_2eh',['msp430_header.h',['../msp430__header_8h.html',1,'']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_14.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['valve_5f_5fmax_5fthrust',['VALVE__MAX_THRUST',['../control__funcs_8c.html#aa8eaf2e84821e970845fd6233109f952',1,'VALVE__MAX_THRUST(): control_funcs.c'],['../master__header_8h.html#aa8eaf2e84821e970845fd6233109f952',1,'VALVE__MAX_THRUST(): control_funcs.c']]], 4 | ['valve_5fcharac_5fresolution',['VALVE_CHARAC_RESOLUTION',['../master__header_8h.html#ae3593488fd933fd856b687d074f25f91',1,'master_header.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /MATLAB/kalmanFnc.m: -------------------------------------------------------------------------------- 1 | function [xNext,PNext] = kalmanFnc(x,P,z,Q,R,dt) 2 | % Real-time Kalman filter 3 | 4 | % Discrete time model matrices A,C (x(k+1)=(A+I*dt)*x(k) ; y=C*x) 5 | A = eye(2)+dt*[0,1;0,0]; 6 | C = [1 0];%y=Cx 7 | 8 | %Prediction 9 | x = A*x; 10 | P = A*P*A'+Q; 11 | 12 | %Update 13 | inn = z-C*x; 14 | S = C*P*C'+R; 15 | K = P*C'*inv(S); 16 | xNext = x + K*inn; 17 | PNext = (eye(2)-K*C)*P; 18 | end -------------------------------------------------------------------------------- /Doxygen/html/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['find_5fraw_5feuler_5fangular_5fvelocities',['Find_raw_Euler_angular_velocities',['../imu__funcs_8c.html#a0f46701132540ff5241c276a19f7b38d',1,'imu_funcs.c']]], 4 | ['fpitch_5floop_5fcontrol_5fsetup',['Fpitch_loop_control_setup',['../control__funcs_8c.html#a61112075a4a85516d83e6a5783195f6a',1,'control_funcs.c']]], 5 | ['fyaw_5floop_5fcontrol_5fsetup',['Fyaw_loop_control_setup',['../control__funcs_8c.html#a7ae1b1a2260fb4f478a16bfbef58a40c',1,'control_funcs.c']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /Doxygen/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['calibrate_5fimu',['Calibrate_IMU',['../imu__funcs_8c.html#ad49c526544bbd5b5b163b394bec8a65e',1,'imu_funcs.c']]], 4 | ['check_5ftime',['check_time',['../master__funcs_8c.html#a38415767eeeb2be505d4e823dc187437',1,'master_funcs.c']]], 5 | ['close_5fport',['close_port',['../imu__funcs_8c.html#ac9d43b6aaa5a79aa447df61c4fec5ffe',1,'imu_funcs.c']]], 6 | ['construct_5fzeroed_5fdcm',['construct_zeroed_DCM',['../imu__funcs_8c.html#a00994ba3854703e3e5162202f6d88971',1,'imu_funcs.c']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_14.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['wx',['wx',['../imu__header_8h.html#a40083d5d71ff675499a8d392ff75f401',1,'imu_header.h']]], 4 | ['wx_5fcont',['wx_cont',['../master_8c.html#abaaeebf27cbf4160bd6c104223d91bc1',1,'master.c']]], 5 | ['wx_5fref',['wx_ref',['../master_8c.html#aefb70f2fa88635c005237246792ab6bb',1,'master.c']]], 6 | ['wy',['wy',['../imu__header_8h.html#ae05e525eb10e278f769ff1bc049eec10',1,'imu_header.h']]], 7 | ['wz',['wz',['../imu__header_8h.html#a3cc50c2a8b1ca44e2cd5c4ed748c610a',1,'imu_header.h']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /msp430/_ccsproject: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Doxygen/latex/refman.ilg: -------------------------------------------------------------------------------- 1 | This is makeindex, version 2.15 [TeX Live 2013] (kpathsea + Thai support). 2 | Scanning input file refman.idx.... 3 | !! Input index error (file = refman.idx, line = 12): 4 | -- First argument too long (max 1024). 5 | 6 | !! Input index error (file = refman.idx, line = 84): 7 | -- First argument too long (max 1024). 8 | done (123 entries accepted, 2 rejected). 9 | Sorting entries....done (883 comparisons). 10 | Generating output file refman.ind....done (330 lines written, 0 warnings). 11 | Output written in refman.ind. 12 | Transcript written in refman.ilg. 13 | -------------------------------------------------------------------------------- /Doxygen/latex/Makefile: -------------------------------------------------------------------------------- 1 | all: refman.pdf 2 | 3 | pdf: refman.pdf 4 | 5 | refman.pdf: clean refman.tex 6 | pdflatex refman 7 | makeindex refman.idx 8 | pdflatex refman 9 | latex_count=8 ; \ 10 | while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ 11 | do \ 12 | echo "Rerunning latex...." ;\ 13 | pdflatex refman ;\ 14 | latex_count=`expr $$latex_count - 1` ;\ 15 | done 16 | makeindex refman.idx 17 | pdflatex refman 18 | 19 | 20 | clean: 21 | rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf 22 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['bcm2708_5fperi_5fbase',['BCM2708_PERI_BASE',['../rpi__gpio__header_8h.html#a11b27df3f0aad9252ceeeb93e6262a83',1,'rpi_gpio_header.h']]], 4 | ['bcm2835_5fperipheral',['bcm2835_peripheral',['../structbcm2835__peripheral.html',1,'']]], 5 | ['bits',['bits',['../structSPI__data.html#a753df088a8164dcd9b1cacda6127da39',1,'SPI_data']]], 6 | ['buffer_5flength',['buffer_length',['../structSPI__data.html#a30db968277621df77b6ba5171c79da08',1,'SPI_data']]], 7 | ['byte_5fnumber',['BYTE_NUMBER',['../pressure__header_8h.html#a2d66f7ecdddd16be2061ccc58ed24c35',1,'pressure_header.h']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['get_5ffiltered_5fattitude_5fparallel',['get_filtered_attitude_parallel',['../imu__funcs_8c.html#a819d365851c5396da5453c27c37af71b',1,'imu_funcs.c']]], 4 | ['get_5fold_5fattr',['get_old_attr',['../imu__funcs_8c.html#af0de4ccb0965284af856630060f952ff',1,'imu_funcs.c']]], 5 | ['get_5freadings_5fspi_5fparallel',['get_readings_SPI_parallel',['../pressure__funcs_8c.html#a6c8634a0f37e059edc662324a919c39e',1,'pressure_funcs.c']]], 6 | ['get_5fsimplex_5fsolution',['get_simplex_solution',['../simplex__funcs_8c.html#a01b1cf65d8b2a0515866249c8c26ee94',1,'simplex_funcs.c']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /Doxygen/latex/annotated.tex: -------------------------------------------------------------------------------- 1 | \section{Class List} 2 | Here are the classes, structs, unions and interfaces with brief descriptions\-:\begin{DoxyCompactList} 3 | \item\contentsline{section}{\hyperlink{structbcm2835__peripheral}{bcm2835\-\_\-peripheral} }{\pageref{structbcm2835__peripheral}}{} 4 | \item\contentsline{section}{\hyperlink{structControl__loop}{Control\-\_\-loop} }{\pageref{structControl__loop}}{} 5 | \item\contentsline{section}{\hyperlink{structMATRIX}{M\-A\-T\-R\-I\-X} }{\pageref{structMATRIX}}{} 6 | \item\contentsline{section}{\hyperlink{structSPI__data}{S\-P\-I\-\_\-data} }{\pageref{structSPI__data}}{} 7 | \end{DoxyCompactList} 8 | -------------------------------------------------------------------------------- /spycam_header.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file spycam_header.h 3 | * @author Danylo Malyuta 4 | * @version 1.0 5 | * 6 | * @brief Raspberry Pi spy camera header file. 7 | * 8 | * This is the header to spycam_funcs.c containing necessary function and variable 9 | * declarations. 10 | */ 11 | 12 | #ifndef SPYCAM_HEADER_H_ 13 | #define SPYCAM_HEADER_H_ 14 | 15 | extern pid_t pid; ///< Process ID variable for the Raspberry Pi spy camera video recording 16 | 17 | /** @cond INCLUDE_WITH_DOXYGEN */ 18 | void startVideo(char *filename, char *options); 19 | void stopVideo(void); 20 | /** @endcond */ 21 | 22 | #endif /* SPYCAM_HEADER_H_ */ 23 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_15.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['write_5fto_5ffile_5fcustom',['write_to_file_custom',['../master__funcs_8c.html#a0ebc9cbfa5616a43caa96e7394543752',1,'master_funcs.c']]], 4 | ['wx',['wx',['../imu__header_8h.html#a40083d5d71ff675499a8d392ff75f401',1,'imu_header.h']]], 5 | ['wx_5fcont',['wx_cont',['../master_8c.html#abaaeebf27cbf4160bd6c104223d91bc1',1,'master.c']]], 6 | ['wx_5fref',['wx_ref',['../master_8c.html#aefb70f2fa88635c005237246792ab6bb',1,'master.c']]], 7 | ['wy',['wy',['../imu__header_8h.html#ae05e525eb10e278f769ff1bc049eec10',1,'imu_header.h']]], 8 | ['wz',['wz',['../imu__header_8h.html#a3cc50c2a8b1ca44e2cd5c4ed748c610a',1,'imu_header.h']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['old_5fmsp430_5fuart_5foptions',['old_msp430_uart_options',['../msp430__header_8h.html#a933965c1edf0c5b6f0e815debd4e2946',1,'msp430_header.h']]], 4 | ['old_5frazor_5fuart_5foptions',['old_razor_uart_options',['../imu__header_8h.html#a2eb75463dec46981ad5e4001ea2c5aa8',1,'imu_header.h']]], 5 | ['open_5ferror_5ffile',['open_error_file',['../master__funcs_8c.html#a74b332f6927a5430b862f575cdb07e72',1,'master_funcs.c']]], 6 | ['open_5ffile',['open_file',['../master__funcs_8c.html#acaeb180ec54844f644d844aef7ecb8d3',1,'master_funcs.c']]], 7 | ['open_5fserial_5fport',['open_serial_port',['../imu__funcs_8c.html#a628a7b5bc4a309137ce51e9e929bfabf',1,'imu_funcs.c']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_16.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['x_5fphi',['x_phi',['../master__header_8h.html#a7a91c3a0b462c305623653203463ad81',1,'master_header.h']]], 4 | ['x_5fphidot',['x_phidot',['../master__header_8h.html#a769535ee025d21aada6eb7c696035ab6',1,'master_header.h']]], 5 | ['x_5fpsi',['x_psi',['../master__header_8h.html#a8952485df67da6b993e63ff4ce9f8555',1,'master_header.h']]], 6 | ['x_5fpsidot',['x_psidot',['../master__header_8h.html#a99357188eb725d9cda85ed4b9e0530a6',1,'master_header.h']]], 7 | ['x_5ftheta',['x_theta',['../master__header_8h.html#a6af0345fdd89590b194401d1602a5c6a',1,'master_header.h']]], 8 | ['x_5fthetadot',['x_thetadot',['../master__header_8h.html#a8d547193b9e8507b7519bec3cd9eb5af',1,'master_header.h']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['q_5fphi',['Q_phi',['../master__header_8h.html#a51c0a1d016ac363ff613a8bbc9d6dd30',1,'master_header.h']]], 4 | ['q_5fphidot',['Q_phidot',['../master__header_8h.html#a08ad8530b9c9ef662785ff497e7b3ab7',1,'master_header.h']]], 5 | ['q_5fpsi',['Q_psi',['../master__header_8h.html#aff197441004c733c594cc8174c7d41e0',1,'master_header.h']]], 6 | ['q_5fpsidot',['Q_psidot',['../master__header_8h.html#a21741bca17404f81bbddb13e215e5222',1,'master_header.h']]], 7 | ['q_5ftheta',['Q_theta',['../master__header_8h.html#a91c8d06d7ce8da6cb65e81a1872eacd2',1,'master_header.h']]], 8 | ['q_5fthetadot',['Q_thetadot',['../master__header_8h.html#aa035ecb1f959c5a2346ffbe06477a331',1,'master_header.h']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_15.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['x_5fphi',['x_phi',['../master__header_8h.html#a7a91c3a0b462c305623653203463ad81',1,'master_header.h']]], 4 | ['x_5fphidot',['x_phidot',['../master__header_8h.html#a769535ee025d21aada6eb7c696035ab6',1,'master_header.h']]], 5 | ['x_5fpsi',['x_psi',['../master__header_8h.html#a8952485df67da6b993e63ff4ce9f8555',1,'master_header.h']]], 6 | ['x_5fpsidot',['x_psidot',['../master__header_8h.html#a99357188eb725d9cda85ed4b9e0530a6',1,'master_header.h']]], 7 | ['x_5ftheta',['x_theta',['../master__header_8h.html#a6af0345fdd89590b194401d1602a5c6a',1,'master_header.h']]], 8 | ['x_5fthetadot',['x_thetadot',['../master__header_8h.html#a8d547193b9e8507b7519bec3cd9eb5af',1,'master_header.h']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['q_5fphi',['Q_phi',['../master__header_8h.html#a51c0a1d016ac363ff613a8bbc9d6dd30',1,'master_header.h']]], 4 | ['q_5fphidot',['Q_phidot',['../master__header_8h.html#a08ad8530b9c9ef662785ff497e7b3ab7',1,'master_header.h']]], 5 | ['q_5fpsi',['Q_psi',['../master__header_8h.html#aff197441004c733c594cc8174c7d41e0',1,'master_header.h']]], 6 | ['q_5fpsidot',['Q_psidot',['../master__header_8h.html#a21741bca17404f81bbddb13e215e5222',1,'master_header.h']]], 7 | ['q_5ftheta',['Q_theta',['../master__header_8h.html#a91c8d06d7ce8da6cb65e81a1872eacd2',1,'master_header.h']]], 8 | ['q_5fthetadot',['Q_thetadot',['../master__header_8h.html#aa035ecb1f959c5a2346ffbe06477a331',1,'master_header.h']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['d',['d',['../master_8c.html#a873684cefeb665f3d5e6b495de57fc0d',1,'d(): master.c'],['../master__header_8h.html#a873684cefeb665f3d5e6b495de57fc0d',1,'d(): master.c']]], 4 | ['data',['data',['../pressure__header_8h.html#ac698c71ea28bbc160f170afbf2faecbe',1,'pressure_header.h']]], 5 | ['dcm_5fmatrix',['DCM_MATRIX',['../imu__header_8h.html#a35bd99561dc4ca035119409241e2b5e0',1,'imu_header.h']]], 6 | ['descent_5f_5ftime',['DESCENT__TIME',['../master_8c.html#afca7e5dfc8d7935f7b389f58933bfa63',1,'master.c']]], 7 | ['dt',['dt',['../imu__funcs_8c.html#a778e38aa889751afffa2dea6b803e67a',1,'dt(): imu_funcs.c'],['../imu__header_8h.html#a778e38aa889751afffa2dea6b803e67a',1,'dt(): imu_funcs.c']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['engine_5f_5fburn_5ftime',['ENGINE__BURN_TIME',['../master_8c.html#ae70c9b89889bf0bc6cfeba28ff41a8ec',1,'master.c']]], 4 | ['error_5flog',['error_log',['../master_8c.html#a0942b9a4f7a184e9d6b95901e2b9ba4f',1,'error_log(): master.c'],['../master__header_8h.html#a0942b9a4f7a184e9d6b95901e2b9ba4f',1,'error_log(): master.c']]], 5 | ['error_5flog_5fwrite_5flock',['error_log_write_lock',['../master__header_8h.html#a29a78f75123873b8cff72f6895b42d33',1,'master_header.h']]], 6 | ['error_5fmessage',['ERROR_MESSAGE',['../master__header_8h.html#a3ec78d27b90718d84fabf3573a2f0129',1,'master_header.h']]], 7 | ['eye2',['EYE2',['../imu__header_8h.html#a1a2c9eddf9882d1a6a6e51804765d276',1,'imu_header.h']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['d',['d',['../master_8c.html#a873684cefeb665f3d5e6b495de57fc0d',1,'d(): master.c'],['../master__header_8h.html#a873684cefeb665f3d5e6b495de57fc0d',1,'d(): master.c']]], 4 | ['data',['data',['../pressure__header_8h.html#ac698c71ea28bbc160f170afbf2faecbe',1,'pressure_header.h']]], 5 | ['dcm_5fmatrix',['DCM_MATRIX',['../imu__header_8h.html#a35bd99561dc4ca035119409241e2b5e0',1,'imu_header.h']]], 6 | ['descent_5f_5ftime',['DESCENT__TIME',['../master_8c.html#afca7e5dfc8d7935f7b389f58933bfa63',1,'master.c']]], 7 | ['dt',['dt',['../imu__funcs_8c.html#a778e38aa889751afffa2dea6b803e67a',1,'dt(): imu_funcs.c'],['../imu__header_8h.html#a778e38aa889751afffa2dea6b803e67a',1,'dt(): imu_funcs.c']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['engine_5f_5fburn_5ftime',['ENGINE__BURN_TIME',['../master_8c.html#ae70c9b89889bf0bc6cfeba28ff41a8ec',1,'master.c']]], 4 | ['error_5flog',['error_log',['../master_8c.html#a0942b9a4f7a184e9d6b95901e2b9ba4f',1,'error_log(): master.c'],['../master__header_8h.html#a0942b9a4f7a184e9d6b95901e2b9ba4f',1,'error_log(): master.c']]], 5 | ['error_5flog_5fwrite_5flock',['error_log_write_lock',['../master__header_8h.html#a29a78f75123873b8cff72f6895b42d33',1,'master_header.h']]], 6 | ['error_5fmessage',['ERROR_MESSAGE',['../master__header_8h.html#a3ec78d27b90718d84fabf3573a2f0129',1,'master_header.h']]], 7 | ['eye2',['EYE2',['../imu__header_8h.html#a1a2c9eddf9882d1a6a6e51804765d276',1,'imu_header.h']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /msp430/Debug/subdir_vars.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # Automatically-generated file. Do not edit! 3 | ################################################################################ 4 | 5 | # Add inputs and outputs from these tool invocations to the build variables 6 | CMD_SRCS += \ 7 | ../lnk_msp430g2553.cmd 8 | 9 | C_SRCS += \ 10 | ../FlyARocket_GNC_MSP430_slave.c 11 | 12 | OBJS += \ 13 | ./FlyARocket_GNC_MSP430_slave.obj 14 | 15 | C_DEPS += \ 16 | ./FlyARocket_GNC_MSP430_slave.pp 17 | 18 | C_DEPS__QUOTED += \ 19 | "FlyARocket_GNC_MSP430_slave.pp" 20 | 21 | OBJS__QUOTED += \ 22 | "FlyARocket_GNC_MSP430_slave.obj" 23 | 24 | C_SRCS__QUOTED += \ 25 | "../FlyARocket_GNC_MSP430_slave.c" 26 | 27 | 28 | -------------------------------------------------------------------------------- /Doxygen/latex/la__header_8h.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{la__header_8h}{\section{la\-\_\-header.\-h File Reference} 2 | \label{la__header_8h}\index{la\-\_\-header.\-h@{la\-\_\-header.\-h}} 3 | } 4 | 5 | 6 | Linear Algebra header file. 7 | 8 | 9 | \subsection*{Classes} 10 | \begin{DoxyCompactItemize} 11 | \item 12 | struct \hyperlink{structMATRIX}{M\-A\-T\-R\-I\-X} 13 | \end{DoxyCompactItemize} 14 | 15 | 16 | \subsection{Detailed Description} 17 | Linear Algebra header file. \begin{DoxyAuthor}{Author} 18 | Danylo Malyuta \href{mailto:danylo.malyuta@gmail.com}{\tt danylo.\-malyuta@gmail.\-com} 19 | \end{DoxyAuthor} 20 | \begin{DoxyVersion}{Version} 21 | 1.\-0 22 | \end{DoxyVersion} 23 | This is the header to \hyperlink{la__funcs_8c}{la\-\_\-funcs.\-c} containing necessary definitions and initializations. -------------------------------------------------------------------------------- /Doxygen/html/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['flight_5ftype',['flight_type',['../master_8c.html#a20e25587eb43f10683bcfadd136eb9d7',1,'master.c']]], 4 | ['fpitch',['Fpitch',['../master_8c.html#a24acaae245ca32a559b504e1a1e084d9',1,'Fpitch(): master.c'],['../master__header_8h.html#a24acaae245ca32a559b504e1a1e084d9',1,'Fpitch(): master.c']]], 5 | ['fpitch_5floop',['Fpitch_loop',['../control__header_8h.html#a5f9d64e1376655f5e45ccdcd9693d485',1,'control_header.h']]], 6 | ['fyaw',['Fyaw',['../master_8c.html#a03c2e0033499a13a6e9113bec977055f',1,'Fyaw(): master.c'],['../master__header_8h.html#a03c2e0033499a13a6e9113bec977055f',1,'Fyaw(): master.c']]], 7 | ['fyaw_5floop',['Fyaw_loop',['../control__header_8h.html#ad89b391fe05f2eb23be1db12931f221d',1,'control_header.h']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /msp430/targetConfigs/readme.txt: -------------------------------------------------------------------------------- 1 | The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based 2 | on the device and connection settings specified in your project on the Properties > General page. 3 | 4 | Please note that in automatic target-configuration management, changes to the project's device and/or 5 | connection settings will either modify an existing or generate a new target-configuration file. Thus, 6 | if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively, 7 | you may create your own target-configuration file for this project and manage it manually. You can 8 | always switch back to automatic target-configuration management by checking the "Manage the project's 9 | target-configuration automatically" checkbox on the project's Properties > General page. -------------------------------------------------------------------------------- /Doxygen/html/search/variables_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s',['S',['../master__header_8h.html#adbd85b44323c597c3a7a4d0a6ed49192',1,'master_header.h']]], 4 | ['satur',['satur',['../structControl__loop.html#a90ed943640ce57e399c42de9d994a55c',1,'Control_loop']]], 5 | ['spi_5f_5fread_5ftimestep',['SPI__READ_TIMESTEP',['../master_8c.html#ae4349d02b28eb32bb9153ebc5763217e',1,'SPI__READ_TIMESTEP(): master.c'],['../master__header_8h.html#ae4349d02b28eb32bb9153ebc5763217e',1,'SPI__READ_TIMESTEP(): master.c']]], 6 | ['spi_5fconfig',['SPI_config',['../pressure__header_8h.html#aa7ecd5fe5c95cd42a28dd0c0601605df',1,'pressure_header.h']]], 7 | ['spi_5fquit',['SPI_quit',['../master_8c.html#a3cbe1858f5d39f6470d8975f7d82c147',1,'SPI_quit(): master.c'],['../master__header_8h.html#a3cbe1858f5d39f6470d8975f7d82c147',1,'SPI_quit(): master.c']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['n',['N',['../master_8c.html#a7722c8ecbb62d99aee7ce68b1752f337',1,'N(): master.c'],['../master__header_8h.html#a7722c8ecbb62d99aee7ce68b1752f337',1,'N(): master.c'],['../simplex__header_8h.html#a7722c8ecbb62d99aee7ce68b1752f337',1,'N(): simplex_header.h']]], 4 | ['new_5fmsp430_5fuart_5foptions',['new_msp430_uart_options',['../msp430__header_8h.html#ae39be3dc2442cc970ed2509c7497f6d4',1,'msp430_header.h']]], 5 | ['new_5frazor_5fuart_5foptions',['new_razor_uart_options',['../imu__header_8h.html#aa3e6767cf45ddbfec6df978d6c25b5fb',1,'imu_header.h']]], 6 | ['num_5fav_5fvars',['num_av_vars',['../imu__funcs_8c.html#a3aae9efa0336fe13c6269a2f5d7902dd',1,'num_av_vars(): imu_funcs.c'],['../imu__header_8h.html#a3aae9efa0336fe13c6269a2f5d7902dd',1,'num_av_vars(): imu_funcs.c']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /msp430/targetConfigs/MSP430G2553.ccxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['n',['N',['../master_8c.html#a7722c8ecbb62d99aee7ce68b1752f337',1,'N(): master.c'],['../master__header_8h.html#a7722c8ecbb62d99aee7ce68b1752f337',1,'N(): master.c'],['../simplex__header_8h.html#a7722c8ecbb62d99aee7ce68b1752f337',1,'N(): simplex_header.h']]], 4 | ['new_5fmsp430_5fuart_5foptions',['new_msp430_uart_options',['../msp430__header_8h.html#ae39be3dc2442cc970ed2509c7497f6d4',1,'msp430_header.h']]], 5 | ['new_5frazor_5fuart_5foptions',['new_razor_uart_options',['../imu__header_8h.html#aa3e6767cf45ddbfec6df978d6c25b5fb',1,'imu_header.h']]], 6 | ['nmax',['NMAX',['../simplex__header_8h.html#a5de5d183f9a6a8d53316f743e1ca6dc2',1,'simplex_header.h']]], 7 | ['num_5fav_5fvars',['num_av_vars',['../imu__funcs_8c.html#a3aae9efa0336fe13c6269a2f5d7902dd',1,'num_av_vars(): imu_funcs.c'],['../imu__header_8h.html#a3aae9efa0336fe13c6269a2f5d7902dd',1,'num_av_vars(): imu_funcs.c']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /msp430/_project: -------------------------------------------------------------------------------- 1 | 2 | 3 | FlyARocket_GNC_MSP430_slave 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 15 | full,incremental, 16 | 17 | 18 | 19 | 20 | 21 | com.ti.ccstudio.core.ccsNature 22 | org.eclipse.cdt.core.cnature 23 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 26 | 27 | 28 | -------------------------------------------------------------------------------- /msp430/Debug/subdir_rules.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # Automatically-generated file. Do not edit! 3 | ################################################################################ 4 | 5 | # Each subdirectory must supply rules for building sources it contributes 6 | FlyARocket_GNC_MSP430_slave.obj: ../FlyARocket_GNC_MSP430_slave.c $(GEN_OPTS) $(GEN_HDRS) 7 | @echo 'Building file: $<' 8 | @echo 'Invoking: MSP430 Compiler' 9 | "C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3/bin/cl430" -vmsp --abi=eabi --use_hw_mpy=none --include_path="C:/ti/ccsv6/ccs_base/msp430/include" --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3/include" --advice:power=all -g --define=__MSP430G2553__ --diag_warning=225 --display_error_number --diag_wrap=off --printf_support=minimal --preproc_with_compile --preproc_dependency="FlyARocket_GNC_MSP430_slave.pp" $(GEN_OPTS__FLAG) "$<" 10 | @echo 'Finished building: $<' 11 | @echo ' ' 12 | 13 | 14 | -------------------------------------------------------------------------------- /la_header.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file la_header.h 3 | * @author Danylo Malyuta 4 | * @version 1.0 5 | * 6 | * @brief Linear Algebra header file. 7 | * 8 | * This is the header to la_funcs.c containing necessary definitions and 9 | * initializations. 10 | */ 11 | 12 | #ifndef LA_HEADER_H_ 13 | #define LA_HEADER_H_ 14 | 15 | /** 16 | * @struct MATRIX 17 | * This is the structure for a Matrix. 18 | */ 19 | struct MATRIX { 20 | size_t rows; ///< Number of rows 21 | size_t cols; ///< Number of columns 22 | float **matrix; ///< The dynamic 2D array 23 | }; 24 | 25 | /** @cond INCLUDE_WITH_DOXYGEN */ 26 | struct MATRIX initMatrix(size_t rows, size_t cols); 27 | struct MATRIX mmultiply(struct MATRIX A, struct MATRIX B); 28 | struct MATRIX minverse_1x1 (struct MATRIX A); 29 | struct MATRIX transpose(struct MATRIX A); 30 | struct MATRIX madd(struct MATRIX A,struct MATRIX B); 31 | struct MATRIX msubtract(struct MATRIX A,struct MATRIX B); 32 | /** @endcond */ 33 | 34 | #endif /* LA_HEADER_H_ */ 35 | -------------------------------------------------------------------------------- /Doxygen/latex/structstruct.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structstruct}{\section{struct Struct Reference} 2 | \label{structstruct}\index{struct@{struct}} 3 | } 4 | 5 | 6 | \subsection{Detailed Description} 7 | This structure contains all info necessary to communicate with and to interpret incoming data from the Honeywell H\-S\-C sensors. Please refer to the \href{http://sensing.honeywell.com/honeywell-sensing-trustability-hsc-series-high-accuracy-board-mount-pressure-sensors-50099148-a-en.pdf}{\tt datasheet} and \href{http://sensing.honeywell.com/spi-comms-digital-ouptu-pressure-sensors-tn-008202-3-en-final-30may12.pdf}{\tt Honeywell S\-P\-I companion} for info on parameters like \#\-P\-\_\-\-\_\-\-O\-U\-T\-\_\-\-M\-A\-X, \#\-P\-\_\-\-O\-U\-T\-\_\-\-\_\-\-M\-I\-N, etc. Note that the specific pressure sensors that we use are\-: H\-S\-C D L\-N N 100\-M\-D S A 5. 8 | 9 | The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 10 | \item 11 | \hyperlink{pressure__header_8h}{pressure\-\_\-header.\-h}\end{DoxyCompactItemize} 12 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['c_5fkalman',['C_kalman',['../master__header_8h.html#a0b2be3ffe13cc12db829a2f5d74c1437',1,'master_header.h']]], 4 | ['calib_5f_5ftime',['CALIB__TIME',['../imu__header_8h.html#a0d2de52d42f8a27829b87641927ff93f',1,'CALIB__TIME(): master.c'],['../master_8c.html#a0d2de52d42f8a27829b87641927ff93f',1,'CALIB__TIME(): master.c']]], 5 | ['cols',['cols',['../structMATRIX.html#abed4f2973053f5090c9ae3a4fe7e00d7',1,'MATRIX']]], 6 | ['control_5f_5ftime_5fstep',['CONTROL__TIME_STEP',['../master_8c.html#ad65316b8093332d3801f420bc1edfd3e',1,'master.c']]], 7 | ['control_5flog',['control_log',['../master_8c.html#ae06637938d6d98b3460b9a9fc04ca510',1,'control_log(): master.c'],['../master__header_8h.html#ae06637938d6d98b3460b9a9fc04ca510',1,'control_log(): master.c']]], 8 | ['control_5fquit',['Control_quit',['../master__header_8h.html#a683306c600ef5cbf03bdc97f0f190007',1,'master_header.h']]], 9 | ['control_5frange',['control_range',['../structControl__loop.html#a356d69d54de1f56c81ebd3fa7f68ddc6',1,'Control_loop']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['search_5fpwm',['search_PWM',['../master__funcs_8c.html#aae7594d7909a61de28722b124378a837',1,'master_funcs.c']]], 4 | ['set_5fnew_5fattr',['set_new_attr',['../imu__funcs_8c.html#ab43fd2629dea282222c48fc720df4517',1,'imu_funcs.c']]], 5 | ['set_5fto_5fblocking',['set_to_blocking',['../imu__funcs_8c.html#acff6f9de3e5075f5b3e6c2806651e446',1,'imu_funcs.c']]], 6 | ['simp1',['simp1',['../simplex__funcs_8c.html#abdfdf17d70ce804cbe516d53e96d46c1',1,'simplex_funcs.c']]], 7 | ['simp2',['simp2',['../simplex__funcs_8c.html#abd093efccc7043e24678e422adf3164a',1,'simplex_funcs.c']]], 8 | ['simp3',['simp3',['../simplex__funcs_8c.html#a6313a32f2829cfab13fa7bd1fd237c44',1,'simplex_funcs.c']]], 9 | ['simplx',['simplx',['../simplex__funcs_8c.html#a32ea4090b3d243790c8d473697de44bd',1,'simplex_funcs.c']]], 10 | ['startvideo',['startVideo',['../spycam__funcs_8c.html#a58f674016d08977cecd1230c77ddb9e2',1,'spycam_funcs.c']]], 11 | ['stopvideo',['stopVideo',['../spycam__funcs_8c.html#a97c176c16888bfc4594e7296faf58910',1,'spycam_funcs.c']]] 12 | ]; 13 | -------------------------------------------------------------------------------- /Doxygen/latex/structLQR__control__loop.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structLQR__control__loop}{\section{L\-Q\-R\-\_\-control\-\_\-loop Struct Reference} 2 | \label{structLQR__control__loop}\index{L\-Q\-R\-\_\-control\-\_\-loop@{L\-Q\-R\-\_\-control\-\_\-loop}} 3 | } 4 | \subsection*{Public Attributes} 5 | \begin{DoxyCompactItemize} 6 | \item 7 | \hypertarget{structLQR__control__loop_a2931b4d0886bd656eb4e0cc05d09e061}{float {\bfseries K}}\label{structLQR__control__loop_a2931b4d0886bd656eb4e0cc05d09e061} 8 | 9 | \item 10 | \hypertarget{structLQR__control__loop_a92243d19c31accb79b0f3496ed8d099d}{float {\bfseries satur}}\label{structLQR__control__loop_a92243d19c31accb79b0f3496ed8d099d} 11 | 12 | \item 13 | \hypertarget{structLQR__control__loop_a9bac9e16e10445cbce605332be22ae99}{float {\bfseries control\-\_\-range}}\label{structLQR__control__loop_a9bac9e16e10445cbce605332be22ae99} 14 | 15 | \end{DoxyCompactItemize} 16 | 17 | 18 | The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 19 | \item 20 | \hyperlink{master__header_8h}{master\-\_\-header.\-h}\end{DoxyCompactItemize} 21 | -------------------------------------------------------------------------------- /Doxygen/latex/spycam__header_8h.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{spycam__header_8h}{\section{spycam\-\_\-header.\-h File Reference} 2 | \label{spycam__header_8h}\index{spycam\-\_\-header.\-h@{spycam\-\_\-header.\-h}} 3 | } 4 | 5 | 6 | Raspberry Pi spy camera header file. 7 | 8 | 9 | \subsection*{Variables} 10 | \begin{DoxyCompactItemize} 11 | \item 12 | \hypertarget{spycam__header_8h_ae0d46a978d5cd6707411f276ad869b9c}{pid\-\_\-t \hyperlink{spycam__header_8h_ae0d46a978d5cd6707411f276ad869b9c}{pid}}\label{spycam__header_8h_ae0d46a978d5cd6707411f276ad869b9c} 13 | 14 | \begin{DoxyCompactList}\small\item\em Process I\-D variable for the Raspberry Pi spy camera video recording. \end{DoxyCompactList}\end{DoxyCompactItemize} 15 | 16 | 17 | \subsection{Detailed Description} 18 | Raspberry Pi spy camera header file. \begin{DoxyAuthor}{Author} 19 | Danylo Malyuta \href{mailto:danylo.malyuta@gmail.com}{\tt danylo.\-malyuta@gmail.\-com} 20 | \end{DoxyAuthor} 21 | \begin{DoxyVersion}{Version} 22 | 1.\-0 23 | \end{DoxyVersion} 24 | This is the header to \hyperlink{spycam__funcs_8c}{spycam\-\_\-funcs.\-c} containing necessary function and variable declarations. -------------------------------------------------------------------------------- /Doxygen/html/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_11.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_12.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_13.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_14.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_15.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_16.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_17.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_18.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/files_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/pages_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/classes_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/classes_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/classes_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/defines_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/typedefs_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_11.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_12.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_13.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_14.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_15.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_16.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_17.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 DanyloMalyuta 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /msp430/Debug/FlyARocket_GNC_MSP430_slave.pp: -------------------------------------------------------------------------------- 1 | # FIXED 2 | 3 | FlyARocket_GNC_MSP430_slave.obj: ../FlyARocket_GNC_MSP430_slave.c 4 | FlyARocket_GNC_MSP430_slave.obj: C:/ti/ccsv6/ccs_base/msp430/include/msp430g2553.h 5 | FlyARocket_GNC_MSP430_slave.obj: C:/ti/ccsv6/ccs_base/msp430/include/in430.h 6 | FlyARocket_GNC_MSP430_slave.obj: C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3/include/intrinsics.h 7 | FlyARocket_GNC_MSP430_slave.obj: C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3/include/intrinsics_legacy_undefs.h 8 | FlyARocket_GNC_MSP430_slave.obj: C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3/include/string.h 9 | FlyARocket_GNC_MSP430_slave.obj: C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3/include/linkage.h 10 | 11 | ../FlyARocket_GNC_MSP430_slave.c: 12 | C:/ti/ccsv6/ccs_base/msp430/include/msp430g2553.h: 13 | C:/ti/ccsv6/ccs_base/msp430/include/in430.h: 14 | C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3/include/intrinsics.h: 15 | C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3/include/intrinsics_legacy_undefs.h: 16 | C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3/include/string.h: 17 | C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3/include/linkage.h: 18 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['get_5ffiltered_5fattitude_5fparallel',['get_filtered_attitude_parallel',['../imu__funcs_8c.html#a819d365851c5396da5453c27c37af71b',1,'imu_funcs.c']]], 4 | ['get_5fold_5fattr',['get_old_attr',['../imu__funcs_8c.html#af0de4ccb0965284af856630060f952ff',1,'imu_funcs.c']]], 5 | ['get_5freadings_5fspi_5fparallel',['get_readings_SPI_parallel',['../pressure__funcs_8c.html#a6c8634a0f37e059edc662324a919c39e',1,'pressure_funcs.c']]], 6 | ['get_5fsimplex_5fsolution',['get_simplex_solution',['../simplex__funcs_8c.html#a01b1cf65d8b2a0515866249c8c26ee94',1,'simplex_funcs.c']]], 7 | ['global_5f_5ftime_5fstartpoint',['GLOBAL__TIME_STARTPOINT',['../master__header_8h.html#ac252c85bbad7e441650702547296055d',1,'master_header.h']]], 8 | ['gpio',['gpio',['../master_8c.html#a9181fa0a34f8c0ed9983a6088fa1de19',1,'gpio(): master.c'],['../rpi__gpio__header_8h.html#a9181fa0a34f8c0ed9983a6088fa1de19',1,'gpio(): master.c']]], 9 | ['gpio_5fbase',['GPIO_BASE',['../rpi__gpio__header_8h.html#acce3b8a909ed8b957b4e411dfb7cbd91',1,'rpi_gpio_header.h']]], 10 | ['gpio_5fread',['GPIO_READ',['../rpi__gpio__header_8h.html#a1b3cfde4a8e61549b9056e961d0c636f',1,'rpi_gpio_header.h']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /MATLAB/valve_curve.m: -------------------------------------------------------------------------------- 1 | % Generate the curve necessary for valve PWM 2 | 3 | img = imread('./images/curve.png'); 4 | 5 | VALVE__MAX_THRUST=0.5; % [N] 6 | 7 | % Flip the image upside down before showing it 8 | imagesc([0 127], [0 VALVE__MAX_THRUST], flipud(img)); 9 | 10 | % NOTE: if your image is RGB, you should use flipdim(img, 1) instead of flipud. 11 | 12 | % set the y-axis back to normal. 13 | set(gca,'ydir','normal'); 14 | 15 | [x,y] = ginput; 16 | 17 | y(1)=0; 18 | y(end)=VALVE__MAX_THRUST; 19 | 20 | x(end)=127; 21 | 22 | b=x(end); 23 | a=x(1); 24 | x=(x-a)./(b-a)*b; % Rescale the PWM values to a 0-127 scale (7 bits) 25 | 26 | % Now display the C code to copy-paste into GNC software 27 | 28 | fprintf('# define VALVE_CHARAC_RESOLUTION %d\n',length(x)); 29 | fprintf('unsigned int PWM_valve_charac[VALVE_CHARAC_RESOLUTION] = {'); 30 | 31 | for ii=1:length(x) 32 | if ii==1 33 | fprintf('%u',round(x(ii))); 34 | else 35 | fprintf(',%u',round(x(ii))); 36 | end 37 | end 38 | 39 | fprintf('};\n'); 40 | 41 | fprintf('double R_valve_charac[VALVE_CHARAC_RESOLUTION] = {'); 42 | 43 | for ii=1:length(y) 44 | if ii==1 45 | fprintf('%.4f',y(ii)); 46 | else 47 | fprintf(',%.4f',y(ii)); 48 | end 49 | end 50 | 51 | fprintf('};\n'); 52 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['find_5fraw_5feuler_5fangular_5fvelocities',['Find_raw_Euler_angular_velocities',['../imu__funcs_8c.html#a0f46701132540ff5241c276a19f7b38d',1,'imu_funcs.c']]], 4 | ['flight_5ftype',['flight_type',['../master_8c.html#a20e25587eb43f10683bcfadd136eb9d7',1,'master.c']]], 5 | ['fpitch',['Fpitch',['../master_8c.html#a24acaae245ca32a559b504e1a1e084d9',1,'Fpitch(): master.c'],['../master__header_8h.html#a24acaae245ca32a559b504e1a1e084d9',1,'Fpitch(): master.c']]], 6 | ['fpitch_5floop',['Fpitch_loop',['../control__header_8h.html#a5f9d64e1376655f5e45ccdcd9693d485',1,'control_header.h']]], 7 | ['fpitch_5floop_5fcontrol_5fsetup',['Fpitch_loop_control_setup',['../control__funcs_8c.html#a61112075a4a85516d83e6a5783195f6a',1,'control_funcs.c']]], 8 | ['fyaw',['Fyaw',['../master_8c.html#a03c2e0033499a13a6e9113bec977055f',1,'Fyaw(): master.c'],['../master__header_8h.html#a03c2e0033499a13a6e9113bec977055f',1,'Fyaw(): master.c']]], 9 | ['fyaw_5floop',['Fyaw_loop',['../control__header_8h.html#ad89b391fe05f2eb23be1db12931f221d',1,'control_header.h']]], 10 | ['fyaw_5floop_5fcontrol_5fsetup',['Fyaw_loop_control_setup',['../control__funcs_8c.html#a7ae1b1a2260fb4f478a16bfbef58a40c',1,'control_funcs.c']]], 11 | ['flyarocket_5fgnc',['FlyARocket_GNC',['../md_README.html',1,'']]] 12 | ]; 13 | -------------------------------------------------------------------------------- /Doxygen/html/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['madd',['madd',['../la__funcs_8c.html#a6c3e092b2445211a9ca544e4da90ccf8',1,'la_funcs.c']]], 4 | ['main',['main',['../master_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'master.c']]], 5 | ['map_5fperipheral',['map_peripheral',['../rpi__gpio__funcs_8c.html#ad3bdaca79a25f350a4b4ffb8304520d0',1,'rpi_gpio_funcs.c']]], 6 | ['min_5fof_5fset',['min_of_set',['../imu__funcs_8c.html#a284639531ae985a2c56847c4b4d3c941',1,'imu_funcs.c']]], 7 | ['minverse_5f1x1',['minverse_1x1',['../la__funcs_8c.html#a61401811bbbe522066985489991570f5',1,'la_funcs.c']]], 8 | ['mmultiply',['mmultiply',['../la__funcs_8c.html#aba2709cb4dca22f57d0aa98c6de62164',1,'la_funcs.c']]], 9 | ['mroll_5floop_5fcontrol_5fsetup',['Mroll_loop_control_setup',['../control__funcs_8c.html#a96c5ad1205f723d2600471fd9962144b',1,'control_funcs.c']]], 10 | ['msp430_5fuart_5freceive',['MSP430_UART_receive',['../msp430__funcs_8c.html#a37c1f83aba04ac0ce28faf5ba3b537a5',1,'msp430_funcs.c']]], 11 | ['msp430_5fuart_5fwrite',['MSP430_UART_write',['../msp430__funcs_8c.html#a33738ffa4af6e11695b247aee563b6f5',1,'msp430_funcs.c']]], 12 | ['msp430_5fuart_5fwrite_5fpwm',['MSP430_UART_write_PWM',['../msp430__funcs_8c.html#a8efdf02df6574899acd7b8634f8f4007',1,'msp430_funcs.c']]], 13 | ['msubtract',['msubtract',['../la__funcs_8c.html#acbf340d949fa4be6dd552e38eaceece3',1,'la_funcs.c']]] 14 | ]; 15 | -------------------------------------------------------------------------------- /msp430_header.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file msp430_header.h 3 | * @author Danylo Malyuta 4 | * @version 1.0 5 | * 6 | * @brief MSP430 header file 7 | * 8 | * This is the header to msp430_funcs.c containing necessary definitions and 9 | * initializations. 10 | */ 11 | 12 | #ifndef MSP430_HEADER_H_ 13 | #define MSP430_HEADER_H_ 14 | 15 | # define MSP430_MAX_BUFFER 1 ///< Buffer size for receving messages from MSP430 (just '!' so 1 byte buffer is used) 16 | 17 | char MSP430_RX[MSP430_MAX_BUFFER]; ///< Buffer holding received values via UART from Razor IMU 18 | int MSP430_UART; ///< Holds Razor IMU connection file 19 | char MSP430_reply_string; ///< String holding the MSP430 reply 20 | unsigned char PWM_TX_packet[6]; ///< Packet of 1 byte for "#" and 5 bytes containing the 4 PWM values, to send to MSP430 21 | 22 | struct termios new_msp430_uart_options; ///< The new options we set for communicating the the MSP430 UART after opening it. 23 | struct termios old_msp430_uart_options; ///< The old options we save after opening the MSP430 UART connection; we restitute them before closing the connection at the end of the program. 24 | 25 | /** @cond INCLUDE_WITH_DOXYGEN */ 26 | void MSP430_UART_receive(); 27 | void MSP430_UART_write(char MSP430_TX[3]); 28 | void MSP430_UART_write_PWM(unsigned int PWM1, unsigned int PWM2,unsigned int PWM3,unsigned int PWM4); 29 | /** @endcond */ 30 | 31 | #endif /* MSP430_HEADER_H_ */ 32 | -------------------------------------------------------------------------------- /Doxygen/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 7 | } 8 | 9 | .tabs2 { 10 | font-size: 10px; 11 | } 12 | .tabs3 { 13 | font-size: 9px; 14 | } 15 | 16 | .tablist { 17 | margin: 0; 18 | padding: 0; 19 | display: table; 20 | } 21 | 22 | .tablist li { 23 | float: left; 24 | display: table-cell; 25 | background-image: url('tab_b.png'); 26 | line-height: 36px; 27 | list-style: none; 28 | } 29 | 30 | .tablist a { 31 | display: block; 32 | padding: 0 20px; 33 | font-weight: bold; 34 | background-image:url('tab_s.png'); 35 | background-repeat:no-repeat; 36 | background-position:right; 37 | color: #283A5D; 38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 39 | text-decoration: none; 40 | outline: none; 41 | } 42 | 43 | .tabs3 .tablist a { 44 | padding: 0 10px; 45 | } 46 | 47 | .tablist a:hover { 48 | background-image: url('tab_h.png'); 49 | background-repeat:repeat-x; 50 | color: #fff; 51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 52 | text-decoration: none; 53 | } 54 | 55 | .tablist li.current a { 56 | background-image: url('tab_a.png'); 57 | background-repeat:repeat-x; 58 | color: #fff; 59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 60 | } 61 | -------------------------------------------------------------------------------- /Doxygen/latex/structMATRIX.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structMATRIX}{\section{M\-A\-T\-R\-I\-X Struct Reference} 2 | \label{structMATRIX}\index{M\-A\-T\-R\-I\-X@{M\-A\-T\-R\-I\-X}} 3 | } 4 | 5 | 6 | {\ttfamily \#include $<$la\-\_\-header.\-h$>$} 7 | 8 | \subsection*{Public Attributes} 9 | \begin{DoxyCompactItemize} 10 | \item 11 | \hypertarget{structMATRIX_a35aca49172760dc3ebfd87cfb09c640e}{size\-\_\-t \hyperlink{structMATRIX_a35aca49172760dc3ebfd87cfb09c640e}{rows}}\label{structMATRIX_a35aca49172760dc3ebfd87cfb09c640e} 12 | 13 | \begin{DoxyCompactList}\small\item\em Number of rows. \end{DoxyCompactList}\item 14 | \hypertarget{structMATRIX_abed4f2973053f5090c9ae3a4fe7e00d7}{size\-\_\-t \hyperlink{structMATRIX_abed4f2973053f5090c9ae3a4fe7e00d7}{cols}}\label{structMATRIX_abed4f2973053f5090c9ae3a4fe7e00d7} 15 | 16 | \begin{DoxyCompactList}\small\item\em Number of columns. \end{DoxyCompactList}\item 17 | \hypertarget{structMATRIX_a1b56eebd963b3128d1ed05eaabb73362}{float $\ast$$\ast$ \hyperlink{structMATRIX_a1b56eebd963b3128d1ed05eaabb73362}{matrix}}\label{structMATRIX_a1b56eebd963b3128d1ed05eaabb73362} 18 | 19 | \begin{DoxyCompactList}\small\item\em The dynamic 2\-D array. \end{DoxyCompactList}\end{DoxyCompactItemize} 20 | 21 | 22 | \subsection{Detailed Description} 23 | This is the structure for a Matrix. 24 | 25 | The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 26 | \item 27 | \hyperlink{la__header_8h}{la\-\_\-header.\-h}\end{DoxyCompactItemize} 28 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['i',['i',['../simplex__header_8h.html#acb559820d9ca11295b4500f179ef6392',1,'simplex_header.h']]], 4 | ['imu_5f_5fread_5ftimestep',['IMU__READ_TIMESTEP',['../master_8c.html#a2dad9d03b6168bcb6c69d461514a833f',1,'IMU__READ_TIMESTEP(): master.c'],['../master__header_8h.html#a2dad9d03b6168bcb6c69d461514a833f',1,'IMU__READ_TIMESTEP(): master.c']]], 5 | ['imu_5flog',['imu_log',['../master_8c.html#acfbcaf4efce8ebd037ba912955853c0c',1,'imu_log(): master.c'],['../master__header_8h.html#acfbcaf4efce8ebd037ba912955853c0c',1,'imu_log(): master.c']]], 6 | ['imu_5fquit',['IMU_quit',['../master_8c.html#a0c2fbbcefec3fbaa9bf5405eafb92688',1,'IMU_quit(): master.c'],['../master__header_8h.html#a0c2fbbcefec3fbaa9bf5405eafb92688',1,'IMU_quit(): master.c']]], 7 | ['imu_5frx',['IMU_RX',['../imu__header_8h.html#a2895cbc2038329e796341d55445548da',1,'imu_header.h']]], 8 | ['imu_5fsynch_5freceive',['IMU_SYNCH_RECEIVE',['../imu__header_8h.html#afac0e6e6b89425f5757ea390ace2dc45',1,'imu_header.h']]], 9 | ['imu_5fsynched',['IMU_SYNCHED',['../imu__funcs_8c.html#a6c481df42c58e76b93d7b2dfb1f9c85f',1,'IMU_SYNCHED(): imu_funcs.c'],['../master__header_8h.html#a6c481df42c58e76b93d7b2dfb1f9c85f',1,'IMU_SYNCHED(): imu_funcs.c']]], 10 | ['imu_5ftx',['IMU_TX',['../imu__funcs_8c.html#a26f3dd4d2fa4736feb9aac7f5c68aa9a',1,'IMU_TX(): imu_funcs.c'],['../imu__header_8h.html#a26f3dd4d2fa4736feb9aac7f5c68aa9a',1,'IMU_TX(): imu_funcs.c']]], 11 | ['inn',['inn',['../master__header_8h.html#a987ede4096fe3a3e1e159f0690167ef4',1,'master_header.h']]] 12 | ]; 13 | -------------------------------------------------------------------------------- /control_funcs.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file control_funcs.c 3 | * @author Danylo Malyuta 4 | * @version 1.0 5 | * 6 | * @brief Control functions source file. 7 | * 8 | * This file contains functions regarding the control algorithm. 9 | */ 10 | 11 | # include 12 | # include 13 | # include "master_header.h" 14 | # include "control_header.h" 15 | 16 | double VALVE__MAX_THRUST=0.36; ///< Maximum thrust of RCS solenoid valves (i.e. when fully opened) 17 | 18 | /** 19 | * @fn void Fpitch_loop_control_setup() 20 | * This function setups up all control parameters relating to the pitch control. 21 | */ 22 | void Fpitch_loop_control_setup() { 23 | Fpitch_loop.satur = 0; // We do not use a derivative term in roll rate control 24 | Fpitch_loop.control_range = 0; // We do not use a derivative term in roll rate control 25 | Fpitch_loop.K = 5; 26 | Fpitch_loop.Td = 3; 27 | } 28 | 29 | /** 30 | * @fn void Fyaw_loop_control_setup() 31 | * This function sets up all control parameters relating to the yaw control. 32 | */ 33 | void Fyaw_loop_control_setup() { 34 | Fyaw_loop.satur = 0; // We do not use a derivative term in roll rate control 35 | Fyaw_loop.control_range = 0; // We do not use a derivative term in roll rate control 36 | Fyaw_loop.K = 5; 37 | Fyaw_loop.Td = 3; 38 | } 39 | 40 | /** 41 | * @fn void Mroll_loop_control_setup() 42 | * This function sets up all control parameters relating to the roll control. 43 | */ 44 | void Mroll_loop_control_setup() { 45 | Mroll_loop.satur = 2*d*VALVE__MAX_THRUST; 46 | Mroll_loop.control_range = 100*M_PI/180; // [rad/s] 47 | Mroll_loop.K = Mroll_loop.satur/Mroll_loop.control_range; 48 | Mroll_loop.Td = 0; // We do not use a derivative term in roll rate control 49 | } 50 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['c_5fkalman',['C_kalman',['../master__header_8h.html#a0b2be3ffe13cc12db829a2f5d74c1437',1,'master_header.h']]], 4 | ['calib_5f_5ftime',['CALIB__TIME',['../imu__header_8h.html#a0d2de52d42f8a27829b87641927ff93f',1,'CALIB__TIME(): master.c'],['../master_8c.html#a0d2de52d42f8a27829b87641927ff93f',1,'CALIB__TIME(): master.c']]], 5 | ['calibrate_5fimu',['Calibrate_IMU',['../imu__funcs_8c.html#ad49c526544bbd5b5b163b394bec8a65e',1,'imu_funcs.c']]], 6 | ['check_5ftime',['check_time',['../master__funcs_8c.html#a38415767eeeb2be505d4e823dc187437',1,'master_funcs.c']]], 7 | ['close_5fport',['close_port',['../imu__funcs_8c.html#ac9d43b6aaa5a79aa447df61c4fec5ffe',1,'imu_funcs.c']]], 8 | ['cols',['cols',['../structMATRIX.html#abed4f2973053f5090c9ae3a4fe7e00d7',1,'MATRIX']]], 9 | ['construct_5fzeroed_5fdcm',['construct_zeroed_DCM',['../imu__funcs_8c.html#a00994ba3854703e3e5162202f6d88971',1,'imu_funcs.c']]], 10 | ['control_5f_5ftime_5fstep',['CONTROL__TIME_STEP',['../master_8c.html#ad65316b8093332d3801f420bc1edfd3e',1,'master.c']]], 11 | ['control_5ffuncs_2ec',['control_funcs.c',['../control__funcs_8c.html',1,'']]], 12 | ['control_5fheader_2eh',['control_header.h',['../control__header_8h.html',1,'']]], 13 | ['control_5flog',['control_log',['../master_8c.html#ae06637938d6d98b3460b9a9fc04ca510',1,'control_log(): master.c'],['../master__header_8h.html#ae06637938d6d98b3460b9a9fc04ca510',1,'control_log(): master.c']]], 14 | ['control_5floop',['Control_loop',['../structControl__loop.html',1,'']]], 15 | ['control_5fquit',['Control_quit',['../master__header_8h.html#a683306c600ef5cbf03bdc97f0f190007',1,'master_header.h']]], 16 | ['control_5frange',['control_range',['../structControl__loop.html#a356d69d54de1f56c81ebd3fa7f68ddc6',1,'Control_loop']]] 17 | ]; 18 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['td',['Td',['../structControl__loop.html#aba5fcbc8e5511269f9f53763ceb8e6dd',1,'Control_loop']]], 4 | ['temp1',['temp1',['../imu__header_8h.html#a5e005e112ca8edcc1d9b59fdfaefb7fd',1,'imu_header.h']]], 5 | ['temp2',['temp2',['../imu__header_8h.html#aa6339584cd97a77de4947d82c2bb4239',1,'imu_header.h']]], 6 | ['theta',['theta',['../imu__header_8h.html#aadfc5c227ca658a29a59a0ce6fc15792',1,'imu_header.h']]], 7 | ['theta_5fav',['theta_av',['../imu__funcs_8c.html#aa0743fc7960260ea5ff67757b31cf391',1,'theta_av(): imu_funcs.c'],['../imu__header_8h.html#aa0743fc7960260ea5ff67757b31cf391',1,'theta_av(): imu_funcs.c']]], 8 | ['theta_5fcont',['theta_cont',['../master_8c.html#a447f7a245bed6a4bf1419397a6796fe2',1,'master.c']]], 9 | ['theta_5fdot',['theta_dot',['../imu__header_8h.html#a51e2c6c20a8f3b56806383e174e348e5',1,'imu_header.h']]], 10 | ['theta_5fdot_5ffilt',['theta_dot_filt',['../imu__header_8h.html#a61999694fc798a809e7547d39f6a369c',1,'imu_header.h']]], 11 | ['theta_5ffilt',['theta_filt',['../imu__header_8h.html#abbc13db7b16483062094dfad47e30d7f',1,'imu_header.h']]], 12 | ['theta_5fref',['theta_ref',['../master_8c.html#a1998083078b172081e824577b82fef6b',1,'master.c']]], 13 | ['theta_5fsave',['theta_save',['../imu__header_8h.html#afdb68c1b2d93d741c076cef5cd1acd24',1,'imu_header.h']]], 14 | ['theta_5fsave_5flast',['theta_save_last',['../imu__funcs_8c.html#a388244ea471e5baf0e7250cdb4fea585',1,'theta_save_last(): imu_funcs.c'],['../imu__header_8h.html#a388244ea471e5baf0e7250cdb4fea585',1,'theta_save_last(): imu_funcs.c']]], 15 | ['thetadot_5fcont',['thetadot_cont',['../master_8c.html#a4393d99287a8d82b76d027263ebb2f16',1,'master.c']]], 16 | ['transfer',['transfer',['../pressure__header_8h.html#a4b81aaf60ccf7ef31d6b25171bd587bb',1,'pressure_header.h']]] 17 | ]; 18 | -------------------------------------------------------------------------------- /rpi_gpio_funcs.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file rpi_gpio_funcs.c 3 | * @author Danylo Malyuta 4 | * @version 1.0 5 | * 6 | * @brief GPIO functions file 7 | * 8 | * This file contains GPIO low-level access functions. This file is a slightly modified 9 | * version of the code provided by Pieter-Jan Van de Maele here. 10 | */ 11 | 12 | # include 13 | # include "rpi_gpio_header.h" 14 | 15 | /** 16 | * @fn int map_peripheral(struct bcm2835_peripheral *p) 17 | * This function maps a GPIO port for access in the software. 18 | * Exposes the physical address defined in the passed structure using mmap on /dev/mem. 19 | * 20 | * @param p Pointer to the GPIO port structure. 21 | */ 22 | int map_peripheral(struct bcm2835_peripheral *p) { 23 | // Open /dev/mem 24 | if ((p->mem_fd = open("/dev/mem", O_RDWR | O_SYNC) ) < 0) { // NB : p->mem_fd is a shortcut commad for (*p).mem_fd 25 | printf("Failed to open /dev/mem, try checking permissions.\n"); 26 | return -1; 27 | } 28 | 29 | p->map = mmap( 30 | NULL, 31 | BLOCK_SIZE, 32 | PROT_READ|PROT_WRITE, 33 | MAP_SHARED, 34 | p->mem_fd, // File descriptor to physical memory virtual file '/dev/mem' 35 | p->addr_p // Address in physical map that we want this memory block to expose 36 | ); 37 | 38 | if (p->map == MAP_FAILED) { 39 | perror("mmap"); 40 | return -1; 41 | } 42 | 43 | p->addr = (volatile unsigned int *)p->map; 44 | 45 | return 0; 46 | } 47 | 48 | /** 49 | * @fn void unmap_peripheral(struct bcm2835_peripheral *p) 50 | * This function unmaps a GPIO port. 51 | * 52 | * @param p Pointer to the GPIO port structure. 53 | */ 54 | void unmap_peripheral(struct bcm2835_peripheral *p) { 55 | munmap(p->map, BLOCK_SIZE); 56 | close(p->mem_fd); 57 | } 58 | -------------------------------------------------------------------------------- /control_header.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file control_header.h 3 | * @author Danylo Malyuta 4 | * @version 1.0 5 | * 6 | * @brief Control header file. 7 | * 8 | * This is the header to control_funcs.c containing necessary definitions and 9 | * initializations. 10 | */ 11 | 12 | #ifndef CONTROL_HEADER_H_ 13 | #define CONTROL_HEADER_H_ 14 | 15 | /** 16 | * @struct Control_loop 17 | * This structure holds all of the variables relating to a control loop of the GNC 18 | * algorithm. Namely, there are three such control loops used: 19 | * - For the pitch force, Fpitch 20 | * - For the yaw force, Fyaw 21 | * - For the roll moment, Mroll 22 | * 23 | * The combination of these three control loops stabilizes the rocket to point vertically up at all time 24 | */ 25 | struct Control_loop { 26 | double K; ///< Proportional term coefficient 27 | double Td; ///< Derivative term coefficient 28 | double satur; ///< Absolute ceiling of possible control loop output value 29 | double control_range; ///< At what angle from the vertical orientation to we begin applying maximum control input? 30 | }; 31 | 32 | /** 33 | * @name Control loop group 34 | * These structures define fully the control of the rocket - i.e. the control gains. 35 | * @{ 36 | */ 37 | struct Control_loop Fpitch_loop; ///< Pitch control loop, uses feedback on #theta_filt to tell what pitching corrective force we need 38 | struct Control_loop Fyaw_loop; ///< Yaw control loop, uses feedback on #psi_filt to tell what yawing corrective force we need 39 | struct Control_loop Mroll_loop; ///< Roll control loop, uses feedback on #phi_dot_filt to tell what corrective rolling moment we need 40 | /** @} */ 41 | 42 | /** @cond INCLUDE_WITH_DOXYGEN */ 43 | void Fpitch_loop_control_setup(); 44 | void Fyaw_loop_control_setup(); 45 | void Mroll_loop_control_setup(); 46 | /** @endcond */ 47 | 48 | #endif /* CONTROL_HEADER_H_ */ 49 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['i',['i',['../simplex__header_8h.html#acb559820d9ca11295b4500f179ef6392',1,'simplex_header.h']]], 4 | ['imu_5f_5fread_5ftimestep',['IMU__READ_TIMESTEP',['../master_8c.html#a2dad9d03b6168bcb6c69d461514a833f',1,'IMU__READ_TIMESTEP(): master.c'],['../master__header_8h.html#a2dad9d03b6168bcb6c69d461514a833f',1,'IMU__READ_TIMESTEP(): master.c']]], 5 | ['imu_5ffuncs_2ec',['imu_funcs.c',['../imu__funcs_8c.html',1,'']]], 6 | ['imu_5fheader_2eh',['imu_header.h',['../imu__header_8h.html',1,'']]], 7 | ['imu_5flog',['imu_log',['../master_8c.html#acfbcaf4efce8ebd037ba912955853c0c',1,'imu_log(): master.c'],['../master__header_8h.html#acfbcaf4efce8ebd037ba912955853c0c',1,'imu_log(): master.c']]], 8 | ['imu_5fquit',['IMU_quit',['../master_8c.html#a0c2fbbcefec3fbaa9bf5405eafb92688',1,'IMU_quit(): master.c'],['../master__header_8h.html#a0c2fbbcefec3fbaa9bf5405eafb92688',1,'IMU_quit(): master.c']]], 9 | ['imu_5frx',['IMU_RX',['../imu__header_8h.html#a2895cbc2038329e796341d55445548da',1,'imu_header.h']]], 10 | ['imu_5fsynch_5freceive',['IMU_SYNCH_RECEIVE',['../imu__header_8h.html#afac0e6e6b89425f5757ea390ace2dc45',1,'imu_header.h']]], 11 | ['imu_5fsynched',['IMU_SYNCHED',['../imu__funcs_8c.html#a6c481df42c58e76b93d7b2dfb1f9c85f',1,'IMU_SYNCHED(): imu_funcs.c'],['../master__header_8h.html#a6c481df42c58e76b93d7b2dfb1f9c85f',1,'IMU_SYNCHED(): imu_funcs.c']]], 12 | ['imu_5ftx',['IMU_TX',['../imu__funcs_8c.html#a26f3dd4d2fa4736feb9aac7f5c68aa9a',1,'IMU_TX(): imu_funcs.c'],['../imu__header_8h.html#a26f3dd4d2fa4736feb9aac7f5c68aa9a',1,'IMU_TX(): imu_funcs.c']]], 13 | ['initmatrix',['initMatrix',['../la__funcs_8c.html#a3adcfc4926f7e83a7ab0df36709935cb',1,'la_funcs.c']]], 14 | ['inn',['inn',['../master__header_8h.html#a987ede4096fe3a3e1e159f0690167ef4',1,'master_header.h']]], 15 | ['inp_5fgpio',['INP_GPIO',['../rpi__gpio__header_8h.html#a03886f219aed83bfc164616c20270990',1,'rpi_gpio_header.h']]] 16 | ]; 17 | -------------------------------------------------------------------------------- /rpi_gpio_header.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file rpi_gpio_header.h 3 | * @author Danylo Malyuta 4 | * @version 1.0 5 | * 6 | * @brief MSP430 header file 7 | * 8 | * This is the header to rpi_gpio_funcs.c containing necessary definitions and 9 | * initializations. This header is a slightly reduced version (to the bare bones that 10 | * the GNC program needs) of the header provided by Pieter-Jan Van de Maele 11 | * here. 12 | */ 13 | 14 | #ifndef RPI_GPIO_HEADER_H_ 15 | #define RPI_GPIO_HEADER_H_ 16 | 17 | # include 18 | # include 19 | # include 20 | # include 21 | # include 22 | 23 | # define BCM2708_PERI_BASE 0x20000000 ///< Physical address at which the peripheral registers start 24 | # define GPIO_BASE (BCM2708_PERI_BASE + 0x200000) ///< Address of the GPIO controller (expresset as an offset with respect to #BCM2708_PERI_BASE) 25 | 26 | # define BLOCK_SIZE (4*1024) 27 | 28 | /** 29 | * @struct bcm2835_peripheral 30 | * Holds what's needed to access the Raspberry Pi GPIO port. 31 | */ 32 | struct bcm2835_peripheral { 33 | unsigned long addr_p; ///< Address in physical map that we want this memory block to expose 34 | int mem_fd; ///< File descriptor to physical memory virtual file '/dev/mem' 35 | void *map; 36 | volatile unsigned int *addr; ///< Refers to register address 37 | }; 38 | 39 | extern struct bcm2835_peripheral gpio; ///< The GPIO port access variable 40 | 41 | // Always do an INP_GPIO(g) before doing an OUT_GPIO(g) 42 | # define INP_GPIO(g) *(gpio.addr + ((g)/10)) &= ~(7<<(((g)%10)*3)) ///< Set pin as input 43 | # define GPIO_READ(g) *(gpio.addr + 13) &= (1<<(g)) ///< Read an input pin's state 44 | 45 | /** @cond INCLUDE_WITH_DOXYGEN */ 46 | int map_peripheral(struct bcm2835_peripheral *p); 47 | void unmap_peripheral(struct bcm2835_peripheral *p); 48 | /** @endcond */ 49 | 50 | #endif /* RPI_GPIO_HEADER_H_ */ 51 | -------------------------------------------------------------------------------- /Doxygen/latex/structbcm2835__peripheral.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structbcm2835__peripheral}{\section{bcm2835\-\_\-peripheral Struct Reference} 2 | \label{structbcm2835__peripheral}\index{bcm2835\-\_\-peripheral@{bcm2835\-\_\-peripheral}} 3 | } 4 | 5 | 6 | {\ttfamily \#include $<$rpi\-\_\-gpio\-\_\-header.\-h$>$} 7 | 8 | \subsection*{Public Attributes} 9 | \begin{DoxyCompactItemize} 10 | \item 11 | \hypertarget{structbcm2835__peripheral_a972e542acd3ccb0b9a5f73aa75251b57}{unsigned long \hyperlink{structbcm2835__peripheral_a972e542acd3ccb0b9a5f73aa75251b57}{addr\-\_\-p}}\label{structbcm2835__peripheral_a972e542acd3ccb0b9a5f73aa75251b57} 12 | 13 | \begin{DoxyCompactList}\small\item\em Address in physical map that we want this memory block to expose. \end{DoxyCompactList}\item 14 | \hypertarget{structbcm2835__peripheral_a141406ce70084a329a865ac2e73db2f3}{int \hyperlink{structbcm2835__peripheral_a141406ce70084a329a865ac2e73db2f3}{mem\-\_\-fd}}\label{structbcm2835__peripheral_a141406ce70084a329a865ac2e73db2f3} 15 | 16 | \begin{DoxyCompactList}\small\item\em File descriptor to physical memory virtual file '/dev/mem'. \end{DoxyCompactList}\item 17 | \hypertarget{structbcm2835__peripheral_a8ce91c13928c404b67e1990bf4a5018b}{void $\ast$ {\bfseries map}}\label{structbcm2835__peripheral_a8ce91c13928c404b67e1990bf4a5018b} 18 | 19 | \item 20 | \hypertarget{structbcm2835__peripheral_ac33828b1b9863498b33058a4ca2985dc}{volatile unsigned int $\ast$ \hyperlink{structbcm2835__peripheral_ac33828b1b9863498b33058a4ca2985dc}{addr}}\label{structbcm2835__peripheral_ac33828b1b9863498b33058a4ca2985dc} 21 | 22 | \begin{DoxyCompactList}\small\item\em Refers to register address. \end{DoxyCompactList}\end{DoxyCompactItemize} 23 | 24 | 25 | \subsection{Detailed Description} 26 | Holds what's needed to access the Raspberry Pi G\-P\-I\-O port. 27 | 28 | The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 29 | \item 30 | \hyperlink{rpi__gpio__header_8h}{rpi\-\_\-gpio\-\_\-header.\-h}\end{DoxyCompactItemize} 31 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['td',['Td',['../structControl__loop.html#aba5fcbc8e5511269f9f53763ceb8e6dd',1,'Control_loop']]], 4 | ['temp1',['temp1',['../imu__header_8h.html#a5e005e112ca8edcc1d9b59fdfaefb7fd',1,'imu_header.h']]], 5 | ['temp2',['temp2',['../imu__header_8h.html#aa6339584cd97a77de4947d82c2bb4239',1,'imu_header.h']]], 6 | ['theta',['theta',['../imu__header_8h.html#aadfc5c227ca658a29a59a0ce6fc15792',1,'imu_header.h']]], 7 | ['theta_5fav',['theta_av',['../imu__funcs_8c.html#aa0743fc7960260ea5ff67757b31cf391',1,'theta_av(): imu_funcs.c'],['../imu__header_8h.html#aa0743fc7960260ea5ff67757b31cf391',1,'theta_av(): imu_funcs.c']]], 8 | ['theta_5fcont',['theta_cont',['../master_8c.html#a447f7a245bed6a4bf1419397a6796fe2',1,'master.c']]], 9 | ['theta_5fdot',['theta_dot',['../imu__header_8h.html#a51e2c6c20a8f3b56806383e174e348e5',1,'imu_header.h']]], 10 | ['theta_5fdot_5ffilt',['theta_dot_filt',['../imu__header_8h.html#a61999694fc798a809e7547d39f6a369c',1,'imu_header.h']]], 11 | ['theta_5ffilt',['theta_filt',['../imu__header_8h.html#abbc13db7b16483062094dfad47e30d7f',1,'imu_header.h']]], 12 | ['theta_5fref',['theta_ref',['../master_8c.html#a1998083078b172081e824577b82fef6b',1,'master.c']]], 13 | ['theta_5fsave',['theta_save',['../imu__header_8h.html#afdb68c1b2d93d741c076cef5cd1acd24',1,'imu_header.h']]], 14 | ['theta_5fsave_5flast',['theta_save_last',['../imu__funcs_8c.html#a388244ea471e5baf0e7250cdb4fea585',1,'theta_save_last(): imu_funcs.c'],['../imu__header_8h.html#a388244ea471e5baf0e7250cdb4fea585',1,'theta_save_last(): imu_funcs.c']]], 15 | ['thetadot_5fcont',['thetadot_cont',['../master_8c.html#a4393d99287a8d82b76d027263ebb2f16',1,'master.c']]], 16 | ['to_5fdeg',['TO_DEG',['../imu__funcs_8c.html#a530aca183f3048a15b2018cef637d5f5',1,'imu_funcs.c']]], 17 | ['transfer',['transfer',['../pressure__header_8h.html#a4b81aaf60ccf7ef31d6b25171bd587bb',1,'pressure_header.h']]], 18 | ['transpose',['transpose',['../la__funcs_8c.html#a10c538631864f825891da97cc8dc7d5d',1,'la_funcs.c']]], 19 | ['treat_5freply',['Treat_reply',['../imu__funcs_8c.html#a20a4f75f9d2fefab9dbc656f77eeda06',1,'imu_funcs.c']]] 20 | ]; 21 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s',['S',['../master__header_8h.html#adbd85b44323c597c3a7a4d0a6ed49192',1,'master_header.h']]], 4 | ['satur',['satur',['../structControl__loop.html#a90ed943640ce57e399c42de9d994a55c',1,'Control_loop']]], 5 | ['search_5fpwm',['search_PWM',['../master__funcs_8c.html#aae7594d7909a61de28722b124378a837',1,'master_funcs.c']]], 6 | ['set_5fnew_5fattr',['set_new_attr',['../imu__funcs_8c.html#ab43fd2629dea282222c48fc720df4517',1,'imu_funcs.c']]], 7 | ['set_5fto_5fblocking',['set_to_blocking',['../imu__funcs_8c.html#acff6f9de3e5075f5b3e6c2806651e446',1,'imu_funcs.c']]], 8 | ['simp1',['simp1',['../simplex__funcs_8c.html#abdfdf17d70ce804cbe516d53e96d46c1',1,'simplex_funcs.c']]], 9 | ['simp2',['simp2',['../simplex__funcs_8c.html#abd093efccc7043e24678e422adf3164a',1,'simplex_funcs.c']]], 10 | ['simp3',['simp3',['../simplex__funcs_8c.html#a6313a32f2829cfab13fa7bd1fd237c44',1,'simplex_funcs.c']]], 11 | ['simplex_5ffuncs_2ec',['simplex_funcs.c',['../simplex__funcs_8c.html',1,'']]], 12 | ['simplex_5fheader_2eh',['simplex_header.h',['../simplex__header_8h.html',1,'']]], 13 | ['simplx',['simplx',['../simplex__funcs_8c.html#a32ea4090b3d243790c8d473697de44bd',1,'simplex_funcs.c']]], 14 | ['spi_5f_5fread_5ftimestep',['SPI__READ_TIMESTEP',['../master_8c.html#ae4349d02b28eb32bb9153ebc5763217e',1,'SPI__READ_TIMESTEP(): master.c'],['../master__header_8h.html#ae4349d02b28eb32bb9153ebc5763217e',1,'SPI__READ_TIMESTEP(): master.c']]], 15 | ['spi_5fconfig',['SPI_config',['../pressure__header_8h.html#aa7ecd5fe5c95cd42a28dd0c0601605df',1,'pressure_header.h']]], 16 | ['spi_5fdata',['SPI_data',['../structSPI__data.html',1,'']]], 17 | ['spi_5fquit',['SPI_quit',['../master_8c.html#a3cbe1858f5d39f6470d8975f7d82c147',1,'SPI_quit(): master.c'],['../master__header_8h.html#a3cbe1858f5d39f6470d8975f7d82c147',1,'SPI_quit(): master.c']]], 18 | ['spycam_5ffuncs_2ec',['spycam_funcs.c',['../spycam__funcs_8c.html',1,'']]], 19 | ['spycam_5fheader_2eh',['spycam_header.h',['../spycam__header_8h.html',1,'']]], 20 | ['startvideo',['startVideo',['../spycam__funcs_8c.html#a58f674016d08977cecd1230c77ddb9e2',1,'spycam_funcs.c']]], 21 | ['stopvideo',['stopVideo',['../spycam__funcs_8c.html#a97c176c16888bfc4594e7296faf58910',1,'spycam_funcs.c']]] 22 | ]; 23 | -------------------------------------------------------------------------------- /Doxygen/latex/structControl__loop.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structControl__loop}{\section{Control\-\_\-loop Struct Reference} 2 | \label{structControl__loop}\index{Control\-\_\-loop@{Control\-\_\-loop}} 3 | } 4 | 5 | 6 | {\ttfamily \#include $<$control\-\_\-header.\-h$>$} 7 | 8 | \subsection*{Public Attributes} 9 | \begin{DoxyCompactItemize} 10 | \item 11 | \hypertarget{structControl__loop_ac3aed43dcaf03d086e69ab794f1959f4}{double \hyperlink{structControl__loop_ac3aed43dcaf03d086e69ab794f1959f4}{K}}\label{structControl__loop_ac3aed43dcaf03d086e69ab794f1959f4} 12 | 13 | \begin{DoxyCompactList}\small\item\em Proportional term coefficient. \end{DoxyCompactList}\item 14 | \hypertarget{structControl__loop_aba5fcbc8e5511269f9f53763ceb8e6dd}{double \hyperlink{structControl__loop_aba5fcbc8e5511269f9f53763ceb8e6dd}{Td}}\label{structControl__loop_aba5fcbc8e5511269f9f53763ceb8e6dd} 15 | 16 | \begin{DoxyCompactList}\small\item\em Derivative term coefficient. \end{DoxyCompactList}\item 17 | \hypertarget{structControl__loop_a90ed943640ce57e399c42de9d994a55c}{double \hyperlink{structControl__loop_a90ed943640ce57e399c42de9d994a55c}{satur}}\label{structControl__loop_a90ed943640ce57e399c42de9d994a55c} 18 | 19 | \begin{DoxyCompactList}\small\item\em Absolute ceiling of possible control loop output value. \end{DoxyCompactList}\item 20 | \hypertarget{structControl__loop_a356d69d54de1f56c81ebd3fa7f68ddc6}{double \hyperlink{structControl__loop_a356d69d54de1f56c81ebd3fa7f68ddc6}{control\-\_\-range}}\label{structControl__loop_a356d69d54de1f56c81ebd3fa7f68ddc6} 21 | 22 | \begin{DoxyCompactList}\small\item\em At what angle from the vertical orientation to we begin applying maximum control input? \end{DoxyCompactList}\end{DoxyCompactItemize} 23 | 24 | 25 | \subsection{Detailed Description} 26 | This structure holds all of the variables relating to a control loop of the G\-N\-C algorithm. Namely, there are three such control loops used\-: 27 | \begin{DoxyItemize} 28 | \item For the pitch force, Fpitch 29 | \item For the yaw force, Fyaw 30 | \item For the roll moment, Mroll 31 | \end{DoxyItemize} 32 | 33 | The combination of these three control loops stabilizes the rocket to point vertically up at all time 34 | 35 | The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize} 36 | \item 37 | \hyperlink{control__header_8h}{control\-\_\-header.\-h}\end{DoxyCompactItemize} 38 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['m',['M',['../master_8c.html#a5e78dbd5fd0fc01ba7b98dd15e27221e',1,'M(): master.c'],['../master__header_8h.html#a5e78dbd5fd0fc01ba7b98dd15e27221e',1,'M(): master.c'],['../simplex__header_8h.html#a5e78dbd5fd0fc01ba7b98dd15e27221e',1,'M(): simplex_header.h']]], 4 | ['m1',['M1',['../master_8c.html#a7a2aaeb8c0218468f3775cedc6d0087c',1,'M1(): master.c'],['../master__header_8h.html#a7a2aaeb8c0218468f3775cedc6d0087c',1,'M1(): master.c'],['../simplex__header_8h.html#a7a2aaeb8c0218468f3775cedc6d0087c',1,'M1(): simplex_header.h']]], 5 | ['m2',['M2',['../master_8c.html#a4ae62474468edbb5f37cd79ee5e7ca90',1,'M2(): master.c'],['../master__header_8h.html#a4ae62474468edbb5f37cd79ee5e7ca90',1,'M2(): master.c'],['../simplex__header_8h.html#a4ae62474468edbb5f37cd79ee5e7ca90',1,'M2(): simplex_header.h']]], 6 | ['m3',['M3',['../master_8c.html#a1b0d06f043612b284f80743aa186de4c',1,'M3(): master.c'],['../master__header_8h.html#a1b0d06f043612b284f80743aa186de4c',1,'M3(): master.c'],['../simplex__header_8h.html#a1b0d06f043612b284f80743aa186de4c',1,'M3(): simplex_header.h']]], 7 | ['matrix',['matrix',['../structMATRIX.html#a1b56eebd963b3128d1ed05eaabb73362',1,'MATRIX']]], 8 | ['max_5fspeed',['max_speed',['../structSPI__data.html#a5a97f7a0be149b0eea43de02bb9f5538',1,'SPI_data']]], 9 | ['mem_5ffd',['mem_fd',['../structbcm2835__peripheral.html#a141406ce70084a329a865ac2e73db2f3',1,'bcm2835_peripheral']]], 10 | ['message',['MESSAGE',['../master__header_8h.html#ab7c4a9735befe31f101e920cf2d922a8',1,'master_header.h']]], 11 | ['mode',['mode',['../structSPI__data.html#aaf787f81751e9d18950132ae7d9a8da4',1,'SPI_data']]], 12 | ['mroll',['Mroll',['../master_8c.html#a3c7bd12558dd2888ffe85eadeac62fc3',1,'Mroll(): master.c'],['../master__header_8h.html#a3c7bd12558dd2888ffe85eadeac62fc3',1,'Mroll(): master.c']]], 13 | ['mroll_5floop',['Mroll_loop',['../control__header_8h.html#a346020f5a56f6d206c59ae0ec9775147',1,'control_header.h']]], 14 | ['msp430_5freply_5fstring',['MSP430_reply_string',['../msp430__header_8h.html#a55d9f50393b8e5b054b4127c31571eae',1,'msp430_header.h']]], 15 | ['msp430_5frx',['MSP430_RX',['../msp430__header_8h.html#a274f232ce8ccc298f8111502afb9d894',1,'msp430_header.h']]], 16 | ['msp430_5fuart',['MSP430_UART',['../msp430__header_8h.html#a83f9f6fae14487dbe1bdb754919b91fa',1,'msp430_header.h']]] 17 | ]; 18 | -------------------------------------------------------------------------------- /simplex_header.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file simplex_header.h 3 | * @author Simplex header file 4 | * @version 1.0 5 | * 6 | * @brief Simplex header file. 7 | * 8 | * This is the header to simplex_funcs.c containing necessary definitions and 9 | * initializations. This header supports, but was not provided with, the code 10 | * kindly provided code by Jean-Pierre Moreau here. 11 | * where the header definitions in this file were directly incorporated into the 12 | * code at the above url. 13 | * 14 | * License from the original cpp file: 15 | * @verbatim 16 | *************************************************************** 17 | * LINEAR PROGRAMMING: THE SIMPLEX METHOD * 18 | *------------------------------------------------------------ * 19 | * ------------------------------------------------------------* 20 | * Reference: "Numerical Recipes By W.H. Press, B. P. Flannery,* 21 | * S.A. Teukolsky and W.T. Vetterling, Cambridge * 22 | * University Press, 1986" [BIBLI 08]. * 23 | * * 24 | * C++ Release 1.0 By J-P Moreau, Paris * 25 | * (www.jpmoreau.fr) * 26 | *************************************************************** 27 | @endverbatim 28 | */ 29 | 30 | #ifndef SIMPLEX_HEADER_H_ 31 | #define SIMPLEX_HEADER_H_ 32 | 33 | #define MMAX 5 ///< Number of rows of the simplex table 34 | #define NMAX 6 ///< Number of columns of the simplex table 35 | #define REAL double ///< Alias for a double 36 | 37 | typedef REAL MAT[MMAX][NMAX]; ///< A [MMAXxNMAX] matrix 38 | 39 | MAT A; ///< Simplex table 40 | int IPOSV[MMAX], IZROV[NMAX]; 41 | int i; ///< Index variable for loops 42 | int j; ///< Index variable for loops 43 | int ICASE,N,M,M1,M2,M3; 44 | 45 | /** @cond INCLUDE_WITH_DOXYGEN */ 46 | void simplx(MAT a,int m,int n,int m1,int m2,int m3,int *icase,int *izrov, int *iposv); 47 | void simp1(MAT a,int mm,int *ll,int nll,int iabf,int *kp,REAL *bmax); 48 | void simp2(MAT a, int m,int n,int *l2,int nl2,int *ip,int kp,REAL *q1); 49 | void simp3(MAT a,int i1,int k1,int ip,int kp); 50 | void get_simplex_solution(int ICASE, int *IPOSV, MAT A, int M, int N, double *R1, double *R2, double *R3, double *R4); 51 | /** @endcond */ 52 | 53 | #endif /* SIMPLEX_HEADER_H_ */ 54 | -------------------------------------------------------------------------------- /Doxygen/html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['a',['A',['../simplex__header_8h.html#ace63b68fea4070104433c81319d246a6',1,'simplex_header.h']]], 4 | ['a_5fkalman',['A_kalman',['../master__header_8h.html#abcca7bf825357b5d007fa1b74f0c87c6',1,'master_header.h']]], 5 | ['accelx',['accelX',['../imu__header_8h.html#a4a49b14edaec65c91af2f2b8dd7f9d04',1,'imu_header.h']]], 6 | ['accelx_5fbytes',['accelX_bytes',['../imu__header_8h.html#a79d46db4d707ecec4751575aaef70e4d',1,'imu_header.h']]], 7 | ['accelx_5fsave',['accelX_save',['../imu__header_8h.html#a625162b483840e4f16b2a581380ce29b',1,'imu_header.h']]], 8 | ['accely',['accelY',['../imu__header_8h.html#a3f0af2c57d247ac83559105150229763',1,'imu_header.h']]], 9 | ['accely_5fbytes',['accelY_bytes',['../imu__header_8h.html#a84d37036e8aec3942aebbce27eb5eae4',1,'imu_header.h']]], 10 | ['accely_5fsave',['accelY_save',['../imu__header_8h.html#add67e6211c525792ab7e53f233b5c289',1,'imu_header.h']]], 11 | ['accelz',['accelZ',['../imu__header_8h.html#a40fe36c79bef2b788894c4b9730842d2',1,'imu_header.h']]], 12 | ['accelz_5fbytes',['accelZ_bytes',['../imu__header_8h.html#a39be9519070cc41b5f92b4fe4a4ea1fa',1,'imu_header.h']]], 13 | ['accelz_5fsave',['accelZ_save',['../imu__header_8h.html#ab8cd1436e58aa680a9e74b9470b8460e',1,'imu_header.h']]], 14 | ['active_5f_5fcontrol_5ftime',['ACTIVE__CONTROL_TIME',['../master_8c.html#a2ccecb3518df04beb7ad8510fc2eac6a',1,'master.c']]], 15 | ['addr',['addr',['../structbcm2835__peripheral.html#ac33828b1b9863498b33058a4ca2985dc',1,'bcm2835_peripheral']]], 16 | ['addr_5fp',['addr_p',['../structbcm2835__peripheral.html#a972e542acd3ccb0b9a5f73aa75251b57',1,'bcm2835_peripheral']]], 17 | ['axial_5fpressure',['axial_pressure',['../pressure__header_8h.html#aa25e00923e361dffe516ff778c26ed6d',1,'pressure_header.h']]], 18 | ['axial_5fsensor',['AXIAL_SENSOR',['../pressure__funcs_8c.html#a00c0bd0ea7784ee9add4bdfd7e33bb92',1,'AXIAL_SENSOR(): pressure_funcs.c'],['../pressure__header_8h.html#a00c0bd0ea7784ee9add4bdfd7e33bb92',1,'AXIAL_SENSOR(): pressure_funcs.c']]], 19 | ['axial_5fsensor_5ffd',['axial_sensor_fd',['../structSPI__data.html#a071114b977c92258f04ee298aabb0297',1,'SPI_data']]], 20 | ['axial_5fstatus',['axial_status',['../pressure__header_8h.html#a967759071a6092e727c6371c115e90a2',1,'pressure_header.h']]], 21 | ['axial_5ftemperature',['axial_temperature',['../pressure__header_8h.html#ab07aa5a9125cebc7cc3fc96003a11b5a',1,'pressure_header.h']]] 22 | ]; 23 | -------------------------------------------------------------------------------- /Doxygen/html/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['a',['A',['../simplex__header_8h.html#ace63b68fea4070104433c81319d246a6',1,'simplex_header.h']]], 4 | ['a_5fkalman',['A_kalman',['../master__header_8h.html#abcca7bf825357b5d007fa1b74f0c87c6',1,'master_header.h']]], 5 | ['accelx',['accelX',['../imu__header_8h.html#a4a49b14edaec65c91af2f2b8dd7f9d04',1,'imu_header.h']]], 6 | ['accelx_5fbytes',['accelX_bytes',['../imu__header_8h.html#a79d46db4d707ecec4751575aaef70e4d',1,'imu_header.h']]], 7 | ['accelx_5fsave',['accelX_save',['../imu__header_8h.html#a625162b483840e4f16b2a581380ce29b',1,'imu_header.h']]], 8 | ['accely',['accelY',['../imu__header_8h.html#a3f0af2c57d247ac83559105150229763',1,'imu_header.h']]], 9 | ['accely_5fbytes',['accelY_bytes',['../imu__header_8h.html#a84d37036e8aec3942aebbce27eb5eae4',1,'imu_header.h']]], 10 | ['accely_5fsave',['accelY_save',['../imu__header_8h.html#add67e6211c525792ab7e53f233b5c289',1,'imu_header.h']]], 11 | ['accelz',['accelZ',['../imu__header_8h.html#a40fe36c79bef2b788894c4b9730842d2',1,'imu_header.h']]], 12 | ['accelz_5fbytes',['accelZ_bytes',['../imu__header_8h.html#a39be9519070cc41b5f92b4fe4a4ea1fa',1,'imu_header.h']]], 13 | ['accelz_5fsave',['accelZ_save',['../imu__header_8h.html#ab8cd1436e58aa680a9e74b9470b8460e',1,'imu_header.h']]], 14 | ['active_5f_5fcontrol_5ftime',['ACTIVE__CONTROL_TIME',['../master_8c.html#a2ccecb3518df04beb7ad8510fc2eac6a',1,'master.c']]], 15 | ['addr',['addr',['../structbcm2835__peripheral.html#ac33828b1b9863498b33058a4ca2985dc',1,'bcm2835_peripheral']]], 16 | ['addr_5fp',['addr_p',['../structbcm2835__peripheral.html#a972e542acd3ccb0b9a5f73aa75251b57',1,'bcm2835_peripheral']]], 17 | ['axial_5fpressure',['axial_pressure',['../pressure__header_8h.html#aa25e00923e361dffe516ff778c26ed6d',1,'pressure_header.h']]], 18 | ['axial_5fsensor',['AXIAL_SENSOR',['../pressure__funcs_8c.html#a00c0bd0ea7784ee9add4bdfd7e33bb92',1,'AXIAL_SENSOR(): pressure_funcs.c'],['../pressure__header_8h.html#a00c0bd0ea7784ee9add4bdfd7e33bb92',1,'AXIAL_SENSOR(): pressure_funcs.c']]], 19 | ['axial_5fsensor_5ffd',['axial_sensor_fd',['../structSPI__data.html#a071114b977c92258f04ee298aabb0297',1,'SPI_data']]], 20 | ['axial_5fstatus',['axial_status',['../pressure__header_8h.html#a967759071a6092e727c6371c115e90a2',1,'pressure_header.h']]], 21 | ['axial_5ftemperature',['axial_temperature',['../pressure__header_8h.html#ab07aa5a9125cebc7cc3fc96003a11b5a',1,'pressure_header.h']]] 22 | ]; 23 | -------------------------------------------------------------------------------- /Doxygen/latex/control__header_8h.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{control__header_8h}{\section{control\-\_\-header.\-h File Reference} 2 | \label{control__header_8h}\index{control\-\_\-header.\-h@{control\-\_\-header.\-h}} 3 | } 4 | 5 | 6 | Control header file. 7 | 8 | 9 | \subsection*{Classes} 10 | \begin{DoxyCompactItemize} 11 | \item 12 | struct \hyperlink{structControl__loop}{Control\-\_\-loop} 13 | \end{DoxyCompactItemize} 14 | \subsection*{Variables} 15 | \begin{Indent}{\bf Control loop group}\par 16 | {\em These structures define fully the control of the rocket -\/ i.\-e. the control gains. }\begin{DoxyCompactItemize} 17 | \item 18 | \hypertarget{control__header_8h_a5f9d64e1376655f5e45ccdcd9693d485}{struct \hyperlink{structControl__loop}{Control\-\_\-loop} \hyperlink{control__header_8h_a5f9d64e1376655f5e45ccdcd9693d485}{Fpitch\-\_\-loop}}\label{control__header_8h_a5f9d64e1376655f5e45ccdcd9693d485} 19 | 20 | \begin{DoxyCompactList}\small\item\em Pitch control loop, uses feedback on \hyperlink{imu__header_8h_abbc13db7b16483062094dfad47e30d7f}{theta\-\_\-filt} to tell what pitching corrective force we need. \end{DoxyCompactList}\item 21 | \hypertarget{control__header_8h_ad89b391fe05f2eb23be1db12931f221d}{struct \hyperlink{structControl__loop}{Control\-\_\-loop} \hyperlink{control__header_8h_ad89b391fe05f2eb23be1db12931f221d}{Fyaw\-\_\-loop}}\label{control__header_8h_ad89b391fe05f2eb23be1db12931f221d} 22 | 23 | \begin{DoxyCompactList}\small\item\em Yaw control loop, uses feedback on \hyperlink{imu__header_8h_a667979b6fd335e2c4dc4e796a3ed56be}{psi\-\_\-filt} to tell what yawing corrective force we need. \end{DoxyCompactList}\item 24 | \hypertarget{control__header_8h_a346020f5a56f6d206c59ae0ec9775147}{struct \hyperlink{structControl__loop}{Control\-\_\-loop} \hyperlink{control__header_8h_a346020f5a56f6d206c59ae0ec9775147}{Mroll\-\_\-loop}}\label{control__header_8h_a346020f5a56f6d206c59ae0ec9775147} 25 | 26 | \begin{DoxyCompactList}\small\item\em Roll control loop, uses feedback on \hyperlink{imu__header_8h_af987fceaf6a55676ae7d2b2334dfae21}{phi\-\_\-dot\-\_\-filt} to tell what corrective rolling moment we need. \end{DoxyCompactList}\end{DoxyCompactItemize} 27 | \end{Indent} 28 | 29 | 30 | \subsection{Detailed Description} 31 | Control header file. \begin{DoxyAuthor}{Author} 32 | Danylo Malyuta \href{mailto:danylo.malyuta@gmail.com}{\tt danylo.\-malyuta@gmail.\-com} 33 | \end{DoxyAuthor} 34 | \begin{DoxyVersion}{Version} 35 | 1.\-0 36 | \end{DoxyVersion} 37 | This is the header to \hyperlink{control__funcs_8c}{control\-\_\-funcs.\-c} containing necessary definitions and initializations. -------------------------------------------------------------------------------- /msp430/Debug/sources.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # Automatically-generated file. Do not edit! 3 | ################################################################################ 4 | 5 | O_SRCS := 6 | CPP_SRCS := 7 | K_SRCS := 8 | LD_SRCS := 9 | S67_SRCS := 10 | LDS_SRCS := 11 | CMD_SRCS := 12 | EXE_SRCS := 13 | CXX_SRCS := 14 | CMD_UPPER_SRCS := 15 | ELF_SRCS := 16 | C43_SRCS := 17 | S55_SRCS := 18 | LD_UPPER_SRCS := 19 | C62_SRCS := 20 | S_UPPER_SRCS := 21 | A_SRCS := 22 | SA_SRCS := 23 | C55_SRCS := 24 | LDS_UPPER_SRCS := 25 | C_UPPER_SRCS := 26 | OUT_SRCS := 27 | INO_SRCS := 28 | OBJ_SRCS := 29 | S62_SRCS := 30 | LIB_SRCS := 31 | PDE_SRCS := 32 | ASM_SRCS := 33 | ASM_UPPER_SRCS := 34 | C++_SRCS := 35 | CLA_SRCS := 36 | S??_SRCS := 37 | C_SRCS := 38 | C67_SRCS := 39 | S_SRCS := 40 | S43_SRCS := 41 | OPT_SRCS := 42 | C64_SRCS := 43 | CC_SRCS := 44 | C??_SRCS := 45 | S64_SRCS := 46 | OBJS := 47 | BIN_OUTPUTS := 48 | S_DEPS := 49 | S_UPPER_DEPS := 50 | S62_DEPS := 51 | C64_DEPS := 52 | ASM_DEPS := 53 | CC_DEPS := 54 | S55_DEPS := 55 | C67_DEPS := 56 | CLA_DEPS := 57 | C??_DEPS := 58 | CPP_DEPS := 59 | S??_DEPS := 60 | C_DEPS := 61 | C62_DEPS := 62 | EXE_OUTPUTS := 63 | CXX_DEPS := 64 | C++_DEPS := 65 | ASM_UPPER_DEPS := 66 | K_DEPS := 67 | C43_DEPS := 68 | INO_DEPS := 69 | S67_DEPS := 70 | SA_DEPS := 71 | S43_DEPS := 72 | OPT_DEPS := 73 | PDE_DEPS := 74 | S64_DEPS := 75 | C_UPPER_DEPS := 76 | C55_DEPS := 77 | CPP_DEPS__QUOTED := 78 | C67_DEPS__QUOTED := 79 | INO_DEPS__QUOTED := 80 | C??_DEPS__QUOTED := 81 | S_UPPER_DEPS__QUOTED := 82 | CLA_DEPS__QUOTED := 83 | ASM_UPPER_DEPS__QUOTED := 84 | C62_DEPS__QUOTED := 85 | CXX_DEPS__QUOTED := 86 | EXE_OUTPUTS__QUOTED := 87 | S67_DEPS__QUOTED := 88 | BIN_OUTPUTS__QUOTED := 89 | C_DEPS__QUOTED := 90 | C_UPPER_DEPS__QUOTED := 91 | OPT_DEPS__QUOTED := 92 | S_DEPS__QUOTED := 93 | K_DEPS__QUOTED := 94 | S??_DEPS__QUOTED := 95 | C64_DEPS__QUOTED := 96 | C++_DEPS__QUOTED := 97 | OBJS__QUOTED := 98 | CC_DEPS__QUOTED := 99 | S43_DEPS__QUOTED := 100 | S55_DEPS__QUOTED := 101 | SA_DEPS__QUOTED := 102 | C55_DEPS__QUOTED := 103 | PDE_DEPS__QUOTED := 104 | C43_DEPS__QUOTED := 105 | S62_DEPS__QUOTED := 106 | ASM_DEPS__QUOTED := 107 | S64_DEPS__QUOTED := 108 | 109 | # Every subdirectory with source files must be described here 110 | SUBDIRS := \ 111 | . \ 112 | 113 | -------------------------------------------------------------------------------- /spycam_funcs.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file spycam_funcs.c 3 | * @author Danylo Malyuta 4 | * @version 1.0 5 | * 6 | * @brief Raspberry Pi spy camera functions file. 7 | * 8 | * This file contains functions to start and stop camera recording with particular 9 | * settings. The code is taken directly from the very kindly provided code by 10 | * ceptimus here. 11 | * 12 | * No license file nor text was provided with this source code, so none is included 13 | * here. 14 | */ 15 | 16 | # include 17 | # include 18 | # include 19 | # include 20 | # include 21 | # include "spycam_header.h" 22 | 23 | pid_t pid=0; 24 | 25 | /** 26 | * @fn void startVideo(char *filename, char *options) 27 | * This function starts the Raspberry Pi camera recording with specific recording 28 | * options *options stored at the adress pointed to by options. If you want to enable 29 | * preview/monitoring then make the obvious change to remove the -n (no preview) option 30 | * from the source code of this function. 31 | * 32 | * @param filename A string specifying the name of the resulting video file (must have .h264 ending). 33 | * @param options Normal raspivid options. Avoid -t, -n, -o, and -s as the code fills those in for you. 34 | */ 35 | void startVideo(char *filename, char *options) { 36 | /* Description: 37 | * 38 | */ 39 | if ((pid = fork()) == 0) { 40 | char **cmd; 41 | 42 | // count tokens in options string 43 | int count = 0; 44 | char *copy; 45 | copy = strdup(options); 46 | if (strtok(copy, " \t") != NULL) { 47 | count = 1; 48 | while (strtok(NULL, " \t") != NULL) 49 | count++; 50 | } 51 | 52 | cmd = malloc((count + 8) * sizeof(char **)); 53 | free(copy); 54 | 55 | // if any tokens in options, 56 | // copy them to cmd starting at positon[1] 57 | if (count) { 58 | int kk; 59 | copy = strdup(options); 60 | cmd[1] = strtok(copy, " \t"); 61 | for (kk = 2; kk <= count; kk++) 62 | cmd[kk] = strtok(NULL, " \t"); 63 | } 64 | 65 | // add default options 66 | cmd[0] = "raspivid"; // executable name 67 | cmd[count + 1] = "-n"; // no preview 68 | cmd[count + 2] = "-t"; // default time (overridden by -s) 69 | // but needed for clean exit 70 | cmd[count + 3] = "10"; // 10 millisecond (minimum) time for -t 71 | cmd[count + 4] = "-s"; // enable USR1 signal to stop recording 72 | cmd[count + 5] = "-o"; // output file specifer 73 | cmd[count + 6] = filename; 74 | cmd[count + 7] = (char *)0; // terminator 75 | execv("/usr/bin/raspivid", cmd); 76 | } 77 | } 78 | 79 | /** 80 | * @fn void stopVideo(void) 81 | * This functions stops the camera recording process. 82 | */ 83 | void stopVideo(void) { 84 | if (pid) { 85 | kill(pid, 10); // seems to stop with two signals separated 86 | // by 1 second if started with -t 10 parameter 87 | sleep(1); 88 | kill(pid, 10); 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /Doxygen/latex/files.tex: -------------------------------------------------------------------------------- 1 | \section{File List} 2 | Here is a list of all documented files with brief descriptions\-:\begin{DoxyCompactList} 3 | \item\contentsline{section}{\hyperlink{control__funcs_8c}{control\-\_\-funcs.\-c} \\*Control functions source file }{\pageref{control__funcs_8c}}{} 4 | \item\contentsline{section}{\hyperlink{control__header_8h}{control\-\_\-header.\-h} \\*Control header file }{\pageref{control__header_8h}}{} 5 | \item\contentsline{section}{\hyperlink{imu__funcs_8c}{imu\-\_\-funcs.\-c} \\*I\-M\-U functions file (contains I\-M\-U comms, logs and filters) }{\pageref{imu__funcs_8c}}{} 6 | \item\contentsline{section}{\hyperlink{imu__header_8h}{imu\-\_\-header.\-h} \\*I\-M\-U header file }{\pageref{imu__header_8h}}{} 7 | \item\contentsline{section}{\hyperlink{la__funcs_8c}{la\-\_\-funcs.\-c} \\*Lienar Algebra functions source file }{\pageref{la__funcs_8c}}{} 8 | \item\contentsline{section}{\hyperlink{la__header_8h}{la\-\_\-header.\-h} \\*Linear Algebra header file }{\pageref{la__header_8h}}{} 9 | \item\contentsline{section}{\hyperlink{master_8c}{master.\-c} \\*Master G\-N\-C source file (main function file) }{\pageref{master_8c}}{} 10 | \item\contentsline{section}{\hyperlink{master__funcs_8c}{master\-\_\-funcs.\-c} \\*Master functions file }{\pageref{master__funcs_8c}}{} 11 | \item\contentsline{section}{\hyperlink{master__header_8h}{master\-\_\-header.\-h} \\*Master header file }{\pageref{master__header_8h}}{} 12 | \item\contentsline{section}{\hyperlink{msp430__funcs_8c}{msp430\-\_\-funcs.\-c} \\*M\-S\-P430 functions file }{\pageref{msp430__funcs_8c}}{} 13 | \item\contentsline{section}{\hyperlink{msp430__header_8h}{msp430\-\_\-header.\-h} \\*M\-S\-P430 header file }{\pageref{msp430__header_8h}}{} 14 | \item\contentsline{section}{\hyperlink{pressure__funcs_8c}{pressure\-\_\-funcs.\-c} \\*Honeywell pressure/temperature sensors functions file }{\pageref{pressure__funcs_8c}}{} 15 | \item\contentsline{section}{\hyperlink{pressure__header_8h}{pressure\-\_\-header.\-h} \\*Honeywell pressure/temperature sensors header file }{\pageref{pressure__header_8h}}{} 16 | \item\contentsline{section}{\hyperlink{rpi__gpio__funcs_8c}{rpi\-\_\-gpio\-\_\-funcs.\-c} \\*G\-P\-I\-O functions file }{\pageref{rpi__gpio__funcs_8c}}{} 17 | \item\contentsline{section}{\hyperlink{rpi__gpio__header_8h}{rpi\-\_\-gpio\-\_\-header.\-h} \\*M\-S\-P430 header file }{\pageref{rpi__gpio__header_8h}}{} 18 | \item\contentsline{section}{\hyperlink{simplex__funcs_8c}{simplex\-\_\-funcs.\-c} \\*Simplex functions file }{\pageref{simplex__funcs_8c}}{} 19 | \item\contentsline{section}{\hyperlink{simplex__header_8h}{simplex\-\_\-header.\-h} \\*Simplex header file }{\pageref{simplex__header_8h}}{} 20 | \item\contentsline{section}{\hyperlink{spycam__funcs_8c}{spycam\-\_\-funcs.\-c} \\*Raspberry Pi spy camera functions file }{\pageref{spycam__funcs_8c}}{} 21 | \item\contentsline{section}{\hyperlink{spycam__header_8h}{spycam\-\_\-header.\-h} \\*Raspberry Pi spy camera header file }{\pageref{spycam__header_8h}}{} 22 | \end{DoxyCompactList} 23 | --------------------------------------------------------------------------------