Science Memeseum / Mbed 2 deprecated BeaconDemo_RobotCode

Dependencies:   mbed

Fork of PsiSwarm-BeaconDemo_Bluetooth by James Wilson

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers psiswarm.h Source File

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