servo_control.py
# هذا العمل مرخص بموجب ترخيص MIT.
# حقوق النشر (c) 2013-2026 لشركة OpenMV LLC. جميع الحقوق محفوظة.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# مثال التحكم بمحرك السيرفو
#
# يوضح هذا المثال كيفية استخدام كاميرا OpenMV للتحكم بمحركات السيرفو.
#
# تحتاج المحركات السيرفو (servos) إلى إشارة PWM بتردد 50 Hz وعرض نبضة من 1000us إلى 2000us.
import time
from machine import PWM
# يشترك P0 و P1 في نفس قناة UTIMER لذا فهما بحاجة إلى
# أن يكون لها نفس التردد.
p0 = PWM("P0", freq=50, duty_ns=(2000 * 1000))
p1 = PWM("P1", freq=50, duty_ns=(2000 * 1000))
# يشترك P2 وP3 في نفس قناة UTIMER لذا يجب
# أن يكون لها نفس التردد.
p2 = PWM("P2", freq=50, duty_ns=(2000 * 1000))
p3 = PWM("P3", freq=50, duty_ns=(2000 * 1000))
while True:
for i in range(1000, 2000, 100):
p0.duty_ns(i * 1000)
p1.duty_ns(i * 1000)
p2.duty_ns(i * 1000)
p3.duty_ns(i * 1000)
time.sleep_ms(1000)
for i in range(2000, 1000, -100):
p0.duty_ns(i * 1000)
p1.duty_ns(i * 1000)
p2.duty_ns(i * 1000)
p3.duty_ns(i * 1000)
time.sleep_ms(1000)