เปรียบเทียบและเปรียบเทียบ Python GPIO APIs


11

ฉันเพิ่งเริ่มต้นด้วย Pi และต้องการตั้งโปรแกรม GPIO ใน Python จนถึงตอนนี้ฉันเจอห้องสมุดห้าแห่ง:

ก่อนที่ฉันจะมีเวลาเรียนรู้สิ่งใดสิ่งหนึ่งฉันอยากรู้

  • หากมีข้อ จำกัด อย่างใดอย่างหนึ่งหรืออื่น ๆ
  • สิ่งที่แตกต่างกันอย่างมีนัยสำคัญมีวัตถุประสงค์ระหว่างพวกเขา


คุณถูกต้องและสิ่งนี้อาจถูกปิดเป็นอัตนัย ไม่มีคำตอบง่ายๆ gpiozeroเป็นเสื้อคลุมเรียบง่ายที่ออกแบบมาสำหรับผู้เริ่มต้น pigpioอาจเป็นเอกสารที่มีประสิทธิภาพมากที่สุดแม้ว่าเอกสารจะเป็นแบบร่างและเหมาะสมกว่าสำหรับโปรแกรมเมอร์ที่มีประสบการณ์ (ฉันใช้การเดินสายcเพราะมันง่ายกว่า แต่ฉันมีประสบการณ์มากกว่า 40 ปี)
Milliways

ฉันขอแนะนำให้เราปิดคำถามนี้ตามความคิดเห็นเว้นแต่ว่าเราต้องการให้ทุกคนใช้ GPIO เพื่อแบ่งปันประสบการณ์ในคำตอบ
Dmitry Grigoryev

คำตอบ:


13

คำเตือน. ฉันเป็นผู้เขียน pigpio ดังนั้นจะมีอคติ

คุณอาจได้รับรสชาติโดยดูที่elinux

RPi.GPIO เป็นคนแรกและเป็นที่นิยมมากที่สุด มันจะเป็นสิ่งที่คุณมักเห็นตัวอย่างมากที่สุด

RPIO สร้างขึ้นบน RPi.GPIO (เพื่อใช้แทนปลั๊ก) และเพิ่มความสามารถบางอย่าง โดยเฉพาะอย่างยิ่งมันเพิ่มฮาร์ดแวร์เวลา PWM ที่เหมาะสมสำหรับ LED และเซอร์โวและโซ่พัลส์ไทม์เอาต์ของฮาร์ดแวร์ RPi.GPIO ให้บริการซอฟต์แวร์ PWM เท่านั้นซึ่งจะช่วยให้มองเห็นข้อบกพร่องใน LED และบอกอายุการใช้งานของเซอร์โวสั้นลง ตามที่กล่าวไว้ในRPIO gitHub repo :

ที่เก็บนี้ไม่ได้รับการดูแลรักษาอีกต่อไป!

wiringPi Python เป็นพอร์ตของฟังก์ชั่น C ส่วนใหญ่ของ PPI เพื่อ Python ฉันไม่ได้ใช้มันและไม่ค่อยรู้อะไรเกี่ยวกับมันเลย

pigpio Python เป็นพอร์ตของฟังก์ชัน C ของ pigpio ไปยัง Python เช่นเดียวกับ RPIO.GPIO มันมีฮาร์ดแวร์ PWM ที่กำหนดเวลาไว้สำหรับ LED และเซอร์โวและฮาร์ดแวร์พัลส์โซ่ไทม์มิ่ง คุณลักษณะเฉพาะอย่างหนึ่งของ pigpio คือเวลาของเหตุการณ์ GPIO ที่แหล่งกำเนิดดังนั้นสำหรับจุดประสงค์ในการจับเวลา pigpio นั้นน่าจะแม่นยำที่สุด pigpio สามารถทำงานบนเครือข่ายพีซี (Windows, Mac, Linux) เพื่อควบคุม Pi ระยะไกล

gpiozero เป็น wrapper ที่เรียบง่ายรอบ ๆ ไลบรารีด้านบน มีผลบังคับใช้ส่วนหน้าซึ่งพยายามลบผู้ใช้ให้มากที่สุดจากรายละเอียดการใช้งานพื้นฐาน gpiozero (ฉันคิดว่า) เป็นจุดเริ่มต้นที่แนะนำโดย Python gpiozero สามารถ (ฉันคิดว่า) ทำงานบนพีซีในเครือข่าย (Windows, Mac, Linux) เพื่อควบคุม Pi ระยะไกลถ้า pigpio เป็นแบ็กเอนด์

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


0

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


GPIO Zero ทำทุกอย่างที่ RPi.GPIO ทำไม่มีข้อ จำกัด มีฟีเจอร์ขั้นสูงเพิ่มเติมใน pigpio ที่ยังไม่ได้นำมาใช้ใน GPIO Zero แต่สำหรับสิ่งที่รองรับก็มี API ที่ดีบนห้องสมุดทั้งสอง
ben_nuttall
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.