# المحرك

يحتوي OpenMV على منفذ إدخال/إخراج (IO) لتشغيل جميع أنواع المحركات الكهربائية.

## المحرك الخطوي (Stepping motor)

### ما هو المحرك الخطوي

المحرك الخطوي هو محرك كهربائي يعمل بتحكم حلقة مفتوحة (open-loop) ويمكنه تحويل
إشارة النبضة الكهربائية إلى إزاحة زاوية أو إزاحة خطية، وهو العنصر
الرئيسي المزوّد للطاقة في أنظمة التحكم الرقمي الحديثة، ويُستخدم على
نطاق واسع جدًا.

مثل الطابعات ثلاثية الأبعاد والأذرع الميكانيكية.

### مثل الطابعات ثلاثية الأبعاد والأذرع الميكانيكية

يمكن استخدام العديد من الشرائح والوحدات للتحكم في المحرك الخطوي. نستخدم
وحدة بسيطة تسمى EasyDriver.

ببساطة، يتم التحكم في الاتجاه من خلال dir، وعند إرسال نبضة إلى step،
يتحرك المحرك.

![](/assets/06-07-001.jpg)

### التوصيل

![](/assets/06-07-002.jpg)

## تثبيت الوحدة (module)

[كود الوحدة موجود في هذا
الرابط](http://book.openmv.cc/module/write-module-motor.html)

احفظ كود هذا الصنف في ملف باسم stepper.py وضعه في المجلد الجذري لجهاز
OpenMV.

## الكود

```python
# التحكم بالمحرك الخطوي - بواسطة: 小智智 - الأحد 2 أبريل 2017

from pyb import Pin

from stepper import Stepper

import time

step_pin = Pin('P0')
dir_pin = Pin('P1')

my_stepper = Stepper(step_pin,dir_pin)

print("relative angle move test begin:", my_stepper.read_pos())
my_stepper.rel_angle(180)#تحكم بزاوية نسبية
print("relative angle move test end:", my_stepper.read_pos())

time.sleep_ms(1000)

print("steps angle move test end:", my_stepper.read_pos())
my_stepper.steps(-400)#تحكم بنبضة خطوية
print("steps angle move test end:", my_stepper.read_pos())

time.sleep_ms(1000)

print("absolute angle move test begin:", my_stepper.read_pos())
my_stepper.abs_angle(0)#تحكم بزاوية مطلقة
print("absolute angle move test end:", my_stepper.read_pos())

time.sleep_ms(1000)
```

## محرك التيار المستمر (DC Motor)

#### الدرس 26 - وحدة توسعة المحرك للتحكم بمحرك التيار المستمر: [https://singtown.com/video](https://singtown.com/video)

### ما هو محرك التيار المستمر

سرعة دوران محرك التيار المستمر تتناسب طرديًا مع الجهد الكهربائي.

### وحدة التشغيل

يمكن للعديد من وحدات التشغيل تشغيل محرك التيار المستمر، وهنا نستخدم
TB6612FNG، وهو جسر مزدوج من نوع H.

![](/assets/06-07-003.jpg)

### التوصيل

![](/assets/06-07-004.jpg)

### الكود

```python
سيُضاف لاحقًا
```

## المؤازر (Servo)

يحتوي OpenMV2 على طرفين للمؤازر، P7 وP8

يحتوي OpenMV3 على ثلاثة أطراف للمؤازر، P7 وP8 وP9

### التوصيل

![](/assets/06-07-005.jpg)

### التحقق من الطاقة

المؤازر جهاز يستهلك تيارًا عاليًا ويجب تزويده بمصدر طاقة خارجي (منظم جهد،
بطارية ليثيوم...). لا يمكن لمنفذ USB تزويد المؤازر بالطاقة!

### الكود

```python
# مثال التحكم بالمؤازر
#
# يوضح هذا المثال كيفية استخدام كاميرا OpenMV للتحكم بالمؤازرات.

import time
from pyb import Servo

s1 = Servo(1) # P7
s2 = Servo(2) # P8
#s3 = Servo(3) # P9 فقط لـ OpenMV3 M7
while(True):
    for i in range(-90,90):
        s1.angle(i)
        s2.angle(i)
        time.sleep_ms(10)
    for i in range(90,-90):
        s1.angle(i)
        s2.angle(i)
        time.sleep_ms(10)
```

## PCA9685 يوصل عدة مؤازرات (multiple servos)

رابط المنتج:
[https://singtown.com/product/49277](https://singtown.com/product/49277)

#### الدرس المرئي 25 - pca9685 للتحكم بعدة مؤازرات: [https://singtown.com/learn/50057/](https://singtown.com/learn/50057/)



تستخدم وحدة PCA9685 طرفين فقط (بروتوكول I2C) للتحكم في 16 قناة PWM،
أي 16 مؤازرًا أو 16 مصباح LED. بل يمكنك حتى توصيل 62 وحدة، باستخدام
طرفين فقط، والتحكم في 992 قناة PWM!

التوصيل

![](/assets/06-07-006-01.jpg)

الكود

![](/assets/06-07-007.jpg)

اضغط على تشغيل (Run)
