From 5312f6e4a4cbe7fffeec33bea6670e56a10becc7 Mon Sep 17 00:00:00 2001 From: James Talbert <jtalbert@iastate.edu> Date: Mon, 15 Apr 2019 11:07:04 -0500 Subject: [PATCH] PCB wuad working in manual mode, about to add output override command --- quad/src/quad_app/quad_app.c | 2 +- .../real_quad/src/hw_impl_zybo.h | 35 ++++++++++--------- .../real_quad/src/hw_impl_zybo_imu.c | 6 ++++ .../real_quad/src/hw_impl_zybo_lidar.c | 2 +- .../real_quad/src/main.c | 2 +- .../system_bsp/.cproject | 10 ++---- .../xsdk_workspace_vivado/system_bsp/.project | 4 --- .../system_bsp/.sdkproject | 2 +- .../ps7_cortexa9_0/include/xparameters.h | 7 ++++ .../libsrc/standalone_v6_7/src/bspconfig.h | 2 +- .../system_bsp/system.mss | 7 ++++ 11 files changed, 45 insertions(+), 34 deletions(-) diff --git a/quad/src/quad_app/quad_app.c b/quad/src/quad_app/quad_app.c index 561df5b1a..a098f374a 100644 --- a/quad/src/quad_app/quad_app.c +++ b/quad/src/quad_app/quad_app.c @@ -19,7 +19,7 @@ int quad_main(int (*setup_hardware)(hardware_t *hardware_struct)) { // Structures to be used throughout - modular_structs_t structs = { }; + modular_structs_t structs = { }; // Wire up hardware setup_hardware(&structs.hardware_struct); diff --git a/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo.h b/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo.h index 1f9b0fb65..5555a4adf 100644 --- a/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo.h +++ b/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo.h @@ -29,26 +29,27 @@ #define QUAD_NUM 1 #if QUAD_NUM==0 -#define IMU_ACCX_SIGN 1 +#define IMU_ACCX_SIGN -1 #define IMU_ACCY_SIGN 1 #define IMU_ACCZ_SIGN 1 -#define IMU_GYRX_SIGN 1 +#define IMU_GYRX_SIGN -1 #define IMU_GYRY_SIGN 1 #define IMU_GYRZ_SIGN 1 -#define MOTOR_FRONTLEFT_BASEADDR XPAR_PWM_SIGNAL_OUT_3_S_AXI_BASEADDR -#define MOTOR_FRONTRIGHT_BASEADDR XPAR_PWM_SIGNAL_OUT_1_S_AXI_BASEADDR -#define MOTOR_BACKLEFT_BASEADDR XPAR_PWM_SIGNAL_OUT_2_S_AXI_BASEADDR -#define MOTOR_BACKRIGHT_BASEADDR XPAR_PWM_SIGNAL_OUT_0_S_AXI_BASEADDR -#define ACCEL_X_BIAS 0.023f -#define ACCEL_Y_BIAS 0.009f -#define ACCEL_Z_BIAS 0.0686f +#define MOTOR_FRONTLEFT_BASEADDR XPAR_PWM_SIGNAL_OUT_3_S_AXI_BASEADDR +#define MOTOR_FRONTRIGHT_BASEADDR XPAR_PWM_SIGNAL_OUT_1_S_AXI_BASEADDR +#define MOTOR_BACKLEFT_BASEADDR XPAR_PWM_SIGNAL_OUT_2_S_AXI_BASEADDR +#define MOTOR_BACKRIGHT_BASEADDR XPAR_PWM_SIGNAL_OUT_0_S_AXI_BASEADDR + +#define ACCEL_X_BIAS 0.08f +#define ACCEL_Y_BIAS -0.057f +#define ACCEL_Z_BIAS 0.0f -#define GYRO_X_BIAS 0.005f -#define GYRO_Y_BIAS -0.014f -#define GYRO_Z_BIAS 0.0534//0.0541f +#define GYRO_X_BIAS -0.006f +#define GYRO_Y_BIAS 0.0545f +#define GYRO_Z_BIAS 0.005//0.0541f #endif @@ -68,13 +69,13 @@ #define MOTOR_BACKLEFT_BASEADDR XPAR_PWM_SIGNAL_OUT_2_S_AXI_BASEADDR #define MOTOR_BACKRIGHT_BASEADDR XPAR_PWM_SIGNAL_OUT_0_S_AXI_BASEADDR -#define ACCEL_X_BIAS -0.005f -#define ACCEL_Y_BIAS 0.03f +#define ACCEL_X_BIAS -0.01f +#define ACCEL_Y_BIAS 0.041f #define ACCEL_Z_BIAS 0.0f -#define GYRO_X_BIAS -0.001f -#define GYRO_Y_BIAS -0.0135f -#define GYRO_Z_BIAS 0.035//0.0541f +#define GYRO_X_BIAS -0.024f +#define GYRO_Y_BIAS -0.013f +#define GYRO_Z_BIAS 0.02//0.0541f #endif diff --git a/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo_imu.c b/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo_imu.c index bf8bfeb2a..5cf36172d 100644 --- a/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo_imu.c +++ b/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo_imu.c @@ -144,6 +144,9 @@ int zybo_imu_read(struct IMUDriver *self, gam_t *gam) { raw_accel_x = sensor_raw_accel_y; raw_accel_y = -sensor_raw_accel_x; raw_accel_z = sensor_raw_accel_z; +// raw_accel_x = sensor_raw_accel_y; +// raw_accel_y = sensor_raw_accel_x; +// raw_accel_z = sensor_raw_accel_z; // put in G's gam->accel_x = IMU_ACCX_SIGN * (raw_accel_x / 4096.0) + ACCEL_X_BIAS; // 4,096 is the gain per LSB of the measurement reading based on a configuration range of +-8g @@ -159,6 +162,9 @@ int zybo_imu_read(struct IMUDriver *self, gam_t *gam) { gyro_x = sensor_gyro_y; gyro_y = -sensor_gyro_x; gyro_z = sensor_gyro_z; +// gyro_x = sensor_gyro_y; +// gyro_y = sensor_gyro_x; +// gyro_z = sensor_gyro_z; //Get the number of degrees //javey: converted to radians to following SI units diff --git a/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo_lidar.c b/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo_lidar.c index 8b4fe9960..62caca753 100644 --- a/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo_lidar.c +++ b/quad/xsdk_workspace_vivado/real_quad/src/hw_impl_zybo_lidar.c @@ -18,7 +18,7 @@ int zybo_lidar_reset(struct LidarDriver *self, lidar_t *lidar) { int error = 0; //Device wakeup if asleep. lidarlite_write(i2c, 0x00, 0x00); - + usleep(15000); // Device Reset & Wake up with default settings error = lidarlite_write(i2c, 0x00, 0x00); if (error) return error; diff --git a/quad/xsdk_workspace_vivado/real_quad/src/main.c b/quad/xsdk_workspace_vivado/real_quad/src/main.c index ab116d90b..0bbe1ed3c 100644 --- a/quad/xsdk_workspace_vivado/real_quad/src/main.c +++ b/quad/xsdk_workspace_vivado/real_quad/src/main.c @@ -49,6 +49,7 @@ int main() //test_zybo_mio7_led_and_system(); //!test_zybo_i2c(); //!test_zybo_i2c_imu(); + zybo_i2c_imu_self_test(); //!test_zybo_i2c_px4flow(); //!test_zybo_i2c_lidar(); //!test_zybo_i2c_all(); @@ -59,7 +60,6 @@ int main() return 0; #endif - usleep(2*1000000); // Run the main quad application quad_main(setup_hardware); diff --git a/quad/xsdk_workspace_vivado/system_bsp/.cproject b/quad/xsdk_workspace_vivado/system_bsp/.cproject index 8ca4d5f8b..20bc66eca 100644 --- a/quad/xsdk_workspace_vivado/system_bsp/.cproject +++ b/quad/xsdk_workspace_vivado/system_bsp/.cproject @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> <storageModule moduleId="org.eclipse.cdt.core.settings"> - <cconfiguration id="org.eclipse.cdt.core.default.config.1532584570"> - <storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="org.eclipse.cdt.core.default.config.1532584570" moduleId="org.eclipse.cdt.core.settings" name="Configuration"> + <cconfiguration id="org.eclipse.cdt.core.default.config.1229250672"> + <storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="org.eclipse.cdt.core.default.config.1229250672" moduleId="org.eclipse.cdt.core.settings" name="Configuration"> <externalSettings/> <extensions/> </storageModule> @@ -10,10 +10,4 @@ </cconfiguration> </storageModule> <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> - <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> - <storageModule moduleId="scannerConfiguration"/> - <storageModule moduleId="org.eclipse.cdt.core.pathentry"> - <pathentry kind="src" path=""/> - <pathentry kind="out" path=""/> - </storageModule> </cproject> diff --git a/quad/xsdk_workspace_vivado/system_bsp/.project b/quad/xsdk_workspace_vivado/system_bsp/.project index 55ab2caf3..1773c9f5f 100644 --- a/quad/xsdk_workspace_vivado/system_bsp/.project +++ b/quad/xsdk_workspace_vivado/system_bsp/.project @@ -24,10 +24,6 @@ <key>org.eclipse.cdt.make.core.build.command</key> <value>make</value> </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.build.location</key> - <value></value> - </dictionary> <dictionary> <key>org.eclipse.cdt.make.core.build.target.auto</key> <value>all</value> diff --git a/quad/xsdk_workspace_vivado/system_bsp/.sdkproject b/quad/xsdk_workspace_vivado/system_bsp/.sdkproject index ddc03c1e8..dd82e57dd 100644 --- a/quad/xsdk_workspace_vivado/system_bsp/.sdkproject +++ b/quad/xsdk_workspace_vivado/system_bsp/.sdkproject @@ -1,4 +1,4 @@ THIRPARTY=false +HW_PROJECT_REFERENCE=design_1_wrapper_hw_platform_0 PROCESSOR=ps7_cortexa9_0 -HW_PROJECT_REFERENCE=design_1_wrapper_hw_platform_1 MSS_FILE=system.mss diff --git a/quad/xsdk_workspace_vivado/system_bsp/ps7_cortexa9_0/include/xparameters.h b/quad/xsdk_workspace_vivado/system_bsp/ps7_cortexa9_0/include/xparameters.h index f1700485e..7fa149261 100644 --- a/quad/xsdk_workspace_vivado/system_bsp/ps7_cortexa9_0/include/xparameters.h +++ b/quad/xsdk_workspace_vivado/system_bsp/ps7_cortexa9_0/include/xparameters.h @@ -622,4 +622,11 @@ /******************************************************************/ +/* Xilinx FAT File System Library (XilFFs) User Settings */ +#define FILE_SYSTEM_INTERFACE_SD +#define FILE_SYSTEM_USE_MKFS +#define FILE_SYSTEM_NUM_LOGIC_VOL 2 +#define FILE_SYSTEM_USE_STRFUNC 0 +#define FILE_SYSTEM_SET_FS_RPATH 0 +#define FILE_SYSTEM_WORD_ACCESS #endif /* end of protection macro */ diff --git a/quad/xsdk_workspace_vivado/system_bsp/ps7_cortexa9_0/libsrc/standalone_v6_7/src/bspconfig.h b/quad/xsdk_workspace_vivado/system_bsp/ps7_cortexa9_0/libsrc/standalone_v6_7/src/bspconfig.h index b977241ce..7859b0eef 100644 --- a/quad/xsdk_workspace_vivado/system_bsp/ps7_cortexa9_0/libsrc/standalone_v6_7/src/bspconfig.h +++ b/quad/xsdk_workspace_vivado/system_bsp/ps7_cortexa9_0/libsrc/standalone_v6_7/src/bspconfig.h @@ -5,7 +5,7 @@ * Version: * DO NOT EDIT. * -* Copyright (C) 2010-2018 Xilinx, Inc. All Rights Reserved.* +* Copyright (C) 2010-2019 Xilinx, Inc. All Rights Reserved.* *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the Software), to deal *in the Software without restriction, including without limitation the rights diff --git a/quad/xsdk_workspace_vivado/system_bsp/system.mss b/quad/xsdk_workspace_vivado/system_bsp/system.mss index 76803d91a..ecb14d2ad 100644 --- a/quad/xsdk_workspace_vivado/system_bsp/system.mss +++ b/quad/xsdk_workspace_vivado/system_bsp/system.mss @@ -325,3 +325,10 @@ BEGIN DRIVER END +BEGIN LIBRARY + PARAMETER LIBRARY_NAME = xilffs + PARAMETER LIBRARY_VER = 3.9 + PARAMETER PROC_INSTANCE = ps7_cortexa9_0 +END + + -- GitLab