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 BeautifulMemeProject 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 Fri Jul 15 2022 08:26:10 by
 1.7.2
 1.7.2 
    