updated 7seg controls for new 7 seg boards

Dependencies:   PixelArray WS2812 mbed

Fork of frdm_pong_table_controller by Demo Team

Committer:
DanGibbons
Date:
Thu Jul 06 16:16:36 2017 +0000
Revision:
5:2d439ccefc7d
Parent:
4:2e80bd814f57
Child:
6:5e8e2645cd93
Random Colour added; Drain animation added; Drawing animation added for numbers

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DanGibbons 5:2d439ccefc7d 1 #ifndef MAIN_H
DanGibbons 5:2d439ccefc7d 2 #define MAIN_H
DanGibbons 5:2d439ccefc7d 3
DanGibbons 4:2e80bd814f57 4 #include "mbed.h"
DanGibbons 4:2e80bd814f57 5 #include "WS2812.h"
DanGibbons 4:2e80bd814f57 6 #include "PixelArray.h"
DanGibbons 4:2e80bd814f57 7
DanGibbons 4:2e80bd814f57 8 #define WS2812_BUF 122
DanGibbons 4:2e80bd814f57 9 #define NUM_COLORS 6
DanGibbons 4:2e80bd814f57 10 #define NUM_LEDS_PER_COLOR 1
DanGibbons 4:2e80bd814f57 11
DanGibbons 4:2e80bd814f57 12 //-------- Colours -----------
DanGibbons 4:2e80bd814f57 13 #define RED 0x2f0000
DanGibbons 4:2e80bd814f57 14 #define YELLOW 0x2f2f00
DanGibbons 4:2e80bd814f57 15 #define GREEN 0x002f00
DanGibbons 4:2e80bd814f57 16 #define LIGHTBLUE 0x002f2f
DanGibbons 4:2e80bd814f57 17 #define DARKBLUE 0x00002f
DanGibbons 4:2e80bd814f57 18 #define BLUE 0x0000ff // Player scored a goal
DanGibbons 4:2e80bd814f57 19 #define PINK 0x2f002f
DanGibbons 4:2e80bd814f57 20 #define OFF 0x000000
DanGibbons 4:2e80bd814f57 21 #define WHITE 0xffffaa
DanGibbons 4:2e80bd814f57 22 #define ARMBLUE 0x128BAB
DanGibbons 4:2e80bd814f57 23 #define PURPLE 0xff0055 // Player has conceded a goal
DanGibbons 4:2e80bd814f57 24
DanGibbons 4:2e80bd814f57 25 // Goal Sensors
DanGibbons 4:2e80bd814f57 26 AnalogIn robotBreakBeam(A0);
DanGibbons 4:2e80bd814f57 27 AnalogIn playerBreakBeam(A1);
DanGibbons 4:2e80bd814f57 28
DanGibbons 4:2e80bd814f57 29 // K64F On-board LED
DanGibbons 4:2e80bd814f57 30 DigitalOut led_green(LED_GREEN, 1);
DanGibbons 4:2e80bd814f57 31
DanGibbons 4:2e80bd814f57 32 //K64F On-board Switches
DanGibbons 4:2e80bd814f57 33 DigitalIn PB1(PTC6);
DanGibbons 4:2e80bd814f57 34 DigitalIn PB2(PTA4);
DanGibbons 4:2e80bd814f57 35
DanGibbons 4:2e80bd814f57 36 // SERIAL
DanGibbons 4:2e80bd814f57 37 Serial pc(USBTX, USBRX); // tx, rx
DanGibbons 4:2e80bd814f57 38
DanGibbons 4:2e80bd814f57 39 // LED STRIPS
DanGibbons 4:2e80bd814f57 40 // See the program page for information on the timing numbers
DanGibbons 4:2e80bd814f57 41 // The given numbers are for the K64F
DanGibbons 4:2e80bd814f57 42 WS2812 robotScoreLED(D3, WS2812_BUF, 0, 5, 5, 0);
DanGibbons 4:2e80bd814f57 43 WS2812 playerScoreLED(D5,WS2812_BUF, 0, 5, 5, 0);
DanGibbons 4:2e80bd814f57 44 PixelArray robotScorePx(WS2812_BUF);
DanGibbons 4:2e80bd814f57 45 PixelArray playerScorePx(WS2812_BUF);
DanGibbons 4:2e80bd814f57 46
DanGibbons 4:2e80bd814f57 47
DanGibbons 4:2e80bd814f57 48 // LED Variables
DanGibbons 4:2e80bd814f57 49 bool seg1A, seg1B, seg1C, seg1D, seg1E, seg1F, seg1G;
DanGibbons 4:2e80bd814f57 50 //int seg1Array[122];
DanGibbons 4:2e80bd814f57 51 int mainArray[11][122];
DanGibbons 5:2d439ccefc7d 52 int rand_colors[] = {0x00FF00, 0x7FFF00, 0xFFFF00, 0xFF7F00, 0xFF0000, 0xFE00FF, 0x7F00FF, 0x0000FF, 0x007FFF, 0x00FFFE, 0x00FF7F};
DanGibbons 4:2e80bd814f57 53
DanGibbons 4:2e80bd814f57 54 // Score counters
DanGibbons 4:2e80bd814f57 55 int robotScore;
DanGibbons 4:2e80bd814f57 56 int playerScore;
DanGibbons 4:2e80bd814f57 57 int scoreLimit = 3;
DanGibbons 4:2e80bd814f57 58 bool finishedGame = false;
DanGibbons 4:2e80bd814f57 59 int endFlashes = 3;
DanGibbons 4:2e80bd814f57 60 int numFlashes;
DanGibbons 4:2e80bd814f57 61
DanGibbons 4:2e80bd814f57 62 // Robot Bream Beam value
DanGibbons 4:2e80bd814f57 63 double prevRbbValue; // Previous Robot break beam value
DanGibbons 4:2e80bd814f57 64 double prevPbbValue; // Previous player break beam value
DanGibbons 4:2e80bd814f57 65
DanGibbons 4:2e80bd814f57 66 // FUNCTION DECLERATIONS
DanGibbons 4:2e80bd814f57 67 void Setup();
DanGibbons 4:2e80bd814f57 68 void SetNumberPatterns();
DanGibbons 4:2e80bd814f57 69 void SetFigureOf8Pattern();
DanGibbons 5:2d439ccefc7d 70 void SetCirclePattern();
DanGibbons 4:2e80bd814f57 71 void SetLEDArray(int x);
DanGibbons 4:2e80bd814f57 72 void WriteScores();
DanGibbons 4:2e80bd814f57 73 void HandleGoal(bool hasRobotScored);
DanGibbons 4:2e80bd814f57 74 void WritePxScores(int line_num, bool isRobot);
DanGibbons 5:2d439ccefc7d 75 void WritePxAnimation(int line_num,bool isRobot);
DanGibbons 5:2d439ccefc7d 76 void WritePxScoresRandomColours(int line_num,bool isRobot);
DanGibbons 4:2e80bd814f57 77 void WritePxGoal(unsigned int colour,bool isRobot);
DanGibbons 4:2e80bd814f57 78 void HandleWin();
DanGibbons 4:2e80bd814f57 79 void GoalAnimation(bool hasRobotScored);
DanGibbons 4:2e80bd814f57 80 void WinAnimation(bool isRobotWinner);
DanGibbons 5:2d439ccefc7d 81 void FigureOf8Animation(bool robot, bool player, int numberOfRepitions);
DanGibbons 5:2d439ccefc7d 82 void CircleAnimation(bool robot, bool player, int numberOfRepitions);
DanGibbons 5:2d439ccefc7d 83 void DrainAnimation(bool robot, bool robotColour, int robotScore, bool player, bool playerColour, int playerScore);
DanGibbons 5:2d439ccefc7d 84
DanGibbons 5:2d439ccefc7d 85 #endif