บทนำของ Pins ของ Raspberry Pi
คำว่า 'GPIO' (General Purpose Input Output) ไม่ใช่เฉพาะตัวของ Raspberry Pi เท่านั้น ขาเข้าและขาออกสามารถพบได้ในไมโครคอนโทรลเลอร์ส่วนใหญ่เช่น Arduino, Beaglebone และอื่น ๆ
เมื่อเราพูดถึง GPIO กับ Raspberry Pi เรากำลังหมายถึงบล็อกยาวของหมุดที่มุมบนซ้ายของบอร์ด รุ่นเก่ามี 26 หมุด แต่ส่วนใหญ่เราจะใช้รุ่นปัจจุบันที่มี 40
คุณสามารถเชื่อมต่ออุปกรณ์และอุปกรณ์ฮาร์ดแวร์อื่น ๆ กับหมุดเหล่านี้และใช้รหัสเพื่อควบคุมสิ่งที่พวกเขาทำ เป็นส่วนสำคัญของ Raspberry Pi และเป็นวิธีที่ดีในการเรียนรู้เกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์
หลังจากมีโครงการซอฟต์แวร์ไม่กี่แห่งคุณอาจพบว่าตัวเองกำลังทดสอบกับหมุดเหล่านี้กระตือรือร้นที่จะผสมผสานโค้ดกับฮาร์ดแวร์เพื่อทำให้สิ่งต่างๆเกิดขึ้นได้ใน 'ชีวิตจริง'
กระบวนการนี้อาจเป็นการข่มหมูถ้าคุณยังใหม่กับฉากและการพิจารณาว่าการย้ายผิดพลาดอาจทำให้ Raspberry Pi ของคุณเสียหายได้เข้าใจได้ว่าเป็นพื้นที่ที่มีประสาทสำหรับผู้เริ่มต้นสำรวจ
บทความนี้จะอธิบายถึงสิ่งที่ GPIO พินทำงานและข้อ จำกัด ของแต่ละประเภท
02 จาก 09GPIO
อันดับแรกลองดูที่ GPIO โดยรวม หมุดอาจมีลักษณะเหมือนกัน แต่ทุกอย่างมีหน้าที่แตกต่างกัน ภาพด้านบนแสดงฟังก์ชันเหล่านี้ด้วยสีที่ต่างกันซึ่งเราจะอธิบายในขั้นตอนต่อไปนี้
หมายเลขแต่ละพินมีหมายเลขตั้งแต่ 1 ถึง 40 โดยเริ่มจากด้านล่างซ้าย ตัวเลขพินทางกายภาพเหล่านี้เป็นตัวเลขทางกายภาพอย่างไรก็ตามมีการจัดเลข / การติดฉลากเช่น 'BCM' ที่ใช้เมื่อเขียนโค้ด
03 จาก 09กำลังและพื้น
สีแดงที่เน้นเป็นหมุดไฟฟ้า '3' หรือ '5' สำหรับ 3.3V หรือ 5V
หมุดเหล่านี้ช่วยให้คุณสามารถส่งพลังงานไปยังอุปกรณ์โดยไม่จำเป็นต้องใช้รหัสใด ๆ ไม่มีทางที่จะเปลี่ยนสิ่งเหล่านี้ออกได้เช่นกัน
มีรางไฟ 2 แห่ง - 3.3 โวลต์และ 5 โวลต์ ตามบทความนี้รถไฟ 3.3V ถูก จำกัด ไว้ที่ 50mA current draw ขณะที่ราง 5V สามารถให้กำลังงานที่เหลืออยู่จากแหล่งจ่ายไฟของคุณหลังจากที่ Pi ได้ดำเนินการตามที่ต้องการแล้ว
เน้นสีน้ำตาลคือหมุดดิน (GND) หมุดเหล่านี้เป็นสิ่งที่พวกเขาพูด - หมุดดิน - ซึ่งเป็นส่วนสำคัญของโครงการอิเล็กทรอนิกส์ใด ๆ
(หมุด GPIO 5V เป็นหมายเลขทางกายภาพ 2 และ 4 หมุด GPU 3.3V เป็นหมายเลขทางกายภาพ 1 และ 17 หมุด Ground GPIO เป็นตัวเลขทางกายภาพ 6, 9, 14, 20, 25, 30, 34 และ 39)
04 จาก 09ขาเข้า / ขาออก
หมุดสีเขียวคือสิ่งที่ฉันเรียกขาเข้า / ขาออกทั่วไป ' เหล่านี้สามารถใช้เป็นอินพุตหรือเอาต์พุตได้โดยไม่ต้องกังวลเกี่ยวกับการปะทะกับฟังก์ชันอื่น ๆ เช่น I2C, SPI หรือ UART
นี่คือหมุดที่สามารถส่งพลังงานไปยังไฟ LED, ออดหรือส่วนประกอบอื่น ๆ หรือใช้เป็นอินพุทเพื่ออ่านเซ็นเซอร์สวิทช์หรืออุปกรณ์อินพุตอื่น ๆ
กำลังขาออกของขาเหล่านี้คือ 3.3V หมุดแต่ละอันไม่ควรเกิน 16mA ของกระแสทั้งจมหรือการจัดหาและชุดทั้งหมดของหมุด GPIO ไม่ควรเกินกว่า 50mA ในเวลาใด ๆ นี่อาจเป็นข้อ จำกัด ดังนั้นคุณอาจต้องสร้างสรรค์ในบางโครงการ
(หมุด GPIO ทั่วไปคือตัวเลขทางกายภาพ 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 และ 40)
05 จาก 09I2C Pins
สีเหลืองเรามีหมุด I2C I2C เป็นโปรโตคอลการติดต่อสื่อสารที่ช่วยให้อุปกรณ์สื่อสารกับ Raspberry Pi ได้ง่าย หมุดเหล่านี้ยังสามารถใช้เป็นหมุด GPIO 'ทั่วไป'
ตัวอย่างที่ดีของการใช้ I2C เป็นชิปขยายพอร์ต MCP23017 ที่เป็นที่นิยมมากซึ่งสามารถให้ข้อมูลขาเข้า / ขาออกเพิ่มเติมผ่านโปรโตคอล I2C นี้
(I2C GPIO หมุดเป็นหมายเลขพินทางกายภาพที่ 3 และ 5)
06 จาก 09UART (Serial) Pins
สีเทาเป็นขายึด UART หมุดเหล่านี้เป็นโปรโตคอลการสื่อสารอื่นที่มีการเชื่อมต่อแบบอนุกรมและสามารถใช้เป็นอินพุต / เอาต์พุต GPIO ทั่วไป
การใช้งานที่ชื่นชอบของ UART คือการเปิดใช้งานการเชื่อมต่อแบบอนุกรมจาก Pi ไปยังแล็ปท็อปของฉันผ่าน USB สามารถทำได้โดยใช้บอร์ดเสริมหรือสายเคเบิลที่เรียบง่ายและไม่จำเป็นต้องใช้หน้าจอหรือการเชื่อมต่ออินเทอร์เน็ตเพื่อเข้าถึง Pi ของคุณ
(ขา UART GPIO เป็นหมายเลขพินทางกายภาพ 8 และ 10)
07 จาก 09SPI Pins
สีชมพู, เรามีหมุด SPI SPI คือบัสอินเทอร์เฟซที่ส่งข้อมูลระหว่าง Pi กับฮาร์ดแวร์ / อุปกรณ์ต่อพ่วงอื่น ๆ โดยปกติจะใช้สำหรับการผูกมัดของอุปกรณ์เช่นเมทริกซ์ LED หรือจอแสดงผล
เช่นเดียวกับคนอื่น ๆ หมุดเหล่านี้สามารถใช้เป็นอินพุต / เอาต์พุต GPIO ทั่วไปได้เช่นกัน
(หมุด SPI GPIO เป็นหมายเลขพินทางกายภาพ 19, 21, 23, 24 และ 26)
08 จาก 09DNC Pins
สุดท้ายมีสองสีหมุดสีน้ำเงินซึ่งปัจจุบันมีชื่อว่า DNC ซึ่งย่อมาจาก 'Do Not Connect' นี้อาจมีการเปลี่ยนแปลงในอนาคตหากราสเบอร์รี่ Pi มูลนิธิเปลี่ยนแผง / ซอฟต์แวร์
(หมุด DNC GPIO เป็นหมายเลขพินทางกายภาพ 27 และ 28)
09 จาก 09อนุสัญญาฉบับเลข GPIO
เมื่อเขียนโค้ดด้วย GPIO คุณสามารถเลือกการนำเข้าไลบรารี GPIO ได้สองวิธีคือ BCM หรือ BOARD
ตัวเลือกที่ฉันชอบคือ GPIO BCM นี่เป็นระเบียบหมายเลข Broadcom และฉันพบว่ามีการใช้งานบ่อยๆในโครงการและส่วนเสริมของฮาร์ดแวร์
ตัวเลือกที่สองคือ GPIO BOARD วิธีนี้ใช้หมายเลขพินทางกายภาพแทนซึ่งเป็นประโยชน์เมื่อนับหมุด แต่คุณจะพบว่ามีการใช้น้อยลงในตัวอย่างโครงการ
โหมด GPIO ถูกตั้งค่าไว้เมื่อนำเข้าไลบรารี GPIO:
การนำเข้าเป็น BCM:
นำเข้า RPi.GPIO เป็น GPIO
GPIO.setmode (GPIO.BCM)
การนำเข้าเป็น BOARD:
นำเข้า RPi.GPIO เป็น GPIO
GPIO.setmode (GPIO.BOARD)
ทั้งสองวิธีทำตรงงานเดียวกันเป็นเพียงเรื่องของการตั้งค่าหมายเลข
ฉันมักใช้ประโยชน์จากบอร์ดฉลาก GPIO ที่มีประโยชน์เช่น RasPiO Portsplus (ภาพ) เพื่อตรวจสอบหมุดที่ฉันเชื่อมต่อสายด้วย ด้านหนึ่งแสดงการประชุมเลข BCM และอื่น ๆ จะแสดง BOARD - ดังนั้นคุณจึงได้รับความคุ้มครองสำหรับโครงการที่คุณพบ