2.0.2016030101

FEATURE_AZ_POSITION_HH12_AS5045_SSI: AZIMUTH_STARTING_POINT_DEFAULT used in heading calculation now
This commit is contained in:
Anthony Good 2016-03-01 08:24:15 -05:00
parent 5ddcfbe374
commit b484828f3e
5 changed files with 43 additions and 32 deletions

View File

@ -454,13 +454,19 @@
2.0.2016012301 2.0.2016012301
Further work to get k3ngdisplay files to play with Arduino IDE 1.6.7 Further work to get k3ngdisplay files to play with Arduino IDE 1.6.7
2.0.2016021601
DEBUG_HH12 more information output
2.0.2016030101
FEATURE_AZ_POSITION_HH12_AS5045_SSI: AZIMUTH_STARTING_POINT_DEFAULT used in heading calculation now
All library files should be placed in \sketchbook\libraries\some-directory\ in order to compile in Arduino IDE 1.6.7 All library files should be placed in \sketchbook\libraries\some-directory\ in order to compile in Arduino IDE 1.6.7
Anything rotator_*.* should be in the ino directory! Anything rotator_*.* should be in the ino directory!
*/ */
#define CODE_VERSION "2.0.2016012301" #define CODE_VERSION "2.0.2016030101"
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#include <EEPROM.h> #include <EEPROM.h>
@ -4651,9 +4657,9 @@ void read_azimuth(byte force_read){
#ifdef FEATURE_AZ_POSITION_HH12_AS5045_SSI #ifdef FEATURE_AZ_POSITION_HH12_AS5045_SSI
#if defined(OPTION_REVERSE_AZ_HH12_AS5045) #if defined(OPTION_REVERSE_AZ_HH12_AS5045)
raw_azimuth = int((360.0-azimuth_hh12.heading()) * HEADING_MULTIPLIER); raw_azimuth = int((360.0-azimuth_hh12.heading()+AZIMUTH_STARTING_POINT_DEFAULT) * HEADING_MULTIPLIER);
#else #else
raw_azimuth = int(azimuth_hh12.heading() * HEADING_MULTIPLIER); raw_azimuth = int((azimuth_hh12.heading()+AZIMUTH_STARTING_POINT_DEFAULT) * HEADING_MULTIPLIER);
#endif #endif
#ifdef DEBUG_HH12 #ifdef DEBUG_HH12
if ((millis() - last_hh12_debug) > 5000) { if ((millis() - last_hh12_debug) > 5000) {
@ -5503,20 +5509,23 @@ void read_elevation(byte force_read){
#else #else
elevation = int(elevation_hh12.heading() * HEADING_MULTIPLIER); elevation = int(elevation_hh12.heading() * HEADING_MULTIPLIER);
#endif #endif
#ifdef DEBUG_HH12 #ifdef DEBUG_HH12 //zzzzzzzz
if ((millis() - last_hh12_debug) > 5000) { if ((millis() - last_hh12_debug) > 5000) {
debug.print(F("read_elevation: HH-12 raw: ")); debug.print(F("read_elevation: HH-12 from device: "));
control_port->println(elevation); debug.print(elevation_hh12.heading());
last_hh12_debug = millis(); debug.print(F(" uncorrected: "));
} debug.println(elevation/HEADING_MULTIPLIER);
#endif // DEBUG_HH12 // control_port->println(elevation);
#ifdef FEATURE_ELEVATION_CORRECTION last_hh12_debug = millis();
elevation = (correct_elevation(elevation / (float) HEADING_MULTIPLIER) * HEADING_MULTIPLIER); }
#endif // FEATURE_ELEVATION_CORRECTION #endif // DEBUG_HH12
elevation = elevation + (configuration.elevation_offset * HEADING_MULTIPLIER); #ifdef FEATURE_ELEVATION_CORRECTION
if (elevation > (180 * HEADING_MULTIPLIER)) { elevation = (correct_elevation(elevation / (float) HEADING_MULTIPLIER) * HEADING_MULTIPLIER);
elevation = elevation - (360 * HEADING_MULTIPLIER); #endif // FEATURE_ELEVATION_CORRECTION
} elevation = elevation + (configuration.elevation_offset * HEADING_MULTIPLIER);
if (elevation > (180 * HEADING_MULTIPLIER)) {
elevation = elevation - (360 * HEADING_MULTIPLIER);
}
#endif // FEATURE_EL_POSITION_HH12_AS5045_SSI #endif // FEATURE_EL_POSITION_HH12_AS5045_SSI

View File

@ -60,8 +60,8 @@
// #define FEATURE_EL_POSITION_INCREMENTAL_ENCODER // #define FEATURE_EL_POSITION_INCREMENTAL_ENCODER
// #define FEATURE_EL_POSITION_MEMSIC_2125 // #define FEATURE_EL_POSITION_MEMSIC_2125
// #define FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER // #define FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER
// All displays require rotator_k3ngdisplay.h and rotator_k3ngdisplay.cpp in the ino directory! // All displays require k3ngdisplay.h and k3ngdisplay.cpp in a directory in \sketchbook\libraries\
// And if you are using an Adafruit, Yourduino, RFRobot, or YWRobot display, you must change the feature setting in k3ngdisplay.h!!!! // And if you are using an Adafruit, Yourduino, RFRobot, or YWRobot display, you must change the feature setting in k3ngdisplay.h!!!!
// #define FEATURE_4_BIT_LCD_DISPLAY // Uncomment for classic 4 bit LCD display (most common) // #define FEATURE_4_BIT_LCD_DISPLAY // Uncomment for classic 4 bit LCD display (most common)
// #define FEATURE_ADAFRUIT_I2C_LCD // #define FEATURE_ADAFRUIT_I2C_LCD

View File

@ -18,6 +18,7 @@
#define FEATURE_EL_POSITION_POTENTIOMETER #define FEATURE_EL_POSITION_POTENTIOMETER
// LCD display requires k3ngdisplay.h and k3ngdisplay.cpp in a directory in \sketchbook\libraries\
#define FEATURE_4_BIT_LCD_DISPLAY //Uncomment for classic 4 bit LCD display (most common) #define FEATURE_4_BIT_LCD_DISPLAY //Uncomment for classic 4 bit LCD display (most common)

View File

@ -22,7 +22,7 @@
#define FEATURE_GPS #define FEATURE_GPS
#define FEATURE_RTC_DS1307 #define FEATURE_RTC_DS1307
// #define FEATURE_RTC_PCF8583 // #define FEATURE_RTC_PCF8583
#define FEATURE_ETHERNET // #define FEATURE_ETHERNET
// #define FEATURE_STEPPER_MOTOR // requires Mega or an AVR with Timer 5 support // #define FEATURE_STEPPER_MOTOR // requires Mega or an AVR with Timer 5 support
// #define FEATURE_AUTOCORRECT // #define FEATURE_AUTOCORRECT
@ -38,22 +38,22 @@
// #define FEATURE_REMOTE_UNIT_SLAVE // uncomment this to make this unit a remote unit controlled by a host unit // #define FEATURE_REMOTE_UNIT_SLAVE // uncomment this to make this unit a remote unit controlled by a host unit
// #define FEATURE_MASTER_WITH_SERIAL_SLAVE // [master]{remote_port}<-------serial-------->{control_port}[slave] // #define FEATURE_MASTER_WITH_SERIAL_SLAVE // [master]{remote_port}<-------serial-------->{control_port}[slave]
#define FEATURE_MASTER_WITH_ETHERNET_SLAVE // [master]<-------------------ethernet--------------------->[slave] // #define FEATURE_MASTER_WITH_ETHERNET_SLAVE // [master]<-------------------ethernet--------------------->[slave]
/* position sensors - pick one for azimuth and one for elevation if using an az/el rotator */ /* position sensors - pick one for azimuth and one for elevation if using an az/el rotator */
#define FEATURE_AZ_POSITION_POTENTIOMETER //this is used for both a voltage from a rotator control or a homebrew rotator with a potentiometer // #define FEATURE_AZ_POSITION_POTENTIOMETER //this is used for both a voltage from a rotator control or a homebrew rotator with a potentiometer
// #define FEATURE_AZ_POSITION_ROTARY_ENCODER // #define FEATURE_AZ_POSITION_ROTARY_ENCODER
// #define FEATURE_AZ_POSITION_PULSE_INPUT // #define FEATURE_AZ_POSITION_PULSE_INPUT
// #define FEATURE_AZ_POSITION_HMC5883L // HMC5883L digital compass support // #define FEATURE_AZ_POSITION_HMC5883L // HMC5883L digital compass support
// #define FEATURE_AZ_POSITION_GET_FROM_REMOTE_UNIT // requires FEATURE_MASTER_WITH_SERIAL_SLAVE or FEATURE_MASTER_WITH_ETHERNET_SLAVE // #define FEATURE_AZ_POSITION_GET_FROM_REMOTE_UNIT // requires FEATURE_MASTER_WITH_SERIAL_SLAVE or FEATURE_MASTER_WITH_ETHERNET_SLAVE
// #define FEATURE_AZ_POSITION_ADAFRUIT_LSM303 // Uncomment for azimuth using LSM303 compass and Adafruit library (https://github.com/adafruit/Adafruit_LSM303) (also uncomment object declaration below) // #define FEATURE_AZ_POSITION_ADAFRUIT_LSM303 // Uncomment for azimuth using LSM303 compass and Adafruit library (https://github.com/adafruit/Adafruit_LSM303) (also uncomment object declaration below)
// #define FEATURE_AZ_POSITION_POLOLU_LSM303 // Uncomment for azimuth using LSM303 compass and Polulu library // #define FEATURE_AZ_POSITION_POLOLU_LSM303 // Uncomment for azimuth using LSM303 compass and Polulu library
// #define FEATURE_AZ_POSITION_HH12_AS5045_SSI #define FEATURE_AZ_POSITION_HH12_AS5045_SSI
// #define FEATURE_AZ_POSITION_INCREMENTAL_ENCODER // #define FEATURE_AZ_POSITION_INCREMENTAL_ENCODER
// #define FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER // #define FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER
#define FEATURE_EL_POSITION_POTENTIOMETER // #define FEATURE_EL_POSITION_POTENTIOMETER
// #define FEATURE_EL_POSITION_ROTARY_ENCODER // #define FEATURE_EL_POSITION_ROTARY_ENCODER
// #define FEATURE_EL_POSITION_PULSE_INPUT // #define FEATURE_EL_POSITION_PULSE_INPUT
// #define FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB // Uncomment for elevation ADXL345 accelerometer support using ADXL345 library // #define FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB // Uncomment for elevation ADXL345 accelerometer support using ADXL345 library
@ -61,14 +61,15 @@
// #define FEATURE_EL_POSITION_GET_FROM_REMOTE_UNIT // requires FEATURE_MASTER_WITH_SERIAL_SLAVE or FEATURE_MASTER_WITH_ETHERNET_SLAVE // #define FEATURE_EL_POSITION_GET_FROM_REMOTE_UNIT // requires FEATURE_MASTER_WITH_SERIAL_SLAVE or FEATURE_MASTER_WITH_ETHERNET_SLAVE
// #define FEATURE_EL_POSITION_ADAFRUIT_LSM303 // Uncomment for elevation using LSM303 accelerometer and Adafruit library (https://github.com/adafruit/Adafruit_LSM303) (also uncomment object declaration below) // #define FEATURE_EL_POSITION_ADAFRUIT_LSM303 // Uncomment for elevation using LSM303 accelerometer and Adafruit library (https://github.com/adafruit/Adafruit_LSM303) (also uncomment object declaration below)
// #define FEATURE_EL_POSITION_POLOLU_LSM303 // Uncomment for elevation using LSM303 compass and Polulu library // #define FEATURE_EL_POSITION_POLOLU_LSM303 // Uncomment for elevation using LSM303 compass and Polulu library
// #define FEATURE_EL_POSITION_HH12_AS5045_SSI #define FEATURE_EL_POSITION_HH12_AS5045_SSI
// #define FEATURE_EL_POSITION_INCREMENTAL_ENCODER // #define FEATURE_EL_POSITION_INCREMENTAL_ENCODER
// #define FEATURE_EL_POSITION_MEMSIC_2125 // #define FEATURE_EL_POSITION_MEMSIC_2125
// #define FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER // #define FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER
// All displays require rotator_k3ngdisplay.h and rotator_k3ngdisplay.cpp in the ino directory!
// All displays require k3ngdisplay.h and k3ngdisplay.cpp in a directory in \sketchbook\libraries\
// And if you are using an Adafruit, Yourduino, RFRobot, or YWRobot display, you must change the feature setting in k3ngdisplay.h!!!! // And if you are using an Adafruit, Yourduino, RFRobot, or YWRobot display, you must change the feature setting in k3ngdisplay.h!!!!
// #define FEATURE_4_BIT_LCD_DISPLAY // Uncomment for classic 4 bit LCD display (most common) #define FEATURE_4_BIT_LCD_DISPLAY // Uncomment for classic 4 bit LCD display (most common)
// #define FEATURE_ADAFRUIT_I2C_LCD // #define FEATURE_ADAFRUIT_I2C_LCD
// #define FEATURE_ADAFRUIT_BUTTONS // Uncomment this to use Adafruit I2C LCD buttons for manual AZ/EL instead of normal buttons // #define FEATURE_ADAFRUIT_BUTTONS // Uncomment this to use Adafruit I2C LCD buttons for manual AZ/EL instead of normal buttons
// #define FEATURE_YOURDUINO_I2C_LCD // #define FEATURE_YOURDUINO_I2C_LCD
@ -151,8 +152,8 @@
// #define OPTION_SCANCON_2RMHF3600_INC_ENCODER // use with FEATURE_AZ_POSITION_INCREMENTAL_ENCODER and/or FEATURE_EL_POSITION_INCREMENTAL_ENCODER if using the ScanCon 2RMHF3600 incremental encoder // #define OPTION_SCANCON_2RMHF3600_INC_ENCODER // use with FEATURE_AZ_POSITION_INCREMENTAL_ENCODER and/or FEATURE_EL_POSITION_INCREMENTAL_ENCODER if using the ScanCon 2RMHF3600 incremental encoder
// #define OPTION_RESET_METHOD_JMP_ASM_0 // #define OPTION_RESET_METHOD_JMP_ASM_0
// #define OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS // #define OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS
#define OPTION_REVERSE_AZ_HH12_AS5045 // #define OPTION_REVERSE_AZ_HH12_AS5045
#define OPTION_REVERSE_EL_HH12_AS5045 // #define OPTION_REVERSE_EL_HH12_AS5045
// #define OPTION_DONT_READ_GPS_PORT_AS_OFTEN // #define OPTION_DONT_READ_GPS_PORT_AS_OFTEN

View File

@ -119,9 +119,9 @@
#endif //FEATURE_AZ_POSITION_HH_12 #endif //FEATURE_AZ_POSITION_HH_12
#ifdef FEATURE_EL_POSITION_HH12_AS5045_SSI #ifdef FEATURE_EL_POSITION_HH12_AS5045_SSI
#define el_hh12_clock_pin 11 #define el_hh12_clock_pin 53 //11
#define el_hh12_cs_pin 12 #define el_hh12_cs_pin 52 //12
#define el_hh12_data_pin 13 #define el_hh12_data_pin 51 //13
#endif //FEATURE_EL_POSITION_HH_12 #endif //FEATURE_EL_POSITION_HH_12
#ifdef FEATURE_PARK #ifdef FEATURE_PARK