qt روم ر یرصتم -...

10
( کیوتسی برنامه نویزبری پای توسط زباند رسی بر برنامه نویQT ) ی در مورد مختصرQt : سی قدرتمند برنامه نوی ضعف های زبان نقطهگترین بزرکی از ی++C کی گرافی هایود کتابخانه در گذشته ، نب قوی آمدنجود نکته باعث به ود و اینبری بوبط کارخت رای سا براQt شد. Qt اس پلتفورم کریم ورک یک فری زبان برا++C بری ،بط کار در زمینه را بسیار قدرتمند هایی کتابخانه و دارا می باشدو بعدی و سه گرافیک د بعدی، شبکه، رتباط ا با سخت افزار، پردازش موازی وت ، کراس اس پلتفرم بودنQt به ما مین رامکا این ا کامپایلن کد را سادگی هما دیگر به عامل هاییستمشته و در سمل کد را نویستم عاه یک بار در یک سهد ک دا اجرا کرد ، امروزنامه ر کرده و برQt ی کند از جملهبانی موب را پشتی عامل های محبیستم اکثر س(iOS,Windows,Windows CE,Windows RT,Linux, FreeBSD, HP-UX, Solaris,Android,OS X,Embedded Linux…) مزیت دیگر ازQt ع باز منب بودن و وج ودن آن استیگا نسخه را که بهوبیت محب این ابزار قدرتمند کرده استمک بسیار ک. سی برنامه نویدی زبان و پیکربنه اول : نصب مرحلQt : سی برنامه نویز زبانده استفا انیم با برای آنکه بتواQt ی خود را به صورتزبری پا های ر کنیم و پروژهسی کدنوی بستهاشید نصبوجه داشته ب ت( یم نصب نمای ذیل رام افزاری های نرستی بسته بای کنیم ابتداکی طراحی گرافی). باشده ترتیبستی ب ها بایsudo apt-get update sudo apt-get upgrade sudo apt-get install Qt4-dev-tools sudo apt-get install Qtcreator sudo apt-get install gcc sudo apt-get install xterm sudo apt-get install git-core sudo apt-get install subversion بسته نرمه به اینکه حجم با توج افزاریQt هایکربندی بستهسط نصب و پی می باشد، به طور متوتا با نسبود فوق حد03 الی54 زبری پایزم است ر های فوق بستهگام نصبم : در هن مهنکته( . بردن خواهدیقه زما دقست کنید. خود را ریزبری پایتبه ر است یک مرزم ام نصب بعد از اتم). متصل باشدرنت به اینتSudo reboot now

Upload: others

Post on 29-Jan-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Qt روم ر یرصتم - dl.ketabesabz.comdl.ketabesabz.com/.../barname-nevisi-raspberry-pi_[].pdf · )qt( تویک یسیون همانرب نابز طسوت یاپ یربزر درب

(QTبرنامه نویسی برد رزبری پای توسط زبان برنامه نویسی کیوت )

: Qtمختصری در مورد

در گذشته ، نبود کتابخانه های گرافیکی C++ یکی از بزرگترین نقطه ضعف های زبان برنامه نویسی قدرتمند

یک فریم ورک کراس پلتفورم Qt .شد Qt برای ساخت رابط کاربری بود و این نکته باعث به وجود آمدنقوی

گرافیک دو بعدی و سه می باشد و دارای کتابخانه های بسیار قدرتمند در زمینه رابط کاربری ، C++ برای زبان

این امکان را به ما می Qt پلتفرم بودناست ، کراس … و موازی پردازش ، افزار سخت با ارتباط ، شبکه ، بعدی

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

اکثر سیستم عامل های محبوب را پشتیبانی می کند از جمله Qt کرده و برنامه را اجرا کرد ، امروز

(iOS,Windows,Windows CE,Windows RT,Linux, FreeBSD, HP-UX,

Solaris,Android,OS X,Embedded Linux…) از مزیت دیگر Qt ود وج و بودن منبع باز

. بسیار کمک کرده است قدرتمند ابزار این محبوبیت به که نسخه رایگان آن است

: Qtمرحله اول : نصب و پیکربندی زبان برنامه نویسی

کدنویسی کنیم و پروژه های رزبری پای خود را به صورت Qtبرای آنکه بتوانیم با استفاده از زبان برنامه نویسی

گرافیکی طراحی کنیم ابتدا بایستی بسته های نرم افزاری ذیل را نصب نماییم ) توجه داشته باشید نصب بسته

ها بایستی به ترتیب باشد.(

sudo apt-get update

sudo apt-get upgrade sudo apt-get install Qt4-dev-tools

sudo apt-get install Qtcreator

sudo apt-get install gcc

sudo apt-get install xterm

sudo apt-get install git-core

sudo apt-get install subversion

نسبتا باال می باشد، به طور متوسط نصب و پیکربندی بسته های Qtافزاری با توجه به اینکه حجم بسته نرم

دقیقه زمان خواهد برد. )نکته مهم : در هنگام نصب بسته های فوق الزم است رزبری پای 54الی 03فوق حدود

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

Sudo reboot now

Page 2: Qt روم ر یرصتم - dl.ketabesabz.comdl.ketabesabz.com/.../barname-nevisi-raspberry-pi_[].pdf · )qt( تویک یسیون همانرب نابز طسوت یاپ یربزر درب

را انتخاب نمایید مشاهده خواهید کرد که بسته های نرم افزاری مربوط به Programmingاکنون اگر منوی

را انتخاب خواهیم کرد و در این محیط برنامه Qt Creatorاضافه گردیده است، که ما گزینه Qtنرم افزار

نویسی خواهیم نمود.

: Qt: تنظیمات و پیکربندی محیط برنامه نویسی دوممرحله

الزم است تنظیمات و پیکربندی های مربوط به کامپایلر، دیباگر و Qtبعد از نصب بسته های نرم افزاری

را انتخاب کرده و گزینه Toolsکتابخانه های مورد نیاز را انجام دهیم، برای این کار در منوی برنامه گزینه

Option ب میکنیم. )طبق تصاویر ذیل(را انتخا

Page 3: Qt روم ر یرصتم - dl.ketabesabz.comdl.ketabesabz.com/.../barname-nevisi-raspberry-pi_[].pdf · )qt( تویک یسیون همانرب نابز طسوت یاپ یربزر درب
Page 4: Qt روم ر یرصتم - dl.ketabesabz.comdl.ketabesabz.com/.../barname-nevisi-raspberry-pi_[].pdf · )qt( تویک یسیون همانرب نابز طسوت یاپ یربزر درب

Newبعد از انجام تنظیمات نوبت به ایجاد یک پروژه جدید می باشد، برای این منظور در همان فرم اول گزینه

Project را انتخاب می کنیم. در فرم بعدی گزینهQt Widgets Application را انتخاب کرده و سپس

را Nextرای ذخیره پروژه در نظر می گیریم و در فرم های بعدی گزینه برای پروژه یک نام و یک مسیر ب

)مانند تصاویر ذیل( را انتخاب می کنیم. Finishانتخاب کرده و در نهایت

Page 5: Qt روم ر یرصتم - dl.ketabesabz.comdl.ketabesabz.com/.../barname-nevisi-raspberry-pi_[].pdf · )qt( تویک یسیون همانرب نابز طسوت یاپ یربزر درب

Qtبرنامه نویسی در محیط سوم : مرحله

را آموزش خواهیم داد، با توجه به اینکه میخواهیم از Qtدر این مرحله برنامه نویسی رزبری پای با استفاده از

استفاده کنیم بایستی کتابخانه مذکور رو به قسمت فایل GPIOبرای ارتباط با پایه های WiringPiکتابخانه

رو باز می کنیم و در pro.اضافه نماییم؛ برای این منظور از پنل سمت چپ فایلی با پسوند Qtهای پیکربندی

انتهای آن کدهای زیر را اضافه می کنیم.

Page 6: Qt روم ر یرصتم - dl.ketabesabz.comdl.ketabesabz.com/.../barname-nevisi-raspberry-pi_[].pdf · )qt( تویک یسیون همانرب نابز طسوت یاپ یربزر درب

INCLUDEPATH += /usr/local/include

LIBS += -L/usr/local/lib –lwiringPi

و LEDدکمه باشد که یکی برای خاموش کردن 2خاهیم فرمی طراحی کنیم که دارای در این پروژه، می

برای برنامه WiringPiمورد استفاده قرار می گیرد. با توجه به اینکه از کتابخانه LEDدیگری برای روشن کردن

برنامه نویسی رزبری استفاده می کنیم لذا بایستی کتابخانه مورد نظر را در قسمت GPIOنویسی پایه های

را گسترش داده و فایل Sourceاصلی نیز به پروژه اضافه کنیم که برای این منظور از پنل سمت چپ، پوشه

mainwindow.cpp را انتخاب می کنیم و کد های مورد نظر را می نویسیم. در ابتدا با استفاده از دستور زیر

را ضمیمه می کنیم. WiringPiکتابخانه

#include <wiringPi.h>

بایستی تنظیمات اولیه کتابخانه Qt، در بدنه برنامه نویسی محیط WiringPiبعد از ضمیمه کردن کتابخانه

مذکور را انجام دهیم که برای این کار می توانیم از دستور ذیل استفاده کنیم.

wiringPiSetup();

را به آن متصل کنیم به صورت خروجی در نظر بگیریم، همان طور LEDو سپس بایستی پایه ای را که میخاهیم

های رزبری استفاده می کنیم GPIOبرای پیکربندی WiringPiکه مستحضر هستید زمانی که از کتابخانه

برای تعریف پایه خروجی به صورت ذیل کد نویسی می کنیم.

pinMode(7,OUTPUT);

Page 7: Qt روم ر یرصتم - dl.ketabesabz.comdl.ketabesabz.com/.../barname-nevisi-raspberry-pi_[].pdf · )qt( تویک یسیون همانرب نابز طسوت یاپ یربزر درب

ادامه آورده شده است. شماتیک مدار پروژه در

را از LEDدر ادامه میخاهیم برای پروژه خود، فرمی طراحی کرده و عملیات مربوط به روشن و خاموش شدن

را Formsطریق فرمی که برنامه نویسی کردیم، کنترل کنیم برای این منظور از پنل سمت چپ، پوشه

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

شد که در پنل سمت چپ، مجموعه ای ویوها و کنترل ها قرار دارد و با استفاده از آنها می توانیم فرم مورد نظر

خود را طراحی کنیم.

افه نماییم و را به پروژه اض Push Buttonویوی Buttonsبرای افزودن دکمه، می توانیم از زیر شاخه

ویوی مورد نظر آن را انتخاب کرده و از پنل سمت خصوصیات های شی ء مورد را تغییر دهیم، برای تغییر نام

را تغییر می دهیم و سایر Text(، خاصیت Properticeراست در پنجره مربوط به خصوصیات ها )

خصوصیت ها را نیز می توان تغییر داد.

Page 8: Qt روم ر یرصتم - dl.ketabesabz.comdl.ketabesabz.com/.../barname-nevisi-raspberry-pi_[].pdf · )qt( تویک یسیون همانرب نابز طسوت یاپ یربزر درب

رویداد های مورد نظر را برنامه نویسی می که دکمه های مورد نظر را به فرم اضافه کردیم در گام بعدی حال

روشن گردد و زمانی که روی LEDکلیک شد، "روشن"کنیم، به عنوان مثال می خواهیم زمانی که روی دکمه

هر یک از دکمه های موجود خاموش گردد. برای این منظور نیاز داریم برای LEDکلیک شد، "خاموش"دکمه

Go toروی فرم رویداد کلیک بنویسیم که برای این کار روی شی مورد نظر راست کلیک کرده و گزینه

slot را انتخاب می نماییم در پنجره باز شده گزینهclicked() را انتخاب می کنیم که با این کار به

می خواهیم هنگام کلیک شدن روی دکمه اتفاق بیفتد محیط برنامه نویسی هدایت می شویم و دستوراتی را که

دستورات ذیل را وارد می کنیم LEDرا درون بالک مربوطه می نویسیم، برای روشن شدن

void MainWindow::on_btnOn_clicked()

{

digitalWrite(7,1);

} و برای دکمه خاموش شدن کد های زیر را می نویسیم:

void MainWindow::on_btnOff_clicked()

{

digitalWrite(7,0);

}

Page 9: Qt روم ر یرصتم - dl.ketabesabz.comdl.ketabesabz.com/.../barname-nevisi-raspberry-pi_[].pdf · )qt( تویک یسیون همانرب نابز طسوت یاپ یربزر درب
Page 10: Qt روم ر یرصتم - dl.ketabesabz.comdl.ketabesabz.com/.../barname-nevisi-raspberry-pi_[].pdf · )qt( تویک یسیون همانرب نابز طسوت یاپ یربزر درب

برای کامپایل شدن و اجرای برنامه کافیست آیکون مثلث سبز رنگ را انتخاب نماییم که در این صورت ابتدا کد

شکل زیر نمایش داده خواهد های نوشته شده کامپایل خواهد شد و در صورت عدم وجود خطا خروجی پروژه به

شد.

به صورت کامل و کاربردی نحوه برنامه نویسی برد رزبری پای با استفاده از در این مجموعه آموزشی سعی گردید

به صورت گرافیکی آموزش داده شود. امیدوارم مورد توجهتون قرار گرفته باشه. Qtبرنامه نویسی زبان

شادریانمجتبی با تشکر :

[email protected]ایمیل :

35454014540تماس :