Raspberry Pi เป็นบอร์ดที่ใช้โปรเซสเซอร์สถาปัตยกรรม ARM ที่ออกแบบมาสำหรับวิศวกรอิเล็กทรอนิกส์และมือสมัครเล่น PI เป็นหนึ่งในแพลตฟอร์มการพัฒนาโครงการที่น่าเชื่อถือที่สุดในขณะนี้ ด้วยความเร็วโปรเซสเซอร์ที่สูงขึ้นและ RAM 1 GB PI สามารถใช้กับโปรเจ็กต์ที่มีรายละเอียดสูงมากมายเช่นการประมวลผลภาพและ Internet of Things
สำหรับการทำโครงการที่มีรายละเอียดสูงจำเป็นต้องเข้าใจฟังก์ชันพื้นฐานของ PI เราจะกล่าวถึงฟังก์ชันพื้นฐานทั้งหมด ของ Raspberry Pi ในบทช่วยสอนเหล่านี้ ในแต่ละบทช่วยสอนเราจะพูดถึงฟังก์ชันหนึ่งของ PI ในตอนท้ายของซีรีส์การสอน Raspberry Piนี้คุณจะสามารถทำโปรเจ็กต์ระดับสูงได้ด้วยตัวเอง ดูบทช่วยสอนด้านล่าง:
- เริ่มต้นกับ Raspberry Pi
- การกำหนดค่า Raspberry Pi
- ไฟ LED Blinky
- การเชื่อมต่อปุ่ม Raspberry Pi
- Raspberry Pi PWM generation
- การควบคุม DC Motor โดยใช้ Raspberry Pi
ในการกวดวิชานี้เราจะควบคุมความเร็วของมอเตอร์โดยใช้ราสเบอร์รี่ Pi ใน Stepper Motor ตามชื่อนั้นการหมุนของเพลาอยู่ในรูปแบบ Step Stepper Motor มีหลายประเภท ในที่นี่เราจะใช้อย่างใดอย่างหนึ่งที่นิยมมากที่สุดที่เป็น Unipolar มอเตอร์ ไม่เหมือนมอเตอร์กระแสตรงเราสามารถหมุนสเต็ปเปอร์มอเตอร์ไปยังมุมใดก็ได้โดยให้คำแนะนำที่เหมาะสม
ในการหมุนมอเตอร์สี่ขั้นตอนนี้เราจะส่งพัลส์กำลังโดยใช้ Stepper Motor Driver Circuit วงจรไดรเวอร์รับตรรกะทริกเกอร์จาก PI ถ้าเราควบคุมลอจิกทริกเกอร์เราจะควบคุมพัลส์กำลังและด้วยเหตุนี้ความเร็วของสเต็ปเปอร์มอเตอร์
มี 40 GPIO หมุดเอาท์พุทในราสเบอร์รี่ Pi 2 แต่จากทั้งหมด 40 พินสามารถตั้งโปรแกรมได้เพียง 26 พิน GPIO (GPIO2 ถึง GPIO27) หมุดเหล่านี้บางตัวทำหน้าที่พิเศษบางอย่าง ด้วย GPIO พิเศษเราเหลือเพียง 17 GPIO GPIO 17 พินแต่ละตัวสามารถส่งกระแสไฟฟ้าได้สูงสุด 15mAและผลรวมของกระแสจากหมุด GPIO ทั้งหมดต้องไม่เกิน 50mAหากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับพิน GPIO ให้ไปที่: LED กะพริบด้วย Raspberry Pi
มี หมุดเอาต์พุตกำลังไฟ + 5V (Pin 2 & 4) และ + 3.3V (Pin 1 & 17) บนบอร์ดสำหรับเชื่อมต่อโมดูลและเซ็นเซอร์อื่น ๆ รางไฟฟ้าเหล่านี้ไม่สามารถใช้ขับเคลื่อน Stepper Motor ได้เนื่องจากเราต้องการพลังงานมากกว่าในการหมุน ดังนั้นเราจึงต้องส่งกำลังไปยัง Stepper Motor จากแหล่งพลังงานอื่น มอเตอร์สเต็ปเปอร์ของฉันมีระดับแรงดันไฟฟ้า 9V ดังนั้นฉันจึงใช้แบตเตอรี่ 9v เป็นแหล่งพลังงานที่สอง ค้นหาหมายเลขรุ่นของมอเตอร์สเต็ปเปอร์ของคุณเพื่อทราบพิกัดแรงดันไฟฟ้า ขึ้นอยู่กับการจัดอันดับให้เลือกแหล่งข้อมูลรองอย่างเหมาะสม
ตามที่ระบุไว้ก่อนหน้านี้เราจำเป็นต้องมีวงจรขับเพื่อขับเคลื่อน Stepper Motor เราจะออกแบบวงจรไดรเวอร์ทรานซิสเตอร์อย่างง่ายที่นี่
ส่วนประกอบที่ต้องการ:
ที่นี่เราจะใช้ ราสเบอร์รี่ Pi 2 รุ่น B กับ Raspbian Jessie OS ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์พื้นฐานทั้งหมดได้กล่าวไว้ก่อนหน้านี้คุณสามารถค้นหาได้ในบทนำ Raspberry Pi นอกเหนือจากที่เราต้องการ:
- หมุดเชื่อมต่อ
- 220Ωหรือ1KΩตัวต้านทาน (3)
- สเต็ปเปอร์มอเตอร์
- ปุ่ม (2)
- 2N2222 ทรานซิสเตอร์ (4)
- 1N4007 ไดโอด (4)
- ตัวเก็บประจุ - 1000uF
- คณะกรรมการขนมปัง
คำอธิบายวงจร:
Stepper ใช้มอเตอร์200 ขั้นตอนเพื่อให้ได้ 360 องศาสมบูรณ์หมุนหมายถึงการหมุนของมัน1.8 การศึกษาระดับปริญญาต่อขั้นตอน ในขณะที่เรากำลังขับมอเตอร์สี่ขั้นตอนดังนั้นเราจึงต้องให้สี่พัลส์เพื่อให้วงจรลอจิกเดี่ยวสมบูรณ์ แต่ละขั้นตอนของมอเตอร์นี้หมุนได้ 1.8 องศาดังนั้นในการหมุนรอบเราต้องมี 200 พัลส์ ดังนั้น 200/4 = 50 รอบลอจิกจึงจำเป็นในการหมุนครั้งเดียว ตรวจสอบสิ่งนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับ Steppers Motors และโหมดการขับขี่
เราจะขับแต่ละขดลวดทั้งสี่นี้ด้วยทรานซิสเตอร์ NPN (2N2222)ทรานซิสเตอร์ NPN นี้รับพัลส์ลอจิกจาก PI และขับเคลื่อนขดลวดที่เกี่ยวข้อง ทรานซิสเตอร์สี่ตัวกำลังรับสี่ลอจิกจาก PI เพื่อขับเคลื่อนสเต็ปมอเตอร์สี่ขั้นตอน
วงจรขับทรานซิสเตอร์เป็นการตั้งค่าที่ยุ่งยาก ที่นี่เราควรใส่ใจว่าการเชื่อมต่อทรานซิสเตอร์อย่างไม่ถูกต้องอาจทำให้บอร์ดหนักและเสียหาย ตรวจสอบสิ่งนี้เพื่อทำความเข้าใจวงจรไดรเวอร์ Stepper Motor อย่างถูกต้อง
มอเตอร์เป็นตัวเหนี่ยวนำดังนั้นในขณะที่เปลี่ยนมอเตอร์เราพบว่ามีการหมุนแบบอุปนัย องศานี้จะร้อนขึ้นทรานซิสเตอร์อย่างมากดังนั้นเราจะ ใช้ไดโอด (1N4007) เพื่อให้การป้องกันทรานซิสเตอร์ กับอุปนัยองศา
เพื่อ ลดความผันผวนของแรงดันไฟฟ้าเราจะเชื่อมต่อ ตัวเก็บประจุ 1000uF กับแหล่งจ่ายไฟดังที่แสดงในแผนภาพวงจร
คำอธิบายการทำงาน:
เมื่อทุกอย่างเชื่อมต่อตามแผนภาพวงจรแล้วเราสามารถเปิด PI เพื่อเขียนโปรแกรมใน PYHTON
เราจะพูดคุยเกี่ยวกับคำสั่งไม่กี่รายที่เราจะใช้ในโปรแกรม PYHTON, เรากำลังจะนำเข้าไฟล์ GPIO จากไลบรารีฟังก์ชันด้านล่างช่วยให้เราสามารถตั้งโปรแกรมพิน GPIO ของ PI ได้ นอกจากนี้เรายังเปลี่ยนชื่อ "GPIO" เป็น "IO" ดังนั้นในโปรแกรมเมื่อใดก็ตามที่เราต้องการอ้างถึงพิน GPIO เราจะใช้คำว่า 'IO'
นำเข้า RPi.GPIO เป็น IO
บางครั้งเมื่อพิน GPIO ที่เราพยายามใช้อยู่อาจจะทำหน้าที่อื่น ๆ ในกรณีนั้นเราจะได้รับคำเตือนขณะดำเนินการโปรแกรม คำสั่งด้านล่างบอกให้ PI เพิกเฉยต่อคำเตือนและดำเนินการกับโปรแกรม
IO.setwarnings (เท็จ)
เราสามารถอ้างอิงพิน GPIO ของ PI ไม่ว่าจะด้วยหมายเลขพินบนบอร์ดหรือตามหมายเลขฟังก์ชัน เช่นเดียวกับ 'PIN 35' บนกระดานคือ 'GPIO19' เราบอกตรงนี้ว่าเราจะแทนหมุดตรงนี้ด้วย "35" หรือ "19"
IO.setmode (IO.BCM)
เรากำลังตั้งหมุด GPIO สี่ตัวเป็นเอาต์พุตสำหรับการขับสเต็ปมอเตอร์สี่ขดลวด
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
เรากำลังตั้งค่า GPIO26 และ GPIO19 เป็นพินอินพุต เราจะตรวจจับการกดปุ่มด้วยหมุดเหล่านี้
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
ในกรณีที่เงื่อนไขในวงเล็บปีกกาเป็นจริงข้อความภายในลูปจะดำเนินการหนึ่งครั้ง ดังนั้นหาก GPIO พิน 26 อยู่ในระดับต่ำคำสั่งภายในลูป IF จะถูกดำเนินการหนึ่งครั้ง หาก GPIO พิน 26 ไม่ต่ำไปข้อความภายในลูป IF จะไม่ถูกดำเนินการ
ถ้า (IO.input (26) == False):
คำสั่งนี้รันลูป 100 ครั้ง x เพิ่มขึ้นจาก 0 ถึง 99
สำหรับ x ในช่วง (100):
ในขณะที่ 1: ใช้สำหรับอินฟินิตี้ลูป ด้วยคำสั่งนี้คำสั่งภายในลูปนี้จะดำเนินการอย่างต่อเนื่อง
เรามีคำสั่งทั้งหมดที่จำเป็นเพื่อให้บรรลุการควบคุมความเร็วของ Stepper Motorด้วยสิ่งนี้
หลังจากเขียนโปรแกรมและเรียกใช้งานแล้วสิ่งที่เหลืออยู่ก็คือการควบคุมการทำงาน เรามีปุ่มสองปุ่มที่เชื่อมต่อกับ PI หนึ่งสำหรับการเพิ่มความล่าช้าระหว่างสี่พัลส์และอื่น ๆ เพื่อลดความล่าช้าระหว่างสี่พัลส์ ความล่าช้านั้นพูดถึงความเร็ว ถ้าล่าช้าจะสูงมอเตอร์เบรคจะใช้เวลาระหว่างแต่ละขั้นตอนและเพื่อให้หมุนช้าหากล่าช้าเป็นศูนย์ที่อยู่ใกล้แล้วหมุนมอเตอร์ที่ความเร็วสูงสุด
ที่นี่ควรจำไว้ว่าควรมีความล่าช้าระหว่างพัลส์ หลังจากให้ชีพจรแล้วสเต็ปเปอร์มอเตอร์จะใช้เวลาไม่กี่มิลลิวินาทีในการไปถึงขั้นตอนสุดท้าย หากไม่มีการหน่วงเวลาระหว่างพัลส์สเต็ปเปอร์มอเตอร์จะไม่เคลื่อนที่เลย ปกติดีเลย์ 50ms ระหว่างพัลส์ สำหรับข้อมูลที่แม่นยำยิ่งขึ้นโปรดดูในเอกสารข้อมูล
ดังนั้นด้วยปุ่มสองปุ่มเราสามารถควบคุมการหน่วงเวลาซึ่งจะควบคุมความเร็วของมอเตอร์สเต็ปเปอร์