- 필요한 구성 요소
- 회로도
- EasyEDA를 사용하여 Raspberry Pi RGB LCD HAT 용 PCB 제작
- EasyEDA를 사용하여 온라인으로 PCB 샘플 계산 및 주문
- LCD Hat 용 Raspberry Pi 설정
- Raspberry Pi LCD HAT 용 Python 코드
- Raspberry Pi RGB LCD HAT 테스트
Raspberry Pi Hat은 Arduino 용 실드와 동일하며 Raspberry Pi 상단에 직접 장착 할 수 있으며 추가 연결이 필요하지 않습니다. 여기 에서는 PCB 에 Raspberry Pi 용 RGB LCD 햇 을 만들 것 입니다. 이 LCD Hat은 16x2 LCD 모듈, 5 개의 스위치 및 3 개의 NeoPixel LED로 구성됩니다. 여기에서 스위치는 디스플레이의 텍스트를 변경하는 데 사용되며 NeoPixel LED는 표시기로 사용됩니다. 이러한 스위치와 네오 픽셀은 온도, 습도 등과 같은 센서 값을 표시하는 데 사용할 수있는 스위치와 같은 요구 사항에 따라 프로그래밍 할 수 있으며, 일부 데이터를 수신하는 동안 일부 오류를 나타내는 빨간색과 녹색과 같은 상태를 표시하는 데 네오 픽셀을 사용할 수 있습니다.
여기서는 EasyEDA 온라인 소프트웨어를 사용 하여이 Pi HAT의 회로 및 PCB를 설계하고 JLCPCB 를 사용하여 PCB를 주문합니다.
필요한 구성 요소
- 라즈베리 파이 4
- 16 * 2 LCD 디스플레이 모듈
- 네오 픽셀 LED (3)
- 커패시터
- 스위치 (5)
회로도
Raspberry Pi RGB LCD HAT 의 전체 회로도 가 아래에 나와 있습니다. 회로도는 EasyEDA를 사용하여 그려졌습니다. 보시다시피 16x2 LCD 모듈, 3 개의 NeoPixel LED 및 5 개의 스위치를 Raspberry Pi와 인터페이스하고 있습니다. 커넥터는 NeoPixel LED를 활성화하거나 비활성화하는데도 사용됩니다.
EasyEDA를 사용하여 Raspberry Pi RGB LCD HAT 용 PCB 제작
Raspberry Pi RGB LCD HAT 용 PCB를 설계하는 동안 가장 어려운 부분은 풋 프린트를 올바르게 확보하는 것이 었습니다. 치수가 잘못되면 구성 요소가 PCB에 맞지 않습니다. 그러나 운이 좋게도 EasyEDA는 시장의 거의 모든 구성 요소에 대한 발자국을 제공합니다. 이는 사용자가 발자국을 만들고 대중이 프로젝트에서 사용할 수 있도록하는 방대한 사용자 커뮤니티 때문입니다.
EasyEDA는 이전에 여러 번 사용했던 온라인 EDA 도구로, 풋 프린트 모음이 좋고 오픈 소스이기 때문에 사용하기 매우 편리합니다. PCB를 설계 한 후 저가 PCB 제조 서비스 인 JLCPCB를 통해 PCB 샘플을 주문할 수 있습니다. 또한 전자 부품 재고가 많은 부품 소싱 서비스를 제공하며 사용자는 PCB 주문과 함께 필요한 부품을 주문할 수 있습니다.
회로와 PCB를 설계하는 동안 다른 사용자가 복사하거나 편집하고 작업의 이점을 누릴 수 있도록 회로 및 PCB 설계를 공개 할 수도 있습니다. 또한이 Pi RGB LCD Hat 디자인을 공개했습니다. 아래를 확인하십시오. 링크:
- https://easyeda.com/CircuitDigest/Pi-RGB-LCD-HAT
'Layers'창에서 레이어를 선택하여 PCB의 모든 레이어 (Top, Bottom, Topsilk, Bottom Silk 등)를 볼 수 있습니다. 이 외에도 제조 후 PCB가 어떻게 나타나는지에 대한 PCB의 3D 모델보기를 제공합니다. LCD HAT의 상단 레이어와 하단 레이어의 스냅 샷은 다음과 같습니다.
EasyEDA를 사용하여 온라인으로 PCB 샘플 계산 및 주문
이 PI RGB LCD HAT의 설계를 완료 한 후 JLCPCB.com을 통해 PCB를 주문할 수 있습니다. JLCPCB에서 PCB를 주문하려면 Gerber File이 필요합니다. 아래 링크에서 Gerber 파일을 다운로드 할 수 있습니다.
- Raspberry Pi RGB LCD Hat 용 Gerber 파일
PCB의 Gerber 파일을 생성하려면 EasyEDA 편집기 페이지 에서 Generate Fabrication File 버튼을 클릭 한 다음 거기에서 Gerber 파일을 다운로드하거나 아래 이미지와 같이 JLCPCB에서 주문을 클릭하십시오. 그러면 주문할 PCB 수, 필요한 구리 레이어 수, PCB 두께, 구리 무게, PCB 색상 및 아래에 표시된 스냅 샷과 같은 기타 PCB 매개 변수를 선택할 수있는 JLCPCB.com으로 리디렉션됩니다.
' Order at JLCPCB' 버튼을 클릭하면 JLCPCB 웹 사이트로 이동합니다. 여기에서 PCB를 매우 저렴한 2 달러에 주문할 수 있습니다. 그들의 빌드 시간도 매우 짧으며, 이는 DHL 배송이 3-5 일인 48 시간입니다. 주문 후 일주일 이내에 PCB를 받게됩니다.
PCB 주문 후 날짜 및 시간으로 PCB 생산 진행 상황을 확인할 수 있습니다. 계정 페이지로 이동하여 아래 이미지와 같이 PCB 아래의 "생산 진행 상황"링크를 클릭하여 확인할 수 있습니다.
PCB를 주문한지 며칠 후, 아래 그림과 같이 우수한 포장재로 PCB 샘플을 얻었습니다.
트랙과 발자국이 올바른지 확인한 후. PCB 조립을 진행했습니다. 완전히 납땜 된 보드는 다음과 같습니다.
LCD Hat 용 Raspberry Pi 설정
프로그래밍을 시작하기 전에 Raspberry Pi는 먼저 Raspberry Pi를 업데이트하고 몇 가지 필요한 라이브러리를 설치합니다. 아래 명령을 실행하여 Raspberry Pi를 업데이트하고 업그레이드하십시오.
sudo apt-get 업데이트 sudo apt-get 업그레이드
이제 NeoPixel LED 용 Adafruit_Blinka 라이브러리 를 설치합니다. Adafruit_Blinka 라이브러리는 Python에서 CircuitPython 지원을 제공합니다.
sudo pip3 설치 adafruit-circuitpython-neopixel
그런 다음 LCD 모듈 용 Adafruit_CharLCD 라이브러리 를 설치합니다. 이 라이브러리는 Adafruit LCD 보드 용이지만 다른 브랜드의 LCD 보드에서도 작동합니다.
sudo pip3 설치 Adafruit-CharLCD
Raspberry Pi LCD HAT 용 Python 코드
여기에서는 몇 가지 스위치를 사용하여 LCD 모듈 및 RGB LED에 표시기로 특정 값을 표시하여 Raspberry Pi 용 RGB LCD 모자를 시연합니다. 그래서 우리는 스위치를 누를 때 센서 값이나 다른 값을 보여 주도록 라즈베리 파이를 프로그래밍해야합니다.
페이지 끝에 완전한 파이썬 코드 가 제공됩니다. 여기에서는 코드를 단계별로 설명합니다.
필요한 모든 라이브러리를 가져 와서 코드를 시작합니다.
GPIO로 RPi.GPIO 가져 오기 neopixel 가져 오기 시간 가져 오기 보드 가져 오기 Adafruit_CharLCD를 LCD로
그런 다음 LCD 및 기타 스위치가 연결된 모든 GPIO 핀을 정의하십시오.
lcd_rs = 7 lcd_en = 8 lcd_d4 = 25 lcd_d5 = 24 lcd_d6 = 23 lcd_d7 = 18 lcd_backlight = 2 sw0 = 5 sw2 = 13 sw3 = 19 sw4 = 26
이제 BCM 모드를 사용하여 GPIO 모드를 정의하십시오. BOARD로 변경할 수도 있습니다. 그런 다음 모든 스위치 핀을 입력으로 정의합니다.
GPIO.setmode (GPIO.BCM) # BCM GPIO 번호 사용 GPIO.setup (sw0, GPIO.IN) GPIO.setup (sw2, GPIO.IN) GPIO.setup (sw3, GPIO.IN) GPIO.setup (sw4, GPIO.에)
그런 다음 Neo Pixel LED가 연결된 GPIO 핀을 정의하십시오. 그런 다음 Neo Pixel LED 수를 정의하십시오. 여기에 세 개의 LED가 사용되며 필요에 따라 변경할 수 있습니다.
pixel_pin = board. D21 num_pixels = 3
이제 lcddisplay () 함수 내에서 특정 작업을 각 스위치에 할당합니다. 예를 들어, 여기에서 첫 번째 스위치를 누르면 라즈베리 파이는 LCD에 'UP'을 표시하고 두 번째 스위치를 누르면 LCD에 'DOWN'이 표시되고 나머지 두 버튼에는 'DOWN'이 표시됩니다.
LCD에 무언가를 인쇄하는 대신이 스위치를 사용하여 다른 작업을 수행 할 수 있습니다. 예를 들어 switch1을 사용하여 온도 값을 표시하고 switch2를 사용하여 습도 값을 표시하고 스위치 3을 사용하여 압력 값을 표시 할 수 있습니다.
def lcddisplay (): if (GPIO.input (sw0) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('UP') if (GPIO.input (sw2) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('DOWN') if (GPIO.input (sw3) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('LEFT') if (GPIO.input (sw4) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('RIGHT')
이제 while true 루프 내에서 pixels.fill 함수를 사용하여 네오 픽셀을 다른 색상으로 밝게 표시합니다. 따라서 Pi는 각각 1 초 동안 빨간색 녹색과 파란색으로 네오 픽셀을 비추도록 프로그래밍되어 있습니다.
이러한 Neo Pixel을 지표로 사용할 수도 있습니다. 예를 들어, Pi가 전원에 연결되어 있음을 나타 내기 위해 하나의 Neo Pixel을 빨간색으로 켜거나 다른 LED를 사용하여 Pi가 데이터를 수신 또는 전송 중임을 나타낼 수 있습니다.
pixels.fill ((255, 0, 0)) pixels.show () time.sleep (1) pixels.fill ((0, 255, 0)) pixels.show () time.sleep (1) pixels.fill ((0, 0, 255)) pixels.show () time.sleep (1) rainbow_cycle (0.001)
Raspberry Pi RGB LCD HAT 테스트
LCD를 조립하고 Raspberry Pi와 인터페이스 한 후 우리는 모두이 PI RGB LCD HAT를 사용하도록 설정되었습니다. 이를 위해 아래 명령을 사용하여 파이썬 코드를 실행하십시오.
파이썬 code_filename.py
이제 스위치를 누르십시오. SW0 스위치를 누르면 LCD에 'UP'이 인쇄됩니다. SW2 스위치의 경우 'Down'을 인쇄하고 나머지 스위치에 대해서도 동일하게 인쇄해야합니다.
전체 작업 비디오 파이썬 코드와 함께 아래에 주어진다.