نمایش نتایج: از 1 به 7 از 7
Like Tree1 لایک
  • 1 Post By sajjad_ser

موضوع: کتابخانه ها (libraries) در آردینو (شیلد های نرم افزاری)

  1. #1
    Junior Member
    تاریخ عضویت
    Mar 2014
    نوشته ها
    6

    کتابخانه ها (libraries) در آردینو (شیلد های نرم افزاری)

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

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

    اکثر کتاب خانه هایی که من اینجا قرار میدم یا خودم نوشتم و یا تغییراتی در اونها ایجاد کردم. اگه کتابخانه ای که قبلا نوشته شده و تغییری لازم نداشته باشه آدرسش رو در اینجا اعلام میکنم.

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

    نحوه نصب این کتاب خانه ها رو همه شما بخوبی بلد هستید ولی کسانی که نمیدونن این ها رو چطور به IDE آردینو معرفی کنن مانند تصاویر زیر باید عمل بکنن:

    مرحله1:
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 1.jpg
مشاهده: 251
حجم: 43.6 کیلو بایت

    مرحله2 انتخاب فایل کتابخانه:
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 2.jpg
مشاهده: 229
حجم: 56.9 کیلو بایت

    بعد از این که کتابخانه رو به IDE معرفی کردین حالا میتونید از اون استفاده کنید.
    به منوی Sketch رفته و زیر منوی Import library رو باز کنید همونطور که میبینید کتابخانه جدید در انتهای منو در قسمت Contributed افزوده شده:
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 2.jpg
مشاهده: 210
حجم: 72.9 کیلو بایت

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

نام: 4.jpg
مشاهده: 228
حجم: 26.7 کیلو بایت

    با تشکر
    سجاد ثروت جو
    لایک کردن

  2. #2
    Junior Member
    تاریخ عضویت
    Mar 2014
    نوشته ها
    6
    قبل از شیلد های نرم افزاری من یک کلاس نوشتم که کد برنامه آردینو خودم رو به حداقل برسونم و شیلد های نرم افزاری بتونن از داخل کد خودشون به توابع اصلی بدنه برنامه (setup و loop) دسترسی پیدا کنند.
    در این کتابخانه دو کلاس تعریف شده و در یک فایل با نام "softShield.h" قرار دارند در ادامه به توضیح این کلاس ها می پردازیم

    کلاس softModule :
    این کلاس چیزی نیست جز یک صف حلقوی که تمامی شیلد ها در این صف قرار میگیرند. این کار بدین منظور انجام می شود که توابع setup و update شیلدها در یک حلقه تکرار توسط توابع این کلاس فراخوانی شوند.
    توابع setup مربوط به شیلد ها توسط تابع setup این کلاس و توابع loop شیلد ها توسط تابع loop این کلاس فراخوانی می شوند.
    کلاس softShield :
    تمامی شیلد های نرم افزاری که توسط من نوشته و یا ویرایش میشن از این کلاس ارث می برن.
    ارث بری از این کلاس بخاطر اینه که شیلد ها به صورت خودکار به صف softModule افزوده بشن.

    این کتابخانه و ارث بری از softShield باعث میشه همه شیلد های نرم افزاری برای خودشون توابع setup و loop رو داشته باشن تا از کد نویسی تکراری جلوگیری بشه.
    حال ما میتونیم به این طریق توابع setup و update همه شیلد هایی که در برنامه ازشون استفاده کردیم رو فرخوانی کنیم:

    کد PHP:

    #include <softShield.h>

    void setup(){
      
    softModule::setup();
    }

    void loop(){
      
    softModule::update();

    کد درون setup باعث فراخوانی تابع setup همه شیلد های نرم افزاری میشه و کد درون loop باعث فراخوانی تابع update همه شیلد های نرم افزاری میشه.

    بهمراه این کتابخانه نمونه کدی داخل پوشه baseShield وجود دارد که ساختار کتابخانه هایی که از softShield ارث می برند را نشان میدهد.

    توجه داشته باشید که داشتن این کتابخانه و افزودن این دو خط کد در توابع setup و loop از الزامات استفاده از کتابخانه هایی هست که من در این تاپیک ارسال میکنم و اگه کتابخانه ای بجز softSheild به کتابخانه ی دیگه ای نیاز داشته باشه در پست مربوطه به اون اشاره خواهد شد.

    نام شیلد softSheild
    سایر شیلد های مورد نیاز این شیلد ندارد
    فایل های پیوست شده فایل های پیوست شده
    ویرایش توسط sajjad_ser : 05-27-2014 در ساعت 05:58 PM

  3. #3
    Junior Member
    تاریخ عضویت
    Mar 2014
    نوشته ها
    6
    نام شیلد Timer
    سایر شیلد های مورد نیاز softSheild

    منبع کد اصلی اینجاست ولی من کمی تغییرش دادم
    فایل های پیوست شده فایل های پیوست شده
    • نوع فایل: zip Timer.zip (39.5 کیلو بایت, 110 مشاهده)

  4. #4
    Junior Member
    تاریخ عضویت
    Oct 2015
    نوشته ها
    1
    با سلام کسی هست مشکل من رو حل کنه من هر چی میخام نمیتونم کتابخانه time.h رو فعال کنم بهم موقع آپلود کردن برنامه روی برد خطا میده

  5. #5
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    دوست گرامی برو به لنک زیر
    https://github.com/JChristensen/Timer
    دانلود کن
    اکسترکت کن
    فولدرشو کپی کن تو فولدر libraries آردوینو
    در تمام این مراحل نرم افزار آردوینو باید بسته باشه

    حالا برو تو فولدر examples و یک مثال اجرا کن
    محاااااااله ارور بده

  6. #6
    Junior Member
    تاریخ عضویت
    Jan 2017
    نوشته ها
    1
    با سلام به اعضای محترم سایت
    یک سوال راجع به کار با sd کارت توی محیط پروتئوس دارم، کتابخانه ای غیر از sd از آردینو می خواهم که بتواند با پروتئوس تطبیق داشته و fat12 را پشتیبانی کند...
    ممنون...

  7. #7
    Junior Member
    تاریخ عضویت
    Apr 2017
    نوشته ها
    2
    با سلام
    لطفا کتابخانه ال سی دی گرافیکی hx8347-g رو هم توضیح بدید نحوه کار کردشو . و اینکه چطور میشه دیتور های مربوط به یه کتابخانه رو پیدا کرد .

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO