همه چیز در مورد زبان برنامه نویسی Raspberry Pi

Raspberry Pi (رزبری پای) در اصل یک برد میکرو‌کنترلر می‌باشد که قابل برنامه‌ریزی است که دستورات را روی یک تراشه می‌گیرد و اجرا می‌کند. شما با برنامه نویسی Raspberry Pi روی این تراشه می‌توانید رزبری پای را به هرچیزی که می خواهید تبدیل کنید.

Raspberry Pi در ساختار خود از تراشه‌های ARM استفاده می‌کند که از محصولات شرکت برادکام (Broadcom) می‌باشد. بردهای Raspberry Pi را می‌توان یک رایانه‌ی کوچک در نظر گرفت که در نمونه‌های جدید آن درگاه‌های ورودی و خروجی نظیر USB ,HDMI و … نیز قرار داده‌اند.

بردهای Raspberry Pi

بردهای Raspberry Pi را می توان از طریق کابل HDMI به مانیتور و یا تلویزیون وصل کرد و حتی می‌توان با استفاده از کابل اینترنت و ورودی شبکه به اینترنت وصل شد. با وصل‌شدن به اینترنت می‌توان این برد را از راه دور نیز کنترل کرد و دستور داد و یا گزارش گرفت.

 

ویدیو پییشنهادی : آموزش پایتون
آموزش پایتون

 

هر رایانه برای اینکه بتوان از آن استفاده کند و بین کاربر و آن ارتباط برقرار نماید، نیاز به سیستم عامل دارد که در مورد این رایانه‌های کوچک نیز مستثنی نیست و سیستم عامل‌های زیادی برای آن طراحی و ارائه شده‌اند که می‌توان از آنها:

  1. آرچی لینوکس
  2. Open ELEC
  3. Pidora
  4. Rasbbmc
  5. RISC OS
  6. Rasbbian 
  7. لینوکس

را نام برد که در نسخه‌های جدیدتر این بردها ویندوز 10 نیز قابل استفاده می‌باشد.

ایده اصلی Raspberry Pi برای ایجاد یک وسیله‌ای مقرون‌ به ‌صرفه بود و فقط شامل مفاهیم پایه باشد. همراه آن یک محیط برنامه‌نویسی و اتصالات سخت‌افزاری که برای پروژه‌‌های الکترونیکی مورد استفاده قرار می‌گیرد.

طرز کار برنامه نویسی Raspberry Pi

Raspberry Pi یا (برنامه نویسی برد) بصورت Open Source یا متن باز کار می‌کند. این نمونه از رایانه‌ها هارد دیسک ندارد اما با استفاده از حافظه SD، کار بوت و راه اندازی سیستم را انجام می‌دهند.

زبان Raspberry Pi دارای حجمی در حدود ۴ گیگابایت می‌باشد و سرعت پاسخ‌گویی، کارایی و قابلیت‌های خوبی دارد. یک شماتیک کلی از رزبری پای را در شکل زیر می‌توانید مشاهده کنید.

 

طرز کار برنامه نویسی Raspberry Pi

برنامه نویسی Raspberry Pi با زبان C

در این قسمت ما برای برنامه نویسی رزبری پای قصد داریم با کمک سیستم عامل لینوکس این کار را انجام دهیم و برای دیدن تصویر رابط گرافیکی Raspberry Pi از طریق لپ تاپ با شبکه اترنت استفاده خواهیم کرد. دستورات در سیستم عامل لینوکس بسیار شبیه به (MS-DOS) می‌باشد که در لینوکس به این خط فرمان ترمینال (TUI) گفته می‌شود.

در لینوکسی که مخصوص Raspberry Pi طراحی شده است، به طور پیش فرض دو نرم افزار LX Terminal و Root Terminal وجود دارد که برای باز کردن آنها می‌توانید با استفاده از موس و زدن دکمه‌ی Applications که در گوشه‌ی سمت چپ و پایین صفحه است استفاده کنید. (مطابق تصویر زیر)

 

برنامه نویسی Raspberry Pi با زبان C

نرم افزار LX Terminal و Root Terminal

همان‌طور که در تصویر بالا میبینید هر دو نرم افزار LX Terminal و Root Terminal در منو هستند و می‌توانید استفاده کنید. بعد از باز کردن برنامه LX Terminal صفحه زیر را خواهید دید که باز می‌شود و دستورات داخل آن به این معنی هستند:

 

نرم افزار LX Terminal برای برنامه نویسی Raspberry Pi

 

  • Root: سطح دسترسی است که با آن در حال کار در لینوکس هستیم که کاربر Root مانند ادمین در ویندوز است و دسترسی نامحدود به همه‌ی فایل‌ها و تنظیمات در لینوکس است.
  • Raspberry Pi: نام رایانه می باشد.
  • ” /: “: فایل‌های سیستمی است که در پوشه Root قرار دارند.
  • Home: نام پوشه‌ای است که اطلاعات هر کاربر لینوکس را می‌توان در آن و در پوشه‌ای به نام همان کاربر یافت.
  • Pi: پوشه‌ای را نشان می دهد که کاربر pi همه اطلاعاتش را در آن ذخیره می کند.
  • Mkdir: دستور ساخت پوشه‌ی جدید در لینوکس (بهتر است هر برنامه را در پوشه ای جدا ذخیره کنیم). این دستور یک پوشه جدید در هر مسیری که قرار دارید ایجاد می‌کند.

 

 

اگر بخواهید پوشه‌های موجود در مسیر را ببینید باید از دستور “Is” استفاده کنید و اگر از دستور “ls –color” استفاده کنید پوشه‌ها و فایل‌های موجود در هر مسیر با رنگ‌های مختلف نشان داده می‌شوند.

(پوشه‌ها با رنگ آبی تیره، فایل‌های تصویر با رنگ صورتی و فایل‌های اجرایی با سبز، فایل‌های زیپ با رنگ قرمز و فایل‌های متنی با رنگ سفید خواهند بود)

دستور cd در برنامه نویسی Raspberry Pi

با استفاده از دستور cd می‌توانید وارد پوشه ها شوید:

 

 

الان برای این که بتوانیم شروع به برنامه نویسی کنیم نیاز به یک ویرایشگر خواهیم داشت . برای برنامه‌های لینوکس یک ویرایشگر بسیار مشهور وجود دارد که برنامه نویسان سرتاسر جهان از آن استفاده می‌کنند. این ویرایشگر کد VIM می‌باشد‌ که می‌توانید آن را دانلود و روی Ubuntu نصب کنید. برای انجام این کار باید دستور زیر را در خط فرمان بنویسید.

 

 

الان که کار نصب برنامه تمام شده است برای شروع دستور زیر را تایپ کنید:

VIM <filename>

در دستور بالا به جای filename نام فایل را بنویسید. اگر فایل موجود بود که از آن استفاده می‌کند اما اگر فایل نبود لینوکس به طور خودکار فایل را ایجاد می‌کند. در این مثال ما فایل جدیدی با نام “Hello_world.c” را با استفاده از VIM ساختیم که برای انجام برنامه نویسی Raspberry Pi به زبان C آماده است.

 

مقاله پییشنهادی : دانستنی های هک با پایتون
دانستنی های هک با پایتون

 

یک ویژگی خوب در VIM استفاده از هایلات کننده در متن برنامه نویسی است که برای فعال کردن آن در دستور “syntax on” را وارد کنید. در عکس زیر می‌توانید کد مربوط به دستور نوشتن “سلام دنیا” را ببینید.

 

 

با تمام شدن کار نوشتن برنامه می‌توانید با زدن دکمه Esc به حالت عادی برگردید و اگر خواستید کدهای نوشته شده را ببینید، می‌توانید از دستور “set nu” استفاده کنید. جهت ذخیره کردن تغییرات اعمال شده در حالت فرمان باید کلید W را زده و enter کنید همچنین برای خروج از VIM باید کلید q را زده و enter را بزنید.

برنامه نویسی Raspberry Pi با پایتون

زبان برنامه نویسی پایتون امروزه کاربران زیادی دارد و روز به روز هم به تعداد آنها افزوده می‌شود، شاید برای شروع کمی سخت به نظر برسد ولی با شروع مرحله به مرحله این زبان جذاب خواهد شد. برای اینکه شروع به نوشتن برنامه با این زبان کنید نیاز به برد Raspberry pi دارید.

همچنین باید با پایه‌های ورودی و خروجی برد Raspberry pi نیز آشنا باشید و یاد بگیرید که چطور آن ها را با زبان پایتون و کتابخانه Gpiozero و Rpi.GPIO کنترل کنید.

معرفی پایه های GPIO رزبری پای

GPIO در اصل مخفف general-purpose input/output می‌باشد و برد‌های رزبری پای 40 پایه دارند که می‌توانید از آن ها برای ارتباط با دستگاه‌ها و قطعات دیگر استفاده کنید.

شما اگر روی Raspberry pi‌تان سیستم عامل Raspbian desktop را نصب کرده باشید، با وارد کردن دستور pinout در ترمینال می‌توانید ترتیب پایه‌ها را ببینید.

 

نرم افزار LX Terminal برای برنامه نویسی Raspberry Pi

 

هر کدام از این پایه‌ها قابلیت‌های مختلفی دارند که می‌توانید از آن‌ها برای اتصال و ارتباط با قطعات جانبی استفاده کنید.

کتابخانه Gpiozero با پایتون

این کتابخانه با استفاده از زبان پایتون نوشته شده است و جهت کنترل‌کردن پایه‌های ورودی و خروجی رزبری پای می باشد.

 

 

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

این کتابخانه روی سیستم عامل رزبین به صورت پیش فرض نصب می‌باشد اما اگر از سیستم عامل دیگر استفاده می‌کنید می‌توانید با استفاده از دستورات زیر آن را نصب کنید.:

  1. پایتون 3: sudo pip3 install gpiozero
  2. پایتون 2: sudo pip install gpiozero

بعد برای استفاده از این کتابخانه کافیست آن را به محیط برنامه نویسی پایتون Import کنید که از دو دستور زیر می‌توانید استفاده کنید.

  1. روش اول:

from gpiozero import [name of class]

  1. روش دوم:

import gpiozero

در ادامه چند مورد از دستورات پایه‌ای برای این کتابخانه را ارائه می‌کنیم که کاربرد زیادی دارند.

دستورات مرتبط با LED

تعریف پایه‌ای که LED به آن متصل شده است:

led = LED(# of pin)

  • روشن کردن: on()
  • خاموش کردن: off()
  • تغییر وضعیت: toggle() (عوض کردن وضعیت: اگر روشن باشد خاموش و اگر خاموش باشد، روشن می‌شود.)
  • چشمک زدن: blink()

دستورات مرتبط با کلید

تعریف پایه‌ای که کلید به آن متصل شده است:

button = Button(# of a pin)

صبر می‌کند تا کلید فشرده شود و سپس دستورات بعدی را انجام می‌دهد:

wait_for_press ()

می‌کند تا کلید رها شود و سپس دستورات بعدی را انجام می‌دهد:

wait_for_release ()

اگر کلید فشرده شده باشد مقدار True و در غیر این صورت False را برمی‌گرداند:

is_pressed

وقتی کلید فشرده شود، عملی که برای آن تعریف شده را انجام می‌دهد:

when_pressed

وقتی کلید رها شود، عملی که برای آن تعریف شده را انجام می‌دهد:

when_released

دستورات مرتبط با بارگراف

تعریف پایه‌هایی که بارگراف به آن‌ها متصل شده‌اند:

graph = LEDBarGraph(# of pins)

روشن کردن تعدادی از LED‌ها

graph.value = value

دستورات مرتبط با بازر

تعریف پایه‌ای که بازر به آن متصل شده است:

buzzer = Buzzer (# of a pin)

  • روشن کردن: on()
  • خاموش کردن: off()
  • تغییر وضعیت: toggle()

دستورات مرتبط با RGB LED

تعریف پایه‌هایی که RGB به آن‌ها متصل شده است:

led = RGBLED(red=#, green=#, blue=#)

  • روشن کردن رنگ قرمز: led.red = value
  • روشن کردن رنگ سبز: led.green = value
  • روشن کردن رنگ آبی: led.blue = value
  • روشن کردن تمام رنگ‌ها: on()
  • خاموش کردن تمام رنگ‌ها: off()
  • تغییر وضعیت: toggle()

دستورات مرتبط با LDR

تعریف پایه‌ای که سنسور شدت نور به آن متصل شده است:

sensor = LightSensor(# of a pin)

صبر می‌کند تا محیط تاریک شود و سپس دستورات بعدی را انجام می‌دهد:

wait_for_dark ()

صبر می‌کند تا محیط روشن شود و سپس دستورات بعدی را انجام می‌دهد:

wait_for_light ()

وقتی محیط تاریک باشد، عملی که برای آن تعریف شده را انجام می‌دهد:

light_detected

وقتی محیط تاریک باشد، عملی که برای آن تعریف شده را انجام می‌دهد:

when_dark

وقتی محیط روشن باشد، عملی که برای آن تعریف شده را انجام می‌دهد:

when_light

کتابخانه ی RPi.GPIO با پایتون

این کتابخانه هم روی سیستم عامل رزبین به صورت پیش‌فرض نصب شده است و شما برای استفاده از آن باید در محیط برنامه نویسی پایتون import کنید که با دستور زیر این کار انجام می‌شود:

import RPi.GPIO

چند مورد از دستورات پایه‌ی این کتابخانه نیز در ادامه آورده شده است:
– استفاده از شماره ی BCM پایه ها:

GPIO.setmode(GPIO.BCM)

– تعریف پایه به عنوان ورودی:

GPIO.setup(# of pin, GPIO.IN)

– تعریف پایه به عنوان خروجی:

GPIO.setup(# of pin, GPIO.OUT)

– مقدار‌دهی اولیه به خروجی:

GPIO.setup(# of pin, GPIO.OUT, initial=GPIO.HIGH)

خواندن مقدار پایه‌ی ورودی:

GPIO.input(# of pin)

مقداردهی به پایه‌ی خروجی:

GPIO.output(# of pin, state)

به مثالی از این نمونه‌ها دقت کنید:

کلید

سیم بندی:

برای شروع سیم‌بندی ابتدا کلید را به پایه 2 وصل کنید، این پایه بصورت پیش فرض pull-up می‌باشد.

 

پیش فرض pull-up

کدنویسی مربوط به کتابخانه‌ی Gpiozero

هر بار که دکمه را فشار داده و رها می‌کنید ، یک بار کار را انجام می‌دهد:

 

کد نویسی مربوط به کتابخانه ی Gpiozero 

 

این کار را با کتابخانه‌ی RPi.GPIO نیز می‌توانید به صورت زیر انجام دهید:

 

کد نویسی مربوط به کتابخانه ی Gpiozero 

دکمه خاموش کردن w / Gpiozero

 

کد نویسی مربوط به کتابخانه ی Gpiozero 

 

با فشار دادن و نگه داشتن دکمه به مدت 2 ثانیه، کامپیوتر شما خاموش می‌شود

مثالی دیگر:

روشن و خاموش کردن بازر با GPIO رزبری پای

شکل سیم‌بندی به صورت عکس زیر می‌باشد:

 

روشن و خاموش کردن بازر با GPIO رزبری پای

 

کد این مثال در کتابخانه Gpiozero به صورت زیر می‌باشد:

 

روشن و خاموش کردن بازر با GPIO رزبری پای

ساخت بازی با Raspberry Pi

هدف داشتن یک کنسول بازی که بتوان بازی‌های چند کنسول دیگر را در آن اجرا کرد نیت بسیاری از شرکت‌ها بود که امروزه به کمک برد Raspberry Pi و نرم افزار RetroPie می‌توان این کار را انجام داد. می‌توان با استفاده از این ابزار و نرم افزار یک کنسول طراحی کرد که بازی‌های آتاری، سگا، میکرو، نینتندو و حتی پلی‌استیشن را اجرا و بازی کرد.

برای راه اندازی و ساخت این کنسول همه‌کاره باید نرم افزار شبیه‌ساز را روی یک مینی کامپیوتر مانند رزبری پای 3 نصب کرد. رزبری پای یک برد با قیمت تقریبا ارزان می‌باشد که برای پروژه‌های کوچک و سبک رایانه ای، آموزشی و سرگرمی مورد استفاده قرار می‌گیرد.

 

 
اما نرم افزارهای شبیه‌ساز کنسول RetroPie نیز به صورت رایگان در اختیار کاربران قرار دارند که تحت سیستم عامل لینوکس کار می‌کنند.

نرم افزارهای شبیه‌ساز کنسول با توجه به سخت افزار برنامه ریزی می‌شوند تا بتوانند بازی‌های مورد نظر را دقیقا مشابه کنسول اصلی اجرا کنند. روش کار این شبیه‌ساز به این صورت است که ابتدا لیست بازی را نمایش داده و بعد از انتخاب بازی متناسب با کنسول بازی آن را اجرا می‌کند.

 

ساخت بازی با Raspberry Pi

مراحل راه‌اندازی کنسول بازی با برنامه نویسی Raspberry Pi

  • خرید سخت افزار
  • نصب نرم افزار
  • اسمبل سخت افزار
  • تنظیمات نرم افزار ( تنظیمات دسته بازی (سیم دار یا بی سیم) و تنظیمات زمان و صفحه‌ی نمایش
  • نصب بازی

مراحل راه اندازی کنسول بازی با Raspberry Pi

کاربرد اسکرچ در برنامه نویسی Raspberry Pi

امروزه نسخه 3 اسکرچ با نام Scratch Desktop بر روی بردهای Raspberry Pi قابل نصب و اجرا می‌باشد. اسکرچ در اصل یک زبان برنامه نویسی Visual است و بهتر است بدانید Visual یک زبان برنامه‌نویسی به صورت گرافیکی، دیداری و یا بصری است، یعنی این که در اسکرچ ما دستورات را تایپ نمی‌کنیم و فقط کافی است دستورات را که به صورت تصویر هستند را جابجا کنیم و در زیر هم با ترتیب خاص قرار دهیم.

به این روش از برنامه نویسی یعنی استفاده از دستورات که به شکل بلوک هستند blockly programming گفته می‌شود.

با استفاده از اسکرچ که روی Raspberry Pi قابل نصب و اجرا شده است و حتی نسخه 3 Scratch که قابلیت فارسی را نیز دارد، می‌توان دست به نوشتن برنامه‌های ساده و راحت برای سنین پایین زد.

با توجه به گرافیکی و جذاب بودن طراحی و همچین عدم نیاز به تایپ دستورات کار با این زبان برنامه نویسی روی برد های Raspberry Pi، بسیار جذاب خواهد بود. مخصوصا برای سنین پایین‌تر که یادگیری راحت‌تری هم به‌دنبال خواهد داشت.

در این مقاله سعی کردیم در ارتباط با برنامه نویسی Raspberry Pi و کاربردها و آموزش برخی از موراد استفاده این بردهای پرکاربرد را برای شما عزیزان ارائه دهیم که امیدواریم مفید بوده باشد.

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

همچنین ترکیب و استفاده از قطعات مختلف بر روی Raspberry Pi و همچنین اقدام به برنامه نویسی باعث رشد و شکوفایی استعداد در زمینه الکترونیک و کامپیوتر خواهد بود.