ทัวร์ของราสเบอร์รี่ Pi GPIO

01 จาก 09

บทนำของ Pins ของ Raspberry Pi

ราสเบอร์รี่พีจีโอ Richard Saville

คำว่า 'GPIO' (General Purpose Input Output) ไม่ใช่เฉพาะตัวของ Raspberry Pi เท่านั้น ขาเข้าและขาออกสามารถพบได้ในไมโครคอนโทรลเลอร์ส่วนใหญ่เช่น Arduino, Beaglebone และอื่น ๆ

เมื่อเราพูดถึง GPIO กับ Raspberry Pi เรากำลังหมายถึงบล็อกยาวของหมุดที่มุมบนซ้ายของบอร์ด รุ่นเก่ามี 26 หมุด แต่ส่วนใหญ่เราจะใช้รุ่นปัจจุบันที่มี 40

คุณสามารถเชื่อมต่ออุปกรณ์และอุปกรณ์ฮาร์ดแวร์อื่น ๆ กับหมุดเหล่านี้และใช้รหัสเพื่อควบคุมสิ่งที่พวกเขาทำ เป็นส่วนสำคัญของ Raspberry Pi และเป็นวิธีที่ดีในการเรียนรู้เกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์

หลังจากมีโครงการซอฟต์แวร์ไม่กี่แห่งคุณอาจพบว่าตัวเองกำลังทดสอบกับหมุดเหล่านี้กระตือรือร้นที่จะผสมผสานโค้ดกับฮาร์ดแวร์เพื่อทำให้สิ่งต่างๆเกิดขึ้นได้ใน 'ชีวิตจริง'

กระบวนการนี้อาจเป็นการข่มหมูถ้าคุณยังใหม่กับฉากและการพิจารณาว่าการย้ายผิดพลาดอาจทำให้ Raspberry Pi ของคุณเสียหายได้เข้าใจได้ว่าเป็นพื้นที่ที่มีประสาทสำหรับผู้เริ่มต้นสำรวจ

บทความนี้จะอธิบายถึงสิ่งที่ GPIO พินทำงานและข้อ จำกัด ของแต่ละประเภท

02 จาก 09

GPIO

หมุด GPIO มีหมายเลขตั้งแต่ 1 ถึง 40 และสามารถจัดกลุ่มได้ภายใต้ฟังก์ชันที่แตกต่างกัน Richard Saville

อันดับแรกลองดูที่ GPIO โดยรวม หมุดอาจมีลักษณะเหมือนกัน แต่ทุกอย่างมีหน้าที่แตกต่างกัน ภาพด้านบนแสดงฟังก์ชันเหล่านี้ด้วยสีที่ต่างกันซึ่งเราจะอธิบายในขั้นตอนต่อไปนี้

หมายเลขแต่ละพินมีหมายเลขตั้งแต่ 1 ถึง 40 โดยเริ่มจากด้านล่างซ้าย ตัวเลขพินทางกายภาพเหล่านี้เป็นตัวเลขทางกายภาพอย่างไรก็ตามมีการจัดเลข / การติดฉลากเช่น 'BCM' ที่ใช้เมื่อเขียนโค้ด

03 จาก 09

กำลังและพื้น

ราสเบอรี่ Pi มอบพลังและหมุดดินหลายแบบ Richard Saville

สีแดงที่เน้นเป็นหมุดไฟฟ้า '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

ขาเข้า / ขาออก

ขาเข้าและขาออกช่วยให้คุณสามารถเชื่อมต่อฮาร์ดแวร์เช่นเซ็นเซอร์และสวิทช์ได้ Richard Saville

หมุดสีเขียวคือสิ่งที่ฉันเรียกขาเข้า / ขาออกทั่วไป ' เหล่านี้สามารถใช้เป็นอินพุตหรือเอาต์พุตได้โดยไม่ต้องกังวลเกี่ยวกับการปะทะกับฟังก์ชันอื่น ๆ เช่น 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 จาก 09

I2C Pins

I2C ช่วยให้คุณสามารถเชื่อมต่ออุปกรณ์อื่น ๆ กับ Pi ของคุณด้วยหมุดเพียงไม่กี่ชิ้น Richard Saville

สีเหลืองเรามีหมุด I2C I2C เป็นโปรโตคอลการติดต่อสื่อสารที่ช่วยให้อุปกรณ์สื่อสารกับ Raspberry Pi ได้ง่าย หมุดเหล่านี้ยังสามารถใช้เป็นหมุด GPIO 'ทั่วไป'

ตัวอย่างที่ดีของการใช้ I2C เป็นชิปขยายพอร์ต MCP23017 ที่เป็นที่นิยมมากซึ่งสามารถให้ข้อมูลขาเข้า / ขาออกเพิ่มเติมผ่านโปรโตคอล I2C นี้

(I2C GPIO หมุดเป็นหมายเลขพินทางกายภาพที่ 3 และ 5)

06 จาก 09

UART (Serial) Pins

เชื่อมต่อกับ Pi ผ่านการเชื่อมต่อแบบอนุกรมกับหมุด UART Richard Saville

สีเทาเป็นขายึด UART หมุดเหล่านี้เป็นโปรโตคอลการสื่อสารอื่นที่มีการเชื่อมต่อแบบอนุกรมและสามารถใช้เป็นอินพุต / เอาต์พุต GPIO ทั่วไป

การใช้งานที่ชื่นชอบของ UART คือการเปิดใช้งานการเชื่อมต่อแบบอนุกรมจาก Pi ไปยังแล็ปท็อปของฉันผ่าน USB สามารถทำได้โดยใช้บอร์ดเสริมหรือสายเคเบิลที่เรียบง่ายและไม่จำเป็นต้องใช้หน้าจอหรือการเชื่อมต่ออินเทอร์เน็ตเพื่อเข้าถึง Pi ของคุณ

(ขา UART GPIO เป็นหมายเลขพินทางกายภาพ 8 และ 10)

07 จาก 09

SPI Pins

SPI Pins - โปรโตคอลการสื่อสารที่มีประโยชน์อื่น ๆ Richard Saville

ในชมพูเรามีหมุด SPI SPI คือบัสอินเทอร์เฟซที่ส่งข้อมูลระหว่าง Pi กับฮาร์ดแวร์ / อุปกรณ์ต่อพ่วงอื่น ๆ โดยปกติจะใช้สำหรับการผูกมัดของอุปกรณ์เช่นเมทริกซ์ LED หรือจอแสดงผล

เช่นเดียวกับคนอื่น ๆ หมุดเหล่านี้สามารถใช้เป็นอินพุต / เอาต์พุต GPIO ทั่วไปได้เช่นกัน

(หมุด SPI GPIO เป็นหมายเลขพินทางกายภาพ 19, 21, 23, 24 และ 26)

08 จาก 09

DNC Pins

ไม่มีอะไรให้ดูที่นี่ - หมุด DNC ไม่มีหน้าที่ใด ๆ Richard Saville

สุดท้ายมีสองสีหมุดสีน้ำเงินซึ่งปัจจุบันมีชื่อว่า DNC ซึ่งย่อมาจาก 'Do Not Connect' นี้อาจมีการเปลี่ยนแปลงในอนาคตหากราสเบอร์รี่ Pi มูลนิธิเปลี่ยนแผง / ซอฟต์แวร์

(หมุด DNC GPIO เป็นหมายเลขพินทางกายภาพ 27 และ 28)

09 จาก 09

อนุสัญญาฉบับเลข GPIO

Portsplus เป็นเครื่องมือที่มีประโยชน์สำหรับการตรวจสอบหมายเลขพิน GPIO Richard Saville

เมื่อเขียนโค้ดด้วย 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 - ดังนั้นคุณจึงได้รับความคุ้มครองสำหรับโครงการที่คุณพบ