logo-site-sefid
Search
Close this search box.
ساخت-ربات-تعقیب-خط-با-آردوینو

آموزش ساخت ربات مسیریاب – چگونه با آردوینو ربات تعقیب خط بسازیم

آموزش ساخت ربات تعقیب خط با آردوینو

ساخت ربات مسیر یاب یا همان تعقیب کننده خط که به انگلیسی به آن Line follower robot می‌گویند؛ در واقع یک ربات را نشان می‌دهد که می‌تواند دنباله یک خط پررنگ با کنتراست بالا روی پس زمینه روشن یا برعکس (به طور مثال خط سیاه در پس زمینه سفید، یا خط سفید در پس زمینه سیاه) را دنبال کند. این ربات قادر است مسیر خاصی را شناسایی کرده و آن را پیش ببرد؛ البته این خطوط باید مشخص بوده و دارای عرض قابل قبولی باشند. در این مطلب قصد داریم در مورد این ربات‌های ساده اما در عین حال جذاب حرف بزنیم. ربات‌های مسیر یاب به صورت پیشرفته‌تری نیز تولید می‌شوند و از مدل‌های بسیار ساده و تا مدل‌های پیشرفته را به خود اختصاص داده‌اند و دارای کاربردهای بسیار زیادی در بخش خانگی، صنعتی، پزشکی و … می‌باشند.

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

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

وسایل مورد نیاز

ورق پلاستیکی PVC ( برای آشنایی با انواع ورق های پلاستیکی مقاله ساخت ربات با ورق پلاستیک را مطالعه کنید )

چسب حرارتی

گیربکس 200 دور

جامپر

برد آردوینو ( برای آشنایی با آردوینو مقاله آردوینو چیست  را مطالعه کنید )

باتری 18650

جا باتری 18650

چرخ ربات

سنسور IR

سیم نازک چند رشته

درایور موتور

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


شاسی پلاستیکی برای ربات

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

چالیک مسیری نوین در آموزش


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

نحوه عملکرد سنسور IR

سنسور IR یا سنسور مادون قرمز دارای یک فرستنده و یک گیرنده میباشد. اما این فرسنده و گیرنده چگونه عمل میکنند؟

قبل از پاسخ به این سوال باید کمی اطلاعات در مورد رنگها داشته باشیم. در طبیعت رنگهای متنوعی وجود دارد که آنها را میبینیم. اما رنگهایی نیز وجود دارد که با چشم غیر مسلح دیده نمیشود. این رنگها در دو گروه نامگذاری میشوند.

سنسور-IR
سنسور-IR

رنگهای ماورا بنفش

رنگهای مادون قرمز

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

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

سنسور
سنسور

 

دریافت نمایندگی رباتیک صنایع آموزشی چالیک

اما در ربات مسیر یاب این گیرنده و فرستنده چگونه عمل میکنند؟

برای پاسخ به این سوال قبل از هر چیز باید بدانیم بازتاب نور چیست.

می دانید که اجسام را می‌توان به دو دسته‌ی منیر و غیرمنیر تقسیم كرد. اجسام منیر مانند خورشید یا یك لامپ روشن از خودشان نور دارند؛ بنابراین نور آن‌ها می‌تواند به طور مستقیم به چشم ما برسد و آن‌ها را ببینیم. اما اجسام غیرمنیر در صورتی توسط چشم قابل رۆیت است كه نور یك چشمه‌ی نور، از روی آن‌ها بازتاب شود و به چشم ما برسد.

دیده شدن اشیای درون اتاق، هنگامی كه چراغ روشن است، به دلیل انتشار نور در اتاق و باز گشت نور از سطح اشیاء و رسیدن آن به چشم است.

اما اگر نوری به جسم تابانده شود چه اتفاقی میافتد؟

بخشی از این نور بازتابیده میشود

بخشی از این نور جذب جسم میگردد

بخشی از این نور از جسم عبور میکند

جنس و یا رنگ یک جسم باعث میشود که تعیین کنیم که برای نور چه اتفاقی میافتد.

به عنوا مثال بیشتر نوری که به یک شیشه تابانده شود از آن عبور میکند.

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

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

تا اینجا متوجه شدیم که اگر سنسور مادون قرمز را روی خط سیاه قرار دهیم گیرنده بازتابی بسیار کمی دریافت میکند و اگر روی خط سفید باشد بیشترین بازتاب را دریافت میکنیم. و این دقیقا به ما در تشخیص یک خط سیاه در زمینه سفید کمک خواهد کرد. دقت کنید رنگ سفید و سیاهی که انتخاب میکنیم در عملکرد درست ربات بسیار تاثیر گذار است.

در نهایت با آپلود برنامه آردوینو شما میتوانید ربات خود را راه اندازی کنید.

//ARDUINO LINE FOLLOWING CAR//
// YOU HAVE TO INSTALL THE AFMOTOR LIBRARY BEFORE UPLOAD THE CODE//
// GO TO SKETCH >> INCLUDE LIBRARY >> ADD .ZIP LIBRARY >> SELECT AF MOTOR ZIP FILE //
 
//including the libraries
#include <AFMotor.h>

//defining pins and variables
#define left A0
#define right A1

//defining motors
AF_DCMotor motor1(1, MOTOR12_1KHZ); 
AF_DCMotor motor2(2, MOTOR12_1KHZ);
AF_DCMotor motor3(3, MOTOR34_1KHZ);
AF_DCMotor motor4(4, MOTOR34_1KHZ);



void setup() {
  //declaring pin types
  pinMode(left,INPUT);
  pinMode(right,INPUT);
  //begin serial communication
  Serial.begin(9600);
  
}

void loop(){
  //printing values of the sensors to the serial monitor
  Serial.println(digitalRead(left));
  
  Serial.println(digitalRead(right));

  //line detected by both
  if(digitalRead(left)==0 && digitalRead(right)==0){
    //Forward
    motor1.run(FORWARD);
    motor1.setSpeed(150);
    motor2.run(FORWARD);
    motor2.setSpeed(150);
    motor3.run(FORWARD);
    motor3.setSpeed(150);
    motor4.run(FORWARD);
    motor4.setSpeed(150);
  }
  //line detected by left sensor
  else if(digitalRead(left)==0 && !analogRead(right)==0){
    //turn left
    motor1.run(FORWARD);
    motor1.setSpeed(200);
    motor2.run(FORWARD);
    motor2.setSpeed(200);
    motor3.run(BACKWARD);
    motor3.setSpeed(200);
    motor4.run(BACKWARD);
    motor4.setSpeed(200);
    
  }
  //line detected by right sensor
  else if(!digitalRead(left)==0 && digitalRead(right)==0){
    //turn right
    motor1.run(BACKWARD);
    motor1.setSpeed(200);
    motor2.run(BACKWARD);
    motor2.setSpeed(200);
    motor3.run(FORWARD);
    motor3.setSpeed(200);
    motor4.run(FORWARD);
    motor4.setSpeed(200);
   
  }
  //line detected by none
  else if(!digitalRead(left)==0 && !digitalRead(right)==0){
    //stop
    motor1.run(RELEASE);
    motor1.setSpeed(0);
    motor2.run(RELEASE);
    motor2.setSpeed(0);
    motor3.run(RELEASE);
    motor3.setSpeed(0);
    motor4.run(RELEASE);
    motor4.setSpeed(0);
   
  }
  
}
شماتیک-مدار-ربات-مسیر-یاب
شماتیک-مدار-ربات-مسیر-یاب

دانلود برنامه ربات و شماتیک مدار ربات



رضا قنبری
متخصص آموزش رباتیک

رضا قنبری هستم متخصص آموزش رباتیک با بیش از 10 سال سابقه فعالیت در ایران

این مطلب را به اشتراک بگذارید

دسته بندی نشده

ماژول سنسور مجاورت نوری

ماژول سنسور مجاورت نوری قبل از خواندن این مقاله بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند

ماژول کاهنده

ماژول كاهنده قبل از خواندن مقاله ماژول كاهنده بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند از

107 دیدگاه دربارهٔ «آموزش ساخت ربات مسیریاب – چگونه با آردوینو ربات تعقیب خط بسازیم»

        1. با سلام

          اگر میشه بگید
          من دو موتور میخواهم وصل کنم
          اگر به 1 و 4 بزنم درسته

          چون قصد ندارم کد ها رو تغییر بدم میشه؟

          1. سلام بله درسته فقط قسمتی که بالای کد کامنت شده رو حتما هنگام آپلود کردن کد دانلود کنید(کتابخانه)

          2. سلام من هرچی میزنم تو برنامه آردوینو میگه مشکل داره

            میگه خط ۶ بخش ۱۰
            کسی می‌تونه منو راهنمایی کنه

          3. سلام
            در لخش کد ها به این حالت تعقیر بدهید
            //ARDUINO LINE FOLLOWING CAR//
            // YOU HAVE TO INSTALL THE AFMOTOR LIBRARY BEFORE UPLOAD THE CODE//
            // GO TO SKETCH >> INCLUDE LIBRARY >> ADD .ZIP LIBRARY >> SELECT AF MOTOR ZIP FILE //

            //including the libraries
            #include
            //defining pins and variables
            #define left A0
            #define right A1
            //defining motors
            AF_DCMotor motor1(1, MOTOR12_1KHZ);
            AF_DCMotor motor2(2, MOTOR12_1KHZ);
            AF_DCMotor motor3(3, MOTOR34_1KHZ);
            AF_DCMotor motor4(4, MOTOR34_1KHZ);
            void setup() {
            //declaring pin types
            pinMode(left,INPUT);
            pinMode(right,INPUT);
            //begin serial communication
            Serial.begin(9600);

            }
            void loop(){
            //printing values of the sensors to the serial monitor
            Serial.println(digitalRead(left));

            Serial.println(digitalRead(right));
            //line detected by both
            if(digitalRead(left)==0 && digitalRead(right)==0){
            //Forward
            motor1.run(FORWARD);
            motor1.setSpeed(150);
            motor2.run(FORWARD);
            motor2.setSpeed(150);
            motor3.run(FORWARD);
            motor3.setSpeed(150);
            motor4.run(FORWARD);
            motor4.setSpeed(150);
            }
            //line detected by left sensor
            else if(digitalRead(left)==0 && !analogRead(right)==0){
            //turn left
            motor1.run(FORWARD);
            motor1.setSpeed(200);
            motor2.run(FORWARD);
            motor2.setSpeed(200);
            motor3.run(BACKWARD);
            motor3.setSpeed(200);
            motor4.run(BACKWARD);
            motor4.setSpeed(200);

            }
            //line detected by right sensor
            else if(!digitalRead(left)==0 && digitalRead(right)==0){
            //turn right
            motor1.run(BACKWARD);
            motor1.setSpeed(200);
            motor2.run(BACKWARD);
            motor2.setSpeed(200);
            motor3.run(FORWARD);
            motor3.setSpeed(200);
            motor4.run(FORWARD);
            motor4.setSpeed(200);

            }
            //line detected by none
            else if(!digitalRead(left)==0 && !digitalRead(right)==0){
            //stop
            motor1.run(RELEASE);
            motor1.setSpeed(0);
            motor2.run(RELEASE);
            motor2.setSpeed(0);
            motor3.run(RELEASE);
            motor3.setSpeed(0);
            motor4.run(RELEASE);
            motor4.setSpeed(0);

            }

            }

  1. You could definitely see your enthusiasm in the article you write.
    The world hopes for even more passionate writers such as you
    who aren’t afraid to mention how they believe.
    At all times go after your heart.

    1. سلام ممنون فیلمتون خیلی آموزنده بود میشه بگین اون بردی که روی اردینو نشوند و سیم ها رو روی اون سوار کرد چی هست؟

      1. سلام خیلی ممنون اموزش کاملی بود
        فقط یه سوال اگر پس زمینه عوض بشه چی؟
        مثلا پس زمینه سیاه خط سفید

    1. سلام . ببخشید آیا با درایور دیگه ای هم میشه ساخت یعنی اون کتابخانه ای که نوشتین برای درایور های دیگه هم کار می‌کنه ؟

  2. سلام ممنون مطالبتون خیلی اموزنده بود میشه بگین چه کدی رو باید به ربات وارد کنیم تا کار کند؟

      1. کد برنامه ربات باز نمیشه میشه لطفا تایپ کنید بفرستید؟ ما خودمون برنامه نویسی ادوینو رو داریم اگه تایپ کنین میتونیم از روی شما بنویسیم و وارد ربات کنین

  3. سلام من ربات رو ساختم فقط نمی‌دونم چه کدی رو باید بهش وارد کنم میشه بگین چه کدی رو باید بهش وارد کنم تا کار کنم؟ممنون میشم اگه بگین

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

  4. سلام. ممنون از مطالب مفیدی که تو این سایت گذاشتین.
    من یک برنامه ای رو برای راه اندازی یک موتور نوشتم و میخاستم موتور هر 5 ثانیه یک بار جهت چرخشش عوض بشه
    اما سخت افزارش رو بستم، برنامه اش رو هم با دقت نوشتم اما وقتی اومدم امتحان کنم جهت موتور عوض نمی شد. نمیدونم مشکل از کجاست.؟؟؟؟؟؟؟؟؟؟؟
    لطفا راهنمایی کنید خیلی کارم لنگه
    ممنون میشم.

      1. امیرعلی عباسی

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

    1. ببخشید اگه با گفته های ایشان میتوان از دو موتور و یک هرزگر استفاده کرد باید کد ها عوض شود

  5. سلام من یه ربات مسیر یاب دارم.با 4 تا سنسور ای ار TRT5000 و 1 ماژول شعله و 2 تا سنسور تشخیص رنگ TSC3200 و 1 پمپ اب کف کش 3 تا 6 ولتی و درایور موتور L298 و 4 تا موتور DC . سه تا باتری کتابی موازی کردم ولی اصلا نتونست ربات رو به حرکت در بیاره.میخواستم بدونم پیشنهادی دارین من از چه باتری و چه تعدادی استفاده کنم تا مشکلم حل بشه؟

  6. سلام واقعا ممنونم از این مقاله مفید و مرتب که با جزییات نوشته شده

    برای دو موتور و یک هرزگرد داخل کد باید موتور های 2و4 حذف بشه؟
    یک راهنمایی می فرمایید برای تغییر کد به جهت استفاده از 2 موتور و 1 هرزگرد.
    سپاس و درود بر شما

    1. اگر فقط از دو موتور استفاده میکنید و از هرزگرد برای حفظ تعادل میتونید موتور های ۲ و ۴ رو حذف کنید یا همینطور میتونید موتور های ۱ و ۳ را حذف کنید. چون در صورت استفاده از هرزگرد فقط نیاز به یک موتور در سمت چپ و یک موتور در سمت راست دارید. فقط به نحوه ی اتصال پین ها و تعریف انها در برنامه نویسی دقت کنید.

  7. سلام سوال دارم
    چرا برنامه اپلود نمیشه و این ارور رو میده
    C:\Users\iran\Documents\Arduino\sketch_dec17a\sketch_dec17a.ino:6:10: fatal error: AFMotor.h: No such file or directory
    #include
    ^~~~~~~~~~~
    compilation terminated.

    exit status 1

    Compilation error: AFMotor.h: No such file or directory

    1. سلام ارور مربوط به نصب نبودن کتابخانه ای که استفاده کردید هستش. قبل از آپلود کردن کدها در محیط آردوینو به قسمت Sketch بروید و گزینه ی include Library را بزنید و بعد به قسمت manage Library برید و بعد عبارت Adafriut motor shield library سرچ کنید و کتابخانه رو نصب کنید و بعد کدتون را آپلود کنید اگه با مشکل مواجه شدید بگید براتون به صورت زیپ فایل رو قرار بدم

        1. سلام
          ولتاژ باتری که استفاده میکنید باید در محدوده ای ک ذکر شده باشه اما مقدار آمپر یا شدت جریانی ک روی باتری لیتیومی این پروژه نوشته شده با بیشتر شدنش باعث میشه مدت زمانی که باتری شارژ رو نگه میداره بیشتر بشه(فرض کنید یک مخزن پر از مایع دارید و لوله هایی ک این مایع رو به قطعات دیگه میرسونه این رو با یک مدار مقایسه کنید هر چقدر مخزن بزرگتر باشه یعنی شدت جریان(مقدار آمپر)بیشتر هستش حالا قطعات هر مقدارآمپری ک نیاز داشته باشن برمیدارن(به اندازه ی ظرفیت یا مقداری ک برای انجام کار نیاز دارن) و با بقیش کاری ندارند و آسیبی هم بهشون نمیرسه مگر در شرایط خاص و متفاوت دیگه در خود قطعات که داخل یک پروژه بعدا نشون میدم اما ولتاژ یا اختلاف پتانسیل مثل سرعتی هست که مایع درون لوله داره پس اگر ولتاژ این مایع از یک حدی بیشتر باشه میتونه به اون قطعه آسیب بزنه. وقتی صحبت از آمپر میشه نگرانی آسیب رسیدن به قطعات رو نداشته باشید اما ولتاژ چرا!) یعنی گرفتن باتری بستگی به انتخاب خودتون داره اما باید توجه کنید که مجموع مقدار شدت جریانی ک موتورها و قطعات دیگه مصرف میکنن کمتر از مجموع باتریهای استفاده شده نباشه.(به عبارتی اون مخزن باید حداقل ظرفیتی به اندازه ی مجموع ظرفیت تمام قطعات داشته باشه اما اگه باتری ای با مقدار آمپر کمی بالاتر بگیرید میتونید بعدا اگه قطعه ی دیگه ای خواستید بدون نگرانی از همون باتریها استفاده کنید.)
          برای فهمیدن اینکه هر قطعه چند آمپر نیاز داره به دیتا شیت محصول نگاه کنید مثلا اگه داخل پروژه دو تا موتور میبینید باید مقدار آمپری که دو تا موتور نیاز دارند رو با هم جمع کنید و همینطور بقیه ی قطعات فکر کنم این توضیح برای پروژه های دیگه هم کمکتون کنه(پیشنهاد میکنم اگر از باتری ها در پروژه های دیگه هم استفاده میکنید یا کیفیتش یا طول عمرش برای شما مهمه باتری لیتیومی high power Li-ion معمولا در بازار صورتی یا آبی رنگ هستش و شبیه به همون باتری های داخل عکس میتونید تهیه کنید کمی تفاوت قیمت با بقیه ی باتری ها دارند اما با توجه به کیفیتشون زیاد نیست شارژرش هم حتما تهیه کنید)

  8. دوستان کتابخانه AF MOTOR را باید نصب کنید تا خطاش برطرف بشه تو گوگل کتابخانه ش هست میتونید دانلود کنید و از طریق گزینه SKETCH – INCLUDE LIBRARY اضافه کنید همون فایل زیپ رو

  9. مهندس ایا در مدار این پروژه آردینو هم باید تغذیه جداگانه داشته باشه یا از طریق باتری هایی که به شیلد درایور متصل شده اند تغذیه میشه ؟ اگه میشه طرح کامل تر ی از شماتیک مدار بذارید ممنون میشم

    1. نیاز به باتزی جداگانه ای نیست. درایور باید مثل شیلد روی برد آردوینو سوار بشه و نیاز به اتصال جداگانه ای برای تغذیه نداره.

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

    1. سلام مشکل میتونه از اتصال اشتباه سیم ها باشه اول اطمینان حاصل کنید که سیم های سیگنال رو اشتباه به زمین یا ولتاژ متصل نکرده باشید در صورت اتصال اشتباه سیم ها ممکنه اتصال کوتاه رخ بده و برد اصلیتون هم بسوزه, از طرفی مطمئن شید که لحیم های پشت ماژول به فلز دیگه ای برخورد نکنه

      1. سلام مجدد مهندس بله بنده متوجه شدم که سنسور ها مادون قرمز به بدنه فلزی ربات اتصال داشتند به خاطر همین بود و خدا رو شکر نسوخت چیزی . فقط الان ربات هر جسمی که میبینی از سمت مادون قرمز شروع به حرکت می‌کنه چجوری برا مادون قرمز باید خط سیاه رو تعریف کرد ؟ من متن برنامه رو ریختم تو ربات ولی درست عمل نمیکنه

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

    2. اگه از شیلد آردوینو نانو استفاده میکنید حتما پین D0 سنسور رو به S متصل کنید و GND به G و Vcc به v

  11. سلام موقع آپلود این ارور میاد

    processing.app.debug.RunnerException
    at cc.arduino.Compiler.callArduinoBuilder(Compiler.java:317)
    at cc.arduino.Compiler.loadPreferences(Compiler.java:216)
    at cc.arduino.Compiler.build(Compiler.java:175)
    at processing.app.SketchController.build(SketchController.java:664)
    at processing.app.SketchController.exportApplet(SketchController.java:689)
    at processing.app.Editor$UploadHandler.run(Editor.java:2061)
    at java.lang.Thread.run(Thread.java:748)
    Caused by: java.io.IOException: Cannot run program “C:\Program Files (x86)\Arduino\arduino-builder”: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:26)
    at cc.arduino.Compiler.callArduinoBuilder(Compiler.java:297)
    … 6 more
    Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.(ProcessImpl.java:386)
    at java.lang.ProcessImpl.start(ProcessImpl.java:137)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    … 8 more

  12. سلام و خسته نباشید آیا امکان کاهش سرعت ربات یا تغییر در برنامه آردینو ربات وجود دارد؟

  13. با سلام

    ببخشید خواستم بدونم کسی می‌تونه بهم بگه کتابخونه رو چطور دانلود و راه اندازی کنم ممنون

    1. سلام
      در محیط آردوینو در بخش Sketch> include library>manage libraries میتونید کتابخانه ی مورد نظرتون دانلود کنید.
      همینطور میتونید توی گوگل کتابخانه ی Af_motor رو سرچ کنید فایل زیپ دانلود کنید و در قسمت include library روی add zip file کلیک کنید و کتابخانه ی دانلود شده رو اضافه کنید

        1. الان از چه طریقی میخواهید کدهارو آپلود کنید؟ به چه وسیله ای به برد آردوینو متصل شدید؟

          1. در حال حاضر با گوشی اندروید به آردوینو متصل شدم و از برنامه
            آردوینو دروید قصد دارم کد رو آپلود کنم

          2. روی نواری که سه نقطه داره(تنظیمات یا ستینگ برنامه ها)ضربه بزنید روی قسمت libraries ضربه بزنید هم از قسمت manage libraries میتونید کتابخانه ای که مد نظرتون هست سرچ کنید هم از قسمت Add zip file میتونید اگه فایل زیپ کتابخانه ای رو دانلود کردید اضافه کنید

  14. سلام

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

    جواب بدید لطفاً

  15. با سلام
    من میخواهم با برنامه اندروید آردوینو کد رو آپلود کنم
    ببخشید خواستم بدونم کسی می‌تونه بهم بگه کتابخونه رو چطور دانلود و راه اندازی کنم ممنون

  16. باسلام

    میگم من درستش کردم فقط وقتی یک سنسور غیر فعال میشه علاوه بر اینکه یه موتور رو به جلو میرود موتور دیگر به عقب میرود و این در تعداد دفعات بالا مشکل ساز است و ربات از مسیر بیرون می‌رود

    کسی می‌تونه بهم کمک کنه تا کاری کنم فقط یه موتور رو به جلو بره و دیگری غیر فعال بشه

    لطفاً کمکم کنید تا این بخش کد رو حذف کنم 🙏🙏

  17. با سلام

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

    کسی می‌تونه به من کمک کنه که وقتی یه سنسور غیر فعال هست یه موتور رو به جلو و دیگری غیر فعال باشه کمکم کنید لطفاً

    1. سلام چرخش موتور در جهت عکس هیچ ایرادی نداره و اصلا همین مکانیزم هست که باعث حرکت صحیح میشه در رابطه با خارج شدن از مسیر یا سنسور مسیر رو در نقاطی نمیتونه ببینه و باید دقت سنسور تنظیم بشه یا یا سرعت بالا هست و باید سرعت های متفاوت انتخاب کنید

    2. سلام به نظرم میتونی برای غیر فعال کردن موتور از دستور استاپ همون موتور استفاده کنی:
      motor1.run(RELEASE);
      motor1.setSpeed(0);
      مثلا الان موتور شماره 1 دیگه راه نمیره.

  18. سلام خیلی ممنون فقط من برد راه انداز موتور و خود آردوینو از هم جدا هستند و شبیه شکل شماتیک نیست، چطور موتور را معرفی کنم؟

    1. سلام خواهش میکنم.
      رجوع کنید به مقاله های درایور L298 بعد از مطالعه هر تغییری هم که قصد دارید انجام بدید یاد میگیرید. البته هنوز مقالات سایت کامل نشدن ولی با سرعت داریم رسیدگی میکنیم.

  19. سلام من از ماژول L298 برای تعریف موتور ها استفاده می کنم حالا چطور توی برنامه این کار رو انجام بدم؟

    1. مقاله های راه اندازی و کنترل DC موتور با درایور L298 سایت تقریبا به صورت کامل به شما در این مورد توضیح میدن.

  20. ببخشید من کد رو که آپلود کردم وقتی برد رو به منبع تغذیه(دوتا باتری1860) وصل میکنم اصا سنسور ها روشن نمیشه وکار نمیکنه در صورتی که وقتی بود به لپ تاپ وصله روشن میمونن.میشه بگیم مشکل چیه؟

    1. مشکل شما احتمالا از شیلدتون هست.معمولا چند تا کار میتونید انجام بدید.
      ۱_ اگه لحیم پشت سنسور ها به فلزی اتصالی داره ممکنه به شیلد یا خود بردتون آسیب بزنه. حتما باید مراقب باشید به فلز متصل نشده باشن.
      ۲_ اتصال جامپر ها و سنسور ها را چک کنید حتی یک اتصال اشتباه میتونه موجب اتصال کوتاه بشه و به برد و شیلد صدمه بزنه.
      ۳_اتصال جفت سنسور ها را از شیلد جدا کنید و یکی یکی تست کنید شاید ایراد از سنسورتون باشه اگه یکی از سنسور ها روشن شد و دیگری روشن نشد یعنی ایراد از سنسور هست.
      ۴_ اگه شیلد دیگه ای در دسترس دارید با یک شیلد دیگه امتحان کنید اگه مشکل برطرف شده بود یعنی شیلدتون سوخته.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *