การเขียนไพธอนควบคุมเซอร์โวมอเตอร์ ให้หมุนไปยังตำแหน่ง 0 องศา และเคลื่อนไปที่ 90 องศา และ 180 องศาตามลำดับ

การเขียนไพธอนควบคุมเซอร์โวมอเตอร์ ให้หมุนไปยังตำแหน่ง 0 องศา และเคลื่อนไปที่ 90 องศา และ 180 องศาตามลำดับ จากนั้น หมุนกลับไปที่ 0 องศา ด้วย Raspberry Pi SBC (Single Board Computer)
======================

ยุคนี้สินค้าอิเล็กทรอนิกส์จากจีนทะลักเข้ามาอย่างท่วมท้น เซอร์โวตัวเล็ก ๆ ราคาไม่ถึง 100 บาท และหาซื้อได้ง่าย

กิจกรรม : การควบคุมเซอร์โวมอเตอร์
1. เซอร์โว มีสายไฟกี่เส้น ?
ตอบ : …………….. [3 ก) ไฟเลี้ยง ข) กราวด์ ค) สายควบคุม]

2. นิสิตรู้จักถ่านนาฬิกาหรือถ่านไฟฉาย ซึ่ง มี 2 ขั้ว คือ ?
ตอบ : ……………….. [ บวก และ ลบ ]

3. ไฟเลี้ยง คือ ขั้วบวก ส่วน กราวด์ คือ ขั้วลบ ใช่หรือไม่ ?
ตอบ : ………………. [ ใช่ ]

4. สายควบคุม เป็นการส่งความถี่ออกไปให้มอเตอร์ หากต้องการให้มอเตอร์หมุนไปยังตำแหน่งที่ต้องการ ให้ส่งความถี่ของตำแหน่งนั้นออกไปที่สายควบคุมนี้ เรียกความถี่ที่ส่งไปนี้ว่า PWM (Pulse Width Modulation)
ตำแหน่ง 0 องศา = ใช้ duty rate 2.5
ตำแหน่ง 45 องศา = ใช้ duty rate 5.0
ตำแหน่ง 90 องศา = ใช้ duty rate 7.5
ตำแหน่ง 180 องศา = ใช้ duty rate 12.5

5. การต่อสายสัญญาณ
– เนื่องจากกระแสจากบอร์ด RPI ไปเลี้ยงเซอร์โวไม่พอ จึงใช้ไฟจากแหล่งภายนอก โดยต่อดังนี้
– pin 22 ของ RPI ต่อกับสายสัญญาณ pwm ของ Servo
– ต่อสายไฟเลี้ยงและกราวด์เข้ามอเตอร์

6. เขียนโปรแกรมด้วย Python ดังต่อไปนี้
import RPi.GPIO as IO
import time
IO.setwarnings(False)
IO.setmode (IO.BOARD)
IO.setup(22,IO.OUT)
p = IO.PWM(22,50)# GPIO22 as PWM output, with 50Hz frequency
p.start(7.5) # generate PWM signal with 7.5% duty cycle
while 1: # วนลูป (loop) ไม่รู้จบ
… p.ChangeDutyCycle(7.5) # ไปที่ตำแหน่ง 90 องศา
… time.sleep(1)
… p.ChangeDutyCycle(12.5) # ไปที่ตำแหน่ง 180 องศา
… time.sleep(1)
… p.ChangeDutyCycle(2.5) # ไปที่ตำแหน่ง 0 องศา
… time.sleep(1)

======================การเขียนไพธอนควบคุมเซอร์โวมอเตอร์ ให้หมุนไปยังตำแหน่ง 0 องศา และเคลื่อนไปที่ 90 องศา และ 180 องศาตามลำดับ จากนั้น หมุนกลับไปที่ 0 องศา ด้วย Raspberry Pi SBC (Single Board Computer) ======================ยุคนี้สินค้าอิเล็กทรอนิกส์จากจีนทะลักเข้ามาอย่างท่วมท้น เซอร์โวตัวเล็ก ๆ ราคาไม่ถึง 100 บาท และหาซื้อได้ง่าย กิจกรรม : การควบคุมเซอร์โวมอเตอร์ 1. เซอร์โว มีสายไฟกี่เส้น ?ตอบ : …………….. [3 ก) ไฟเลี้ยง ข) กราวด์ ค) สายควบคุม]2. นิสิตรู้จักถ่านนาฬิกาหรือถ่านไฟฉาย ซึ่ง มี 2 ขั้ว คือ ?ตอบ : ……………….. [ บวก และ ลบ ]3. ไฟเลี้ยง คือ ขั้วบวก ส่วน กราวด์ คือ ขั้วลบ ใช่หรือไม่ ?ตอบ : ………………. [ ใช่ ]4. สายควบคุม เป็นการส่งความถี่ออกไปให้มอเตอร์ หากต้องการให้มอเตอร์หมุนไปยังตำแหน่งที่ต้องการ ให้ส่งความถี่ของตำแหน่งนั้นออกไปที่สายควบคุมนี้ เรียกความถี่ที่ส่งไปนี้ว่า PWM (Pulse Width Modulation) ตำแหน่ง 0 องศา = ใช้ duty rate 2.5ตำแหน่ง 45 องศา = ใช้ duty rate 5.0ตำแหน่ง 90 องศา = ใช้ duty rate 7.5ตำแหน่ง 180 องศา = ใช้ duty rate 12.55. การต่อสายสัญญาณ- เนื่องจากกระแสจากบอร์ด RPI ไปเลี้ยงเซอร์โวไม่พอ จึงใช้ไฟจากแหล่งภายนอก โดยต่อดังนี้- pin 22 ของ RPI ต่อกับสายสัญญาณ pwm ของ Servo- ต่อสายไฟเลี้ยงและกราวด์เข้ามอเตอร์ 6. เขียนโปรแกรมด้วย Python ดังต่อไปนี้import RPi.GPIO as IOimport timeIO.setwarnings(False)IO.setmode (IO.BOARD)IO.setup(22,IO.OUT)p = IO.PWM(22,50)# GPIO22 as PWM output, with 50Hz frequencyp.start(7.5) # generate PWM signal with 7.5% duty cyclewhile 1: # วนลูป (loop) ไม่รู้จบ… p.ChangeDutyCycle(7.5) # ไปที่ตำแหน่ง 90 องศา… time.sleep(1)… p.ChangeDutyCycle(12.5) # ไปที่ตำแหน่ง 180 องศา… time.sleep(1)… p.ChangeDutyCycle(2.5) # ไปที่ตำแหน่ง 0 องศา… time.sleep(1)

โพสต์โดย Chakkrit Saengkaew บน 15 มกราคม 2018

CR: https://www.facebook.com/chakrit.saengkaew

>

Mayong_ness

อยากเขียนเรื่องราวข้อมูลต่างๆ เพื่อให้คนที่สนใจได้เข้ามาอ่าน..อาจจะไม่ได้เขียนทุกวัน..นานๆที่มาเขียนนะคับ..ถ้าข้อมูลใดไม่ถูกต้องก็ ติชมกันได้นะคับ..