#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Adafruit_NeoPixel.h>
Adafruit_SSD1306 display( 128, 64); // 128 pixels width, 64 pixels height
#define LED_PIN 6
#define LED_COUNT 1
Adafruit_NeoPixel neoPixel( LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
const int mpuAddress = 0x68; // I2C address of the MPU-6050
float xByGyro, yByGyro, zByGyro; // Global variables for the rotation by gyro
// Set the origin in the middle of the display
const int xOrigin = 64;
const int yOrigin = 32;
const float viewDistance = 150.0; // higher for less perspective, lower for more.
// Vertices for a cube
// A cube has 8 corners and each coordinate has x,y,z values.
#define NUM_VERTICES 8
const int cube_vertex[NUM_VERTICES][3] =
{
{ -20, -20, 20 }, // x, y, z
{ 20, -20, 20 },
{ 20, 20, 20 },
{ -20, 20, 20 },
{ -20, -20, -20 },
{ 20, -20, -20 },
{ 20, 20, -20 },
{ -20, 20, -20 }
};
// The wirefram is to display the lines on the OLED display
// It contains the corners of the shape in 2D coordinates
int wireframe[NUM_VERTICES][2];
// 'Logo-Brand-Indobot-Putih', 128x64px
const unsigned char bitmap_YT [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x01, 0xc0,
0x3e, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0,
0x70, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0,
0xe0, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0,
0xc0, 0x0e, 0xc0, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xe0,
0x40, 0x0f, 0xc7, 0xcf, 0x80, 0x0f, 0x9f, 0x01, 0xfe, 0x03, 0xf7, 0xc0, 0x07, 0xf8, 0x1f, 0xfe,
0x00, 0x0f, 0xc7, 0xff, 0xc0, 0x1f, 0xff, 0x03, 0xff, 0x83, 0xff, 0xe0, 0x0f, 0xfe, 0x1f, 0xff,
0x00, 0x0f, 0xc7, 0xff, 0xe0, 0x3f, 0xff, 0x07, 0xff, 0xc3, 0xff, 0xf0, 0x1f, 0xff, 0x1f, 0xff,
0x00, 0x0f, 0xc7, 0xff, 0xf0, 0x7f, 0xff, 0x0f, 0xff, 0xe3, 0xff, 0xf8, 0x3f, 0xff, 0x9f, 0xff,
0x00, 0x0f, 0xc7, 0xff, 0xf0, 0xff, 0xff, 0x1f, 0xff, 0xe3, 0xff, 0xfc, 0x7f, 0xff, 0x9f, 0xff,
0x00, 0x0f, 0xc7, 0xf7, 0xf8, 0xff, 0xff, 0x1f, 0xc7, 0xf3, 0xff, 0xfc, 0x7f, 0x1f, 0xc3, 0xf4,
0x00, 0x0f, 0xc7, 0xe1, 0xf8, 0xfc, 0x3f, 0x1f, 0x83, 0xf3, 0xf0, 0x7e, 0x7c, 0x0f, 0xc3, 0xe0,
0x00, 0x0f, 0xc7, 0xc1, 0xf8, 0xf8, 0x3f, 0x3f, 0x03, 0xf3, 0xf0, 0x7e, 0x7c, 0x0f, 0xc3, 0xe0,
0x00, 0x0f, 0xc7, 0xc0, 0xf8, 0xf8, 0x1f, 0x3f, 0x03, 0xf3, 0xf0, 0x7e, 0xfc, 0x0f, 0xc3, 0xe0,
0x00, 0x0f, 0xc7, 0xc0, 0xf8, 0xf8, 0x3f, 0x1f, 0x03, 0xf3, 0xf0, 0x7e, 0x7c, 0x0f, 0xc3, 0xe0,
0x00, 0x0f, 0xc7, 0xc0, 0xf8, 0xfc, 0x3f, 0x1f, 0x87, 0xf3, 0xf8, 0xfe, 0x7e, 0x1f, 0xc3, 0xe0,
0x00, 0x0f, 0xc7, 0xc0, 0xf8, 0xff, 0xff, 0x1f, 0xff, 0xe3, 0xff, 0xfc, 0x7f, 0xff, 0x83, 0xfc,
0x00, 0x0f, 0xc7, 0xc0, 0xf8, 0x7f, 0xff, 0x0f, 0xff, 0xe3, 0xff, 0xfc, 0x3f, 0xff, 0x83, 0xfe,
0x00, 0x0f, 0xc7, 0xc0, 0xf8, 0x7f, 0xff, 0x0f, 0xff, 0xc3, 0xff, 0xf8, 0x3f, 0xff, 0x03, 0xfe,
0x00, 0x07, 0xc7, 0xc0, 0xf8, 0x3f, 0xff, 0x07, 0xff, 0x83, 0xff, 0xf0, 0x1f, 0xfe, 0x01, 0xfe,
0x00, 0x07, 0xc7, 0xc0, 0xf8, 0x1f, 0xdf, 0x03, 0xff, 0x03, 0xef, 0xe0, 0x0f, 0xfc, 0x00, 0xfe,
0x00, 0x03, 0x83, 0x80, 0x70, 0x07, 0x8e, 0x00, 0xfc, 0x01, 0xc7, 0x80, 0x03, 0xf0, 0x00, 0x3c,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x00, 0x03, 0x82, 0x00, 0x01, 0x80, 0x41, 0x91, 0x07, 0x41, 0x10, 0x00, 0x20, 0x09, 0x04, 0x06,
0x00, 0x07, 0xaa, 0xaa, 0xb0, 0xab, 0xc1, 0x9d, 0x46, 0x5d, 0xb6, 0xee, 0xab, 0x8f, 0x55, 0x76,
0x00, 0x04, 0xbb, 0x28, 0xa0, 0xaa, 0xa3, 0xd5, 0x48, 0x7f, 0xa5, 0x2a, 0xb4, 0x89, 0xf1, 0x94,
0x00, 0x07, 0xba, 0xeb, 0xa3, 0xbb, 0xa4, 0x45, 0x4e, 0x9a, 0xb4, 0xc2, 0xab, 0x80, 0x6f, 0x76,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 1040)
const int epd_bitmap_allArray_LEN = 1;
const unsigned char* epd_bitmap_allArray[1] = {
bitmap_YT
};
// salin sampai disini
void setup()
{
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize I2C addr to 0x3C ( for 128x64 Display )
display.clearDisplay(); // clear the display before starting the program to avoid adafruit splashscreen ( *we can also skip it by modifing header file )
// drawBitmap(x-axis position, y-axis position, bitmap data, bitmap width, bitmap height, color)
}
void loop()
{
display.clearDisplay();
display.drawBitmap(0, 0, bitmap_YT, 128, 64, WHITE);
display.display();
delay(1000);
}