From 04d74124be87fd8a87066dfe05ac8d025cd8b527 Mon Sep 17 00:00:00 2001 From: Antoine Drouin Date: Tue, 2 Sep 2008 14:24:31 +0000 Subject: [PATCH] *** empty log message *** --- conf/airframes/booz2.xml | 17 ++++++- conf/airframes/motor_bench.xml | 6 ++- conf/airframes/pt_ant.xml | 19 ++++---- conf/autopilot/conf_booz2.makefile | 2 +- conf/messages.xml | 1 + conf/settings/motor_bench_settings.xml | 12 ++++- conf/settings/pt_ant_settings.xml | 4 +- conf/settings/settings_booz2.xml | 11 ++--- conf/telemetry/booz.xml | 20 ++++----- conf/telemetry/telemetry_booz2.xml | 26 +++-------- sw/airborne/motor_bench/main_motor_bench.c | 4 +- sw/in_progress/motor_bench/main.c | 52 ++++++++++++++++++++++ sw/in_progress/motor_bench/test.sce | 6 ++- 13 files changed, 124 insertions(+), 56 deletions(-) diff --git a/conf/airframes/booz2.xml b/conf/airframes/booz2.xml index dfc8636255..c081bff585 100644 --- a/conf/airframes/booz2.xml +++ b/conf/airframes/booz2.xml @@ -166,14 +166,27 @@ -
+
- +
+
+ + + +
+ + +
+ + +
+ + diff --git a/conf/airframes/motor_bench.xml b/conf/airframes/motor_bench.xml index a63e6d2596..0db5de665d 100644 --- a/conf/airframes/motor_bench.xml +++ b/conf/airframes/motor_bench.xml @@ -16,7 +16,8 @@ main.TARGETDIR = mb main.CFLAGS += -DCONFIG=\"conf_motor_bench.h\" -I$(MB) main.srcs = $(MB)/main_motor_bench.c -main.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC(1./250.)' +main.CFLAGS += -DPERIODIC_TASK_FREQ='250.' +main.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC(1./PERIODIC_TASK_FREQ)' main.srcs += sys_time.c $(SRC_ARCH)/sys_time_hw.c main.CFLAGS += -DLED @@ -37,6 +38,7 @@ main.CFLAGS += -DUSE_TWI_CONTROLLER main.CFLAGS += -DI2C_SCLL=100 -DI2C_SCLH=100 #main.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c $(MB)/mb_twi_controller.c main.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c $(MB)/mb_twi_controller_asctech.c +#main.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c $(MB)/mb_twi_controller_mkk.c main.CFLAGS += -DMB_TACHO main.srcs += $(MB)/mb_tacho.c @@ -49,6 +51,8 @@ main.CFLAGS += -DMB_SCALE main.srcs += $(MB)/mb_scale.c main.srcs += $(MB)/mb_modes.c +main.srcs += $(MB)/mb_static.c +main.srcs += $(MB)/mb_mode_fixed_rpm.c diff --git a/conf/airframes/pt_ant.xml b/conf/airframes/pt_ant.xml index 581f2259cc..7ab64913ea 100644 --- a/conf/airframes/pt_ant.xml +++ b/conf/airframes/pt_ant.xml @@ -19,16 +19,17 @@ tunnel.srcs += $(SRC_ARCH)/uart_tunnel.c ARCHI=arm7 FLASH_MODE = IAP +PT_ANT = antenna main.ARCHDIR = $(ARCHI) main.ARCH = arm7tdmi main.TARGET = main main.TARGETDIR = main -main.CFLAGS += -DCONFIG=\"conf_demo.h\" -main.srcs = main_pan_tilt_antenna.c +main.CFLAGS += -DCONFIG=\"conf_demo.h\" -I$(PT_ANT) +main.srcs = $(PT_ANT)/pt_ant_main.c -main.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC(1e-1)' +main.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC(1.66666667e-2)' main.srcs += sys_time.c $(SRC_ARCH)/sys_time_hw.c main.CFLAGS += -DLED @@ -39,17 +40,17 @@ main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B38400 main.srcs += $(SRC_ARCH)/uart_hw.c main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0 -main.srcs += downlink.c pprz_transport.c +main.srcs += downlink.c pprz_transport.c $(PT_ANT)/pt_ant_telemetry.c main.CFLAGS += -DDATALINK=PPRZ -DPPRZ_UART=Uart0 -main.srcs += pt_ant_datalink.c +main.srcs += $(PT_ANT)/pt_ant_datalink.c -main.srcs += pt_ant_motors.c +main.srcs += $(PT_ANT)/pt_ant_motors.c -main.CFLAGS += -I2C_BUF_LEN=32 -main.srcs += pt_ant_sensors.c AMI601.c i2c.c $(SRC_ARCH)/i2c_hw.c +main.CFLAGS += -DUSE_AMI601 -DI2C_BUF_LEN=32 +main.srcs += AMI601.c i2c.c $(SRC_ARCH)/i2c_hw.c -main.srcs += pt_ant_estimator.c +#main.srcs += pt_ant_estimator.c main.CFLAGS += -DUSE_UART1 -DUART1_BAUD=B9600 #main.CFLAGS += -DGPS -DUBX -DGPS_LINK=Uart1 diff --git a/conf/autopilot/conf_booz2.makefile b/conf/autopilot/conf_booz2.makefile index ffc2b6747e..0741e637b7 100644 --- a/conf/autopilot/conf_booz2.makefile +++ b/conf/autopilot/conf_booz2.makefile @@ -83,7 +83,7 @@ ap.ARCH = arm7tdmi ap.TARGET = ap ap.TARGETDIR = ap -#ap.CFLAGS += -DKILL_MOTORS +ap.CFLAGS += -DKILL_MOTORS ap.CFLAGS += -DCONFIG=\"booz2_board.h\" -I$(BOOZ_ARCH) -I$(BOOZ_PRIV) -I$(BOOZ_PRIV_ARCH) ap.srcs += $(BOOZ_PRIV)/booz2_main.c diff --git a/conf/messages.xml b/conf/messages.xml index d7234b152e..e860c9b69b 100644 --- a/conf/messages.xml +++ b/conf/messages.xml @@ -1078,6 +1078,7 @@ + diff --git a/conf/settings/motor_bench_settings.xml b/conf/settings/motor_bench_settings.xml index 2aaa9258d7..7c55e2cdbe 100644 --- a/conf/settings/motor_bench_settings.xml +++ b/conf/settings/motor_bench_settings.xml @@ -3,8 +3,9 @@ - + + @@ -12,5 +13,14 @@ module="mb_twi_controller_asctech" handler="SetAddr"/> + + + + + + + + + diff --git a/conf/settings/pt_ant_settings.xml b/conf/settings/pt_ant_settings.xml index 5c6f8754a1..c19fcdad8f 100644 --- a/conf/settings/pt_ant_settings.xml +++ b/conf/settings/pt_ant_settings.xml @@ -5,7 +5,7 @@ - - + + diff --git a/conf/settings/settings_booz2.xml b/conf/settings/settings_booz2.xml index 86cbd6959d..df7005405b 100644 --- a/conf/settings/settings_booz2.xml +++ b/conf/settings/settings_booz2.xml @@ -3,8 +3,8 @@ - - + + @@ -30,7 +30,8 @@ - + + @@ -38,8 +39,8 @@ - - + + diff --git a/conf/telemetry/booz.xml b/conf/telemetry/booz.xml index 67f890ba5b..ce28e9b1dc 100644 --- a/conf/telemetry/booz.xml +++ b/conf/telemetry/booz.xml @@ -7,14 +7,14 @@ - + - - - - + + + + @@ -29,13 +29,13 @@ - - - + + + - + - + - - - - - - - - - - - - - - - - - - + @@ -63,7 +45,6 @@ - @@ -79,6 +60,9 @@ + + + diff --git a/sw/airborne/motor_bench/main_motor_bench.c b/sw/airborne/motor_bench/main_motor_bench.c index 4efcef39c6..f484ec5d42 100644 --- a/sw/airborne/motor_bench/main_motor_bench.c +++ b/sw/airborne/motor_bench/main_motor_bench.c @@ -7,8 +7,8 @@ #include "mb_tacho.h" #include "mb_servo.h" #include "i2c.h" -//#include "mb_twi_controller_asctech.h" -#include "mb_twi_controller_mkk.h" +#include "mb_twi_controller_asctech.h" +//#include "mb_twi_controller_mkk.h" #include "mb_current.h" #include "mb_scale.h" diff --git a/sw/in_progress/motor_bench/main.c b/sw/in_progress/motor_bench/main.c index 8f06d4fbb9..04be5a80e2 100644 --- a/sw/in_progress/motor_bench/main.c +++ b/sw/in_progress/motor_bench/main.c @@ -7,6 +7,8 @@ #include #include +#define ASTECH 1 + #include "tuning.h" //#include "sliding_plot.h" @@ -16,6 +18,8 @@ #define MB_MODES_RAMP 2 #define MB_MODES_STEP 3 #define MB_MODES_PRBS 4 +#define MB_MODES_SINE 5 +#define MB_MODES_FIXED_RPM 6 #define AS_MOT_FRONT 0 #define AS_MOT_BACK 1 @@ -39,7 +43,12 @@ struct motor_bench_state { double amps; double thrust; double torque; + double av_rpm; + double av_throttle; + double av_thrust; + double av_amps; GIOChannel* log_channel; + GIOChannel* log_channel_static; }; struct motor_bench_gui { @@ -111,6 +120,24 @@ static void on_MOTOR_BENCH_STATUS(IvyClientPtr app, void *user_data, int argc, c // g_message("foo %f %f %f %f %d", mb_state.time, throttle, rpm, amp, mode); } +static void on_MOTOR_BENCH_STATIC(IvyClientPtr app, void *user_data, int argc, char *argv[]){ + mb_state.av_rpm = atof(argv[0]); + mb_state.av_thrust = atof(argv[1]); + mb_state.av_amps = atof(argv[2]); + mb_state.av_throttle = atof(argv[3]); + + if (mb_state.log_channel_static) { + GString* str = g_string_sized_new(256); + g_string_printf(str, "%0f %.3f %.2f %.1f\n", mb_state.av_throttle, mb_state.av_rpm, mb_state.av_amps, mb_state.av_thrust); + gsize b_writen; + GError* my_err = NULL; + GIOStatus stat = g_io_channel_write_chars(mb_state.log_channel_static,str->str, str->len, &b_writen, &my_err); + g_string_free(str, TRUE); + } + g_message("in_static %f %f %f %f", mb_state.av_throttle, mb_state.av_rpm, mb_state.av_amps, mb_state.av_thrust); +} + + static gboolean timeout_callback(gpointer data) { GString* str = g_string_sized_new(64); g_string_printf(str, "%.2f s", mb_state.time); @@ -135,31 +162,43 @@ static void on_log_button_toggled (GtkWidget *widget, gpointer data) { const gchar *log_file_name = gtk_entry_get_text (GTK_ENTRY (mb_gui.entry_log)); GError* my_err = NULL; mb_state.log_channel = g_io_channel_new_file (log_file_name, "w", &my_err); + GString* static_name = g_string_sized_new(128); + g_string_printf(static_name,"%s%s", log_file_name, "_static"); + mb_state.log_channel_static = g_io_channel_new_file (static_name->str, "w", &my_err); + g_string_free(static_name, TRUE); } else { gtk_editable_set_editable( GTK_EDITABLE(mb_gui.entry_log), TRUE ); if (mb_state.log_channel) { g_io_channel_close(mb_state.log_channel); + g_io_channel_close(mb_state.log_channel_static); mb_state.log_channel = NULL; + mb_state.log_channel_static = NULL; } } } static void on_as_test_button_clicked (GtkWidget *widget, gpointer data) { +#ifdef ASTECH IvySendMsg("dl DL_SETTING %d %d %d", mb_id, PPRZ_MB_TWI_CONTROLLER_ASCTECH_COMMAND_TYPE, AS_CMD_TEST_ADDR); +#endif } static void on_as_reverse_button_clicked (GtkWidget *widget, gpointer data) { +#ifdef ASTECH IvySendMsg("dl DL_SETTING %d %d %d", mb_id, PPRZ_MB_TWI_CONTROLLER_ASCTECH_COMMAND_TYPE, AS_CMD_REVERSE); +#endif } static void on_as_addr_changed (GtkRadioButton *radiobutton, gpointer user_data) { +#ifdef ASTECH if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radiobutton))) return; guint new_addr = (guint)user_data; IvySendMsg("dl DL_SETTING %d %d %d", mb_id, PPRZ_MB_TWI_CONTROLLER_ASCTECH_ADDR, new_addr); +#endif } @@ -175,6 +214,7 @@ int main (int argc, char** argv) { IvyInit ("MotorBench", "MotorBench READY", NULL, NULL, NULL, NULL); IvyBindMsg(on_MOTOR_BENCH_STATUS, NULL, "^\\S* MOTOR_BENCH_STATUS (\\S*) (\\S*) (\\S*) (\\S*) (\\S*) (\\S*) (\\S*) (\\S*)"); + IvyBindMsg(on_MOTOR_BENCH_STATIC, NULL, "^\\S* MOTOR_BENCH_STATIC (\\S*) (\\S*) (\\S*) (\\S*)"); IvyStart("127.255.255.255"); g_timeout_add(40, timeout_callback, NULL); @@ -232,12 +272,24 @@ static GtkWidget* build_gui ( void ) { gtk_box_pack_start (GTK_BOX (vbox2), rb_prbs, TRUE, TRUE, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (rb_prbs), rb_mode_group); rb_mode_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (rb_prbs)); + GtkWidget* rb_sine = gtk_radio_button_new_with_mnemonic (NULL, "sine"); + gtk_box_pack_start (GTK_BOX (vbox2), rb_sine, TRUE, TRUE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (rb_sine), rb_mode_group); + rb_mode_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (rb_sine)); + GtkWidget* rb_fixed_rpm = gtk_radio_button_new_with_mnemonic (NULL, "fixed"); + gtk_box_pack_start (GTK_BOX (vbox2), rb_fixed_rpm, TRUE, TRUE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (rb_fixed_rpm), rb_mode_group); + rb_mode_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (rb_fixed_rpm)); + + g_signal_connect ((gpointer) rb_idle, "toggled", G_CALLBACK (on_mode_changed), (gpointer)MB_MODES_IDLE); g_signal_connect ((gpointer) rb_manual, "toggled", G_CALLBACK (on_mode_changed), (gpointer)MB_MODES_MANUAL); g_signal_connect ((gpointer) rb_ramp, "toggled", G_CALLBACK (on_mode_changed), (gpointer)MB_MODES_RAMP); g_signal_connect ((gpointer) rb_step, "toggled", G_CALLBACK (on_mode_changed), (gpointer)MB_MODES_STEP); g_signal_connect ((gpointer) rb_prbs, "toggled", G_CALLBACK (on_mode_changed), (gpointer)MB_MODES_PRBS); + g_signal_connect ((gpointer) rb_sine, "toggled", G_CALLBACK (on_mode_changed), (gpointer)MB_MODES_SINE); + g_signal_connect ((gpointer) rb_fixed_rpm, "toggled", G_CALLBACK (on_mode_changed), (gpointer)MB_MODES_FIXED_RPM); // diff --git a/sw/in_progress/motor_bench/test.sce b/sw/in_progress/motor_bench/test.sce index aae9a389d9..28d41790bc 100644 --- a/sw/in_progress/motor_bench/test.sce +++ b/sw/in_progress/motor_bench/test.sce @@ -5,12 +5,12 @@ getf('mb_utils.sci'); args = sciargs(); [nb_args, foo] = size(args) filename = args(nb_args); -filename = "data/steps2_stout_aero_geared.txt" +filename = "asctech/log_ramp_crooked_prop.txt" [time, throttle, rpm, amp, thrust, torque] = read_mb_log(filename); -f_sample = 200.; +f_sample = 250.; fc = 100.; f_rpm = low_pass_filter(f_sample, fc, rpm); @@ -28,3 +28,5 @@ subplot(3,1,3) xtitle('Filtered Rpm'); plot2d(time, f_rpm); //plot2d(rpm, throttle); + +save('asctech/log_ramp_crooked_prop.dat', time, throttle, rpm, amp, thrust, torque); \ No newline at end of file