wemos d1でoled その2

#概要
wemos d1でoledやってみた。
drawBitmapやってみた。

#写真

![MVC-008F.JPG](https://qiita-image-store.s3.amazonaws.com/0/18104/e6b4aa0f-32b6-7c34-2159-cbc9be05d879.jpeg)


#サンプルコード

```
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>


Adafruit_SSD1306 oled(16);
int x = 0;

static const unsigned char PROGMEM bmp[] = {


0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 3, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 3, 128, 0, 0, 112, 0, 0, 3, 128, 0, 0, 0, 0, 0, 0, 112, 3, 128, 0, 0, 240, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 112, 3, 128, 0, 0, 224, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 112, 255, 254, 15, 248, 224, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 112, 255, 254, 15, 248, 224, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 254, 255, 254, 15, 249, 255, 252, 15, 255, 255, 224, 0, 0, 0, 0, 3, 254, 56, 112, 14, 57, 255, 252, 15, 255, 255, 224, 0, 0, 0, 0, 0, 112, 60, 112, 14, 59, 221, 220, 15, 255, 255, 224, 0, 0, 0, 0, 0, 112, 28, 112, 14, 59, 157, 220, 12, 3, 0, 224, 0, 0, 0, 0, 0, 115, 255, 255, 142, 63, 189, 220, 12, 3, 0, 224, 0, 0, 0, 0, 0, 115, 255, 255, 142, 63, 59, 220, 12, 3, 0, 224, 0, 0, 0, 0, 0, 115, 255, 255, 142, 62, 59, 156, 12, 3, 0, 224, 0, 0, 0, 0, 0, 116, 7, 0, 14, 60, 123, 156, 12, 3, 0, 224, 0, 0, 0, 0, 0, 126, 15, 0, 14, 56, 115, 156, 12, 3, 0, 224, 0, 0, 0, 0, 3, 255, 255, 255, 14, 56, 247, 156, 12, 3, 0, 224, 0, 0, 0, 0, 7, 253, 255, 255, 14, 57, 231, 28, 15, 255, 255, 224, 0, 0, 0, 0, 3, 241, 255, 255, 15, 251, 207, 28, 15, 255, 255, 224, 0, 0, 0, 0, 3, 112, 60, 120, 15, 255, 207, 28, 15, 255, 255, 224, 0, 0, 0, 0, 0, 112, 56, 112, 15, 255, 158, 28, 12, 3, 0, 224, 0, 0, 0, 0, 0, 112, 124, 112, 14, 7, 60, 28, 12, 3, 0, 0, 0, 0, 0, 0, 0, 112, 127, 224, 14, 4, 124, 28, 0, 3, 0, 0, 0, 0, 0, 0, 0, 112, 127, 224, 6, 0, 248, 24, 0, 3, 0, 0, 0, 0, 0, 0, 0, 112, 7, 248, 0, 1, 240, 56, 0, 3, 0, 0, 0, 0, 0, 0, 0, 112, 31, 254, 0, 7, 224, 120, 0, 3, 0, 0, 0, 0, 0, 0, 1, 241, 255, 63, 0, 15, 195, 248, 0, 3, 0, 0, 0, 0, 0, 0, 1, 241, 252, 14, 0, 7, 3, 240, 0, 3, 0, 0, 0, 0, 0, 0, 1, 225, 224, 2, 0, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 

};

void setup()
{
	Serial.begin(115200);
	while (!Serial) delay(250);
	Serial.println("\nok");
	oled.begin(SSD1306_SWITCHCAPVCC, 0x3c);
	oled.clearDisplay();
	oled.setTextColor(WHITE);
	oled.setTextSize(2);
	oled.setCursor(0, 0);
	oled.print("oled 1");
	oled.display();
}
void loop() 
{
	oled.clearDisplay();
	if (x < -128)
	{
		x = 128;
	}
	oled.drawBitmap(x, 0, bmp, 128, 64, WHITE);
	oled.display();
	x = x - 2;
	delay(100);
}


```

#ビットマップのソースを作るツール作った。
ビットマップデータは、static const unsigned char PROGMEMの配列で、ソースに書かなくてはいけない。
128*64で、8192bit。1024byte。大変です。そこで

ビットマップを生成して、ソースに変換するツールを作った。

![](http://jsdo-static-contents.s3.amazonaws.com/images/capture/U/d/i/UdiN.jpg?t=1525676750)


#成果物

http://jsdo.it/ohisama1/UdiN

以上。