Add birthday present code
parent
ca66539184
commit
facf67f000
@ -0,0 +1,113 @@
|
||||
|
||||
// Import required libraries
|
||||
#include <ArducamSSD1306.h> // Modification of Adafruit_SSD1306 for ESP8266 compatibility
|
||||
#include <Adafruit_GFX.h> // Needs a little change in original Adafruit library (See README.txt file)
|
||||
#include <Wire.h> // For I2C comm, but needed for not getting compile error
|
||||
#include "FastLED.h"
|
||||
#define NUM_LEDS 5
|
||||
CRGB leds[NUM_LEDS];
|
||||
|
||||
#define UL -2
|
||||
#define UR -1
|
||||
#define DL 2
|
||||
#define DR 1
|
||||
#define WIDTH 84
|
||||
#define HEIGHT 16
|
||||
/*
|
||||
HardWare I2C pins
|
||||
A4 SDA
|
||||
A5 SCL
|
||||
*/
|
||||
|
||||
// Pin definitions
|
||||
#define OLED_RESET 16 // Pin 15 -RESET digital signal
|
||||
|
||||
#define LOGO16_GLCD_HEIGHT 16
|
||||
#define LOGO16_GLCD_WIDTH 16
|
||||
|
||||
ArducamSSD1306 display(OLED_RESET); // FOR I2C
|
||||
|
||||
int bounceDirection;
|
||||
int x;
|
||||
int y;
|
||||
uint8_t inverted = 0;
|
||||
void setup(void)
|
||||
{
|
||||
// Start Serial
|
||||
//Serial.begin(115200);
|
||||
FastLED.addLeds<NEOPIXEL, 2>(leds, NUM_LEDS);
|
||||
for (int led = 0; led <= 4; led += 1) {
|
||||
leds[led] = CRGB::White; FastLED.show();
|
||||
|
||||
}
|
||||
// SSD1306 Init
|
||||
display.begin(); // Switch OLED
|
||||
// Clear the buffer.
|
||||
display.clearDisplay();
|
||||
display.setTextSize(1);
|
||||
display.setTextColor(WHITE);
|
||||
//display.setCursor(20,20);
|
||||
//display.println("Happy Birthday\n Mom!");
|
||||
//display.display();
|
||||
bounceDirection = DR;
|
||||
x = 1;
|
||||
y = 1;
|
||||
|
||||
}
|
||||
|
||||
void checkCollision() {
|
||||
if (x <= 0) {
|
||||
if(bounceDirection == UL) {
|
||||
invert(UR);
|
||||
}
|
||||
if(bounceDirection == DL) {
|
||||
invert(DR);
|
||||
}
|
||||
} else if (x >= 128 - WIDTH) {
|
||||
if(bounceDirection == UR) {
|
||||
invert(UL);
|
||||
}
|
||||
if(bounceDirection == DR) {
|
||||
invert(DL);
|
||||
}
|
||||
}
|
||||
if (y <= 0) {
|
||||
if(bounceDirection == UL) {
|
||||
invert(DL);
|
||||
}
|
||||
if(bounceDirection == UR) {
|
||||
invert(DR);
|
||||
}
|
||||
} else if (y >= 64 - HEIGHT) {
|
||||
if(bounceDirection == DR) {
|
||||
invert(UR);
|
||||
}
|
||||
if(bounceDirection == DL) {
|
||||
invert(UL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void invert(int bD) {
|
||||
bounceDirection = bD;
|
||||
if (inverted == 1) inverted = 0;
|
||||
else inverted = 1;
|
||||
//display.invertDisplay(inverted);
|
||||
}
|
||||
void loop() {
|
||||
|
||||
checkCollision();
|
||||
//display.clearDisplay();
|
||||
if (bounceDirection < 0) y --;
|
||||
else y ++;
|
||||
if (bounceDirection % 2 == 0) x --;
|
||||
else x ++;
|
||||
display.fillRect(x - 1, y - 1, x + WIDTH + 2, y + HEIGHT + 2, BLACK);
|
||||
display.setCursor(x, y);
|
||||
display.println("Happy Birthday");
|
||||
display.setCursor(x + 30, y + 8); // 6 characters right, 1 row down
|
||||
display.println("Mom!");
|
||||
display.display();
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue