نمایش نتایج 1 تا 8 از 8

نام تاپیک: "پروژه ماشین RC بلوتوث با برد Arduino"

  1. #1

    "پروژه ماشین RC بلوتوث با برد Arduino"

    بسم الله الرحمن الرحیم
    سلام؛
    میخوام اولین پروژه ام با Arduino رو شروع کنم. چون اولین پروژه ام هست و برنامه نویسیم هم در حد مبتدی است، مطمئنا نیازمند کمک شما خواهم بود تا بتونم به بهترین شکل ممکن به هدفم برسم.
    البته هدف اول ساخت یک ماشین رادیو کنترل بلوتوثی است که بتونم با سیستم عامل ویندوز 10 کنترلش کنم. به عبارتی نرم افزار کنترلر به صورت یونیورسال خواهد بود.
    اما مواد لازم که تا حالا تهیه شده است (قیمت مربوط به آبان 94):
    1. برد آردوینو UNO CH340G | قیمت 36 هزار تومان |دانلود درایور ویندوز
    2. شیلد موتور درایور L298P آردوینو به همراه بازر | قیمت: 18300 تومان
    3. ماژول بلوتوث سریال HC-05 همراه با برد کمکی | قیمت: 21000 تومان
    4. یک عدد ماشین کنترلی ارزان قیمت | بنده یک عدد از دوستان گرفتم که بردش مشکل داشت. ولی فکر کنم با 40 تومن بتونید یکی بخرید!
    5. تگ NFC برای اتصال سریع | قیمت 1400 تومان.
    6. اراده | قیمتش دست خودتونه!
    (در صورت خرید لوازم جدید لیست بروز می شود)
    از آقای کرامتی عزیز نیز برای کمک به انتخاب قطعات تشکر می کنم.


    ..................



    موقع خرید شیلد موتور درایو، کمی هم در موردش تحقیق کردم و یک نمونه کد پیدا کردم که در زیر می بینید:
    void setup() {
    pinMode(8,OUTPUT);
    pinMode(10,OUTPUT);
    pinMode(11,OUTPUT);
    pinMode(12,OUTPUT);
    }

    void forWard(){
    digitalWrite(12,HIGH);
    digitalWrite(8,HIGH);
    digitalWrite(10,HIGH);
    digitalWrite(11,HIGH);
    }

    void reVerse(){
    digitalWrite(10,HIGH);
    digitalWrite(11,HIGH);
    digitalWrite(12,LOW);
    digitalWrite(8,LOW);
    }

    void right_F(){
    digitalWrite(12,HIGH);
    digitalWrite(8,LOW);
    digitalWrite(11,HIGH);
    digitalWrite(10,HIGH);
    }

    void left_F(){
    digitalWrite(12,LOW);

    digitalWrite(8,HIGH);
    digitalWrite(11,HIGH);
    digitalWrite(10,HIGH);
    }
    void loop() {
    forWard();
    delay(2000);
    reVerse();
    delay(2000);
    right_F();
    delay(2000);
    left_F();
    delay(2000);
    }





    و باز هم تشکر می کنم از آقای عطایی بابت توضیحات ایشان در مورد این کد:

    نقل قول نوشته شده توسط نیما عطایی مشاهده تاپیک
    سلام
    این شیلد میتونه 2 تا موتور رو کنترل کنه
    پین های 10 و 11 مربوط به سرعت موتور ها میباشند که با pwm کنترل میشند (اینجا HIGH به معنی حد اکثر قدرت شده)
    پین های 8 و 12 هم جهت چرخش موتور ها رو مشخص میکنه
    در صورت High بودن به جلو و Low بودن موتور به عقب میچرخه
    با توجه به توضیحات آقای عطایی، این کد مربوط به خودرویی تک محوره است و هر کدوم از چرخ های محور یک موتور دارند. ماشین در این روش مثل تانک حرکت می کند یا می پیچد. برای مثال برای حرکت رو به جلو هر دو موتور به صورت High رو به جلو می چرخند و برای پیچش به طرفین، یک از موتورها در جهت عکس حرکت می کند(امیدوارم منظورم رو رسونده باشم!).
    اما در سیستم من، یکی از موتور ها وظیفه تامین نیروی پیشران رو دارد و دیگری وظیفه تنظیم زاویه چرخ های جلو! البته چون فعلا موتورها معمولی هستند، زاویه ها به ماکزیمم ممکن تنظیم شده اند.
    بنابراین باید کد را تعییر بدهم که در پست بعدی کد جدید را قرار خواهم داد.


    ..................



    اما چند سوال:
    1. من باتری تهیه نکرده ام. آیا می تونم برای تامین نیرو از یک پاور بانک 4000 میلی آمپری با خروجی 5V و 2.1 آمپری استفاده کنم؟!
    2. شیلد و برد نیاز به تامین برق جدا دارند؟! اگر پاسخ خیر هست، به کدام یک وصل کنم؟!




    اگر پیشنهاد و انتقادی دارید بفرمایید.
    با احترام.
    آخرین ویرایش به وسیله kolibri : شنبه 09 آبان 1394 در 05:19 صبح

  2. #2

    نقل قول: "پروژه ماشین RC بلوتوث با برد Arduino"

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

    ...

    اما از اونجا که هنوز پاسخی نگرفتم، مجددا سوالات رو مطرح می کنم:
    اما چند سوال:

    1. من باتری تهیه نکرده ام. آیا می تونم برای تامین نیرو از یک پاور بانک 4000 میلی آمپری با خروجی 5V و 2.1 آمپری استفاده کنم؟!
    2. شیلد و برد نیاز به تامین برق جدا دارند؟! اگر پاسخ خیر هست، به کدام یک وصل کنم؟!
    امیدوارم پاسخ بگیرم.

    ....

    اما کد جدید که با کمی تغییرات برای نحوه چینش موتوری من حاصل شده:

    void setup() {
    pinMode(8, OUTPUT);
    pinMode(10, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(12, OUTPUT);
    }

    void forWard() {
    digitalWrite(8, HIGH);
    digitalWrite(10, HIGH);

    }

    void reVerse() {
    digitalWrite (8, LOW);
    digitalWrite (10, HIGH);
    }

    void right_F() {
    digitalWrite(12, HIGH);
    digitalWrite(11, HIGH);
    }

    void left_F() {
    digitalWrite(12, LOW);
    digitalWrite(11, HIGH);
    }
    void loop() {
    forWard();
    delay(2000);
    reVerse();
    delay(2000);
    right_F();
    delay(2000);
    left_F();
    delay(2000);
    }


    البته شاید بعدا سرعت چرخش و همینطور سرعت عقب گرد رو بذارم روی LOW. حالا تا نتیجه چی بشه!

    ...

    حرکت بعدی نوشتن برنامه برای ویندوز 10 هست. این برنامه هم با سنسور شتاب سنج کنترل می کنه و هم با دکمه های مجازی و سخت افزاری.
    البته هنوز قطعات رو سر هم نکردم چون نمی دونم چه ولتاژی بدم و اینکه به کجا!!

    با احترام
    آخرین ویرایش به وسیله kolibri : جمعه 08 آبان 1394 در 05:25 صبح دلیل: اشتباه در نوشتار

  3. #3

    نقل قول: "پروژه ماشین RC بلوتوث با برد Arduino"

    سلام؛
    از اونجا که انگار کسی میلی به این پروژه نداره و فکر نمی کنم برای کسی به جز خودم جذابیت داشته باشه، احتمالا تاپیک رو ادامه ندم!!
    فقط آخرین چیزهایی که فهمیدم:
    دوستانم بهم پیشنهاد دادن اول با یک منبع برق 9 ولتی، اردوئینو رو راه بندازم. و ببینم جوابگوی دو تا برد و موتورها هست یا نه!
    اگر جوابگو نبود از دو تا منبع متفاوت استفاده کنم... که باید با آزمون و خطا برم جلو!
    ...
    خب یه چیزی هم برای پروگرام کردن برد آردوینو UNO CH340G، اگر به درایورش نیاز دارید می تونید آخرین نسخه رو از اینجا دانلود کنید.

    با احترام.

  4. #4

    نقل قول: "پروژه ماشین RC بلوتوث با برد Arduino"

    سلام!
    برای پروگرام کردن برد آردوئینو از نمونه استاندارد Firmata موجود در نرم افزار آردوئینو استفاده کردم.
    برنامه یونیورسال هم تغییرات لازم رو دادم.
    اما مشکلی که هست بلوتوث کانک نمی مونه و زود از حالت کانکت خارج میشه. در حالی که اسپیکر بلوتوثم می تونه مداوم کانکت بمونه!:
    Name:  10-08-1394 07-07-57 ق-ظ.png
Views: 1765
Size:  20.2 کیلوبایت
    مشکل چیه؟!
    آخرین ویرایش به وسیله kolibri : یک شنبه 10 آبان 1394 در 06:42 صبح

  5. #5

    نقل قول: "پروژه ماشین RC بلوتوث با برد Arduino"

    سلام؛
    فکر کنم این تاپیک طلسم شده باشد!
    بگذریم...
    مشکل اتصال بلوتوث از درایور هست و در صورت فعال نبودن دستگاه، ارتباط رو قطع می کنه!
    متاسفانه بلوتوث hc-05 توسط سیستم من غیرفعال می شه!
    راه حل خاموش کردن این قابلیت بود که توی ویندوز 10 (حداقل در مورد من) این قابلیت وجود نداره!
    راه حل دوم خرید یک ماژول بلوتوث اکسترنال هست که نمی دونم جواب بده یا خیر!!

    ...
    در مورد باتری هم من از یک باتری 9 ولتی برای شیلد و 5 ولنی برای تغذیه برد آردوینو استفاده کردم.

  6. #6

    نقل قول: "پروژه ماشین RC بلوتوث با برد Arduino"

    دوستان این کد برای شیلد من درسته؟!
    /*
    Arduino driver for Android app remote control.
    This sketch listens to instructions on the Serial port
    then activates motors as required
    Then sends back confirmation to the app


    Motor shield DFRduino 1A based on L239B
    Pin Function
    Digital 4 Motor 2 Direction control
    Digital 5 Motor 2 PWM control
    Digital 6 Motor 1 PWM control
    Digital 7 Motor 1 Direction control
    */


    int const PWMA = 6;
    int const PWMB = 5;
    int const dirA = 7;
    int const dirB = 4;



    void setup() {
    pinMode(PWMA, OUTPUT);
    pinMode(PWMB, OUTPUT);
    pinMode(dirA, OUTPUT);
    pinMode(dirB, OUTPUT);

    //initial set up straight forward, no speed
    digitalWrite(dirA, HIGH);
    digitalWrite(dirB, HIGH);
    analogWrite(PWMA, 0);
    analogWrite(PWMB, 0);

    Serial.begin(9600);
    }


    void loop() {

    // see if there's incoming serial data:
    if (Serial.available() > 0) {
    // read the oldest byte in the serial buffer:
    int incomingByte = Serial.read();

    // action depending on the instruction
    // as well as sending a confirmation back to the app
    switch (incomingByte) {
    case 'F':
    moveForward(255, true);
    Serial.println("Going forward");
    break;
    case 'R':
    turn(255, true);
    Serial.println("Turning right");
    break;
    case 'L':
    turn(255, false);
    Serial.println("Turning left");
    break;
    case 'B':
    moveForward(255, false);
    Serial.println("Going backwards");
    break;
    case 'S':
    moveForward(0, true);
    Serial.println("Stopping");
    break;
    default:
    // if nothing matches, do nothing
    break;
    }
    }
    }


    void moveForward(int speedBot, boolean forward){
    //boolean forward controls motor direction
    if (forward){
    digitalWrite(dirA, HIGH);
    }
    else{
    digitalWrite(dirA, LOW);
    }
    analogWrite(PWMA, speedBot);


    }


    void turn(int speedBot, boolean right){
    //boolean right controls motor direction
    if (right){
    digitalWrite(dirB, LOW);
    }
    else{
    digitalWrite(dirB, HIGH);
    }
    analogWrite(PWMB, speedBot);
    }

  7. #7

    نقل قول: "پروژه ماشین RC بلوتوث با برد Arduino"

    سلام
    بنده تازه کارم و یه سوال برام پیش اومده
    شما میخای با موبایل این ماشین رو کنترل کنی - یعنی بلوتوث موبایل؟

  8. #8

    نقل قول: "پروژه ماشین RC بلوتوث با برد Arduino"

    نقل قول نوشته شده توسط quantomquery مشاهده تاپیک
    سلام
    بنده تازه کارم و یه سوال برام پیش اومده
    شما میخای با موبایل این ماشین رو کنترل کنی - یعنی بلوتوث موبایل؟
    سلام...
    بله و موفق هم شدم با رایانه و ویندوز موبایل 10 ماشین رو کنترل کنم.
    کارهای اضافه مثل کنترل چراغ ها و یا راهنما زدن و... هم میشه طبق حوصله انجام داد.

تاپیک های مشابه

  1. پاسخ: 236
    آخرین پست: پنج شنبه 10 تیر 1395, 17:54 عصر
  2. خبر: دانلود پروژه ماشین حساب به همراه سورس
    نوشته شده توسط masoud.t123 در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: یک شنبه 02 بهمن 1390, 16:03 عصر
  3. سوال: پروژه ماشین حساب
    نوشته شده توسط f_farnaz80 در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 5
    آخرین پست: سه شنبه 03 آذر 1388, 10:17 صبح

قوانین ایجاد تاپیک در تالار

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