ESPr Developer 용 반사 형 컬러 액정을 MicroPython에서 사용
사용하는 모듈
직접 이용하는 라이브러리는 machine.SPI
와 machine.Pin
. 타이밍 조정을 위해 utime.sleep_us
도 가져옵니다.
from machine import SPI, Pin
from utime import sleep_us
결선
LPM013M126A에 데이터를 전송하려면 SPI를 사용합니다. 스위치 과학 사이트에 따르면 ESPr Developer의 GPIO와 LPM013M126A는 다음과 같이 연결됩니다.
GPIO
방향
커넥터 핀 번호
연결 대상
신호 설명
IO15
O
JP1 - 5
SCS(액정 커넥터)
액정 칩 선택
IO14
O
JP1-8
SCLK(액정 커넥터)
액정 시계
IO13
O
JP1 - 6
SI(액정 커넥터)
액정 데이터
IO0
O
JP1 - 3
DISP(액정 커넥터)
액정의 on/off 신호.”H”로 액정 표시
IO2
O
JP1 - 4
open
"SJ2"를 단락하면 EXTCOMIN (액정 커넥터)에 연결됩니다.
IO5
O
JP2 - 6
LED 패드(K)
조명용 LED(옵션) 출력
IO4
I
JP2 - 3
스위치(SW1)
범용 푸시 스위치
이 정보에 따르면, 다음과 같이 Pin을 사용하게 된다.
disp = Pin(0, Pin.OUT)
scs = Pin(15, Pin.OUT)
spi = SPI(-1, sck=Pin(14), mosi=Pin(13), miso=Pin(12))
SPI 의 데이터 수신은 없기 때문에 miso 는 사용하지 않지만, 지정하지 않으면 SPI
클래스의 생성자에 화가 되기 때문에 비어 있는 것을 적당하게 지정해 둔다.
(2017/01/30 추가)
그러나 분명히 하드웨어 SPI를 사용할 수 있도록 연결되어있는 것 같습니다. 그래서 다음과 같이 수정.
disp = Pin(0, Pin.OUT)
scs = Pin(15, Pin.OUT)
spi = SPI(1, baudrate=6000000)
액정의 ON/OFF
액정의 ON/OFF는 간단하다. 15핀을 H로 하면 표시, L로 하면 비표시이다.
disp.high() # 表示
disp.low() # 非表示
액정 클리어
전원을 연결한 직후에는 쓰레기가 표시되므로, 우선에는 액정의 표시를 모두 소거하는 것이 좋다. 이를 위해 ALL CLEAR MODE를 사용합니다.
scs.high()
sleep_us(6)
spi.write(b'\x20\x00') # ALL CLEAR MODE
sleep_us(6)
scs.low()
표시 데이터 전송
그런데, 본래 하고 싶은 그래픽의 표시이다. 괜찮은 커맨드는 준비되어 있지 않고, 어리석게 픽셀의 데이터를 송신한다.
기본은 UPDATE 모드에서 수평 라인 번호를 지정하여 R, G, B, dummy의 4 비트 열을 하나의 픽셀 픽셀 (176)로 전송합니다. 요약하면 라인 당 88 바이트입니다. dummy가 없는 3비트 모드나 멀티 라인 모드도 준비되어 있지만, 3피트라면 비트 연산이 번거롭고, 임베디드로 전송용으로 큰 버퍼 준비하는 것도 무엇이므로, 4비트 데이터의 싱글 라인 전송 가 자주 사용하는 것이다. (덧붙여서 흑백이면, 보다 전송량을 줄일 수 있는 모드도 있다)
4비트 데이터에서는 픽셀의 색을 R·G·B·dummy의 4비트로 나타내므로 이하와 같이 된다.
칼라
2진수치
16진수
블랙
0b0000
0x0
블루
0b0010
0x2
녹색
0b0100
0x4
시안
0b0110
0x6
레드
0b1000
0x8
마젠타
0b1010
0xa
황색
0b1100
0xc
화이트
0b1110
0xe
이하는 선두 1 라인째에 노란색의 선을 두는 코드.
cmd_buf = bytearray(92)
cmd_buf[0] = 0x90 # SINGLE LINE UPDATE MODE (4BIT-DATA MODE)
cmd_buf[1] = 1 # 水平ライン指定は1オリジン
for i in range(88): # 1ラインのピクセル数分
cmd_buf[i+2] = 0xcc # 1バイトの上位4ビットと下位4ビットで2ピクセル分
cmd_buf[90] = 0
cmd_buf[91] = 0
scs.high()
sleep_us(6)
spi.write(cmd_buf)
sleep_us(6)
scs.low()
결과는 아래 사진과 같습니다.
Reference
이 문제에 관하여(ESPr Developer 용 반사 형 컬러 액정을 MicroPython에서 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/inachi/items/79d14ef0bc5b044d5dd4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from machine import SPI, Pin
from utime import sleep_us
LPM013M126A에 데이터를 전송하려면 SPI를 사용합니다. 스위치 과학 사이트에 따르면 ESPr Developer의 GPIO와 LPM013M126A는 다음과 같이 연결됩니다.
GPIO
방향
커넥터 핀 번호
연결 대상
신호 설명
IO15
O
JP1 - 5
SCS(액정 커넥터)
액정 칩 선택
IO14
O
JP1-8
SCLK(액정 커넥터)
액정 시계
IO13
O
JP1 - 6
SI(액정 커넥터)
액정 데이터
IO0
O
JP1 - 3
DISP(액정 커넥터)
액정의 on/off 신호.”H”로 액정 표시
IO2
O
JP1 - 4
open
"SJ2"를 단락하면 EXTCOMIN (액정 커넥터)에 연결됩니다.
IO5
O
JP2 - 6
LED 패드(K)
조명용 LED(옵션) 출력
IO4
I
JP2 - 3
스위치(SW1)
범용 푸시 스위치
이 정보에 따르면, 다음과 같이 Pin을 사용하게 된다.
disp = Pin(0, Pin.OUT)
scs = Pin(15, Pin.OUT)
spi = SPI(-1, sck=Pin(14), mosi=Pin(13), miso=Pin(12))
SPI 의 데이터 수신은 없기 때문에 miso 는 사용하지 않지만, 지정하지 않으면
SPI
클래스의 생성자에 화가 되기 때문에 비어 있는 것을 적당하게 지정해 둔다.(2017/01/30 추가)
그러나 분명히 하드웨어 SPI를 사용할 수 있도록 연결되어있는 것 같습니다. 그래서 다음과 같이 수정.
disp = Pin(0, Pin.OUT)
scs = Pin(15, Pin.OUT)
spi = SPI(1, baudrate=6000000)
액정의 ON/OFF
액정의 ON/OFF는 간단하다. 15핀을 H로 하면 표시, L로 하면 비표시이다.
disp.high() # 表示
disp.low() # 非表示
액정 클리어
전원을 연결한 직후에는 쓰레기가 표시되므로, 우선에는 액정의 표시를 모두 소거하는 것이 좋다. 이를 위해 ALL CLEAR MODE를 사용합니다.
scs.high()
sleep_us(6)
spi.write(b'\x20\x00') # ALL CLEAR MODE
sleep_us(6)
scs.low()
표시 데이터 전송
그런데, 본래 하고 싶은 그래픽의 표시이다. 괜찮은 커맨드는 준비되어 있지 않고, 어리석게 픽셀의 데이터를 송신한다.
기본은 UPDATE 모드에서 수평 라인 번호를 지정하여 R, G, B, dummy의 4 비트 열을 하나의 픽셀 픽셀 (176)로 전송합니다. 요약하면 라인 당 88 바이트입니다. dummy가 없는 3비트 모드나 멀티 라인 모드도 준비되어 있지만, 3피트라면 비트 연산이 번거롭고, 임베디드로 전송용으로 큰 버퍼 준비하는 것도 무엇이므로, 4비트 데이터의 싱글 라인 전송 가 자주 사용하는 것이다. (덧붙여서 흑백이면, 보다 전송량을 줄일 수 있는 모드도 있다)
4비트 데이터에서는 픽셀의 색을 R·G·B·dummy의 4비트로 나타내므로 이하와 같이 된다.
칼라
2진수치
16진수
블랙
0b0000
0x0
블루
0b0010
0x2
녹색
0b0100
0x4
시안
0b0110
0x6
레드
0b1000
0x8
마젠타
0b1010
0xa
황색
0b1100
0xc
화이트
0b1110
0xe
이하는 선두 1 라인째에 노란색의 선을 두는 코드.
cmd_buf = bytearray(92)
cmd_buf[0] = 0x90 # SINGLE LINE UPDATE MODE (4BIT-DATA MODE)
cmd_buf[1] = 1 # 水平ライン指定は1オリジン
for i in range(88): # 1ラインのピクセル数分
cmd_buf[i+2] = 0xcc # 1バイトの上位4ビットと下位4ビットで2ピクセル分
cmd_buf[90] = 0
cmd_buf[91] = 0
scs.high()
sleep_us(6)
spi.write(cmd_buf)
sleep_us(6)
scs.low()
결과는 아래 사진과 같습니다.
Reference
이 문제에 관하여(ESPr Developer 용 반사 형 컬러 액정을 MicroPython에서 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/inachi/items/79d14ef0bc5b044d5dd4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
disp.high() # 表示
disp.low() # 非表示
전원을 연결한 직후에는 쓰레기가 표시되므로, 우선에는 액정의 표시를 모두 소거하는 것이 좋다. 이를 위해 ALL CLEAR MODE를 사용합니다.
scs.high()
sleep_us(6)
spi.write(b'\x20\x00') # ALL CLEAR MODE
sleep_us(6)
scs.low()
표시 데이터 전송
그런데, 본래 하고 싶은 그래픽의 표시이다. 괜찮은 커맨드는 준비되어 있지 않고, 어리석게 픽셀의 데이터를 송신한다.
기본은 UPDATE 모드에서 수평 라인 번호를 지정하여 R, G, B, dummy의 4 비트 열을 하나의 픽셀 픽셀 (176)로 전송합니다. 요약하면 라인 당 88 바이트입니다. dummy가 없는 3비트 모드나 멀티 라인 모드도 준비되어 있지만, 3피트라면 비트 연산이 번거롭고, 임베디드로 전송용으로 큰 버퍼 준비하는 것도 무엇이므로, 4비트 데이터의 싱글 라인 전송 가 자주 사용하는 것이다. (덧붙여서 흑백이면, 보다 전송량을 줄일 수 있는 모드도 있다)
4비트 데이터에서는 픽셀의 색을 R·G·B·dummy의 4비트로 나타내므로 이하와 같이 된다.
칼라
2진수치
16진수
블랙
0b0000
0x0
블루
0b0010
0x2
녹색
0b0100
0x4
시안
0b0110
0x6
레드
0b1000
0x8
마젠타
0b1010
0xa
황색
0b1100
0xc
화이트
0b1110
0xe
이하는 선두 1 라인째에 노란색의 선을 두는 코드.
cmd_buf = bytearray(92)
cmd_buf[0] = 0x90 # SINGLE LINE UPDATE MODE (4BIT-DATA MODE)
cmd_buf[1] = 1 # 水平ライン指定は1オリジン
for i in range(88): # 1ラインのピクセル数分
cmd_buf[i+2] = 0xcc # 1バイトの上位4ビットと下位4ビットで2ピクセル分
cmd_buf[90] = 0
cmd_buf[91] = 0
scs.high()
sleep_us(6)
spi.write(cmd_buf)
sleep_us(6)
scs.low()
결과는 아래 사진과 같습니다.
Reference
이 문제에 관하여(ESPr Developer 용 반사 형 컬러 액정을 MicroPython에서 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/inachi/items/79d14ef0bc5b044d5dd4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
cmd_buf = bytearray(92)
cmd_buf[0] = 0x90 # SINGLE LINE UPDATE MODE (4BIT-DATA MODE)
cmd_buf[1] = 1 # 水平ライン指定は1オリジン
for i in range(88): # 1ラインのピクセル数分
cmd_buf[i+2] = 0xcc # 1バイトの上位4ビットと下位4ビットで2ピクセル分
cmd_buf[90] = 0
cmd_buf[91] = 0
scs.high()
sleep_us(6)
spi.write(cmd_buf)
sleep_us(6)
scs.low()
Reference
이 문제에 관하여(ESPr Developer 용 반사 형 컬러 액정을 MicroPython에서 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/inachi/items/79d14ef0bc5b044d5dd4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)