Raspberry Pi เป็นบอร์ดที่ใช้โปรเซสเซอร์สถาปัตยกรรม ARM ที่ออกแบบมาสำหรับวิศวกรอิเล็กทรอนิกส์และมือสมัครเล่น PI เป็นหนึ่งในแพลตฟอร์มการพัฒนาโครงการที่น่าเชื่อถือที่สุดในขณะนี้ ด้วยความเร็วโปรเซสเซอร์ที่สูงขึ้นและ RAM 1 GB PI สามารถใช้กับโปรเจ็กต์ที่มีรายละเอียดสูงมากมายเช่นการประมวลผลภาพและ IoT
สำหรับการทำโครงการที่มีรายละเอียดสูงจำเป็นต้องเข้าใจฟังก์ชันพื้นฐานของ PI เราจะกล่าวถึงฟังก์ชันพื้นฐานทั้งหมด ของ Raspberry Pi ในบทช่วยสอนเหล่านี้ ในแต่ละบทช่วยสอนเราจะพูดถึงฟังก์ชันหนึ่งของ PI ในตอนท้ายของซีรีส์การสอน Raspberry Pi คุณจะสามารถเรียนรู้ Raspberry Piและสร้างโปรเจ็กต์ดีๆได้ด้วยตัวเอง ดูบทช่วยสอนด้านล่าง:
- เริ่มต้นกับ Raspberry Pi
- การกำหนดค่า Raspberry Pi
- ไฟ LED Blinky
- การเชื่อมต่อของปุ่ม
- Raspberry Pi PWM generation
- การเชื่อมต่อ LCD กับ Raspberry Pi
- การควบคุมมอเตอร์กระแสตรง
- Stepper Motor Control
- การเชื่อมต่อ Shift Register
- การสอน Raspberry Pi ADC
- การควบคุมเซอร์โวมอเตอร์
- ทัชแพดแบบ Capacitive
ในการกวดวิชานี้เราจะไปทำRaspberry Pi 7 ส่วนเชื่อมการแสดงผล การแสดงผลเจ็ดส่วนมีราคาถูกที่สุดสำหรับหน่วยแสดงผล สามารถใช้กลุ่มเหล่านี้สองส่วนที่ซ้อนกันเพื่อแสดงอุณหภูมิค่าตัวนับเป็นต้นเราจะเชื่อมต่อหน่วยแสดงผล 7 ส่วนกับ GPIO ของ PI และควบคุมให้แสดงตัวเลขตามนั้น หลังจากนั้นเราจะเขียนโปรแกรมใน PYTHONสำหรับการแสดงผลเจ็ดส่วนเพื่อนับตั้งแต่ 0-9 และรีเซ็ตตัวเองเป็นศูนย์
การแสดงเจ็ดส่วน:
การแสดงผล 7 ส่วนมีหลายประเภทและขนาด เราได้กล่าวถึงการทำงานของ Seven Segment โดยละเอียดที่นี่ โดยทั่วไปมีอยู่ 2 ประเภทคือ 7 Segment ประเภท Common Anode (Common Positive หรือ Common VCC) และ Common Cathode type (Common Negative หรือ Common Ground)
Common Anode (CA): ในนี้ขั้วลบ (แคโทด) ทั้งหมดของ LED ทั้ง 8 ดวงจะเชื่อมต่อเข้าด้วยกัน (ดูแผนภาพด้านล่าง) โดยตั้งชื่อว่า COM และขั้วบวกทั้งหมดจะถูกทิ้งไว้เฉยๆ
Common Cathode (CC): ในนี้ขั้วบวกทั้งหมด (Anodes) ของ LED ทั้ง 8 ดวงจะเชื่อมต่อเข้าด้วยกันโดยมีชื่อว่า COM และเทอร์มอลเชิงลบทั้งหมดจะถูกทิ้งไว้ตามลำพัง
จอแสดงผลทั้งเจ็ดส่วน CC และ CA เหล่านี้มีประโยชน์มากในขณะที่มัลติเพล็กซ์หลายเซลล์เข้าด้วยกัน ในการกวดวิชาของเราที่เราจะใช้ CC หรือCommon Cathode เซเว่นส่วนงานการแสดงผล
เราได้เชื่อมต่อ 7 ส่วนกับ 8051 พร้อม Arduino และ AVR แล้ว เรายังใช้การแสดงผล 7 ส่วนในหลายโครงการของเรา
เราจะพูดคุยเกี่ยวกับRaspberry Pi GPIOก่อนที่จะดำเนินการต่อไป
มี 40 GPIO หมุดเอาท์พุทในราสเบอร์รี่ Pi 2 แต่จากทั้งหมด 40 พินสามารถตั้งโปรแกรมได้เพียง 26 พิน GPIO (GPIO2 ถึง GPIO27) ดูรูปด้านล่าง หมุดเหล่านี้บางตัวทำหน้าที่พิเศษบางอย่าง ด้วย GPIO พิเศษเรามี 17 GPIO ที่เหลือ
ของ GPIO (ขา 1 หรือ 17) + สัญญาณ 3.3V ก็เพียงพอที่จะผลักดันการแสดงผล ในการระบุขีด จำกัด ปัจจุบันเราจะใช้ตัวต้านทาน1KΩสำหรับแต่ละส่วนดังแสดงในแผนภาพวงจร
หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับพิน GPIO และเอาต์พุตปัจจุบันให้ไปที่: LED กะพริบด้วย Raspberry Pi
ส่วนประกอบที่ต้องการ:
ที่นี่เราจะใช้ ราสเบอร์รี่ Pi 2 รุ่น B กับ Raspbian Jessie OS ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์พื้นฐานทั้งหมดได้กล่าวไว้ก่อนหน้านี้คุณสามารถค้นหาได้ในบทนำ Raspberry Pi นอกเหนือจากที่เราต้องการ:
- หมุดเชื่อมต่อ
- จอแสดงผลแคโทด 7 ส่วนทั่วไป (LT543)
- ตัวต้านทาน1KΩ (8 ชิ้น)
- เขียงหั่นขนม
คำอธิบายวงจรและการทำงาน:
การเชื่อมต่อซึ่งทำขึ้นสำหรับการแสดงผล Interfacing 7 segment กับ Raspberry Piมีดังต่อไปนี้ เราได้ใช้Common Cathode 7 Segmentที่นี่:
PIN1 หรือ e ------------------ GPIO21
PIN2 หรือ d ------------------ GPIO20
PIN4 หรือ c ------------------ GPIO16
PIN5 หรือ h หรือ DP ---------- GPIO 12 // ไม่บังคับเนื่องจากเราไม่ได้ใช้จุดทศนิยม
PIN6 หรือ b ------------------ GPIO6
PIN7 หรือ ------------------ GPIO13
PIN9 หรือ f ------------------ GPIO19
PIN10 หรือ g ---------------- GPIO26
PIN3 หรือ PIN8 ------------- เชื่อมต่อกับกราวด์
ดังนั้นเราจะใช้พิน 8 GPIO ของ PI เป็นพอร์ต 8 บิต ในที่นี้ GPIO13 คือ LSB (Least Significant Bit) และ GPIO 12 เป็น MSB (Most Significant Bit)
ตอนนี้ถ้าเราต้องการที่จะแสดงหมายเลข“1” เราจำเป็นต้องใช้พลังงานกลุ่ม B และ C ในการจ่ายไฟให้กับส่วน B และ C เราจำเป็นต้องจ่ายไฟให้กับ GPIO6 และ GPIO16 ดังนั้นไบต์สำหรับฟังก์ชัน 'PORT' จะเป็น 0b00000110 และค่าฐานสิบหกของ 'PORT' จะเป็น 0x06 ด้วยหมุดทั้งสองสูงเราจะได้ "1" บนจอแสดงผล
เราได้เขียนค่าสำหรับแต่ละหลักที่จะแสดงและจัดเก็บค่าเหล่านั้นไว้ในสตริงอักขระชื่อ 'DISPLAY' (ตรวจสอบส่วนรหัสด้านล่าง) จากนั้นเราจึงเรียกค่าเหล่านั้นทีละค่าเพื่อแสดงตัวเลขที่เกี่ยวข้องบนจอแสดงผลโดยใช้ฟังก์ชัน 'PORT'
คำอธิบายการเขียนโปรแกรม:
เมื่อทุกอย่างมีการเชื่อมต่อตามวงจรที่เราสามารถเปิด PI เพื่อเขียนโปรแกรมใน PYHTON
เราจะพูดถึงคำสั่งบางอย่างที่เราจะใช้ในโปรแกรม PYHTON
เรากำลังจะนำเข้าไฟล์ GPIO จากไลบรารีฟังก์ชันด้านล่างช่วยให้เราสามารถตั้งโปรแกรมพิน GPIO ของ PI ได้ นอกจากนี้เรายังเปลี่ยนชื่อ "GPIO" เป็น "IO" ดังนั้นในโปรแกรมเมื่อใดก็ตามที่เราต้องการอ้างถึงพิน GPIO เราจะใช้คำว่า 'IO'
นำเข้า RPi.GPIO เป็น IO
บางครั้งเมื่อพิน GPIO ที่เราพยายามใช้อยู่อาจจะทำหน้าที่อื่น ๆ ในกรณีนั้นเราจะได้รับคำเตือนขณะดำเนินการโปรแกรม คำสั่งด้านล่างบอกให้ PI เพิกเฉยต่อคำเตือนและดำเนินการกับโปรแกรม
IO.setwarnings (เท็จ)
เราสามารถอ้างอิงพิน GPIO ของ PI ไม่ว่าจะด้วยหมายเลขพินบนบอร์ดหรือตามหมายเลขฟังก์ชัน เช่นเดียวกับ 'PIN 29' บนกระดานคือ 'GPIO5' เราบอกตรงนี้ว่าเราจะแทนหมุดตรงนี้ด้วย '29' หรือ '5'
IO.setmode (IO.BCM)
เรากำลังตั้งค่าพิน GPIO 8 พินเป็นพินเอาท์พุตสำหรับข้อมูลและพินควบคุมของ LCD
IO.setup (13, IO.OUT) IO.setup (6, IO.OUT) IO.setup (16, IO.OUT) IO.setup (20, IO.OUT) IO.setup (21, IO.OUT) IO.setup (19, IO.OUT) IO.setup (26, IO.OUT) IO.setup (12, IO.OUT)
ในกรณีที่เงื่อนไขในวงเล็บปีกกาเป็นจริงข้อความภายในลูปจะดำเนินการหนึ่งครั้ง ดังนั้นหาก bit0 ของ 8 บิต 'พิน' เป็นจริง PIN13 จะสูงมิฉะนั้น PIN13 จะเป็น LOW เรามีเงื่อนไข 'if else' แปดประการสำหรับ bit0 ถึง bit7 ดังนั้น LED ที่เหมาะสมภายในจอแสดงผล 7 ส่วนสามารถทำให้สูงหรือต่ำเพื่อแสดงหมายเลขที่เกี่ยวข้อง
ถ้า (พิน & 0x01 == 0x01): IO.output (13,1) else: IO.output (13,0)
คำสั่งนี้รันลูป 10 ครั้ง x เพิ่มขึ้นจาก 0 ถึง 9
สำหรับ x ในช่วง (10):
คำสั่งด้านล่างนี้ใช้เป็นลูปตลอดไปโดยคำสั่งนี้คำสั่งภายในลูปนี้จะดำเนินการอย่างต่อเนื่อง
ในขณะที่ 1:
ฟังก์ชันและคำสั่งอื่น ๆ ทั้งหมดได้อธิบายไว้ในส่วน 'รหัส' ด้านล่างด้วยความช่วยเหลือของ 'ความคิดเห็น'
หลังจากเขียนโปรแกรมและการดำเนินการมันRaspberry Pi เป็นต้นเหตุ GPIOs ที่สอดคล้องกันในการแสดงหลักในวันที่ 7 Segment แสดงผล โปรแกรมถูกเขียนขึ้นเพื่อให้การแสดงผลนับ 0-9 อย่างต่อเนื่อง