3rd year group project. Electronic and Electrical Engineering. Heriot-Watt University. This is the code for the mbed for the Automatic Little Object Organiser (ALOO).

Dependencies:   MCP23017 TCS3472_I2C WattBob_TextLCD mbed

Committer:
dreamselec
Date:
Sun Nov 22 17:53:36 2015 +0000
Revision:
14:cf2f255b5560
Parent:
10:16ba52f8e025
Child:
15:777390eb5afd
Changed sorting algorithm for colour sensor next to top beam.
Added filled some commands rather than just printing.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dreamselec 10:16ba52f8e025 1
dreamselec 2:7a55cb10259f 2
dreamselec 9:dc8f155b71c8 3
dreamselec 4:4eebb4de22a7 4 #ifndef _globals_h_
dreamselec 4:4eebb4de22a7 5 #define _globals_h_
dreamselec 2:7a55cb10259f 6
dreamselec 10:16ba52f8e025 7 #include "Block.h"
dreamselec 10:16ba52f8e025 8 #include "mbed.h"
dreamselec 10:16ba52f8e025 9 //#include "MCP23017.h"
dreamselec 10:16ba52f8e025 10 //#include "fpga.h"
dreamselec 10:16ba52f8e025 11
dreamselec 10:16ba52f8e025 12 class FPGA;
dreamselec 10:16ba52f8e025 13 class TCS3472_I2C;
dreamselec 10:16ba52f8e025 14 class MCP23017;
dreamselec 10:16ba52f8e025 15 class WattBob_TextLCD;
dreamselec 10:16ba52f8e025 16
dreamselec 4:4eebb4de22a7 17 extern mbed::Serial pc;
dreamselec 10:16ba52f8e025 18 extern MCP23017 *i2cport;
dreamselec 7:b6e31bfdb2af 19 extern int kDefaultBaudRate;
dreamselec 10:16ba52f8e025 20 extern WattBob_TextLCD *lcd;
dreamselec 2:7a55cb10259f 21 //extern SerialBase gParity;
dreamselec 2:7a55cb10259f 22 extern int gStopBits;
dreamselec 8:e1da2ae62885 23 extern bool connectedToPC;
dreamselec 10:16ba52f8e025 24 extern bool runServoTest;
dreamselec 2:7a55cb10259f 25
dreamselec 6:98fe30430194 26 const int kCommandBufferSize = 80;
dreamselec 7:b6e31bfdb2af 27 const int kSmallBufferSize = 5;
dreamselec 2:7a55cb10259f 28
dreamselec 2:7a55cb10259f 29 #define FOREVER for(;;)
dreamselec 2:7a55cb10259f 30
dreamselec 6:98fe30430194 31 const char CommandTypeValue [3] = {'!', '?', ':'};
dreamselec 6:98fe30430194 32 const char kCommandTerminator = ';';
dreamselec 8:e1da2ae62885 33 enum CommandTypeRaw { InvalidType = -1, Set = 0, Query = 1, Reply = 2 };
dreamselec 6:98fe30430194 34
dreamselec 9:dc8f155b71c8 35 const Block kDefaultHazBlock = Block(Block::Small);
dreamselec 9:dc8f155b71c8 36 extern Block _HazBlock;
dreamselec 10:16ba52f8e025 37 extern FPGA *fpga;
dreamselec 10:16ba52f8e025 38
dreamselec 10:16ba52f8e025 39 extern TCS3472_I2C rgbSensor;
dreamselec 9:dc8f155b71c8 40
dreamselec 6:98fe30430194 41 enum Servos {Stopping = 1, Sorting = 2};
dreamselec 6:98fe30430194 42 enum StoppingServoPositions {Stop = 0, Go = 1};
dreamselec 10:16ba52f8e025 43 enum SortingServoPositions {NonHaz = 1, Haz = 0};
dreamselec 10:16ba52f8e025 44
dreamselec 10:16ba52f8e025 45 int readSwitches();
dreamselec 6:98fe30430194 46
dreamselec 8:e1da2ae62885 47 void connectToPC(CommandTypeRaw typeRaw=Set);
dreamselec 8:e1da2ae62885 48 void disconnectToPC(CommandTypeRaw typeRaw=Set);
dreamselec 8:e1da2ae62885 49 void hazBlock(CommandTypeRaw typeRaw);
dreamselec 8:e1da2ae62885 50 void getCurrentBlock(CommandTypeRaw typeRaw=Query);
dreamselec 8:e1da2ae62885 51
dreamselec 8:e1da2ae62885 52 void setIntegrationTime(int integrationTime);
dreamselec 8:e1da2ae62885 53 void previewOnPC(bool on);
dreamselec 10:16ba52f8e025 54 void readColourSensor ();
dreamselec 8:e1da2ae62885 55
dreamselec 8:e1da2ae62885 56 void testServos();
dreamselec 8:e1da2ae62885 57 void resetServos();
dreamselec 8:e1da2ae62885 58
dreamselec 8:e1da2ae62885 59 void getPortInfo();
dreamselec 8:e1da2ae62885 60 void setPortBaudRate(int baudRate);
dreamselec 14:cf2f255b5560 61 void setPortParity(int parity);
dreamselec 8:e1da2ae62885 62
dreamselec 8:e1da2ae62885 63
dreamselec 6:98fe30430194 64 #endif