اطلاعیه

Collapse
No announcement yet.

آردوینو - Arduino

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    آردوینو - Arduino

    آردوینو ( Arduino ) یک برد اپن سورس (متن باز) و (سخت افزار باز) مبتنی بر میکروکنترلر های AVR میباشد
    برنامه نویسی و برنامه ریزی این بردها بسیار ساده و لذت بخشه به صورتی که خیلی زود اون رو یاد می گیرید

    امروزه استفاده از این برد در زمینه رباتیک بسیار بسیار گسترده میباشد
    و چون استفاده از این برد در دیگر کشور ها (بجز ایران و جای تعجب داره :angry به دلیل اپن سورس بودن بسیار بسیار رایج میباشد کتابخانه ها و پروژه های زیاد و بزرگی برای این برد نوشته شده برای اثباتش فقط کافیه در مورد هر موضوعی یه جستجو کنید.
    نمونه های کوچیکش :

    http://www.instructables.com/tag/type-id/category-technology/channel-arduino/
    https://github.com/search?q=arduino&ref=cmdform

    خب بریم سر اصل مطلب که ساخت سخت افزار و پروگرم کردن اونه

    سخت افزار :
    شما می تونید یک برد آماده بخرید یا اگه دوست دارید میتونید اون رو با قیمت خیلی عالی بسازید.
    میکروکنترلرهای پشتیبانی شده توسط این شرکت :
    Atmega8
    Mega168
    Mega328
    Mega2560
    برای ساخت برد آردوینو و برنامه نویسی هیچ فرقی نداره از کدوم برد استفاده میکنید تنها فرق این میکروها در آردوینو تعداد پایه ها و تعداد خروجی PWM هاست.

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



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



    بعد هم پایه های سریال میکروکنترلر - RX, TX - رو به یه تبدیل USB به سریال وصل کنید
    در ضمن وجود پورت سریال برای این بردها واجبه
    خیلی مهم : پایه ریست رو هم با یه خازن طبق شماتیک به پایه DTR سریال وصل کنید تقریبا همه تبدیل ها این پایه رو دارن
    پایه DTR برای ریست اتوماتیک میکرو برای برنامه ریزی از طریق پورت سریال استفاده میشه

    نرم افزار:
    ابتدا برنامه Arduino رو از لینک زیر دانلود کنید
    http://178.33.181.168/arduino/arduino-1.0.5-windows.exe
    برنامه رو اجرا کنید بعد میکروکنترلر رو در پروگرمر بزارید
    بعد مراحل رو طبق عکسا دنبال کنید
    اسم برد شما Arduino NG هست


    مدل پروگرمر خودتون رو انتخاب کنید بعد گزینه burn bootloader رو بزنید تا بوت لودر آردوینو در میکرو بارگزاری بشه

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


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

    در ضمن این گزینه خودش فیوز بیت هارو هم به صورت اتوماتیک تنظیم میکنه نیازی به این کار نیست.
    خب اگر کارها رو به درستی انجام داده باشید اون پایین صفحه باید پیغام burn successfully رو ببینید
    شاید این کار تا ده دقیقه هم طول بکشه پس کمی صبر کنید.

    میکروی پروگرم شده رو در بردتون قرار بدید اگه همه کارهارو درست انجام داده باشید Led متصل به پین 13 دیجیتال آردوینو با نظم خاصی شروع به چشمک زدن میکنه و من هم به شما تبریک میگم :applause: :nice:
    الان شما یک برد آردوینو دارید

    در پست های بعدی آموزش برنامه نویسی رو قرار میدم که خیلی آسونه اصلا نگران نباشید :rolleyes: :icon_razz:

    اگه مشکلی پیش اومد خبرم کنید

    #2
    پاسخ : آردوینو - Arduino

    اولین آموزش پروژه چشمک زن ال ای دی داخلی برد آردوینو یا همون پایه دیجیتال 13 :

    از منوی Example گزینه مورد نظر رو انتخاب کنید
    این منو دارای نمونه های زیادی برای یادگیری می باشد


    بعد پورت سریال متصل به آردوینو رو انتخاب کنید


    بعد گزینه Compile and upload رو انتخاب کنید
    بعد از کامپیال شدن برنامه خیلی سریع و بدون نیاز به هیچ پروگرمری و فقط و فقط از طریق پورت سریال برنامه ریزی میشه



    برای برنامه ریزی و پروگرم کردن در دفعات بعدی نیازی به پاک کردن میکرو ندارید و فقط گزینه Upload رو دوباره بزنید

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

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

    موفق باشید
    احسان مرادی"

    دیدگاه


      #3
      پاسخ : آردوینو - Arduino

      حداقل کدهای مورد نیاز برای راه اندازی آردوینو:
      (به کدهای آردوینو Sketch می گویند به معنی طراحی کردن یا ...)

      تابع setup()
      از این تابع برای تعیین وضعیت ورودی یا خروجی پین ها، تعیین متغیرها استفاده از کتابخانه ها و .. استفاده میشود
      این تابع بعد از هر ریست فقط یک بار اجرا می شود.

      تابع loop()
      همانطور که از اسم این تابع معلوم است، این تابع حلقه اصلی برنامه را تشکیل می دهد که کد های اصلی شما در اینجا قرار میگیرند

      void setup() {
      // put your setup code here, to run once:

      }

      void loop() {
      // put your main code here, to run repeatedly:

      }

      دیدگاه


        #4
        پاسخ : آردوینو - Arduino

        نوشته اصلی توسط FKR2
        حداقل کدهای مورد نیاز برای راه اندازی آردوینو:
        (به کدهای آردوینو Sketch می گویند به معنی طراحی کردن یا ...)

        تابع setup()
        از این تابع برای تعیین وضعیت ورودی یا خروجی پین ها، تعیین متغیرها استفاده از کتابخانه ها و .. استفاده میشود
        این تابع بعد از هر ریست فقط یک بار اجرا می شود.

        تابع loop()
        همانطور که از اسم این تابع معلوم است، این تابع حلقه اصلی برنامه را تشکیل می دهد که کد های اصلی شما در اینجا قرار میگیرند

        void setup() {
        // put your setup code here, to run once:

        }

        void loop() {
        // put your main code here, to run repeatedly:

        }
        سلام
        ببخشید اخرش من نفهمیدم این اردینو با برنامه نویسی مثل سی یا بیسکام چه تفاوتی داره اینمکه اخرش کد میخواد من فکر کردم دیگه کد نیاز نداره و از طریق همون منو ها این کار را اتو ماتیک انجام میده . oo: oo: oo:

        دیدگاه


          #5
          پاسخ : آردوینو - Arduino

          تعیین وضعیت ورودی یا خروجی پین های که در تابع setup() قرار میگیرد:
          کد:
          pinMode(pin_number, OUTPUT or INPUT);
          pinMode(1, OUTPUT);

          برای ایجاد تاخیر (delay) نیاز به فراخوانی کتابخانه ندارید. برای مثال:
          کد:
          delay(1000);

          برای صفر یا یک کردن یک پین آردوینو:
          کد:
          digitalWrite(1, HIGH);
          یا 
          digitalWrite(1, LOW);

          برای خواندن ADC نیاز به فراخوانی هیچ کتابخانه ای ندارید
          فقط کافیه مقدار زیر را در یک متغیر بریزید
          کد:
          analogRead(A0);
          برای مثال:
          int sensorValue = analogRead(A0);

          برای استفاده از پورت سریال فقط باید نرخ ارسال و دریافت اطلاعات رو تنظیم کنید. برای مثال:
          کد:
          void setup() 
          {
            Serial.begin(9600);
          }
          
          void loop() {
           Serial.print("hello Ehsan");// برای ارسال رشته
           Serial.print(sensor value);// برای ارسال متغیر
           Serial.println(); //برای رفتن به خط بعدی
           delay(100);
          }

          برای استفاده از خروجی PWM شما فقط باید پایه مورد نظر رو در تابع setup() خروجی کنید
          کد:
          pinMode(9, OUTPUT);
          فقط پین های مشخص شده این قابلیت رو دارند. در میکروی مگا8 فقط پایه های 9 -10- 11

          بعد برای مقدار دهی به این پین ها از کد زیر استفاده میکنید:
          کد:
          analogWrite(9, 128);
          بجای 128 میتوانی مقداری بین 0 تا 255 وارد کنید

          راه اندازی یک دکمه

          کد:
          int buttonState = 0;     // variable for reading the pushbutton status
          
          void setup() {
           pinMode(13, OUTPUT);   
           pinMode(2, INPUT);   
          }
          
          void loop(){
           // خواندن وضعیت دکمه
           buttonState = digitalRead(2);
          
           if (buttonState == HIGH) 
           {     
            digitalWrite(13, HIGH); 
           } 
           else
           {
            digitalWrite(13, LOW); 
           }
          }

          استفاده از pull up داخلی میکروکنترلر
          این کد وضعیت دکمه رو میخونه و به پورت سریال ارسال میکنه

          کد:
          void setup(){
           //start serial connection
           Serial.begin(9600);
           //configure pin2 as an input and enable the internal pull-up resistor
           pinMode(2, INPUT_PULLUP);
           pinMode(13, OUTPUT); 
          
          }
          
          void loop(){
           //read the pushbutton value into a variable
           int sensorVal = digitalRead(2);
           //print out the value of the pushbutton
           Serial.println(sensorVal);
           
           // Keep in mind the pullup means the pushbutton's
           // logic is inverted. It goes HIGH when it's open,
           // and LOW when it's pressed. Turn on pin 13 when the 
           // button's pressed, and off when it's not:
           if (sensorVal == HIGH) {
            digitalWrite(13, LOW);
           } 
           else {
            digitalWrite(13, HIGH);
           }
          }
          برای ارسال و دریافت اطلاعات از میکرو میتونید از قسمت سریال مانیتور خود برنامه استفاده کنید
          جالبه بدونید که بوت لودر آردوینو به صورت هوشمند برقراری ارتباط سریال رو تشخیص میده
          و شما تا این قسمت رو اجرا نکنید میکرو هیچ اطلاعاتی از پورت سریال نمیفرسته



          برای مثال های جالب و آموزش های بیشتر به این صفحه رجوع کنید
          http://arduino.cc/en/Tutorial/HomePage
          خدایی هر کدوم از این امکانات رو اگه میخواستید تو برنامه های دیگه راه بندازید باید کلی تنظیمات انجام میدادید
          ولی تو این برنامه تنظیم ها به حداقل رسیده شما فقط کافیه چکیده مغزتون رو پیاده سازی کنید

          دیدگاه


            #6
            پاسخ : آردوینو - Arduino

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

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

            وجود منابع، مثال و کتابخانه های زیاد و غنی (به کمک دوستان کم کم همشون رو معرفی خواهیم کرد)

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

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

            و یه چیز دیگه این که مجتمع بزرگ رباتیک mrl قزوین از این بردها استفاده میکنه
            میتونید یکم تحقیق کنید :icon_razz: :agree:

            دیدگاه


              #7
              پاسخ : آردوینو - Arduino

              با سلام.
              شما تو پست دومتون اون عکسی که گذاشتید قسمت Serial Port فعال نیست.
              میخواستم ببینم شما خودتون این ها رو امتحان کردید؟
              چون از پست هاتون خیلی خوشم اومد اینو پرسیدم.
              منم میخام یکی از این بردا بسازم.
              خیلی ممنون.

              دیدگاه


                #8
                پاسخ : آردوینو - Arduino

                نوشته اصلی توسط سینا_80
                با سلام.
                شما تو پست دومتون اون عکسی که گذاشتید قسمت Serial Port فعال نیست.
                میخواستم ببینم شما خودتون این ها رو امتحان کردید؟
                چون از پست هاتون خیلی خوشم اومد اینو پرسیدم.
                منم میخام یکی از این بردا بسازم.
                خیلی ممنون.
                من با نوتبوک پست گذاشتم و موقع نوشتن مبدل سریالم وصل نبود
                این منو به صورت اتوماتیک پورتهای موجود رو اسکن میکنه نگران این مساله نباش

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

                دیدگاه


                  #9
                  پاسخ : آردوینو - Arduino

                  فقط یه نگاه به این کتابخانه کوچیک بندازید تا بفهمید با چه دنیای بزرگی روبرو هستید
                  http://playground.arduino.cc/Main/LibraryList


                  دنیای پروژه آردوینو:
                  http://fritzing.org/projects/?page=1

                  دقت کنید که پسوند فایل های سورس کد آردوینو ino و pde می باشد
                  فایل ها با پسوند fzz که نمایش دهنده شماتیک پروژه هاست با برنامه اختصاصی خود سایت که از لینک زیر قابل دانلود است قابل باز شدن هستند
                  http://fritzing.org/download/

                  دیدگاه


                    #10
                    پاسخ : آردوینو - Arduino

                    سلام. میشه یه توضیح کلی دربارهی این برد بدین؟ بیشتر به چه کاری میاد و در چه جایی استفاده میکنن؟؟

                    دیدگاه


                      #11
                      پاسخ : آردوینو - Arduino

                      آردوینو از دو قسمت تشکیل شده : سخت افزار و نرم افزار

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

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

                      دیدگاه


                        #12
                        پاسخ : آردوینو - Arduino

                        نوشته اصلی توسط FKR2
                        آردوینو از دو قسمت تشکیل شده : سخت افزار و نرم افزار

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

                        فقط مزیتش نسبت به سخت افزار ها و نرم افزار های دیگه راحتی و سادگیشه که فکر کنم درصد زیادی از برنامه نویسها از این برنامه استفاده میکنند ولی متاسفانه در ایران هنوز جا نیافتاده
                        سلام
                        این اردینو میتونه میکرو های arm را هم ساپورت کنه ؟؟؟؟

                        دیدگاه


                          #13
                          پاسخ : آردوینو - Arduino

                          نوشته اصلی توسط سمیراا
                          سلام
                          این اردینو میتونه میکرو های arm را هم ساپورت کنه ؟؟؟؟
                          بله پشتیبانی میکنه با میکروکنترلر AT91SAM3X8E
                          این هم آدرسش
                          http://arduino.cc/en/Main/ArduinoBoardDue

                          فکر نکنم تو ایران بتونید پیداش کنید باید خودتون دست به کار بشید بسازید
                          این هم شماتیکش
                          http://arduino.cc/en/uploads/Main/ar...-schematic.pdf

                          دیدگاه


                            #14
                            پاسخ : آردوینو - Arduino

                            مگه میشه تو ایران گیر نیاد؟!، http://shop.aftabrayaneh.com/Arduino_Boards/Arduino_Due_R3
                            امروز هم داشتم تو جمهوری قدم میزدم، تو پاساژ فرشته دیدم تبلیغ آردوینو رو زده، رفتم پرسیدم گفتم داری؟ چند؟ گفت فردا میرسه، حدود 50 تومن و گفت که uno و nano (اگه درست یادم باشه) قراره برسه، تا چند وقت دیگه باید منتظر فراگیر شدنش (یا به قولی: خز شدنش) باشیم. حدود 2 سالی هم میشه که خبرشو دارم تو ایران دارن یواشکی ازش استفاده میکنن و صداش هم در نمیارن.
                            ;()((void (*)(void))0x0000))

                            دیدگاه


                              #15
                              پاسخ : آردوینو - Arduino

                              نوشته اصلی توسط SAJAD-G
                              مگه میشه تو ایران گیر نیاد؟!، http://shop.aftabrayaneh.com/Arduino_Boards/Arduino_Due_R3
                              امروز هم داشتم تو جمهوری قدم میزدم، تو پاساژ فرشته دیدم تبلیغ آردوینو رو زده، رفتم پرسیدم گفتم داری؟ چند؟ گفت فردا میرسه، حدود 50 تومن و گفت که uno و nano (اگه درست یادم باشه) قراره برسه، تا چند وقت دیگه باید منتظر فراگیر شدنش (یا به قولی: خز شدنش) باشیم. حدود 2 سالی هم میشه که خبرشو دارم تو ایران دارن یواشکی ازش استفاده میکنن و صداش هم در نمیارن.
                              به به مثل اینکه به قول شما داره خز میشه اتفاقا به نفع ماست وقتی همه گیر بشه رفع مشکلا آسون تر میشه
                              بعله خیلی ها استفاده میکنن ولی هیچ اطلاعاتی بیرون نمیدن نکنه یوقت خز شه :angry:
                              مثلا گروه بزرگ رباتیک mrl که به صورت گسترده داره از این بردها استفاده میکنه

                              50 هزار زیاده, من خودم روی برد سوراخ دار لحیم کردم با تمام امکاناتش برام نزدیک 10 هزار تومن تموم شد
                              خوب هم جواب میده
                              مثل همین لینک شما:
                              http://shop.aftabrayaneh.com/Arduino_Board_Kit_m1

                              در ضمن من در نوشتن مطالب آموزشی تجربه کافی ندارم از دوستان آشنا و مطلع تقاضا دارم بیان برای کمک و ارائه مطالب بیشتر :read:

                              دیدگاه

                              لطفا صبر کنید...
                              X