Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of PsiSwarmLibrary by
psiswarm.h
00001 /* University of York Robotics Laboratory PsiSwarm Library: PsiSwarm Core Header File 00002 * 00003 * File: psiswarm.h 00004 * 00005 * (C) Dept. Electronics & Computer Science, University of York 00006 * James Hilder, Alan Millard, Alexander Horsfield, Homero Elizondo, Jon Timmis 00007 * 00008 * PsiSwarm Library Version: 0.5 00009 * 00010 * April 2016 00011 * 00012 * 00013 */ 00014 00015 #ifndef PSISWARM_H 00016 #define PSISWARM_H 00017 00018 #define SOFTWARE_VERSION_CODE 0.50 00019 00020 #define PIC_ADDRESS 0x30 00021 #define LCD_ADDRESS 0x7C 00022 #define LED_IC_ADDRESS 0x42 00023 #define GPIO_IC_ADDRESS 0x40 00024 #define AUX_IC_ADDRESS 0x4E 00025 #define ADC1_ADDRESS 0x46 00026 #define ADC2_ADDRESS 0x48 00027 #define EEPROM_ADDRESS 0XA0 00028 #define TEMPERATURE_ADDRESS 0X30 00029 #define BASE_COLOUR_ADDRESS 0X52 00030 #define TOP_COLOUR_ADDRESS 0X72 00031 #define ULTRASONIC_ADDRESS 0XE0 00032 #define COMMAND_MESSAGE_BYTE 0X1D 00033 #define ACKNOWLEDGE_MESSAGE_BYTE 0X1E 00034 #define RESPONSE_MESSAGE_BYTE 0X1F 00035 #define PSI_BYTE 0X1D 00036 00037 //Set temperature sensor warnings: 60C critical, 50C high, 0C low 00038 #define TEMPERATURE_CRITICAL_HI 0X03 00039 #define TEMPEARTURE_CRITICAL_LO 0XC0 00040 #define TEMPERATURE_HIGH_HI 0X03 00041 #define TEMPEARTURE_HIGH_LO 0X20 00042 #define TEMPERATURE_LOW_HI 0X00 00043 #define TEMPEARTURE_LOW_LO 0X00 00044 00045 #define DEFAULT_IR_PULSE_DELAY 400 00046 #define DEFAULT_BASE_IR_PULSE_DELAY 50 00047 00048 #include <stdio.h> 00049 #include <stdarg.h> 00050 #include <string> 00051 #include <vector> 00052 00053 #include "settings.h" 00054 #include "serial.h" 00055 #include "mbed.h" 00056 #include "display.h" 00057 #include "led.h" 00058 #include "i2c.h" 00059 #include "motors.h" 00060 #include "sensors.h" 00061 #include "eprom.h" 00062 #include "colour.h" 00063 #include "pic.h" 00064 #include "demo.h" 00065 #include "dances.h" 00066 #include "basic.h" 00067 00068 //NB The user needs to have a main.cpp with a main() function and a handle_switch_event(char) function 00069 #include "main.h" 00070 00071 00072 void init(void); 00073 float get_uptime(void); 00074 void pause_user_code(float period); 00075 void reset_encoders(void); 00076 void debug(const char* format, ...) ; 00077 00078 void IF_end_pause_user_code(void); 00079 void IF_handle_events(void); 00080 void IF_update_encoders(void); 00081 void IF_update_user_id(void); 00082 void IF_update_switch(void); 00083 void IF_update_minutes(void); 00084 void IF_get_hardware_description(void); 00085 00086 extern char * program_name; 00087 extern char * author_name; 00088 extern char * version_name; 00089 00090 extern Serial pc; 00091 extern Serial bt; 00092 extern Display display; 00093 extern I2C primary_i2c; 00094 extern InterruptIn gpio_interrupt; 00095 00096 extern AnalogIn vin_current; 00097 extern AnalogIn vin_battery; 00098 extern AnalogIn vin_dc; 00099 00100 extern DigitalOut mbed_led1; 00101 extern DigitalOut mbed_led2; 00102 extern DigitalOut mbed_led3; 00103 extern DigitalOut mbed_led4; 00104 extern PwmOut center_led_red; 00105 extern PwmOut center_led_green; 00106 extern PwmOut motor_left_f; 00107 extern PwmOut motor_left_r; 00108 extern PwmOut motor_right_f; 00109 extern PwmOut motor_right_r; 00110 00111 extern char time_based_motor_action; 00112 00113 extern int base_colour_sensor_raw_values []; 00114 extern int top_colour_sensor_raw_values []; 00115 00116 extern char waiting_for_ultrasonic; 00117 extern int ultrasonic_distance; 00118 extern char ultrasonic_distance_updated; 00119 extern Timeout ultrasonic_timeout; 00120 extern Ticker ultrasonic_ticker; 00121 00122 extern unsigned short background_ir_values []; 00123 extern unsigned short illuminated_ir_values []; 00124 extern float reflected_ir_distances []; 00125 extern char ir_values_stored; 00126 00127 extern char firmware_bytes[]; 00128 00129 extern char testing_voltage_regulators_flag; 00130 extern char power_good_motor_left; 00131 extern char power_good_motor_right; 00132 extern char power_good_infrared; 00133 extern char status_dc_in; 00134 extern char status_charging; 00135 00136 extern unsigned short background_base_ir_values []; 00137 extern unsigned short illuminated_base_ir_values []; 00138 extern char base_ir_values_stored; 00139 extern float line_position; 00140 extern char line_found; 00141 00142 extern float motor_left_speed; 00143 extern float motor_right_speed; 00144 extern char motor_left_brake; 00145 extern char motor_right_brake; 00146 00147 extern float center_led_brightness; 00148 extern float backlight_brightness; 00149 00150 extern char use_motor_calibration; 00151 extern char motor_calibration_set; 00152 extern float left_motor_calibration_value; 00153 extern float right_motor_calibration_value; 00154 00155 extern float firmware_version; 00156 extern float pcb_version; 00157 extern float serial_number; 00158 00159 extern char has_compass; 00160 extern char has_side_ir; 00161 extern char has_base_ir; 00162 extern char has_base_colour_sensor; 00163 extern char has_top_colour_sensor; 00164 extern char has_wheel_encoders; 00165 extern char has_audio_pic; 00166 extern char has_ultrasonic_sensor; 00167 extern char has_temperature_sensor; 00168 extern char has_recharging_circuit; 00169 extern char has_433_radio; 00170 00171 extern int ir_pulse_delay; 00172 extern int base_ir_pulse_delay; 00173 00174 extern char robot_id; 00175 extern char previous_robot_id; 00176 00177 extern char wheel_encoder_byte; 00178 extern char previous_wheel_encoder_byte; 00179 extern signed int left_encoder; 00180 extern signed int right_encoder; 00181 00182 extern char switch_byte; 00183 extern char previous_switch_byte; 00184 00185 extern char user_code_running; 00186 extern char user_code_restore_mode; 00187 extern char demo_on; 00188 extern char event; 00189 extern char change_id_event; 00190 extern char encoder_event; 00191 extern char switch_event; 00192 extern char system_warnings; 00193 00194 extern char debug_mode; 00195 extern char debug_output; 00196 00197 extern vector<string> basic_filenames; 00198 extern char psi_basic_file_count; 00199 extern char use_flash_basic; 00200 extern char file_transfer_mode; 00201 #endif
Generated on Sat Jul 16 2022 05:17:35 by
1.7.2
