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.
Dependencies: mbed
Fork of PsiSwarm-BeaconDemo_Bluetooth 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, Homero Elizondo, Jon Timmis 00007 * 00008 * PsiSwarm Library Version: 0.3 00009 * 00010 * October 2015 00011 * 00012 */ 00013 00014 #ifndef PSISWARM_H 00015 #define PSISWARM_H 00016 00017 #define SOFTWARE_VERSION_CODE 0.20 00018 00019 #define PIC_ADDRESS 0x30 00020 #define LCD_ADDRESS 0x7C 00021 #define LED_IC_ADDRESS 0x42 00022 #define GPIO_IC_ADDRESS 0x40 00023 #define AUX_IC_ADDRESS 0x4E 00024 #define ADC1_ADDRESS 0x46 00025 #define ADC2_ADDRESS 0x48 00026 #define EEPROM_ADDRESS 0XA0 00027 #define TEMPERATURE_ADDRESS 0X30 00028 #define BASE_COLOUR_ADDRESS 0X52 00029 #define TOP_COLOUR_ADDRESS 0X72 00030 #define ULTRASONIC_ADDRESS 0XE0 00031 #define COMMAND_MESSAGE_BYTE 0X1D 00032 #define ACKNOWLEDGE_MESSAGE_BYTE 0X1E 00033 #define RESPONSE_MESSAGE_BYTE 0X1F 00034 #define PSI_BYTE 0X1D 00035 00036 //Set temperature sensor warnings: 60C critical, 50C high, 0C low 00037 #define TEMPERATURE_CRITICAL_HI 0X03 00038 #define TEMPEARTURE_CRITICAL_LO 0XC0 00039 #define TEMPERATURE_HIGH_HI 0X03 00040 #define TEMPEARTURE_HIGH_LO 0X20 00041 #define TEMPERATURE_LOW_HI 0X00 00042 #define TEMPEARTURE_LOW_LO 0X00 00043 00044 #define DEFAULT_IR_PULSE_DELAY 400 00045 #define DEFAULT_BASE_IR_PULSE_DELAY 50 00046 00047 #include <stdio.h> 00048 #include <stdarg.h> 00049 00050 #include "settings.h" 00051 #include "serial.h" 00052 #include "mbed.h" 00053 #include "display.h" 00054 #include "led.h" 00055 #include "i2c.h" 00056 #include "motors.h" 00057 #include "sensors.h" 00058 #include "eprom.h" 00059 #include "colour.h" 00060 #include "pic.h" 00061 #include "demo.h" 00062 #include "dances.h" 00063 00064 //NB The user needs to have a main.cpp with a main() function and a handle_switch_event(char) function 00065 #include "main.h" 00066 00067 00068 void init(void); 00069 float get_uptime(void); 00070 void pause_user_code(float period); 00071 void reset_encoders(void); 00072 void debug(const char* format, ...) ; 00073 00074 void IF_end_pause_user_code(void); 00075 void IF_handle_events(void); 00076 void IF_update_encoders(void); 00077 void IF_update_user_id(void); 00078 void IF_update_switch(void); 00079 void IF_update_minutes(void); 00080 00081 extern char * program_name; 00082 extern char * author_name; 00083 extern char * version_name; 00084 00085 extern Serial pc; 00086 extern Serial bt; 00087 extern Display display; 00088 extern I2C primary_i2c; 00089 extern InterruptIn gpio_interrupt; 00090 00091 extern AnalogIn vin_current; 00092 extern AnalogIn vin_battery; 00093 extern AnalogIn vin_dc; 00094 00095 extern DigitalOut mbed_led1; 00096 extern DigitalOut mbed_led2; 00097 extern DigitalOut mbed_led3; 00098 extern DigitalOut mbed_led4; 00099 extern PwmOut center_led_red; 00100 extern PwmOut center_led_green; 00101 extern PwmOut motor_left_f; 00102 extern PwmOut motor_left_r; 00103 extern PwmOut motor_right_f; 00104 extern PwmOut motor_right_r; 00105 00106 extern char time_based_motor_action; 00107 00108 extern int base_colour_sensor_raw_values []; 00109 extern int top_colour_sensor_raw_values []; 00110 00111 extern char waiting_for_ultrasonic; 00112 extern int ultrasonic_distance; 00113 extern char ultrasonic_distance_updated; 00114 extern Timeout ultrasonic_timeout; 00115 extern Ticker ultrasonic_ticker; 00116 00117 extern unsigned short background_ir_values []; 00118 extern unsigned short illuminated_ir_values []; 00119 extern float reflected_ir_distances []; 00120 extern char ir_values_stored; 00121 00122 extern char firmware_bytes[]; 00123 00124 extern char testing_voltage_regulators_flag; 00125 extern char power_good_motor_left; 00126 extern char power_good_motor_right; 00127 extern char power_good_infrared; 00128 extern char status_dc_in; 00129 extern char status_charging; 00130 00131 extern unsigned short background_base_ir_values []; 00132 extern unsigned short illuminated_base_ir_values []; 00133 extern char base_ir_values_stored; 00134 extern float line_position; 00135 extern char line_found; 00136 00137 extern float motor_left_speed; 00138 extern float motor_right_speed; 00139 extern char motor_left_brake; 00140 extern char motor_right_brake; 00141 00142 extern float center_led_brightness; 00143 extern float backlight_brightness; 00144 00145 extern float firmware_version; 00146 00147 extern int ir_pulse_delay; 00148 extern int base_ir_pulse_delay; 00149 00150 extern char robot_id; 00151 extern char previous_robot_id; 00152 00153 extern char wheel_encoder_byte; 00154 extern char previous_wheel_encoder_byte; 00155 extern signed int left_encoder; 00156 extern signed int right_encoder; 00157 00158 extern char switch_byte; 00159 extern char previous_switch_byte; 00160 00161 extern char user_code_running; 00162 extern char user_code_restore_mode; 00163 extern char demo_on; 00164 extern char event; 00165 extern char change_id_event; 00166 extern char encoder_event; 00167 extern char switch_event; 00168 extern char system_warnings; 00169 00170 extern char debug_mode; 00171 extern char debug_output; 00172 #endif
Generated on Thu Jul 14 2022 08:02:39 by
1.7.2
