はじめに
Moddable SDK 5.2.0でカメラ機能が追加され、AtomS3R Camで動作させる方法を探っている時に、ディスプレイのないデバイスにディスプレイを追加する方法を試した結果を備忘録を兼ねてメモに残しておきます。
ディスプレイを追加する
ディスプレイを追加するためには、manifest.jsonにscreen定義を追加します。
SSD1306
AtomS3R Cam の Grove ポートにI2C接続のOLEDディスプレイ(SSD1306)を接続する場合のscreen定義です。
- include
- SSD1306ドライバー
- config
- screen定義、format定義 (SSD1306の場合、単色表示のためGray256を指定する必要があります)
- defines
- ssd1306
manifest.json
{
"include": [
"$(MODDABLE)/examples/manifest_base.json",
"$(MODDABLE)/examples/manifest_piu.json",
"$(MODDABLE)/modules/drivers/ssd1306/manifest_i2c.json"
],
"modules": {
"*": "./main"
},
"config": {
"touchCount": 0,
"screen": "ssd1306",
"touch": "",
"format": "Gray256"
},
"resources":{
"*": [
"./main",
"./balls"
]
},
"defines": {
"ls013b4dn04": {
"dither": 1,
"updateAll": 1
},
"ssd1306": {
"hz": 400000,
"width": 128,
"height": 64,
"sda_pin": 2,
"scl_pin": 1
}
}
}
サンプルプログラムのpiu/ballsを動かします。
cd $MODDABLE/examples/piu/balls
UPLOAD_PORT=/dev/cu.usbmodem11101 mcconfig -d -m -p esp32/m5atom_s3r
ST7789
AtomS3R Cam の 背面にSPI接続のIPSディスプレイ(ST7789)を接続する場合の接続配線です。
screen定義です。
- include
- ST7789ドライバー
- config
- screen定義
- defines
- spi
- ili9341 (ST7789ドライバーはili9341ドライバーを使用しています)
manifest.json
{
"include": [
"$(MODDABLE)/examples/manifest_base.json",
"$(MODDABLE)/examples/manifest_piu.json",
"$(MODULES)/drivers/st7789/manifest.json"
],
"modules": {
"*": "./main"
},
"config": {
"screen": "st7789",
"touchCount": 0
},
"resources":{
"*": [
"./main",
"./balls"
]
},
"defines": {
"ls013b4dn04": {
"dither": 1,
"updateAll": 1
},
"spi": {
"mosi_pin": 6,
"miso_pin": -1,
"sck_pin": 7
},
"ili9341": {
"cs_pin": -1,
"dc_pin": 5,
"rst_pin": 8,
"spi_port": "SPI3_HOST",
"hz": 20000000,
"width": 240,
"height": 240
}
}
}
サンプルプログラムのpiu/ballsを動かします。
cd $MODDABLE/examples/piu/balls
UPLOAD_PORT=/dev/cu.usbmodem11101 mcconfig -d -m -p esp32/m5atom_s3r