کنترل آردوینو با رزبری پای pyFirmata
کنترل آردوینو با رزبری پای pyFirmata
اگرچه Raspberry Pi و Arduino از نظر کاربرد و ساختار دو سخت افزار متفاوت هستند ، اما هر دو به عنوان دو پلتفرم سخت افزاری منبع باز با یکدیگر در نظر گرفته می شوند.
هر دو جامعه و پشتیبانی بسیار قوی دارند.
بخوانید : پروگرام آردوینو با بلوتوث
امروز ما کمی چیزها را تغییر خواهیم داد ، و به شما نشان خواهیم داد که چگونه می توانیم از هر دو آنها استفاده کنیم.
اگر هر دو برد آردوینو و رزبری پای دارید ، این مقاله نحوه استفاده از رزبری پای و پایتون برای کنترل آردوینو را به شما آموزش می دهد
ما از سیستم عامل PyFirmata برای دستور دادن به Arduino با استفاده از اسکریپت Raspberry Pi python استفاده خواهیم کرد.
PyFirmata اساساً یک بسته کتابخانه از پیش ساخته شده برنامه پایتون است که می تواند در آردوینو نصب شود تا امکان ارتباط سریال بین اسکریپت پایتون در هر رایانه و آردوینو را فراهم کند.
این بسته پایتون امکان خواندن و نوشتن هر پین روی آردوینو را فراهم می کند.
بنابراین در اینجا ما برنامه پایتون را با استفاده از Raspberry pi روی آردوینو اجرا خواهیم کرد.
بنابراین در این آموزش ما از این کتابخانه استفاده خواهیم کرد و در صفحه آردوینو از این برای کنترل Arduino با استفاده از Raspberry Pi استفاده خواهیم کرد.
بخوانید : کنترل ماتریس 8×8 با آردوینو
سحت افزار مورد نیاز ( می توانید تمام سخت افزار را با بهترین قیمت از وی تات تهیه فرمایید )
-
Raspberry با سیستم عامل Raspbian OS
-
Arduino Uno
-
Arduino USB cable
-
LED
آموزش نصب Raspbian رزبری پای 4
در این آموزش من از External Monitor با استفاده از کابل HDMI برای ارتباط با Raspberry Pi استفاده می کنم.
اگر مانیتور ندارید ، می توانید از سرور SSH Putty یا VNC برای اتصال به Raspberry pi با استفاده از Laptop یا رایانه استفاده کنید.
اگر مشکلی پیدا کردید ، با راهنمای Raspberry Pi ما مجله وی تات مراجعه کنید
برای راحتی شما مقالات مهم رزبری پای را در زیر می آوریم :
لوازم مورد نیاز رزبری پای 4 برای شروع به کار
آموزش نصب Raspbian رزبری پای 4
آموزش آپدیت رزبری پای 4 Raspbian
تنظیم موس و کیبورد در Raspbian
نصب PyFirmata در Arduino با استفاده از Raspberry Pi
برای بارگذاری میان افزار PyFirmata در آردوینو ، باید Arduino IDE را در Raspberry Pi نصب کنیم.
برای نصب این مراحل را دنبال کنید:
بخوانید : ساخت رسیور IR با استفاده از آردوینو
مرحله 1:
– Raspberry Pi را به اینترنت وصل کنید. ترمینال دستور را باز کرده و دستور زیر را تایپ کرده و enter را بزنید
sudo apt-get -y install arduino python-serial mercurial
چند دقیقه صبر کنید ، زمان می برد.
این دستور Arduino IDE را در Raspberry Pi شما نصب می کند.
مرحله 2:
– اکنون ، ما با استفاده از github داده شده ، پرونده های pyFirmata را نصب خواهیم کرد:
بخوانید : کنترل موتور سروو با استفاده از آردوینو
git clone https://github.com/tino/pyFirmata
سپس دستور زیر را اجرا کنید:
cd pyFirmata
sudo python setup.py install
]مرحله 3:
– ما همه پرونده ها و تنظیمات مورد نیاز را نصب کرده ایم.
اکنون ، با استفاده از کابل USB برد Arduino خود را با Raspberry Pi متصل کرده و با تایپ کردن arduino در پنجره ترمینال ، Arduino IDE را راه اندازی کنید.
بخوانید : آشکارساز حرکت با استفاده از سنسور PIR
مرحله 4:
– سپس دستور lsusb را تایپ کنید تا بررسی کنید آردوینو به تمشک پی شما متصل است یا خیر.
در Arduino IDE ، به ابزار بروید و تخته و Serial Port خود را انتخاب کنید.
مرحله 5:
– با کلیک روی پرونده -> مثالها -> Firmata -> Firmata استاندارد ، سیستم عامل PyFirmata را در Arduino بارگذاری کنید و سپس روی دکمه بارگذاری کلیک کنید.
همانطور که در زیر نشان داده شده است.
ما میان افزار pyFirmata را با موفقیت در برد آردوینو نصب کردیم.
اکنون ، ما می توانیم Arduino خود را با استفاده از Raspberry Pi کنترل کنیم.
برای نمایش ، با نوشتن کدهای پایتون در Raspberry Pi ، یک LED بر روی Arduino چشمک می زنیم و کم رنگ می کنیم.
توضیحات کد
برای قسمت کدگذاری ، باید اسناد pyFirmata را برای درک بهتر بخوانید.
برای نوشتن کد خود از توابع pyFirmata استفاده خواهیم کرد.
با دنبال کردن لینک می توانید اسناد pyFirmata را پیدا کنید.
بنابراین بیایید شروع به نوشتن کد کنیم
ویرایشگر متن مورد علاقه خود را در Raspberry Pi باز کرده و کتابخانه pyFirmata را وارد کنید.
import pyfirmata
برای اتصال LED پین را روی Arduino تعریف کنید
led_pin = 9
اکنون ، باید نام پورت سریال را که با استفاده از تابع pyfirmata.Arduino متصل می شود ، بنویسیم و سپس با اختصاص متغیر پورت ، یک نمونه بسازیم.
رزبری پای
board = pyfirmata.Arduino("/dev/ttyACM0") print "Code is running”
در حلقه while ، با استفاده از تابع board.digital [] پین led را HIGH و low قرار دهید. با استفاده از تابع 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 به نام پرونده ، این کد را ذخیره کنید.
ترمینال دستور را باز کرده و python blink.py را تایپ کنید تا کد را روی صفحه آردوینو اجرا کنید. اطمینان حاصل کنید که برد آردوینو با استفاده از کابل USB با برد Raspberry Pi متصل شده است.
اکنون ، می توانید Blinking LED را بر روی صفحه آردوینو مشاهده کنید.
در انتها کد کامل چشمک زدن LED با استفاده از pyFirmata آورده شده است.
کم رنگ شدن LED در آردوینو با استفاده از pyFirmata
اکنون ، برای محو شدن شما با توابع pyFirmata کدی برای محو شدن LED می نویسیم.
این کد مانند کد قبلی آسان است.
شما باید از دو حلقه استفاده کنید ، یکی برای افزایش روشنایی و دیگری برای کاهش روشنایی.
در این کد ، پین ها را به روش های مختلفی مانند led = board.get_pin ‘d: 9: p’ تعریف کرده ایم که d به معنی پین دیجیتال است.
این عملکرد کتابخانه pyFirmata است. برای جزئیات بیشتر مستندات را بخوانید.
در انتها کد کامل Fading LED با استفاده از pyFirmata آورده شده است.
اکنون ، می توانید حسگرهای بیشتری به سیستم خود اضافه کرده و باعث خنک شدن آن شوید ، سایر پروژه های Arduino ما را بررسی کرده و با استفاده از Raspberry pi و اسکریپت پایتون ساخت آنها را امتحان کنید.
کد کامل برنامه کنترل آردوینو با رزبری پای pyFirmata
Python code for LED blink:
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)
Python code for Fading LED:
import time
import pyfirmata
delay = 0.3
brightness = 0
board = pyfirmata.Arduino(“/dev/ttyACM0”)
led = board.get_pin(‘d:9:p’)
while True:
# increase
for i in range(0, 10):
brightness = brightness + 0.1
print “Setting brightness to %s” % brightness
led.write(brightness)
board.pass_time(delay)
# decrease
for i in range(0, 10):
print “Setting brightness to %s” % brightness
led.write(brightness)
brightness = brightness – 0.1
board.pass_time(delay)
این پروژه توسط گروه وی تات انجام شده wetat.ir
کپی با دکر منبع بلامانع است
]