آموزش رزبری پایپروژه رزبری پای

ساخت شیلد موتور درایور برای رزبری پای (هت کنترل موتور)

هت های رزبری پای مانند شیلد های آردوینو هستند. هت های رزبری پای را میتوان همان شیلد های رزبری پای بحساب آورد زیرا دارای ابعادی مشابه با برد رزبری پای هستند و به طور مستقیم بالای برد قرار میگیرند. هت های مختلفی در بازار موجود است و هر کدام عملکرد خاص خود را دارند. در این آموزش ما میخواهیم یک هت (شیلد) موتور درایور برای رزبری پای طراحی کنیم که با آن بتوانیم موتور های DC و استپ موتور ها را کنترل کنیم. از این هت میتوانید برای پروژه های رباتیک استفاده کنید.

مدار هت درایور موتور رزبری پای

شماتیک کامل درایور موتور L293D با Raspberry Pi در زیر نشان داده شده است. شماتیک با استفاده از EasyEDA ترسیم شده است.

مدار هت درایور موتور رزبری پای

این HAT متشکل از IC درایور موتور L293D ، ماژول صفحه نمایش LCD 16 * 2 و چهار دکمه فشاری است. ما همچنین پین هایی را برای ماژول SIM800 با تنظیم کننده 3.3V تهیه کرده ایم که با استفاده از تنظیم کننده متغیر LM317 برای پروژه های آینده طراحی شده است. شیلد موتور درایور رزبری پای مستقیماً در بالای Raspberry Pi قرار خواهد گرفت و کنترل ربات ها با استفاده از Raspberry Pi را آسان تر می کند.

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.

قطعات مورد نیاز شیلد موتور درایور رزبری پای

  1. رزبری پای
  2. آی سی L293D
  3. دکمه * 4
  4. مقاومت های نصب سطحی (1 × 10 کیلو اهم و  12 × 1 کیلو اهم)
  5. پتانسیومتر 1 × 10 کیلو اهم
  6. 4 × LED SMD
  7. رگولاتور ولتاژ LM317
  8. 2 × ترمینال پیچ
  9. ال سی دی کاراکتری 16*2
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

آی سی درایور موتور L293D

L293D یک آی سی موتور درایور با 16 پین است. همانطور که از نام آن پیداست، از این آی سی برای کنترل سروو موتور ها، استپر موتور ها، موتور های DC و … استفاده میشود. IC L293D می تواند همزمان دو موتور DC را هدایت کند. همچنین سرعت و جهت این دو موتور بصورت مستقل قابل کنترل است. این آی سی با دو پایه ورودی برق یعنی “Vcc1” و “Vcc2” ارائه می شود. Vcc1 برای تغذیه مدار منطقی داخلی که باید 5 ولت باشد ، و پایه Vcc2 برای تأمین انرژی موتورهایی که می توانند 4.5 ولت تا 36 ولت باشند استفاده می شود.

آی سی موتور درایور L293D

  • حداکثر جریان پیک موتور: 1.2A
  • حداکثر جریان مداوم موتور: 600mA
  • زمان انتقال: 300 نانومتر (در 5 ولت و 24 ولت)

ساخت PCB برای شیلد موتور درایور

شما میتوانید هم به صورت معمولی این مدار شیلد موتور درایور را طراحی کنید و هم میتوانید مدار را در یک برد PCB چاپ کنید. فایل های مورد نیاز برای چاپ PCB در فایل دانلودی انتهای صفحه قرار داده شده اند. اگر میخواهید PCB طراحی کنید، در نهایت چیزی مانند تصویر زیر را بدست خواهید آورد:

ساخت PCB برای شیلد موتور درایور

پیکربندی رزبری پای برای موتور درایور

قبل از برنامه نویسی Raspberry Pi ، باید کتابخانه های مورد نیاز را نصب کنیم. برای این منظور ابتدا سیستم عامل Raspberry Pi را با استفاده از دستورات زیر به روز کنید:

Sudo apt-get update 
Sudo apt-get upgrade

اکنون کتابخانه Adafruit_CharLCD را برای ماژول LCD نصب کنید. این کتابخانه مخصوص برد های LCD Adafruit است ، اما با سایر صفحه های LCD نیز کار می کند.

sudo pip3 install Adafruit-CharLCD

در اینجا در این پروژه ، ما Raspberry Pi را برای رانندگی دو موتور DC در جلو برنامه ریزی میکنیم. ما موتور ها را به جلو، به عقب، به راست و به چپ میرانیم و جهت را در نمایشگر ال سی دی نمایش میدهیم. کد کامل در انتهای صفحه در فایل دانلودی قرار داده شده است. در اینجا قسمت های مهم کد را بررسی میکنیم.

طبق معمول ، کد را با وارد کردن همه کتابخانه های مورد نیاز شروع میکنیم. از ماژول RPi.GPIO برای دسترسی به پین ​​های GPIO با استفاده از پایتون استفاده می شود. از ماژول time برای ایجاد تاخیر در برنامه استفاده می شود.

import RPi.GPIO as GPIO
import time
import board
import Adafruit_CharLCD as LCD

پس از آن ، پایه های GPIO را برای نمایشگر LCD و درایور موتور L293D تعریف میکنیم.

lcd_rs = 0
lcd_en = 5
lcd_d4 = 6
Motor1A = 4
Motor1B = 17
Motor1E = 12

حالا 6 پایه موتور را به عنوان پایه خروجی تنظیم میکنیم. چهار پین بعدی پین های خروجی هستند که از دو تای اول برای کنترل موتور راست و دو پین بعدی برای موتور چپ استفاده می شود. دو پایه بعدی نیز برای فعال کردن موتور راست و چپ هستند.

GPIO.setup(Motor1A,GPIO.OUT) 
GPIO.setup(Motor1B,GPIO.OUT)
GPIO.setup(Motor1E,GPIO.OUT)
GPIO.setup(Motor2A,GPIO.OUT) 
GPIO.setup(Motor2B,GPIO.OUT)
GPIO.setup(Motor2E,GPIO.OUT)

درون حلقه while ، دو موتور DC را در جهت جلو، عقب، چپ و راست در یک بازه دو ثانیه به طور همزمان حرکت میکنند.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
GPIO.output(Motor1A , 0)
                GPIO.output(Motor1B , 0)
                GPIO.output(Motor2A , 1)
                GPIO.output(Motor2B , 0)
                lcd.message  ('Left')
                print ("Left")
                sleep(2)
       #Forward
                GPIO.output(Motor1A , 1)
                GPIO.output(Motor1B , 0)
                GPIO.output(Motor2A , 1)
                GPIO.output(Motor2B , 0)
                lcd.message  ('Forward')
                print ("Forward")
……………………………………

تست هت کنترل موتور با رزبری پای

پس از پایان کار مونتاژ PCB ، هت موتور درایور را بر روی Raspberry Pi نصب کرده و کد را اجرا کنید. اگر همه چیز خوب پیش برود ، موتورهای DC متصل به Raspberry Pi هر دو ثانیه در جهت چپ ، جلو ، راست و معکوس حرکت می کنند و جهت موتور بر روی صفحه نمایش LCD نمایش داده می شود.

تست هت کنترل موتور با رزبری پای

موارد موجود در فایل : سورس کامل، فایل PCB

دانلود فایل های پروژه

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *