행복한 하루
라즈베리 파이 4(Raspberry Pi 4) 2.9" TOUCH E-PAPER HAT 테스트 본문
안녕하세요.
전자책(ebook)을 가지고 있어서 e-paper 대해서는 알고 있지만, 라즈베리 파이에 연동해서 제어해본 적은 없고, 전원을 끄고도 텍스트를 입력한 글자가 남아 있을까 그리고 터치까지 된다고 하니 궁금해서 테스트해보았습니다.
1. 테스트 환경
- 이번에는 32bit 라즈베리 파이 OS 말고 64bit로 테스트해보았습니다. 앞으로 64bit 운영체제로 바꿔야 할 것 같아서 미리 테스트 삼아해 보았습니다.
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
- 외국 기사(하단 참조 사이트 링크)를 보면 64bit OS로 사용할 경우 성능 향상이 되었다고 나와있어서 한번 경험해보고 싶었습니다. 그리고 기존의 32bit에서 사용했던 라이브러리도 사용해도 되는 것인가 궁금하기도 해서 설치해보았습니다.
2. e-paper HAT 제품 구성
- 제품 구성은 음... ePaper LCD 모듈 하나 포장되어 있습니다.
3. e-paper HAT 스펙
- Size: 2.9inch
- Outline dimensions(Module): 89.1mm × 42.7mm
- Outline dimensions(Driver Board): 79.50mm × 37.50mm
- Display area: 66.89mm × 29.05mm
- Operating Voltage: 3.3V/5V
- Communication interface: SPI
- Dot pitch: 0.227 * 0.226
- Resolution: 296×128 pixels
- Display color: black, white
- Grey scale: 2
- Partial refresh time: 0.3s
- Full refresh time: 2s
- Refresh power: 26.4mW(typ.)
- Touchpoints: 5 (MAX)
- Touch type: Capacitive touch
- Touch interfaced: I2C
- Touch panel: Toughened Glass
4. 라즈베리 파이 설정하기
1) SPI, I2C 통신 설정 활성화
- SPI, I2C를 Enable로 만듭니다.
pi@raspberrypi:~ $ sudo raspi-config
< 3. Interface Options -> I4 SPI, I5 I2C를 Enable로 변경>
- 재부팅을 합니다.
pi@raspberrypi:~ $ sudo reboot
2) 필요한 라이브러리 설치
- 필요한 라이브러리 소스를 다운로드하여서 컴파일과 설치를 진행합니다.
2-1) Install BCM2835 libraries
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.68.tar.gz
tar zxvf bcm2835-1.68.tar.gz
cd bcm2835-1.68/
sudo ./configure && sudo make && sudo make check && sudo make install
2-2) Install wiringPi libraries
sudo apt-get install wiringpi
#For Pi 4, you need to update it:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
#You will get 2.52 information if you install it correctly
2-3) install python libraries
- 최신 64bit OS를 설치했다면 이미 설치되었다고 나옵니다.
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo pip3 install RPi.GPIO
sudo pip3 install spidev
3) 데모 소스 다운로드
- waveshare에서 제공해주는 소스를 가지고 테스트합니다.
pi@raspberrypi:~ $ cd ~
pi@raspberrypi:~ $ git clone https://github.com/waveshare/Touch_e-Paper_HAT
3-1) 파이썬(python3) 소스 샘플 데모 확인
- 우선 waveshare wiki에 나와 있는 내용과 소스 경로가 차이가 있는 듯합니다.
- cd ~/Touch_e-Paper_Code/ 가 아니라 cd ~/Touch_e-Paper_HAT/ 해야 합니다.
pi@raspberrypi:~ $ cd ~/Touch_e-Paper_HAT/python/examples
pi@raspberrypi:~/Touch_e-Paper_HAT/python/examples $ sudo python3 TP2in9_test.py
- 몇 번 깜박이다가 날씨와 사진을 볼 수 있는 화면이 나타납니다.
- 날씨는 APIKEY 값을 넣어 주어야 하기 때문에 나타나지 않고 사진으로 데모 확인을 할 수 있습니다.
- c 소스 데모 실행시키고 다시 실행하면 아래와 같이 에러가 발생했습니다.
3-2) c 소스 샘플 데모 확인
- python과 c 소스코드로 나누어 놓았는데 소스코드를 몇 곳을 수정해주어야 합니다. 그리고 현재 버전에서 컴파일 안 되는 부분도 있어서 추가해주어야 합니다.
pi@raspberrypi:~ $ cd ~/Touch_e-Paper_Code/c
- vim Makefile로 보면, 어떤 라이브러리를 사용할지 선택해야 합니다. 여기서는 디폴트인 BCM2835 라이브러리를 사용합니다. (수정 불필요)
- main.c 에서 화면 인치에 맞는 함수의 주석을 풀어줍니다. 현재 제품은 2.9인치이기 때문에 해제해주었습니다.
pi@raspberrypi:~/Touch_e-Paper_HAT/c $ vim examples/main.c
- 현재 소스를 컴파일(make)하면 에러가 발생합니다.
- 2022년 1월 7일 버전이라면 ~/Touch_e-Paper_HAT/c 경로에 bin 디렉터리(mkdir bin)를 만들어 주어야 컴파일과 함께 main 실행파일이 생성됩니다. 그래서 github에 내용을 남겨주었습니다. 향후 수정된 소스 버전이라면 위의 내용이 필요 없습니다.
- 컴파일하면 main 실행파일이 생성됩니다.
pi@raspberrypi:~/Touch_e-Paper_Code/c $ make -j4
- 프로그램 실행시키기
pi@raspberrypi:~/Touch_e-Paper_HAT/c $ sudo ./main
- python 실행파일과 다르게 그리는 메뉴(Paint)가 있습니다. 실행시키면 느리지만 그리기도 할 수 있습니다.
5. 2.9" TOUCH E-PAPER HAT 테스트 후기
- 우선 Raspberry Pi 64bit OS에서도 잘 작동하고, vim, xrdp 등 설치 등도 문제없이 되었습니다.
- waveshare 소스와 waveshare wiki 내용도 확인하면서 테스트해야 했습니다.
- e-Paper HAT 제품은 e-paper 장점과 단점을 그대로 가지고 있었습니다. 단점이라고 한다면 느린 반응속도와 잔상이 남는 것 때문에 리플래쉬가 필요한 것입니다. 반대로 장점은 작은 화면이지만 터치가 되는 것과 전원이 꺼져도 마지막 화면이 남아 있다는 것입니다. 그래서 글자나 사진을 계속 볼 수 있습니다.
- 기구홀이 없고 테두리 쪽에 양면테이프가 붙어 있어서 기구 설계할 때 고려해서 제작해야 합니다.
- 2.13인치와 2.9인치 소스로 되어 있고 먼저 파이썬 소스를 보고, 소스 구조를 먼저 파악 후 C소를 보는 것은 좋을 것으로 보입니다. 그리고 터치를 하면 X, Y, Pressure 값이 콘솔에 나타납니다.
감사합니다.
<참고 사이트>
1. 2.9inch Touch e-Paper HAT 실행방법
https://www.waveshare.com/wiki/2.9inch_Touch_e-Paper_HAT
2. 2.9inch Touch e-Paper HAT 스펙
https://www.waveshare.com/2.9inch-touch-e-paper-hat.htm
3. Raspberry Pi OS: 32-bit vs 64-bit Benchmarking
https://www.sevarg.net/2021/12/18/raspberry-pi-32-bit-vs-64-bit/
'RaspberryPi' 카테고리의 다른 글
Raspberry Pi에서 쓰레드(Thread)와 메시지 큐(Message Queue) 통신 이용해 보기(Python) (0) | 2022.05.22 |
---|---|
Raspberry Pi Zero 2 W 외부 안테나(External Antenna) 장착하기 (0) | 2022.03.21 |
라즈베리파이(Raspberry Pi 4)에 RTSP 서버 설치하기 (에러 발생 부분들 확인) (0) | 2022.01.28 |
라즈베리 파이(Raspberry Pi) 4 Model B에 AnyDesk 설치 (0) | 2021.12.06 |
라즈베리 파이(Raspberry Pi) 4 모델 B - Qt5 설치 및 Qt Creator 컴파일 환경 설정하기 (2) | 2021.12.04 |