برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

داده هایی در مورد برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

دنبال کنندگان ۳ نفر
این وبلاگ را دنبال کنید
تبلیغات
آخرین نظرات

ساختن کتابخانه (Library) در Arduino (آردوینو)

ShahBaz | جمعه, ۴ اسفند ۱۳۹۶، ۱۰:۴۷ ب.ظ

ساختن کتابخانه (Library) در Arduino (آردوینو)

ساختن کتابخانه (Library) در Arduino (آردوینو)

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

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

در پلت فرم آردوینو برای نوشتن بدنه برنامه از زبان سی و کتابخانه ها از سی ++ استفاده می شه. برای شروع ابتدا به مسیر زیر بروید و یک پوشه با نام مثلا test ایجاد کنید.

C:\Users\your-username\Documents\Arduino\libraries

 برای نوشتن کتابخانه نیاز به دو فایل با پسوند h و cpp می باشد که در فایل با پسوند h (header) کلاس و اعلان های توابع رو تعریف می کنید و در فایل cpp بدنه توابع رو تعریف می کنید.

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

import

حالا دو کتابخانه زیر رو در خط اول فایل h وارد کنید:
#include <SoftwareSerial.h>
#include "Arduino.h"
1
2
    
#include <SoftwareSerial.h>
#include "Arduino.h"

بعد کلاس رو تعریف کنید:
class testlib
{
 public:
  //توابعی که در همه جا میتوان استفاده کرد
 private:
  //توابعی که فقط در خود کتابخانه می شه استفاده کرد
};
1
2
3
4
5
6
7
    
class testlib
{
public:
  //توابعی که در همه جا میتوان استفاده کرد
private:
  //توابعی که فقط در خود کتابخانه می شه استفاده کرد
};

توی این فایل شما فقط اعلان های توابع رو تعریف می کنید و بدنه توابع رو در فایل cpp ایجاد می کنید. حالا مثلا ایجاد من می خوام یه تابع تعریف کنید که با ارسال کلمه hello در سریال به میکرو یا ماژول کلمه hi رو به ما برگردونه.

اول باید توی قسمت public اعلان های توابع رو تعریف کنید به عنوان مثال
testlib(int rxPin, int txPin);
void check(String comm);
1
2
    
testlib(int rxPin, int txPin);
void check(String comm);

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

و در قسمت private هم یه پورت به صورت نرم افزار تعریف کنید مثل زیر (اسم پورت رو اینجا TPORT گذاشتم شما هر اسمی رو می تونید بزارید ولی توجه کنید که کامپایلر به بزرگ و کوچک بودن حروف حساس است)
SoftwareSerial * TPORT;
1
    
SoftwareSerial * TPORT;

بعد میریم سراغ فایل cpp و سه خط زیر رو اضافه می کنید.
#include <SoftwareSerial.h>
#include "Arduino.h"
#include "test.h"
1
2
3
    
#include <SoftwareSerial.h>
#include "Arduino.h"
#include "test.h"

سپس بدنه توابع رو اضافه کنید….
testlib::testlib(int txPin, int rxPin) {
    TPORT = new SoftwareSerial(rxPin, txPin);
    TPORT->begin(9600);
}

void testlib::check(String comm) {
 
}
1
2
3
4
5
6
7
8
    
testlib::testlib(int txPin, int rxPin) {
    TPORT = new SoftwareSerial(rxPin, txPin);
    TPORT->begin(9600);
}
 
void testlib::check(String comm) {

}

دقت کنید که testlib نام کلاسی هست که اعلان های توابع در آن تعریف شده و باید با ۲ کالن قبل از تابع قرار بگیره.

در تابع اول که config نام داره و در بدنه برنامه می توانیم استفاده کنیم ، TPORT رو می تونیم به صورت نرم افزاری پایه های tx و rx رو به دلخواه تعیین کنیم. و در خط بعدش پورت روی باود ریت ۹۶۰۰ تنظیم شده و باز می شود.

در تابع دوم دستورات دلخواه رو می نویسیم ، به عنوان مثال کدهای زیر رو به تابع اضافه کنید:
if (TPORT->available()){
        String str = TPORT->readString();
        if (str == comm){
           TPORT->println("hi");
        }
}
1
2
3
4
5
6
    
if (TPORT->available()){
        String str = TPORT->readString();
        if (str == comm){
           TPORT->println("hi");
        }
}

توی چند خط کد بالا گفتیم اگه به بافر پورت سریال چیزی ارسال شد مقدار اونو در متغیر str بریز و در یک شرط گفتیم اگر مقدار str برابر با comm (که مقدار تعیین شده توسط شما در بدنه برنامه است) بود رشته hi رو به پورت سریال ارسال کن.

حالا به آردوینو برید و قبل از تابع setup خط زیر رو اضافه کنید:
testlib serial(1, 3);
1
    
testlib serial(1, 3);

 

با این خط serial رو از نوع testlib که پورت سریال تعریف شده قرار می دید و پایه های tx و rx رو هم مشخص می کنید. در حلقه loop هم خط زیر رو اضافه کنید و بعد برنامه رو کامپایل سپس آپلود کنید ، تست کنید.
serial.check("hello");
1
    
serial.check("hello");

بعد از تست کدها برنامه رو با نام دلخواه ذخیره کنید و در پوشه ایی به نام examples در پوشه کتابخانه test قرار بدید تا نمونه کد شما در آردوینو به قسمت Examples اضافه باشه. شاید نیاز باشه یکبار آردوینو رو ببندید بعد باز کنید. کتابخانه رو اینجا می تونید دانلود کنید.

امیدوارم مفید واقع شده باشه
در تاریخ ۱۵/مرداد/۱۳۹۵ یک دیدگاه برچسب ها : ،arduino،library،آردوینو،کتابخانه،

نوشته شده توسط امیر امرایی

  • ShahBaz

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی