آموزش آردوینوآموزش رزبری پایآموزش ها

آموزش کنترل آردوینو با رزبری پای و pyFirmata + فیلم

سلام. آموزش کنترل آردوینو با رزبری پای و pyFirmata را آماده کردیم.

برقراری ارتباط بین Raspberry pi و Arduino

اگرچه Raspberry Pi و Arduino از نظر کاربرد و ساختار دو سخت افزار مختلف هستند، اما هر دو به عنوان دو سیستم عامل سخت افزاری متن باز رقیب سر سخت در نظر گرفته می شوند. آنها هر دو محبوبیت و پشتیبانی بسیار خوبی دارند.در این آموزش به شما نشان میدهیم که چگونه میتوان با استفاده از یک برد رزبری پایو برنامه نویسی پایتون، آردوینو را کنترل کنیم.

همچنین آموزش برقراری ارتباط بین آردوینو و رزبری پای با ارتباط سریال را ببینید.

ما از سیستم عامل PyFirmata برای دادن دستورات به آردوینو با استفاده از اسکریپت Raspberry Pi پایتون استفاده خواهیم کرد. PyFirmata در اصل یک بسته کتابخانه ای از پیش ساخته برنامه پایتون است که می تواند در آردوینو نصب شود تا ارتباط سریالی بین اسکریپت پایتون بر روی هر رایانه و آردوینو فراهم شود. این بسته پایتون می تواند دسترسی به خواندن و نوشتن روی هر پین Arduino را فراهم کند. بنابراین در اینجا با استفاده از Raspberry pi برنامه Python را روی آردوینو اجرا خواهیم کرد. در این آموزش از این کتابخانه استفاده خواهیم کرد و از این موارد در برد Arduino برای کنترل آردوینو با استفاده از Raspberry Pi استفاده خواهیم کرد.

موراد مورد نیاز

  1. Raspberry Pi با سیستم عامل Raspbian که در آن نصب شده است
  2. Arduino Uno یا هر برد آردوینو دیگر
  3. کابل USB آردوینو
  4. ال ای دی

در این آموزش از External Monitor با استفاده از کابل HDMI برای ارتباط با Raspberry Pi استفاده می کنم. اگر مانیتور ندارید ، می توانید از سرور SSH Putty یا سرور VNC برای اتصال به Raspberry pi با استفاده از لپ تاپ یا کامپیوتر استفاده کنید.

نصب PyFirmata در آردوینو با استفاده از رزبری پای

برای بارگذاری سیستم عامل PyFirmata در آردوینو ، باید Arduino IDE را در Raspberry Pi نصب کنیم. برای نصب این مراحل را دنبال کنید.

مرحله 1: رزبری پای را به اینترنت وصل کنید. ترمینال را باز کرده و دستور زیر را تایپ کرده و کلید enter را بزنید

sudo apt-get -y install arduino python-serial mercurial

چند دقیقه صبر کنید ، زمان خواهد برد. این دستور Arduino IDE را در Raspberry Pi شما نصب می کند.

مرحله 2: اکنون ، ما فایلهای pyFirmata را با استفاده از github داده شده نصب خواهیم کرد.

git clone https://github.com/tino/pyFirmata

سپس دستور زیر را اجرا کنید:

اگر میخواهید آردوینو را به صورت اصولی و پروژه محور (برنامه نویسی حرفه ای، ارتباط آردوینو با اندروید، ساخت ربات با آردوینو) یاد بگیرید، روی دوره آموزش آردوینو کلیک کنید.
cd pyFirmata
sudo python setup.py install

مرحله 3: همه پرونده ها و تنظیمات مورد نیاز را نصب کرده ایم. اکنون ، برد آردوینو را با استفاده از کابل USB به Raspberry Pi وصل کنید و Arduino IDE را با تایپ کردن آردوینو در پنجره ترمینال راه اندازی کنید.

برقراری ارتباط بین Raspberry pi و Arduino

مرحله 4:  سپس دستور lsusb را تایپ کنید تا بررسی کنید آیا آردوینو با رزبری پای شما ارتباط دارد یا خیر.

در Arduino IDE ، به Tools بروید و برد و Serial Port خود را انتخاب کنید.

مرحله 5: سیستم عامل PyFirmata را در Arduino با کلیک کردن روی File -> Examples ->  Firmata -> Standard Firmata بارگذاری کرده و سپس بر روی دکمه upload کلیک کنید. مطابق شکل زیر

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

نصب PyFirmata در آردوینو با استفاده از رزبری پای

ما با موفقیت سیستم عامل PyFirmata را در برد آردوینو نصب کردیم. اکنون ، ما می توانیم آردوینو را با استفاده از Raspberry Pi کنترل کنیم. برای تست موفقیت آمیز بودن برقراری ارتباط ما کد پایتون را وارد میکنیم که ال ای دی متصل به برد Arduino چشمک بزند.

برنامه نویسی در رزبری پای برای آردوینو

برای بخش کدگذاری ، برای درک بهتر باید مستندات pyFirmata را بخوانید. ما برای نوشتن کد خود از توابع pyFirmata استفاده خواهیم کرد.  بیایید نوشتن کد را شروع کنیم. کد کامل در انتهای آموزش قرار داده شده است.

ویرایشگر متن مورد علاقه خود را در Raspberry Pi باز کنید و کتابخانه pyFirmata را وارد کنید.

import pyfirmata

پین روی آردوینو را تعیین کنید که LED به آن وصل است.

led_pin = 9

حال باید نام پورت سریال را بنویسیم که برد Arduino با استفاده از تابع pyfirmata.Arduino () متصل شده و سپس با اختصاص پورت در متغیر board ، نمونه ای بسازد.

board = pyfirmata.Arduino("/dev/ttyACM0")
print "Code is running”

در حلقه while ، با استفاده از board.digital [] و استفاده از write() ال  ای دی را روشن و خاموش میکنیم. و با استفاده از عملکرد board.pass_time به آن تاخیر اضافه میکنیم.

while True:
    board.digital[led_pin].write(0)
    board.pass_time(1)        
    board.digital[led_pin].write(1)
    board.pass_time(1)

کد ما آماده است ، با قرار دادن پسوند .py به نام پرونده ، این کد را ذخیره کنید.

command terminal را باز کنید و برای اجرای کد روی صفحه آردوینو ، Python blink.py را تایپ کنید. اطمینان حاصل کنید که برد آردوینو با استفاده از کابل USB با برد Raspberry Pi شما متصل شده است.

اکنون ، می توانید چشمک زدن ال ای دی را ببینید. در پایان کد کاملی برای چشمک زدن LED با استفاده از pyFirmata ارائه شده است.

محو شدن LED در آردوینو با استفاده از pyFirmata

اکنون ، ما برای محو شدن LED ، کدی را برای شما قرار خواهیم داد تا شما را با عملکردهای pyFirmata بیشتر آشنا کند. این کد مانند کد قبلی آسان است. برای افزایش روشنایی و برای کاهش روشنایی باید از دو عدد استفاده کنید.

در این کد ، پین ها را به روش های مختلف مانند

 led = board.get_pin(‘d:9:p’)

تعریف کرده ایم که d به معنی پین دیجیتال است. این عملکرد کتابخانه pyFirmata است. در پایان کد کاملی برای محو کردن LED با استفاده از pyFirmata ارائه شده است.

اکنون می توانید سنسورهای بیشتری به سیستم خود اضافه کنید و آن را جذاب تر کنید، سایر پروژه های Arduino ما را بررسی کنید و سعی کنید با استفاده از اسکریپت Raspberry pi و python آنها را بسازید.

فیلم عملکرد ارتباط Raspberry pi و Arduino

فیلم زیر به شما در درک کامل این آموزش کمک میکند.

کد کامل پروژه

کد کامل پروژه روشن و خاموش کردن ال ای دی متصل به آردوینو با برنامه نویسی در رزبری پای در باکس زیر آورده شده است.

import pyfirmata

led_pin = 9
board = pyfirmata.Arduino("/dev/ttyACM0")

while True:
    board.digital[led_pin].write(0)
    board.pass_time(1)
    board.digital[led_pin].write(1)
    board.pass_time(1)

کد کامل پروژه محو کردن ال ای دی متصل به آردوینو با برنامه نویسی در رزبری پای در باکس زیر آورده شده است.

import time
import pyfirmata

delay = 0.3
brightness = 0
board = pyfirmata.Arduino("/dev/ttyACM0")
led = board.get_pin('d:9:p')    
        
while True:
# افزایش
    for i in range(0, 10):
        brightness = brightness + 0.1
        print "Setting brightness to %s" % brightness
        led.write(brightness)
        board.pass_time(delay)
# کاهش
    for i in range(0, 10):
        print "Setting brightness to %s" % brightness
        led.write(brightness) 
        brightness = brightness - 0.1     
        board.pass_time(delay)

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید
امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
محمد رحیمی

محمد رحیمی

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

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

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