- ส่วนประกอบที่จำเป็น
- แผนภูมิวงจรรวม
- การประดิษฐ์ PCB สำหรับ Raspberry Pi RGB LCD HAT โดยใช้ EasyEDA
- การคำนวณและสั่งซื้อตัวอย่าง PCB ทางออนไลน์โดยใช้ EasyEDA
- การตั้งค่า Raspberry Pi สำหรับ LCD Hat
- รหัส Python สำหรับ Raspberry Pi LCD HAT
- การทดสอบ Raspberry Pi RGB LCD HAT
Raspberry Pi Hats เหมือนกับโล่สำหรับ Arduino พวกเขาสามารถใส่ที่ด้านบนของ Raspberry Pi ได้โดยตรงและไม่ต้องการการเชื่อมต่อเพิ่มเติม ที่นี่เราจะสร้างRGB LCD Hat สำหรับ Raspberry Piบน PCB LCD Hat นี้ประกอบด้วยโมดูล LCD 16x2 สวิตช์ห้าตัวและ LED NeoPixel สามดวง สวิตช์ที่นี่ใช้เพื่อเปลี่ยนข้อความบนจอแสดงผลและใช้ไฟ LED NeoPixel เป็นตัวบ่งชี้ สวิตช์และ Neo Pixels เหล่านี้สามารถตั้งโปรแกรมได้ตามความต้องการเช่นสวิตช์สามารถใช้เพื่อแสดงค่าเซ็นเซอร์เช่นอุณหภูมิความชื้น ฯลฯ และสามารถใช้พิกเซล Neo เพื่อแสดงสถานะเช่นสีแดงเพื่อระบุข้อผิดพลาดและสีเขียวขณะรับข้อมูลบางอย่าง
ที่นี่เราจะใช้ซอฟต์แวร์ออนไลน์EasyEDAเพื่อออกแบบวงจรและ PCB สำหรับ Pi HAT นี้และJLCPCBเพื่อสั่งซื้อ PCBs
ส่วนประกอบที่จำเป็น
- Raspberry Pi 4
- โมดูลแสดงผล LCD 16 * 2
- ไฟ LED นีโอพิกเซล (3)
- คาปาซิเตอร์
- สวิตช์ (5)
แผนภูมิวงจรรวม
แผนภาพวงจรที่สมบูรณ์สำหรับRaspberry Pi RGB LCD HATแสดงอยู่ด้านล่าง แผนผังถูกวาดโดยใช้ EasyEDA อย่างที่คุณเห็นเรากำลังเชื่อมต่อโมดูล LCD 16x2, LED NeoPixel 3 ดวงและสวิตช์ 5 ตัวกับ Raspberry Pi นอกจากนี้ยังใช้ขั้วต่อเพื่อเปิดหรือปิดไฟ LED ของ NeoPixel
การประดิษฐ์ PCB สำหรับ Raspberry Pi RGB LCD HAT โดยใช้ EasyEDA
ในขณะที่ออกแบบ PCB สำหรับ Raspberry Pi RGB LCD HAT ส่วนที่ท้าทายที่สุดคือการทำให้รอยเท้าถูกต้อง หากขนาดผิดพลาดส่วนประกอบจะไม่พอดีกับ PCB แต่โชคดีที่ EasyEDA ให้บริการสำหรับส่วนประกอบเกือบทั้งหมดในตลาด นี่เป็นเพราะชุมชนผู้ใช้ขนาดใหญ่ที่ผู้ใช้สร้างรอยเท้าและเปิดให้บุคคลทั่วไปใช้ในโครงการของตน
EasyEDA เป็นเครื่องมือ EDA ออนไลน์ที่ก่อนหน้านี้ฉันเคยใช้หลายครั้งและพบว่ามันสะดวกมากที่จะใช้เนื่องจากมีการรวบรวมรอยเท้าที่ดีและเป็นโอเพ่นซอร์ส หลังจากออกแบบ PCB แล้วเราสามารถสั่งซื้อตัวอย่าง PCB โดยบริการผลิต PCB ต้นทุนต่ำ - JLCPCB นอกจากนี้ยังมีบริการจัดหาส่วนประกอบที่มีส่วนประกอบอิเล็กทรอนิกส์จำนวนมากและผู้ใช้สามารถสั่งซื้อส่วนประกอบที่ต้องการพร้อมกับคำสั่ง PCB
ในขณะที่ออกแบบวงจรและ PCB คุณยังสามารถทำให้วงจรของคุณและการออกแบบ PCB ของคุณเป็นแบบสาธารณะเพื่อให้ผู้ใช้รายอื่นสามารถคัดลอกหรือแก้ไขได้และสามารถใช้ประโยชน์จากงานของคุณได้เรายังทำให้การออกแบบ Pi RGB LCD Hat เป็นแบบสาธารณะตรวจสอบด้านล่าง ลิงค์:
- https://easyeda.com/CircuitDigest/Pi-RGB-LCD-HAT
คุณสามารถดูเลเยอร์ใดก็ได้ (ด้านบน, ด้านล่าง, ท็อปซิล, ผ้าไหมด้านล่าง ฯลฯ) ของ PCB โดยเลือกเลเยอร์จากหน้าต่าง 'เลเยอร์' นอกจากนี้พวกเขายังให้มุมมองโมเดล 3 มิติของ PCB ว่าจะปรากฏอย่างไรหลังจากการประดิษฐ์ ภาพรวมของชั้นบนสุดและชั้นล่างสุดของ LCD HAT จะมีลักษณะดังนี้:
การคำนวณและสั่งซื้อตัวอย่าง PCB ทางออนไลน์โดยใช้ EasyEDA
หลังจากเสร็จสิ้นการออกแบบ PI RGB LCD HAT นี้คุณสามารถสั่งซื้อ PCB ผ่าน JLCPCB.com ในการสั่งซื้อ PCB จาก JLCPCB คุณต้องมีไฟล์ Gerber คุณสามารถดาวน์โหลดไฟล์ Gerber ได้จากลิงค์ด้านล่าง:
- ไฟล์ Gerber สำหรับ Raspberry Pi RGB LCD Hat
ในการสร้างไฟล์ Gerber ของ PCB เพียงคลิกปุ่ม Generate Fabrication File ในหน้าโปรแกรมแก้ไข EasyEDA จากนั้นดาวน์โหลดไฟล์ Gerber จากที่นั่นหรือคลิกที่ Order ที่ JLCPCB ดังที่แสดงในภาพด้านล่าง สิ่งนี้จะนำคุณไปที่ JLCPCB.com ซึ่งคุณสามารถเลือกจำนวน PCB ที่ต้องการสั่งซื้อจำนวนชั้นทองแดงที่คุณต้องการความหนาของ PCB น้ำหนักทองแดงสี PCB และพารามิเตอร์ PCB อื่น ๆ เช่นภาพรวมที่แสดงด้านล่าง:
หลังจากคลิกที่ปุ่ม ' สั่งซื้อที่ JLCPCB' จะนำคุณไปยังเว็บไซต์ JLCPCB ซึ่งคุณสามารถสั่งซื้อ PCB ได้ในอัตราที่ต่ำมากซึ่งอยู่ที่ 2 ดอลลาร์ เวลาในการสร้างก็น้อยลงมากเช่นกันซึ่งคือ 48 ชั่วโมงเมื่อ DHL จัดส่ง 3-5 วัน คุณจะได้รับ PCBs ของคุณภายในหนึ่งสัปดาห์หลังจากสั่งซื้อ
หลังจากสั่งซื้อ PCB แล้วคุณสามารถตรวจสอบความคืบหน้าในการผลิต PCB ของคุณพร้อมวันที่และเวลา คุณสามารถตรวจสอบได้โดยไปที่หน้าบัญชีและคลิกที่ลิงก์ "ความคืบหน้าการผลิต" ใต้ PCB ดังที่แสดงในภาพด้านล่าง
หลังจากสั่งซื้อ PCB ไม่กี่วันฉันก็ได้ตัวอย่าง PCB ในบรรจุภัณฑ์ที่ยอดเยี่ยมดังที่แสดงในภาพด้านล่าง
หลังจากตรวจสอบให้แน่ใจว่าแทร็กและรอยเท้าถูกต้อง ฉันดำเนินการประกอบ PCB บอร์ดบัดกรีทั้งหมดมีลักษณะดังนี้:
การตั้งค่า Raspberry Pi สำหรับ LCD Hat
ก่อนเริ่มการเขียนโปรแกรม Raspberry Pi ให้อัปเดต Raspberry Pi ก่อนและติดตั้งไลบรารีที่จำเป็นบางอย่าง เรียกใช้คำสั่งด้านล่างเพื่ออัปเดตและอัปเกรด Raspberry Pi:
sudo apt-get update sudo apt-get upgrade
ตอนนี้ติดตั้งไลบรารี Adafruit_Blinka สำหรับ NeoPixel LEDs ไลบรารี Adafruit_Blinka ให้การสนับสนุน CircuitPython ใน Python
sudo pip3 ติดตั้ง adafruit-circuitpython-neopixel
หลังจากนั้นให้ติดตั้งไลบรารี Adafruit_CharLCDสำหรับโมดูล LCD ไลบรารีนี้มีไว้สำหรับบอร์ด LCD ของ Adafruit แต่ยังใช้งานได้กับบอร์ด LCD ยี่ห้ออื่น ๆ ด้วย
sudo pip3 ติดตั้ง Adafruit-CharLCD
รหัส Python สำหรับ Raspberry Pi LCD HAT
เรากำลังสาธิตหมวก RGB LCD สำหรับ Raspberry Piโดยใช้สวิตช์สองสามตัวเพื่อแสดงค่าเฉพาะบางอย่างบนโมดูล LCD และไฟ LED RGB เป็นตัวบ่งชี้ ดังนั้นเราจึงต้องตั้งโปรแกรม Raspberry Pi ในลักษณะที่เมื่อเรากดสวิตช์ควรแสดงค่าเซ็นเซอร์หรือค่าอื่น ๆ
รหัสหลามที่สมบูรณ์จะได้รับที่ส่วนท้ายของหน้า ที่นี่เรากำลังอธิบายรหัสทีละขั้นตอน
เริ่มต้นรหัสโดยการนำเข้าไลบรารีที่จำเป็นทั้งหมด
นำเข้า RPi.GPIO เป็น GPIO นำเข้า neopixel เวลานำเข้าบอร์ดนำเข้า Adafruit_CharLCD เป็น LCD
หลังจากนั้นกำหนดพิน GPIO ทั้งหมดที่เชื่อมต่อ LCD และสวิตช์อื่น ๆ
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
ตอนนี้กำหนดโหมด GPIO โดยใช้โหมด BCM คุณยังสามารถเปลี่ยนเป็นบอร์ดได้ จากนั้นกำหนดพินสวิตช์ทั้งหมดเป็นอินพุต
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.ใน)
หลังจากนั้นกำหนดพิน GPIO ที่เชื่อมต่อ Neo Pixel LEDs จากนั้นกำหนดจำนวน LED ของ Neo Pixel ที่นี่ใช้ไฟ LED สามดวงคุณสามารถเปลี่ยนได้ตามความต้องการของคุณ
pixel_pin = บอร์ด D21 num_pixels = 3
ตอนนี้อยู่ใน ฟังก์ชัน lcddisplay () กำหนดงานเฉพาะให้กับสวิตช์แต่ละตัว ตัวอย่างเช่นที่นี่เมื่อกดสวิตช์แรก Raspberry Pi ควรแสดง 'UP' บน LCD และเมื่อกดสวิตช์ที่สองควรแสดง 'DOWN' บนจอ LCD และปุ่มอื่น ๆ อีกสองปุ่ม
แทนที่จะพิมพ์บางอย่างบน LCD คุณสามารถใช้สวิตช์เหล่านี้เพื่อทำงานอื่นได้ ตัวอย่างเช่นคุณสามารถใช้สวิตช์ 1 เพื่อแสดงค่าอุณหภูมิสวิตช์ 2 เพื่อแสดงค่าความชื้นและสลับ 3 เพื่อแสดงค่าความดันเป็นต้น
def lcddisplay (): if (GPIO.input (sw0) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('UP') ถ้า (GPIO.input (sw2) == เท็จ): 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 ('ขวา')
ตอนนี้อยู่ใน while true loop ฟังก์ชันpixels.fillใช้เพื่อเพิ่มความสว่างให้กับ Neo Pixels ด้วยสีต่างๆ ดังนั้น Pi จึงถูกตั้งโปรแกรมให้สว่างขึ้น Neo Pixels ด้วยสีแดงเขียวและสีน้ำเงินเป็นเวลาหนึ่งวินาที
คุณยังสามารถใช้ Neo Pixels เหล่านี้เป็นตัวบ่งชี้ ตัวอย่างเช่นคุณสามารถสว่างขึ้นหนึ่ง Neo Pixel ที่มีสีแดงเพื่อระบุว่า Pi เชื่อมต่อกับแหล่งจ่ายไฟหรือคุณสามารถใช้ไฟ 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)) พิกเซลแสดง () เวลานอน (1) rainbow_cycle (0.001)
การทดสอบ Raspberry Pi RGB LCD HAT
หลังจากประกอบ LCD และเชื่อมต่อกับ Raspberry Pi แล้วเราทุกคนพร้อมที่จะใช้ PI RGB LCD HAT นี้ สำหรับสิ่งนั้นให้เรียกใช้รหัส python โดยใช้คำสั่งด้านล่าง
python code_filename.py
ตอนนี้กดสวิตช์ เมื่อคุณกดสวิตช์ SW0 ควรพิมพ์ 'UP' บนจอ LCD สำหรับสวิตช์ SW2 ควรพิมพ์ 'ลง' และเหมือนกันสำหรับสวิตช์ที่เหลือ
วิดีโอการทำงานที่สมบูรณ์พร้อมด้วยรหัสหลามได้รับด้านล่าง