2 วิธีในการเพิ่มปุ่มให้กับโครงการ Raspberry Pi ของคุณ

2 วิธีในการเพิ่มปุ่มให้กับโครงการ Raspberry Pi ของคุณ

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





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





คุณจะต้องการ

ในการเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมีส่วนประกอบต่อไปนี้:





  • 1 x Raspberry Pi (จะทำอะไรก็ได้ โมเดล 3B ถูกใช้ในบทช่วยสอนนี้)
  • 1 x ปุ่มกด
  • 1 x LED
  • ตัวต้านทาน 1 x 220 โอห์ม (ค่าที่สูงขึ้นก็ใช้ได้ ไฟ LED ของคุณจะหรี่ลง)
  • 1 x เขียงหั่นขนม
  • ต่อสายไฟ

เมื่อรวบรวมแล้ว คุณควรมีส่วนประกอบที่มีลักษณะดังนี้:

คุณจะต้องมีการ์ด SD ที่ติดตั้งระบบปฏิบัติการ Raspbian วิธีที่รวดเร็วที่สุดในการทำเช่นนี้คือการใช้อิมเมจ NOOBS (ซอฟต์แวร์ใหม่แกะกล่อง) คำแนะนำเกี่ยวกับวิธีการทำเช่นนี้มีอยู่ในวิดีโอนี้:



การตั้งค่าวงจร

คุณจะใช้พิน GPIO ของ Pi เพื่อสร้างวงจร และถ้าคุณไม่คุ้นเคยกับพวกมัน คำแนะนำเกี่ยวกับหมุด Raspberry Pi GPIO จะช่วย. วงจรที่นี่เกือบจะเหมือนกับในครั้งก่อนของเรา โครงการ LED Raspberry Pi ด้วยการเพิ่มปุ่มที่คุณจะใช้ในวันนี้

ตั้งค่าวงจรของคุณตามแผนภาพนี้:





  • NS 5v และ GND หมุดเชื่อมต่อกับรางไฟของเขียงหั่นขนม
  • พิน 12 (GPIO 18) เชื่อมต่อกับขาบวกของ LED
  • ขาเดียวของ ตัวต้านทาน ยึดติดกับขาด้านลบของ LED และขาอีกข้างยึดติดกับรางพื้นของเขียงหั่นขนม
  • พิน 16 (GPIO 23) ติดที่ด้านหนึ่งของปุ่ม อีกด้านหนึ่งติดกับรางกราวด์ของเขียงหั่นขนม

เมื่อตั้งค่าแล้ว ควรมีลักษณะดังนี้:

ตรวจสอบวงจรของคุณเพื่อให้แน่ใจว่าถูกต้อง จากนั้นเปิดเครื่อง Raspberry Pi





วิธีที่ 1: ไลบรารี RPi.GPIO

เมื่อ Pi บูทแล้วให้ไปที่เมนูแล้วเลือก การเขียนโปรแกรม> Thonny Python IDE . สคริปต์ Python ใหม่จะเปิดขึ้น หากคุณยังใหม่กับ Python เลย มันเป็นภาษาที่ยอดเยี่ยมสำหรับผู้เริ่มต้น และมีสถานที่ที่ยอดเยี่ยมมากมายในการเรียนรู้เพิ่มเติมเกี่ยวกับ Python หลังจากคุณทำแบบฝึกหัดนี้เสร็จแล้ว!

เริ่มต้นด้วยการนำเข้าไลบรารี RPi.GPIO และตั้งค่าโหมดบอร์ด

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)

ตอนนี้ประกาศตัวแปรสำหรับ LED และหมายเลขพินของปุ่ม

ledPin = 12
buttonPin = 16

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

การตั้งค่าปุ่ม

ได้เวลาตั้งค่าพิน GPIO แล้ว ตั้งค่าพิน LED เป็นเอาต์พุต และพินปุ่มเพื่ออินพุตด้วยตัวต้านทานแบบดึงขึ้น

GPIO.setup(ledPin, GPIO.OUT)
GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

ข้อความหลังจาก GPIO.IN หมายถึง ตัวต้านทานแบบดึงขึ้นภายใน ของราสเบอร์รี่ Pi คุณต้องเปิดใช้งานสิ่งนี้เพื่ออ่านข้อมูลทั้งหมดจากปุ่ม เนื่องจากปุ่มจะไปที่พินกราวด์ เราจึงต้องมีตัวต้านทานแบบดึงขึ้นเพื่อยึดพินอินพุต HIGH ไว้จนกว่าคุณจะกด

ก่อนที่เราจะไปต่อ มาดูตัวต้านทานแบบดึงขึ้นและแบบดึงลงกันก่อน

ช่วงพัก: ตัวต้านทานแบบดึงขึ้น/ดึงลง

เมื่อคุณกำหนดค่าพิน GPIO ให้เป็นอินพุต พินจะอ่านพินนั้นเพื่อกำหนดสถานะ ในวงจรนี้ คุณต้องอ่านว่าพินเป็น สูง หรือ ต่ำ เพื่อเรียกไฟ LED เมื่อกดปุ่ม สิ่งนี้จะง่ายถ้าสิ่งเหล่านี้เป็นสถานะเดียวที่พินสามารถมีได้ แต่น่าเสียดายที่มีสถานะที่สาม: ลอยน้ำ .

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

ภาพด้านบนเป็นไดอะแกรมแบบง่ายของปุ่มและ Raspberry Pi พิน GPIO เชื่อมต่อกับกราวด์ผ่านปุ่ม ตัวต้านทานแบบดึงขึ้นภายในยึดขา GPIO เข้ากับแหล่งจ่ายไฟ Pi ภายใน กระแสนี้ไหลและพินถูกดึงขึ้นสู่ระดับสูงอย่างปลอดภัย

เมื่อคุณกดปุ่ม พิน GPIO จะเชื่อมต่อโดยตรงกับพินกราวด์ และปุ่มจะอ่านค่าต่ำ

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

ทฤษฎีตัวต้านทานแบบดึงขึ้นและแบบดึงลงทำให้เกิดความสับสนในแวบแรก แต่ความรู้ที่สำคัญที่ต้องมีเมื่อทำงานกับไมโครคอนโทรลเลอร์ สำหรับตอนนี้ หากคุณยังไม่ค่อยเข้าใจมัน ไม่ต้องกังวลไป!

ไปต่อจากที่ค้างไว้

โปรแกรมวนรอบ

ถัดไป ตั้งค่าโปรแกรมวนรอบ:

while True:
buttonState = GPIO.input(buttonPin)
if buttonState == False:
GPIO.output(ledPin, GPIO.HIGH)
else:
GPIO.output(ledPin, GPIO.LOW)

NS ในขณะที่ทรู วนรอบอย่างต่อเนื่องรันโค้ดภายในนั้นจนกว่าเราจะสิ้นสุดโปรแกรม ทุกครั้งที่มันวนซ้ำจะอัปเดต ปุ่มสถานะ โดยการอ่านอินพุตจาก ปุ่มPin . ในขณะที่ไม่ได้กดปุ่ม ปุ่มจะยังคงอยู่ สูง .

เมื่อกดปุ่มแล้ว ปุ่มสถานะ กลายเป็น ต่ำ . สิ่งนี้ทำให้เกิด ถ้าคำสั่ง , ตั้งแต่ เท็จ ก็เหมือนกับ ต่ำ และไฟ LED จะสว่างขึ้น NS อื่น คำสั่งจะปิดไฟ LED เมื่อใดก็ตามที่ buttonPin ไม่เป็นเท็จ

บันทึกและเรียกใช้สคริปต์ของคุณ

บันทึกสคริปต์ของคุณโดยคลิก ไฟล์ > บันทึกเป็น และเลือกชื่อไฟล์ คุณสามารถเรียกใช้สเก็ตช์ได้โดยคลิกที่สีเขียว เล่น ปุ่มในแถบเครื่องมือ Thonny

กดปุ่มแล้วไฟ LED ของคุณควรสว่างขึ้น! กดสีแดง หยุด ปุ่มเมื่อใดก็ได้เพื่อหยุดโปรแกรม

หากคุณประสบปัญหา ให้ตรวจสอบรหัสและการตั้งค่าวงจรอย่างละเอียดเพื่อหาข้อผิดพลาดและลองอีกครั้ง

วิธีที่ 2: GPIO Zero Library

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

ในการทดสอบไลบรารีใหม่ ให้เปิดไฟล์ Thonny ใหม่และนำเข้าไลบรารี

from gpiozero import LED, Button
from signal import pause

คุณจะสังเกตเห็นว่าคุณไม่ได้นำเข้าทั้งห้องสมุด เนื่องจากคุณใช้ไฟ LED และปุ่มเท่านั้น คุณจึงต้องการเฉพาะโมดูลเหล่านั้นในสคริปต์ เรายังนำเข้า หยุดชั่วคราว จากไลบรารีสัญญาณซึ่งเป็นไลบรารี Python สำหรับการจัดการเหตุการณ์

การตั้งค่าพินนั้นง่ายกว่ามากด้วย GPIO Zero:

led = LED(18)
button = Button(23)

เนื่องจากไลบรารี GPIO Zero มีโมดูลสำหรับ LED และปุ่ม คุณไม่จำเป็นต้องตั้งค่าอินพุตและเอาต์พุตเหมือนเมื่อก่อน คุณจะสังเกตเห็นว่าแม้หมุดจะไม่เปลี่ยนแปลง แต่ตัวเลขที่นี่แตกต่างจากด้านบน นั่นเป็นเพราะว่า GPIO Zero ใช้เฉพาะหมายเลขพิน GPIO (เรียกอีกอย่างว่าหมายเลข Broadcom หรือ BCM)

mac เชื่อมต่อ wifi ไม่ได้

ส่วนที่เหลือของสคริปต์มีเพียงสามบรรทัด:

button.when_pressed = led.on
button.when_released = led.off
pause()

NS หยุดชั่วคราว() เรียกที่นี่เพียงแค่หยุดสคริปต์ไม่ให้ออกเมื่อถึงด้านล่าง เหตุการณ์สองปุ่มจะถูกทริกเกอร์ทุกครั้งที่มีการกดและปล่อยปุ่ม บันทึกและเรียกใช้สคริปต์ของคุณแล้วคุณจะเห็นผลลัพธ์เหมือนเดิม!

สองวิธีในการเพิ่มปุ่มให้กับ Raspberry Pi

จากสองวิธีในการตั้งค่าปุ่ม วิธี GPIO Zero ดูเหมือนจะง่ายที่สุด ยังคงคุ้มค่าที่จะเรียนรู้เกี่ยวกับไลบรารี RPi.GPIO เช่น โครงการ Raspberry Pi เริ่มต้นส่วนใหญ่ ใช้มัน. ง่ายๆ อย่างโครงงานนี้ ความรู้สามารถนำไปใช้ได้หลายอย่าง

การใช้หมุด GPIO เป็นวิธีที่ยอดเยี่ยมในการเรียนรู้และประดิษฐ์อุปกรณ์ของคุณเอง แต่ยังห่างไกลจากทุกสิ่งที่คุณสามารถทำได้ด้วย Pi คำแนะนำอย่างไม่เป็นทางการของเราเกี่ยวกับ Raspberry Pi เต็มไปด้วยความคิดสร้างสรรค์และแบบฝึกหัดที่คุณสามารถลองใช้เองได้! สำหรับบทช่วยสอนอื่นเช่นนี้ โปรดดูที่ วิธีสร้างปุ่มเชื่อมต่อ Wi-Fi .

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

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

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

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

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

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

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

คลิกที่นี่เพื่อสมัครสมาชิก
หมวดหมู่ Diy