유기 EL 디스플레이 (아사히 과과 기술 유한 공사 제조)를 사용해 보았다
9028 단어 Raspberrypi3
사용하는 디스플레이는 aitendo에서 판매되고 있는 晶门科技有限公司製(제품번호 M096P4W)를 사용
디스플레이를 다음과 같이 연결
raspberrypi 디스플레이
단자번호 1---------VCC
3---------SDA
5---------SCK
6---------GND
I2C 디바이스 드라이버 설정하기
기본적으로 I2C가 비활성화되어 있습니다. 따라서 I2C를 활성화로 설정
방법은 raspberrypi의 boot 폴더 바로 아래에있는 config.txt의 내용을 변경하여 설정할 수 있습니다.
config.txt를 편집하려면 관리자 권한이 필요합니다.
기기에서 관리자 권한으로 파일을 열어 편집 가능
$sudo leafpad /boot/config.txt
파일이 열리면 "dtparam=i2c_arm=off"로 되어 있는 곳을 찾아 "dtparam=i2c_arm=on"으로 변경한다. 그리고 덮어쓰기 저장하기
이것으로 I2C의 기능이 유효하게 되었다. i2c가 활성화되어 있는지 확인
i2c가 활성화되면 dev 폴더에 "i2c-1"이라는 파일이 자동으로 추가됩니다. 단말기에서 dev 폴더 안에 i2c-1이 있는지 표시해 봅니다.
$ls -l /dev/i2c-1 (末尾は数字のいちである)
를 입력
그러면
crw-rw---- 1 root i2c 89, 1 2月 4 15:12 /dev/i2c-1
라고 표시되면 파일이 자동으로 추가되고 있는 것을 알 수 있다
이 의미는 dev라는 폴더 안에 i2c-1이라는 파일이 있는지 여부를 표시시킨 내용이다.
다음은 디스플레이와 통신이 되어 있는지 확인해 본다
터미널에서
$ i2cdetect -y 1 (末尾は数字のいちである)
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
디스플레이의 주소가 '3c'이기 때문에 위와 같이 3c가 표시되어 통신이 성공한 것으로 나타났습니다.
디스플레이에 내장된 마이크로 컴퓨터를 제어하기 위한 라이브러리를 다운로드합니다. 마이크로컴퓨터는 晶门科技有限公司의 SSD1306을 사용하고 있다. 이 마이크로컴퓨터를 제어하는 라이브러리를 Adafruit사(미국)가 만들어 무상 공개하고 있다. 그럼 무료로 공개하고 있는 라이브러리를 다운로드해 본다
$git clone https://github.com/adafruit/Adafruit_Python_SSD1306
Cloning into 'Adafruit_Python_SSD1306'...
remote: Counting objects: 112, done.
remote: Total 112 (delta 0), reused 0 (delta 0), pack-reused 112
Receiving objects: 100% (112/112), 34.60 KiB | 0 bytes/s, done.
Resolving deltas: 100% (57/57), done.
Checking connectivity... done.
다음은 라이브러리 빌드
$cd Adafruit_Python_SSD1306
$python setup.py build
running build
running build_py
creating build
creating build/lib.linux-armv7l-2.7
creating build/lib.linux-armv7l-2.7/Adafruit_SSD1306
copying Adafruit_SSD1306/SSD1306.py -> build/lib.linux-armv7l-2.7/Adafruit_SSD1306
copying Adafruit_SSD1306/__init__.py -> build/lib.linux-armv7l-2.7/Adafruit_SSD1306
라이브러리 설치
$sudo python setup.py install
running install
running bdist_egg
running egg_info
creating Adafruit_SSD1306.egg-info
writing requirements to Adafruit_SSD1306.egg-info/requires.txt
writing Adafruit_SSD1306.egg-info/PKG-INFO
writing top-level names to Adafruit_SSD1306.egg-info/top_level.txt
writing dependency_links to Adafruit_SSD1306.egg-info/dependency_links.txt
writing manifest file 'Adafruit_SSD1306.egg-info/SOURCES.txt'
reading manifest file 'Adafruit_SSD1306.egg-info/SOURCES.txt'
writing manifest file 'Adafruit_SSD1306.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-armv7l/egg
running install_lib
running build_py
creating build/bdist.linux-armv7l
creating build/bdist.linux-armv7l/egg
creating build/bdist.linux-armv7l/egg/Adafruit_SSD1306
copying build/lib.linux-armv7l-2.7/Adafruit_SSD1306/SSD1306.py -> build/bdist.linux-armv7l/egg/Adafruit_SSD1306
copying build/lib.linux-armv7l-2.7/Adafruit_SSD1306/__init__.py -> build/bdist.linux-armv7l/egg/Adafruit_SSD1306
byte-compiling build/bdist.linux-armv7l/egg/Adafruit_SSD1306/SSD1306.py to SSD1306.pyc
byte-compiling build/bdist.linux-armv7l/egg/Adafruit_SSD1306/__init__.py to __init__.pyc
creating build/bdist.linux-armv7l/egg/EGG-INFO
copying Adafruit_SSD1306.egg-info/PKG-INFO -> build/bdist.linux-armv7l/egg/EGG-INFO
copying Adafruit_SSD1306.egg-info/SOURCES.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
copying Adafruit_SSD1306.egg-info/dependency_links.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
copying Adafruit_SSD1306.egg-info/requires.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
copying Adafruit_SSD1306.egg-info/top_level.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist/Adafruit_SSD1306-1.6.1-py2.7.egg' and adding 'build/bdist.linux-armv7l/egg' to it
removing 'build/bdist.linux-armv7l/egg' (and everything under it)
Processing Adafruit_SSD1306-1.6.1-py2.7.egg
Copying Adafruit_SSD1306-1.6.1-py2.7.egg to /usr/local/lib/python2.7/dist-packages
Adding Adafruit-SSD1306 1.6.1 to easy-install.pth file
Installed /usr/local/lib/python2.7/dist-packages/Adafruit_SSD1306-1.6.1-py2.7.egg
Processing dependencies for Adafruit-SSD1306==1.6.1
Searching for Adafruit-GPIO==1.0.3
Best match: Adafruit-GPIO 1.0.3
Processing Adafruit_GPIO-1.0.3-py2.7.egg
Adafruit-GPIO 1.0.3 is already the active version in easy-install.pth
Using /usr/local/lib/python2.7/dist-packages/Adafruit_GPIO-1.0.3-py2.7.egg
Searching for spidev==3.3
Best match: spidev 3.3
Adding spidev 3.3 to easy-install.pth file
Using /usr/local/lib/python2.7/dist-packages
Searching for Adafruit-PureIO==0.2.1
Best match: Adafruit-PureIO 0.2.1
Processing Adafruit_PureIO-0.2.1-py2.7.egg
Adafruit-PureIO 0.2.1 is already the active version in easy-install.pth
Using /usr/local/lib/python2.7/dist-packages/Adafruit_PureIO-0.2.1-py2.7.egg
Finished processing dependencies for Adafruit-SSD1306==1.6.1
샘플 이미지를 표시해 봅니다.
$cd examples
$python image.py
이미지가 표시되었다고 생각하지만 늘어나게 되었기 때문에 image.py 소스를 편집하고 32를 주석 처리하고 64를 활성화합니다.
일본어 샘플 보기
소스 코드는 어느 잡지의 소스를 참고로 했다
소스를 실행하면 내 환경에서 오류가 다음과 같이 나왔습니다.
pi@raspberrypi:~/Downloads $ python oled_japanese.py
Traceback (most recent call last):
File "oled_japanese.py", line 85, in <module>
main()
File "oled_japanese.py", line 82, in main
do_disp(disp)
File "oled_japanese.py", line 41, in do_disp
encoding = 'unic')
File "/usr/lib/python2.7/dist-packages/PIL/ImageFont.py", line 240, in truetype
return FreeTypeFont(font, size, index, encoding)
File "/usr/lib/python2.7/dist-packages/PIL/ImageFont.py", line 137, in __init__
self.font = core.getfont(font, size, index, encoding)
IOError: cannot open resource
오류의 원인을 조사한 결과 글꼴 데이터가 raspbian에 설치되어 있지 않은 것으로 나타났습니다. 데이터라는 것은 NotoSansCJK-Thin.ttc이다. 이것을 다음 사이트에서 다운로드하면 오류가 사라졌습니다.
사이트는 htps //w w. 오, ぇ. 코 m / 게 t / 및 / / lp / cjk
이다
이것을 임의의 폴더내에 해동하고 oled_japanese.py의 소스를 이하와 같이 재기록한다. 우리는 다운로드 바로 아래에 압축을 풀었다.
NG:
# 일본어 글꼴 준비
font = ImageFont.truetype(
font = 'NotoSansCJK-Thin.ttc',
size = fontsize,
encoding = 'unic')
OK:
font = ImageFont.truetype('/home/pi/Downloads/NotoSansCJK-Thin.ttc', 12, encoding = 'unic')
우리는 NotoSansCJK-Thin.ttc를 Downloads 바로 아래에 압축을 풀었으므로 폴더의 절대 경로를 위와 같이 다시 작성했습니다. 그러면 아래 그림과 같이 표시되었습니다.
죄송합니다.
Reference
이 문제에 관하여(유기 EL 디스플레이 (아사히 과과 기술 유한 공사 제조)를 사용해 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/cello_piano_violin/items/33c0a76a06353f9be60a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)