ทำไม GPIO Zero ถึงดีกว่า RPi.GPIO สำหรับโครงการ Raspberry Pi

ทำไม GPIO Zero ถึงดีกว่า RPi.GPIO สำหรับโครงการ Raspberry Pi

Raspberry Pi เป็นคอมพิวเตอร์ที่สมบูรณ์แบบสำหรับการเรียนรู้ Raspbian OS ที่ใช้ Linux มี Python ในตัว ซึ่งทำให้เป็นระบบแรกที่ยอดเยี่ยมสำหรับผู้เขียนโค้ดมือใหม่ หมุดอินพุต/เอาท์พุตวัตถุประสงค์ทั่วไป (GPIO) ช่วยให้ผู้ผลิตรุ่นเยาว์ทดลองใช้โครงการอิเล็กทรอนิกส์ DIY ได้ง่าย





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





GPIO Zero คืออะไร?

ไลบรารี GPIO Zero เป็นไลบรารี Python สำหรับการทำงานกับหมุด GPIO เขียนโดย Ben Nuttall ผู้จัดการชุมชน Raspberry Pi . มุ่งเป้าไปที่การใช้งานง่ายและ 'เป็นมิตร' โดยจะปรับปรุงโค้ด Python สำหรับกรณีการใช้งาน Raspberry Pi ทั่วไปส่วนใหญ่





การรวมแนวทางการตั้งชื่อที่เรียบง่ายและฟังก์ชันการอธิบายเข้าด้วยกัน ทำให้ GPIO Zero สามารถเข้าถึงได้มากขึ้นสำหรับผู้เริ่มต้นเพื่อทำความเข้าใจ แม้แต่ผู้ใช้ไลบรารี RPi.GPIO ที่ช่ำชองก็อาจชอบ — และเพื่อทำความเข้าใจว่าทำไม เรามาดูกันว่า RPi.GPIO เปรียบเทียบกับ GPIO Zero อย่างไร

มีอะไรผิดปกติกับ RPi.GPIO

ไม่มีอะไร. ไม่มีอะไรทั้งนั้น. RPi.GPIO เปิดตัวในต้นปี 2555 โดยผู้พัฒนา Ben Croston เป็นไลบรารีที่มีประสิทธิภาพซึ่งช่วยให้ผู้ใช้สามารถควบคุมพิน GPIO จากโค้ดได้ มันมีอยู่ใน เกือบทุกโครงการเริ่มต้น เราได้ครอบคลุม



วิธีบูต windows จาก usb

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

มีอะไรดีเกี่ยวกับ GPIO Zero?

เมื่อคุณเป็น การเรียนรู้โค้ด Python คุณเรียนรู้ว่าควรอ่านง่ายและสั้นที่สุด GPIO Zero มีจุดมุ่งหมายเพื่อให้ครอบคลุมทั้งสองจุด สร้างขึ้นบน RPi.GPIO เป็น wrapper ภาษาส่วนหน้า ทำให้การตั้งค่าและการใช้งาน GPIO ง่ายขึ้น





พิจารณาตัวอย่างต่อไปนี้ การติดตั้งและเปิด LED:

รหัสด้านบนน่าจะคุ้นเคยกับทุกคนที่มี ใช้ Pi เพื่อควบคุม LEDs .





ไลบรารี RPi.GPIO ถูกนำเข้าและมีการประกาศพินสำหรับ LED ตั้งค่าประเภทเลย์เอาต์พินแล้ว (โหมด BCM และ BOARD คือ อธิบายไว้ในคู่มือ GPIO ของเรา ) และพินถูกตั้งค่าเป็นเอาต์พุต จากนั้นหมุดจะเปิดขึ้น

วิธีนี้สมเหตุสมผล แต่วิธีการทำ GPIO Zero นั้นง่ายกว่ามาก:

GPIO Zero มีโมดูลสำหรับ LED ซึ่งนำเข้าเมื่อเริ่มต้น ซึ่งหมายความว่าคุณสามารถประกาศหมายเลข PIN และโทรหา led.on() กระบวนการ.

สิ่งดีๆที่ต้องทำกับ kodi

เหตุใดแนวทางของ GPIO Zero จึงดีกว่า

มีสาเหตุบางประการที่ทำให้วิธีการทำงานนี้เป็นการปรับปรุง RPi.GPIO

ประการแรก ตรงตามข้อกำหนด 'อ่านง่าย สั้นที่สุด' แม้ว่าคำสั่งการตั้งค่า RPi.GPIO จะเข้าใจง่าย แต่ก็ไม่จำเป็น LED จะเป็นเอาต์พุตเสมอ ดังนั้น GPIO Zero จึงตั้งค่าหมุดไว้เบื้องหลัง ผลลัพธ์คือการตั้งค่าโค้ดเพียงสามบรรทัด จากนั้นจึงจุดไฟ LED

คุณอาจสังเกตเห็นว่าไม่มีการตั้งค่าโหมดบอร์ดในตัวอย่าง GPIO Zero ไลบรารีนี้ใช้เฉพาะการกำหนดหมายเลข Broadcom (BCM) สำหรับพินเท่านั้น ผู้ออกแบบห้องสมุด Ben Nuttall อธิบายว่าทำไมในปี 2015 สัมภาษณ์ RasPi.tv :

'การนับเลขบนบอร์ดอาจดูง่ายกว่านี้ แต่ฉันจะบอกว่ามันทำให้ผู้ใช้ใหม่คิดว่าหมุดทั้งหมดเป็นจุดประสงค์ทั่วไป—แต่ไม่ใช่ เชื่อมต่อ LED กับพิน 11 ทำไมไม่ลองเชื่อมต่อกับพิน 1, 2, 3 และ 4 เพิ่มเติมอีกล่ะ 1 คือ 3V3 2 และ 4 คือ 5V การขาดความตระหนักในสิ่งที่จุดประสงค์ของหมุดอาจเป็นอันตรายได้'

พูดแบบนี้ มันสมเหตุสมผลอย่างยิ่งที่จะใช้ตัวเลข BCM เนื่องจาก GPIO Zero จะเป็นมาตรฐานในเอกสาร Raspberry Pi ในอนาคต จึงคุ้มค่าที่จะเรียนรู้!

GPIO Zero ดีกว่าจริงหรือ?

แม้ว่าจะดูเหมือนตรงไปตรงมามากกว่า แต่ห้องสมุดใหม่มีปัญหาหรือไม่? เช่นเดียวกับไลบรารีการเข้ารหัสใหม่ ๆ มันเป็นเรื่องของความคิดเห็น ในอีกด้านหนึ่ง การลบรหัสการตั้งค่านั้นยอดเยี่ยมสำหรับผู้เริ่มต้นและผู้เขียนโค้ดที่ช่ำชอง การเขียนโค้ดตรงไปตรงมาและรวดเร็วยิ่งขึ้น

ในทางกลับกัน การรู้ว่าเกิดอะไรขึ้นเป็นสิ่งสำคัญสำหรับการเรียนรู้ นำตัวอย่างการตั้งค่าปุ่มจาก เอกสารประกอบ GPIO Zero :

NS ปุ่ม โมดูลช่วยลดความยุ่งยากในการตั้งค่าปุ่มกด มันรู้ว่าปุ่มเป็นอินพุต ดังนั้นใช้หมายเลขพินที่ประกาศไว้สำหรับการตั้งค่า การตรวจสอบการกดปุ่มทำได้ง่ายขึ้นด้วยปุ่ม .is_pressed เพื่อตรวจจับการกดปุ่ม

เราใช้ฟังก์ชันที่แน่นอนนี้ใน กวดวิชาปุ่ม Raspberry Pi ซึ่งเป็นวิธีที่ยอดเยี่ยมในการทำความคุ้นเคยกับความแตกต่างในไลบรารี

ผู้ใช้ไลบรารี RPi.GPIO จะสังเกตเห็นว่าตัวต้านทานแบบดึงขึ้น/ดึงลงภายในของ Pi ไม่ได้ตั้งค่าเป็นโค้ด สิ่งนี้ทำให้เกิดคำถามที่น่าสนใจ จำเป็นสำหรับผู้เริ่มต้นที่ต้องรู้เกี่ยวกับตัวต้านทานแบบดึงขึ้น/ลงหรือไม่? อีกครั้ง Ben Nuttall มีคำตอบสำหรับคำถามนี้:

'คุณอาจเถียงว่ารู้ดีเกี่ยวกับการดึงขึ้นและลง และคุณพูดถูก---แต่ทำไมฉันต้องสอนในวันแรกด้วย?[...] หากคุณต้องการสอนอุปกรณ์อิเล็กทรอนิกส์ใน ความลึกที่มากขึ้นนั้นมีขอบเขตมากมาย—แต่ไม่ควรบังคับหากคุณเพิ่งเริ่มต้น

โดยรวมแล้ว แนวทางง่ายๆ ของ GPIO Zero น่าจะเป็นสิ่งที่ดีสำหรับทั้งมือใหม่และมือเก๋า นอกจากนี้ RPi.GPIO จะไม่ไปไหน มันจะอยู่ที่นั่นเสมอเพื่อเปลี่ยนกลับเป็นหากจำเป็น

Python เป็นตัวเลือกเดียวหรือไม่?

Python เป็นภาษาที่ Pi รู้จัก แต่ไม่ใช่ตัวเลือกเดียว หากคุณคุ้นเคยกับการเขียนโปรแกรมในภาษาซีอยู่แล้ว การเดินสายไฟ Pi คุณได้ครอบคลุม

หรือหากคุณตั้งโปรแกรมใน JavaScript แล้ว สามารถติดตั้ง Node.js บน Pi ได้อย่างง่ายดาย เข้าถึง GPIO ได้ผ่าน rpi-gpio npm ไลบรารี . ทับทิมบนราง สามารถติดตั้งบน Raspberry Pi ได้ แม้ว่า Pi อาจไม่ใช่วิธีที่ดีที่สุดในการเรียนรู้ Rails !

ทางเลือกทั้งหมดเหล่านี้พร้อมกับไลบรารีหลายภาษาเช่น excellent ราคาถูก อาจทำให้การเลือกห้องสมุดเกิดความสับสน นี่คือจุดที่ GPIO Zero เป็นเลิศ: สำหรับผู้เริ่มต้นที่สงสัยว่าจะเริ่มต้นอย่างไรและที่ไหน

หากคุณอยู่ในจุดที่คุณต้องการสิ่งที่ไม่ได้จัดเตรียมไว้ คุณก็พร้อมที่จะดำดิ่งสู่ห้องสมุดอื่น ๆ ตามที่คุณต้องการ

เริ่มต้นใช้งาน GPIO Zero Yourself

GPIO Zero เป็นไลบรารีใหม่ล่าสุดที่สร้างความกระฉับกระเฉงให้กับ Pi และมีเหตุผลที่ดี สำหรับผู้ใช้ส่วนใหญ่ มันทำให้การเข้ารหัสสำหรับพิน GPIO อ่านง่ายและเขียนเร็วขึ้น

คอมพิวเตอร์เครื่องนี้ขาดโปรโตคอลตั้งแต่หนึ่งโปรโตคอลขึ้นไป

ด้วยการใช้ Raspberry Pi ในการศึกษา อะไรก็ตามที่ทำให้การเรียนรู้เป็นธรรมชาติมากขึ้นก็เป็นสิ่งที่ดี แม้ว่า RPi.GPIO จะสมบูรณ์แบบมาจนถึงตอนนี้ แต่ GPIO Zero ก็ใช้ความคิดที่ดีและทำให้ดียิ่งขึ้นไปอีก

วิธีที่ยอดเยี่ยมในการเริ่มต้นใช้งาน GPIO Zero คือการนำโปรเจ็กต์สำหรับผู้เริ่มต้น เช่น Musical Door Sensor และย้ายไปยังไลบรารีใหม่

แบ่งปัน แบ่งปัน ทวีต อีเมล 5 เคล็ดลับในการเพิ่มพลังให้เครื่อง VirtualBox Linux ของคุณ

เบื่อกับประสิทธิภาพที่ย่ำแย่ของเวอร์ชวลแมชชีนหรือไม่? นี่คือสิ่งที่คุณควรทำเพื่อเพิ่มประสิทธิภาพ VirtualBox ของคุณ

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • DIY
  • การเขียนโปรแกรม
  • ราสเบอร์รี่ปี่
  • Python
  • GPIO
เกี่ยวกับผู้เขียน เอียน บัคลี่ย์(216 บทความที่ตีพิมพ์)

Ian Buckley เป็นนักข่าวอิสระ นักดนตรี นักแสดง และโปรดิวเซอร์วิดีโอที่อาศัยอยู่ในกรุงเบอร์ลิน ประเทศเยอรมนี เมื่อเขาไม่ได้เขียนหนังสือหรืออยู่บนเวที เขากำลังซ่อมแซมอุปกรณ์อิเล็กทรอนิกส์หรือโค้ด DIY โดยหวังว่าจะเป็นนักวิทยาศาสตร์ที่คลั่งไคล้

เพิ่มเติมจาก Ian Buckley

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก