• نمونه های آردوینو زبان برنامه نویسی آردوینو

    پس از آشنایی با عناصر اصلی آردوینو و همچنین نوشتن برنامه "Hello World!". وقت آن است که با یک زبان برنامه نویسی آشنا شوید.

    ساختار زبان اساساً بر پایه C/C++ است، بنابراین کسانی که قبلاً به این زبان برنامه نویسی کرده اند در تسلط بر برنامه نویسی آردوینو مشکلی نخواهند داشت. دیگران باید اطلاعات اولیه در مورد دستورات کنترل، انواع داده ها و توابع را بیاموزند.

    بسیاری از اطلاعات موجود در اینجا با در نظر گرفتن تفاوت در انواع داده ها و همچنین چند دستورالعمل خاص در مورد برنامه نویسی پورت I/O با هر دوره C/C++ سازگار خواهد بود.

    مبانی

    چند چیز رسمی، یعنی چیزهایی که همه می دانند اما گاهی فراموش می کنند...

    که در آردوینو IDEمانند C/C++، باید از موارد کاراکتر آگاه باشید. کلید واژه ها، مانند if، for همیشه با حروف کوچک نوشته می شوند. هر دستورالعمل با ";" به پایان می رسد. نقطه ویرگول به کامپایلر می گوید که کدام قسمت را به عنوان یک دستورالعمل تفسیر کند.

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

    افزودن نظرات به محتوای برنامه تمرین خوبی است، این امر درک کد را آسان می کند. نظرات تک خطی با شروع می شود // (مقطع دوتایی). نظرات چند خطی با شروع می شود /* و به پایان برسد */

    اگر بخواهیم هر کتابخانه ای را در برنامه خود قرار دهیم، از دستور include استفاده می کنیم. در اینجا نمونه هایی از اتصال کتابخانه ها وجود دارد:

    #عبارتند از // کتابخانه استاندارد #شامل "svoya_biblioteka.h" // کتابخانه در فهرست پروژه

    توابع در آردوینو

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

    یک دوره برنامه نویسی استاندارد حاوی اطلاعاتی در مورد توابع است که در مقالات بعدی ارائه خواهد شد. در مورد آردوینو، توابع در ابتدا مورد بحث قرار خواهند گرفت زیرا حتی ساده ترین برنامهباید دوتا داشته باشه توابع ویژه. این قبلاً در مقالات قبلی ذکر شده است، اما در اینجا ما این اطلاعات را سیستماتیک می کنیم.

    اعلامیه عملکرد

    نمودار اعلان تابع به شکل زیر است:

    تابع_name(پارامتر) را تایپ کنید ( // دستورالعمل‌های اجرا (بدنه تابع) بازگشت (/* مقدار بازگشتی*/)؛ )

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

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

    function_nameاجازه می دهد تا به طور منحصر به فرد شناسایی شود. برای فراخوانی (اجرا) یک تابع، نامی به آن می دهیم.

    پارامتر- پارامتر فراخوانی تابع. پارامترها مورد نیاز نیستند، اما اغلب مفید هستند. اگر تابعی بنویسیم که آرگومان نداشته باشد، پرانتز را خالی می گذاریم.

    در داخل براکت ها "(...)" بدنه واقعی تابع یا دستورالعملی است که می خواهیم اجرا کنیم. ما در مقاله ای جداگانه توضیحاتی در مورد دستورالعمل های خاص ارائه خواهیم داد.

    تمام توابعی که مقداری را برمی گرداند با یک عبارت بازگشتی و سپس مقدار بازگشتی به پایان می رسد. فقط توابع اعلام شده با اشاره گر تهی ("void") حاوی دستور بازگشت نیستند. باید بدانید که عبارت return بدون توجه به مکان، عملکرد را خاتمه می دهد.

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

    Void f1() (//بدنه تابع) —————————————— int minus() (//function body return (0); ) ——————————— ——— int plus(int a, int b) ( return (a+b)؛ )

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

    اکیداً توصیه می کنیم که هنگام نوشتن از توابع یاد بگیرید و از آنها استفاده کنید برنامه های خود. با گذشت زمان، هر برنامه نویس کتابخانه ای از توابع خود را "برای همه موارد" جمع آوری می کند، که نوشتن برنامه های جدید را آسان تر و سریع تر می کند.

    اکنون که می دانیم چگونه تابع خود را بنویسیم، باید نحوه استفاده از آن را یاد بگیریم.

    فراخوانی یک تابع

    همه توابع را در یک فایل/برنامه می نویسیم. البته راه حل ظریف تری وجود دارد، اما دفعه بعد سعی خواهیم کرد آن را شرح دهیم.

    هنگامی که یک تابع را اعلام می کنیم، می توانیم از آن در توابع دیگر با نام مناسب و هر پارامتر مورد نیاز استفاده کنیم. در زیر نمونه هایی از فراخوانی توابعی که در بالا ارائه کردیم آورده شده است:

    F1(); به علاوه (2،2); y=plus(1.5);

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

    اگر تابع f1() بدون پارامتر اعلان شود، در هنگام فراخوانی هیچ پارامتری نمی توان تعیین کرد، یعنی. فراخوانی f1(0) نادرست خواهد بود.

    تابع plus(int a, int b) دقیقاً به دو پارامتر نیاز دارد، بنابراین فراخوانی با یک یا سه پارامتر امکان پذیر نیست.

    فراخوانی y=plus(1,5) تابع "plus" را با پارامترهای "1" و "5" اجرا می کند و مقدار بازگشتی را در متغیر "y" ذخیره می کند.

    توابع setup() و loop().

    با آگاهی از اعلان و فراخوانی تابع، می توانیم به توابع سیستم آردوینو برویم: برپایی()و حلقه (). آردوینو IDE اجباریشما باید این دو تابع را اعلام کنید.

    setup() تابعی است که با روشن شدن برق یا فشار دادن دکمه RESET به طور خودکار فراخوانی می شود.

    همانطور که از نام آن پیداست، برای تنظیم مقادیر اولیه متغیرها، اعلان ورودی ها و خروجی های سیستم، که معمولاً در پارامترهای اولیه مشخص می شوند، استفاده می شود. این تابع به دلیل خاص بودن مقداری بر نمی گرداند و با پارامترها فراخوانی نمی شود. اعلان تابع setup() صحیح در زیر آمده است:

    تنظیم خالی () ( // بدنه تابع - مقداردهی اولیه سیستم)

    loop() تابعی است که in فراخوانی می شود حلقه بی پایان. این تابعهمچنین مقداری بر نمی گرداند و با پارامترها فراخوانی نمی شود. اعلان تابع loop() صحیح در زیر نشان داده شده است:

    حلقه خالی () ( // بدنه تابع - کد برنامه )

    همانطور که می بینید، اعلان تابع ()loop با اعلان تابع setup() یکسان است. تفاوت در انجام این عملکردها توسط میکروکنترلر نهفته است.

    اکنون شبه کد زیر را تحلیل خواهیم کرد:

    تنظیم خالی () ( on_led1 (); //روشن کردن led1 off_led1 (); //خاموش کردن led1) حلقه خالی () ( on_led2 ()

    دو دستورالعمل در تابع setup() وجود دارد: اولی led1 متصل به برد را روشن می کند (مثلا پین 13) و دومی led1 را خاموش می کند.

    تابع loop() دستورالعمل های یکسانی برای روشن و خاموش کردن LED2 متصل به برد دارد (به عنوان مثال پین 12).

    در نتیجه اجرای برنامه، led1 یک بار چشمک می زند، در حالی که led2 تا زمانی که آردوینو روشن باشد روشن می شود و خاموش می شود.

    فشار دادن دکمه RESET باعث می شود که led1 یک بار دیگر چشمک بزند و led2 دوباره چشمک بزند.

    خلاصه کردن:

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

    در زندگی یک توسعه دهنده آردوینو، دیر یا زود زمانی فرا می رسد که محیط توسعه استاندارد شلوغ می شود. اگر اسکچ ها دیگر حافظه کافی ندارند، نیاز به زمان واقعی سخت و کار با وقفه دارید، یا فقط می خواهید به سخت افزار نزدیک شوید، وقت آن است که به C تغییر دهید. مهندسان الکترونیک باتجربه با اشاره به آردوینو با تحقیر اخم می کنند و ارسال می کنند. تازه وارد به مغازه رادیویی برای آهن لحیم کاری. شاید این بدترین توصیه نباشد، اما ما هنوز از آن پیروی نخواهیم کرد. اگر Arduino IDE و زبان سیم‌کشی/پردازش را کنار بگذاریم، با یک برد اشکال‌زدایی عالی روبرو می‌شویم که از قبل به همه چیز لازم برای عملکرد میکروکنترلر مجهز شده است. و مهمتر از همه، یک بوت لودر از قبل به حافظه کنترلر متصل شده است و به شما امکان می دهد بدون استفاده از برنامه نویس، سیستم عامل را بارگیری کنید.

    برای برنامه نویسی به زبان C به AVR GCC Toolchain نیاز داریم.

    همچنین به Arduino IDE نصب شده نیاز داریم، زیرا... این شامل ابزار avrdude است که برای دانلود سیستم عامل در کنترلر مورد نیاز است. کراس پک نیز حاوی avrdude است، اما نسخه ای که همراه آن است با آردوینو کار نمی کند.

    پس از نصب همه چیز، بیایید اولین پروژه خود را ایجاد کنیم. برای شروع، بیایید بنویسیم Makefile. این به ما این امکان را می دهد که هر بار که سفت افزار را کامپایل و بارگذاری می کنیم از وارد کردن دستورات طولانی به صورت دستی خودداری کنیم.

    #کنترل بر روی برد نصب شده است. ممکن است متفاوت باشد، برای مثال atmega328 DEVICE = atmega168 #فرکانس ساعت 16 مگاهرتز CLOCK = 16000000 #دستور راه اندازی Avrdude. باید از Arduino IDE کپی شود. AVRDUDE = /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.con. -carduino -P/dev/tty.usbserial-A600dAAQ -b19200 -D -p atmega168 OBJECTS = main.o COMPILE = avr-gcc -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE) همه: اصلی .hex .c.o: $(COMPILE) -c $< -o $@ .S.o: $(COMPILE) -x assembler-with-cpp -c $< -o $@ .c.s: $(COMPILE) -S $< -o $@ flash: all $(AVRDUDE) -U flash:w:main.hex:i clean: rm -f main.hex main.elf $(OBJECTS) main.elf: $(OBJECTS) $(COMPILE) -o main.elf $(OBJECTS) main.hex: main.elf rm -f main.hex avr-objcopy -j .text -j .data -O ihex main.elf main.hex avr-size --format=avr --mcu=$(DEVICE) main.elf

    در این فایل باید دستور خود را برای راه اندازی avrdude وارد کنیم. بر سیستم های مختلفمتفاوت به نظر خواهد رسید برای پیدا کردن گزینه خود، Arduino IDE را راه اندازی کنید و کادر "نمایش خروجی کامل هنگام آپلود" را در تنظیمات علامت بزنید.

    اکنون هر طرحی را در آردوینو بارگذاری می کنیم و به پیام های نمایش داده شده در پایین پنجره نگاه می کنیم. ما فراخوانی avrdude را در آنجا پیدا می کنیم، همه چیز را به جز پارامتر -Uflash کپی می کنیم و آن را بعد از "AVRDUDE =" در Makefile قرار می دهیم.


    یک نکته سریع: تمام تورفتگی در Makefile با کاراکترهای تب (کلید Tab) انجام می شود. اگر شما ویرایشگر متناین کاراکترها را با فاصله ها جایگزین می کند، دستور make از ساخت پروژه امتناع می کند.

    حالا بیایید یک فایل بسازیم main.c- متن واقعی برنامه ما، که در آن به طور سنتی LED را چشمک می زنیم.

    #عبارتند از #عبارتند از #define LED_PIN 5 int main() (DDRB |= 1<< LED_PIN; while(1) { PORTB |= 1 << LED_PIN; _delay_ms(1000); PORTB &= ~(1 << LED_PIN); _delay_ms(1000); } return 0; }

    پروژه ما آماده است. بیایید کنسول را در دایرکتوری پروژه خود باز کنیم و دستور "make" را وارد کنیم:


    همانطور که می بینید، اندازه سیستم عامل به دست آمده تنها 180 بایت است. یک طرح مشابه آردوینو 1116 بایت در حافظه کنترلر اشغال می کند.

    حالا بیایید به کنسول برگردیم و "make flash" را وارد کنیم تا فایل کامپایل شده در کنترلر بارگذاری شود:


    اگر دانلود بدون خطا انجام شود، LED متصل به پایه 13 برد با خوشحالی چشمک می زند. گاهی اوقات avrdude نمی تواند برد را پیدا کند یا به دلیل وقفه زمانی می افتد - در این مورد، پیچاندن کابل USB می تواند کمک کند. همچنین، برای جلوگیری از تداخل دسترسی به برد، فراموش نکنید که Arduino IDE را قبل از دستور make flash ببندید.

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

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

    28 09.2016

    آیا تا به حال به این فکر کرده اید که زندگی خود را در خانه راحت تر کنید؟ برای داشتن چیزهایی که کارهای روزمره و روزمره را برای شما حل کند. دستگاه هوشمندی که عملکرد مفیدی را انجام می دهد، به عنوان مثال، باغ را آبیاری می کند، یک اتاق را تمیز می کند، یا باری را حمل می کند. این مشکلات قابل حل است. اما فقط خرید آن کافی نخواهد بود. هر کنترل‌کننده منطق صنعتی یا تراشه‌ای نیاز به یک «مغز» برای انجام یک سری اقدامات خاص دارد. برای انجام عملیات در مورد ما، زبان برنامه نویسی آردوینو مناسب است.

    از این مقاله یاد خواهید گرفت:

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

    توضیحات کلی زبان های برنامه نویسی

    همانطور که در بالا نوشتم، ما دو محیط توسعه محبوب را در نظر خواهیم گرفت. به قیاس بارا می توان به یک ویرایشگر گرافیکی و یک «یادداشت هوشمند» تقسیم کرد. اینها برنامه های Arduino IDE و FLprog هستند.

    اساس محیط توسعه Processing/Wiring است - این یک C ++ معمولی است که با توابع و کتابخانه های مختلف تکمیل شده است. چندین نسخه برای سیستم عامل ویندوز، مک او اس و لینوکس وجود دارد.

    تفاوت اساسی آنها چیست؟؟ Arduino IDE یک محیط توسعه است که کد برنامه را توصیف می کند. و FLprog مشابه CFC CoDeSyS است که به شما امکان ترسیم نمودار را می دهد. کدام محیط بهتر است؟ هر دو در نوع خود خوب و راحت هستند، اما اگر می خواهید در مورد کنترلرها جدی بگیرید، بهتر است زبان هایی مشابه SI یاد بگیرید. مزیت اصلی آنها انعطاف پذیری و ماهیت نامحدود الگوریتم است. من IDE آردوینو را خیلی دوست دارم.

    توضیحات Arduino IDE

    توزیع را می توان از وب سایت رسمی. آرشیو را دانلود کنید، کمی بیش از 100 مگابایت طول می کشد. نصب استاندارد است، مانند همه برنامه های کاربردی برای ویندوز. درایور انواع برد باید در بسته نصب شود. و این همان چیزی است که پنجره کاری برنامه به نظر می رسد.

    محیط توسعه آردوینو شامل موارد زیر است:

    • ویرایشگر کد برنامه؛
    • مناطق پیام؛
    • پنجره های خروجی متن؛
    • نوار ابزار با دکمه هایی برای دستورات پرکاربرد.
    • چندین منو

    تنظیمات آردوینو IDE

    برنامه ای که در محیط توسعه آردوینو نوشته شده است نامیده می شودطرح. طرح در یک ویرایشگر متن نوشته شده است که دارای برجسته رنگی کد برنامه ایجاد شده است. نمونه ای از یک برنامه ساده در تصویر زیر.

    قابلیت های اضافی را می توان با استفاده از آن اضافه کردکتابخانه ها،نشان دهنده کد طراحی شده به روشی خاص اساساً برای توسعه دهنده قابل دسترسی نیست. محیط معمولاً با یک مجموعه استاندارد ارائه می شود که می تواند به تدریج دوباره پر شود. آنها در زیر شاخه قرار دارندکتابخانه هادایرکتوری آردوینو

    بسیاری از کتابخانه ها دارای نمونه هایی هستند که در پوشه قرار دارندمثال.با انتخاب یک کتابخانه در منو، خط زیر به کد منبع اضافه می شود:

    آردوینو

    #عبارتند از

    #عبارتند از

    این یک دستورالعمل است - یک نوع دستورالعمل، یک فایل هدر که اشیا، توابع و ثابت های کتابخانه را توصیف می کند. بسیاری از توابع قبلاً برای اکثر وظایف رایج توسعه یافته اند. باور کنید این کار زندگی برنامه نویس را راحت تر می کند.

    بعد از اینکه برد الکترونیکی را به کامپیوتر وصل کردیم. ما تنظیمات زیر را انجام می دهیم - برد آردوینو و پورت Com که از طریق آن متصل خواهیم شد را انتخاب کنید.

    آردوینو

    void setup() ( // مقداردهی اولیه پین ​​دیجیتال 13 به عنوان خروجی. pinMode(13، OUTPUT)؛ ) void loop() ( digitalWrite(13، HIGH)؛ delay(1000)؛ digitalWrite(13، LOW)؛ delay(1000 )

    void setup() (

    // پایه دیجیتال 13 را به عنوان خروجی مقداردهی کنید.

    pinMode (13، OUTPUT)؛

    حلقه خالی() (

    digitalWrite (13، HIGH);

    تاخیر (1000);

    digitalWrite (13، LOW);

    تاخیر (1000);

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

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

    اتصال کتابخانه ها

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

    1. با استفاده از Library Manager
    2. استفاده از import به عنوان فایل zip
    3. نصب دستی.

    1. استفاده از Library Manager.در پنجره کاری برنامه، تب Sketch را انتخاب کنید. پس از آن بر روی دکمه Connect library کلیک کنید. مدیر کتابخانه جلوی ما باز می شود. پنجره فایل های از قبل نصب شده را با امضا نمایش می دهدنصب شده استو آنهایی که قابل نصب هستند.

    2. استفاده از import به عنوان فایل zip.اغلب در اینترنت می‌توانید فایل‌های کتابخانه‌ای را که در آرشیو با پسوند zip بسته‌بندی شده‌اند پیدا کنید. این شامل یک هدر file.h و یک کد file.cpp است. در حین نصب نیازی به باز کردن آرشیو نیست. فقط به منوی Sketch - Connect Library - Add .ZIP library بروید

    3-نصب دستیابتدا برنامه Arduino IDE را ببندید. ابتدا آرشیو خود را باز می کنیم. و فایل های با پسوند h و cpp را به پوشه ای هم نام بایگانی منتقل می کنیم. پوشه را در پوشه اصلی قرار دهید.

    My Documents\Arduino\libraries

    توضیحات FLPprog

    FLprog یک پروژه رایگان از توسعه دهندگان مستقل است که به شما امکان می دهد با بلوک های تابع یا نمودارهای نردبان کار کنید. این محیط برای افراد مناسب است - نه برنامه نویسان. این به شما امکان می دهد با استفاده از نمودارها و بلوک های عملکردی الگوریتم را به صورت بصری و واضح مشاهده کنید. شما می توانید توزیع را در وب سایت رسمی.

    من مدت زیادی است که پروژه را دنبال می کنم. بچه ها در حال توسعه هستند، دائماً عملکردهای جدید اضافه می کنند و موارد قدیمی را تغییر می دهند. من در این محیط نوید می بینم. از آنجایی که دو عملکرد مهم را انجام می دهد:سادگی و سهولت استفاده.

    بیایید سعی کنیم یک پروژه ساده ایجاد کنیم. خروجی 13 را به LED تغییر می دهیم.

    بیایید یک پروژه جدید ایجاد کنیم. در پنجره بالا، تعداد ورودی و خروجی مورد نیاز را اضافه کنید، یک نام تعیین کنید و یک ورودی یا خروجی فیزیکی را به برد اختصاص دهید.

    عناصر مورد نیاز خود را از درخت شی و عناصر مورد نیاز را روی بوم ویرایش بیرون می آوریم. در مورد ما، می‌توانیم از یک ماشه ساده RS برای روشن و خاموش کردن آن استفاده کنیم.

    پس از ایجاد الگوریتم، روی دکمه کامپایل کلیک کنید، برنامه یک طرح آماده در IDE ارائه می دهد.

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

    در 22 سپتامبر در سمیناری در کراسنودار شرکت کردم کنترلرهای پنل لمسی OVEN SPK. این همایش در هتل شیک و زیبای بریستول برگزار شد. خیلی جالب و باحال بود

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

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

    در آینده نزدیک یک سری مقاله در مورد CoDeSyS 3.5 منتشر خواهم کرد. بنابراین، اگر کسی علاقه مند است، مشترک شود یا فقط بیاید بازدید کند. من همیشه خوشحال خواهم بود!!!

    ضمناً تقریباً فراموش کردم، مقاله بعدی در مورد برد الکترونیک آردوینو خواهد بود. جالب خواهد بود، آن را از دست ندهید.

    شما را در مقالات بعدی می بینیم.

    با احترام، گریدین سمیون.

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

    این ساده ترین و ارزان ترین گزینه برای مبتدیان، آماتورها و حرفه ای ها است. فرآیند برنامه نویسی در زبان Processing/Wiring انجام می شود که به سرعت و به راحتی یاد گرفته می شود و بر اساس زبان C++ می باشد و به لطف این امر انجام آن بسیار آسان است. بیایید ببینیم آردوینو چیست، چگونه برای مبتدیان مفید است، قابلیت ها و ویژگی های آن.

    آردوینو یک پلت فرم یا برد محاسباتی است که به عنوان مغز دستگاه ها یا ابزارهای جدید شما عمل می کند. بر اساس آن، شما می توانید هر دو دستگاه را با مدارهای ساده و پروژه های پیچیده و کار فشرده، به عنوان مثال، ربات ها یا هواپیماهای بدون سرنشین ایجاد کنید.

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

    از نظر خارجی، خود محیط به شکل زیر است:

    نرم افزار آردوینو به گونه ای طراحی شده است که حتی یک کاربر مبتدی و بدون دانش برنامه نویسی نیز می تواند از عهده آن برآید. یک عامل موفقیت اضافی در استفاده از میکروکنترلر، توانایی کار با تخته نان بود، زمانی که قطعات لازم (مقاومت، دیود، ترانزیستور و غیره) بدون نیاز به لحیم کاری به کنترلر متصل می شوند.

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

    چگونه آردوینو بخریم؟

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

    شما می توانید آنالوگ را در بازار داخلی خریداری کنید یا مثلاً آن را از چین سفارش دهید. به عنوان مثال، بسیاری از مردم در مورد وب سایت AliExpress می دانند. اما برای کسانی که آشنایی خود را با آردوینو شروع می کنند، بهتر است اولین برد خود را از یک فروشگاه اینترنتی روسی سفارش دهند. با گذشت زمان، می توانید به خرید بردهای مدار و قطعات در چین روی بیاورید. زمان تحویل از این کشور از دو هفته تا یک ماه خواهد بود و به عنوان مثال، هزینه یک کیت بزرگ دیگر نخواهد بود. 60-70 دلار.

    کیت های استاندارد معمولا شامل قطعات زیر است:

    • تخته نان;
    • ال ای دی؛
    • مقاومت ها؛
    • باتری های 9 ولت؛
    • تنظیم کننده های ولتاژ؛
    • دکمه ها؛
    • جامپرها;
    • صفحه کلید ماتریسی؛
    • تخته های توسعه؛
    • خازن ها

    آیا نیاز به دانستن برنامه نویسی دارید؟

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

    پس از کامپایل شدن برنامه، بر روی برد بارگذاری (فلش) می شود. در این مورد، آردوینو یک مزیت غیرقابل انکار دارد - در بیشتر موارد از کابل USB برای برنامه نویسی استفاده می شود. بلافاصله پس از بارگذاری، برنامه آماده اجرای دستورات مختلف است.

    مبتدیان با آردوینو باید دو عملکرد کلیدی را بدانند:

    • برپایی()- یک بار هنگام روشن شدن برد استفاده می شود، برای مقداردهی اولیه تنظیمات استفاده می شود.
    • حلقه ()- استفاده مداوم، مرحله نهایی راه اندازی است.

    مثالی از نمادگذاری تابع برپایی():

    Void setup() (Serial.begin(9600)؛ // باز کردن یک اتصال سریال pinMode(9، INPUT)؛ // اختصاص دادن پین 9 به عنوان pinMode ورودی (13، OUTPUT)؛ // اختصاص دادن پین 13 به عنوان خروجی)

    تابع برپایی()در همان ابتدا و فقط 1 بار بلافاصله پس از روشن یا راه اندازی مجدد دستگاه شما انجام می شود.

    تابع حلقه ()بعد از تابع setup() اجرا می شود. حلقه به عنوان حلقه یا چرخه ترجمه می شود. این تابع بارها و بارها اجرا خواهد شد. بنابراین میکروکنترلر ATmega328 (بیشتر بردهای آردوینو حاوی این هستند) عملکرد حلقه را حدود 10000 بار در ثانیه انجام می دهد.

    همچنین با ویژگی های اضافی روبرو خواهید شد:

    • pinMode- حالت ورودی و خروجی اطلاعات؛
    • آنالوگ خواندن- به شما امکان می دهد ولتاژ آنالوگ در حال ظهور را در پین بخوانید.
    • آنالوگ رایت– ثبت ولتاژ آنالوگ به پین ​​خروجی؛
    • digitalRead- به شما امکان می دهد مقدار یک خروجی دیجیتال را بخوانید.
    • دیجیتال رایت- به شما امکان می دهد مقدار خروجی دیجیتال را در سطح پایین یا بالا تنظیم کنید.
    • سریال.چاپ- داده های پروژه را به متنی خوانا ترجمه می کند.

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

    • خواندن و نوشتن در انبار،
    • اتصال اینترنت،
    • خواندن کارت های SD،
    • کنترل موتور پله ای،
    • رندر متن
    • و غیره.

    چگونه آردوینو را راه اندازی کنیم؟

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

    بنابراین، حتی یک برنامه نویس بی تجربه نیز می تواند با خیال راحت گزینه های مختلف را آزمایش کرده و تغییر دهد تا به نتیجه دلخواه برسد. اما در هر صورت، ما به شدت توصیه می کنیم سه مطلب مهم در مورد نحوه آسیب نرساندن به برد را مطالعه کنید:

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

    • نصب IDE، که در زیر یا از وب سایت سازنده قابل دانلود است.
    • نصب نرم افزار بر روی کامپیوتری که استفاده می کنید؛
    • راه اندازی فایل آردوینو؛
    • وارد کردن برنامه توسعه یافته به پنجره کد و انتقال آن به برد (با استفاده از کابل USB)؛
    • در بخش IDE باید نوع سازنده مورد استفاده را انتخاب کنید. این را می توان در پنجره "ابزار" - "تخته" انجام داد.
    • کد را بررسی کنید و روی "بعدی" کلیک کنید، پس از آن بارگیری در آردوینو آغاز می شود.
    نسخه پنجره ها سیستم عامل مک لینوکس
    1.6.5 زیپ
    نصاب
    نصاب 32 بیت
    64 بیت
    1.8.2 زیپ
    نصاب
    نصاب 32 بیت
    64 بیت
    ARM
    1.8.5 زیپ
    نصاب
    برنامه
    نصاب 32 بیت
    64 بیت
    ARM

    دستمان را تربیت کنیم

    برای پیاده سازی مطمئن ایده های پیچیده، استفاده از محیط نرم افزار و آردوینو، مبتدیان باید به آن دست پیدا کنند. برای انجام این کار، توصیه می شود ابتدا به وظایف و پروژه های ساده تر تسلط داشته باشید.

    ساده ترین پروژه ای که می توانید انجام دهید این است که LED را که روی برد آردوینو روبروی پورت قرار دارد هر ثانیه چشمک بزند.

    برای انجام این کار شما نیاز دارید:

    • طراح را به کامپیوتر متصل کنید،
    • برنامه را باز کنید، در بخش "سرویس" به دنبال بلوک "پورت سریال" هستیم
    • فاصله مورد نیاز را انتخاب کنید
    • پس از آن باید کدی را که در Arduino IDE است در بخش "Examples" اضافه کنید.

    اولین پروژه های آردوینو برای مبتدیان می تواند به شرح زیر باشد:

    • LED چشمک زن؛
    • اتصال و کنترل سنسور دما؛
    • اتصال و کنترل سنسور حرکت؛
    • اتصال یک مقاومت نوری؛
    • کنترل درایو سروو

    پروژه اول

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

    طرح ما به این صورت خواهد بود:

    LED پس از فشار دادن دکمه روشن می شود و پس از فشار بعدی خاموش می شود. طرح یا برنامه برای خود آردوینو به این صورت خواهد بود:

    // پین های دستگاه های متصل int switchPin = 8; int ledPin = 11; // متغیرهایی برای ذخیره وضعیت دکمه و LED boolean lastButton = LOW; دکمه جریان بولی = LOW; بولی ledOn = نادرست; void setup() (pinMode(switchPin, INPUT)؛ pinMode(ledPin, OUTPUT)؛ ) // تابعی برای debounse boolean debounse(boolean last) (Bolean current = digitalRead(switchPin); if(last!= current) ( تاخیر ( 5؛ جریان = digitalRead(switchPin)؛ ) جریان برگشتی؛ ) void loop() (currentButton = debounse(lastButton)؛ if(lastButton == LOW && currentButton == HIGH) (ledOn = !ledOn;) lastButton = currentButton; digitalWrite (ledPin، ledOn)؛

    ممکن است متوجه تابع debounse شده باشید که هنوز در مورد آن چیزی ننوشته ایم. برای آن مورد نیاز است.

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

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

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

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

    آردوینو چیست و چه کاربردی دارد؟

    آردوینو یک کیت ساخت و ساز الکترونیکی است که به هر کسی اجازه می دهد تا انواع دستگاه های الکترومکانیکی بسازد. آردوینو از نرم افزار و سخت افزار تشکیل شده است. بخش نرم افزار شامل یک محیط توسعه (برنامه ای برای نوشتن و اشکال زدایی سیستم عامل)، بسیاری از کتابخانه های آماده و راحت و یک زبان برنامه نویسی ساده شده است. این سخت افزار شامل خط بزرگی از میکروکنترلرها و ماژول های آماده برای آنها می باشد. به لطف این، کار با آردوینو بسیار آسان است!

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

    کیت استارت آردوینو

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

    کیت اصلی آردوینو برای مبتدیان:خرید کنید
    مجموعه بزرگ برای آموزش و اولین پروژه ها:خرید کنید
    مجموعه ای از سنسورها و ماژول های اضافی:خرید کنید
    Arduino Uno ابتدایی ترین و راحت ترین مدل از این خط است:خرید کنید
    تخته نان بدون لحیم برای یادگیری آسان و نمونه سازی:خرید کنید
    مجموعه ای از سیم ها با اتصال دهنده های مناسب:خرید کنید
    مجموعه LED:خرید کنید
    کیت مقاومت:خرید کنید
    دکمه ها:خرید کنید
    پتانسیومترها:خرید کنید

    محیط توسعه آردوینو IDE

    برای نوشتن، اشکال زدایی و دانلود سیستم عامل، باید Arduino IDE را دانلود و نصب کنید. این یک برنامه بسیار ساده و راحت است. در وب سایت خود من قبلاً روند دانلود، نصب و پیکربندی محیط توسعه را شرح داده ام. بنابراین، در اینجا من به سادگی پیوندهایی را به آخرین نسخه برنامه و به آن می گذارم

    نسخه پنجره ها Mac OS X لینوکس
    1.8.2

    زبان برنامه نویسی آردوینو

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

    برنامه نویسی آردوینو از نسخه ساده شده زبان C++ با توابع از پیش تعریف شده استفاده می کند. مانند سایر زبان های برنامه نویسی C مانند، قوانینی برای نوشتن کد وجود دارد. در اینجا اساسی ترین آنها وجود دارد:

    • هر دستورالعمل باید با یک نقطه ویرگول (;) دنبال شود.
    • قبل از اعلان یک تابع، باید نوع داده ای را که توسط تابع برگردانده شده است مشخص کنید، یا اگر تابع مقداری را برنگرداند، void شود.
    • همچنین لازم است قبل از اعلام یک متغیر، نوع داده را مشخص کنید.
    • نظرات مشخص شده اند: // درون خطی و /* بلوک */

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

    تمام سفت‌افزار آردوینو باید حداقل دارای ۲ عملکرد باشد. اینها setup() و loop() هستند.

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

    برای اینکه همه چیز کار کند، باید یک طرح بنویسیم. اجازه دهید پس از فشار دادن دکمه، LED روشن شود و پس از فشار بعدی خاموش شود. این اولین طرح ما است:

    // متغیرهای دارای پین های دستگاه های متصل int switchPin = 8; int ledPin = 11; // متغیرهایی برای ذخیره وضعیت دکمه و LED boolean lastButton = LOW; دکمه جریان بولی = LOW; بولی ledOn = نادرست; void setup() (pinMode(switchPin, INPUT)؛ pinMode(ledPin, OUTPUT)؛ ) // تابعی برای debounse boolean debounse(boolean last) (Bolean current = digitalRead(switchPin); if(last!= current) ( تاخیر ( 5؛ جریان = digitalRead(switchPin)؛ ) جریان برگشتی؛ ) void loop() (currentButton = debounse(lastButton)؛ if(lastButton == LOW && currentButton == HIGH) (ledOn = !ledOn;) lastButton = currentButton; digitalWrite (ledPin، ledOn)؛

    // متغیرها با پین های دستگاه های متصل

    int switchPin = 8 ;

    int ledPin = 11 ;

    // متغیرهایی برای ذخیره وضعیت دکمه و LED

    بولی lastButton = LOW ;

    جریان بولی دکمه = LOW ;

    بولی ledOn = نادرست ;

    void setup() (

    pinMode (SwitchPin، INPUT)؛

    pinMode (ledPin، OUTPUT)؛

    // تابع برای debouncing

    دبونس بولی (آخرین بولی) (

    جریان بولی = DigitalRead(SwitchPin);

    اگر (آخرین != فعلی) (

    تاخیر (5);

    جریان = DigitalRead (SwitchPin)؛

    جریان برگشتی؛

    حلقه خالی() (

    currentButton = debounse(lastButton);

    اگر (آخرین دکمه == کم و دکمه فعلی == بالا) (

    ledOn = ! ledOn;

    lastButton = currentButton ;

    digitalWrite (ledPin، ledOn)؛

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

    PWM آردوینو

    مدولاسیون عرض پالس (PWM) فرآیند کنترل ولتاژ با استفاده از چرخه وظیفه یک سیگنال است. یعنی با استفاده از PWM می‌توانیم بار را به آرامی کنترل کنیم. به عنوان مثال، شما می توانید به آرامی روشنایی یک LED را تغییر دهید، اما این تغییر در روشنایی نه با کاهش ولتاژ، بلکه با افزایش فواصل سیگنال پایین به دست می آید. اصل عملکرد PWM در این نمودار نشان داده شده است:

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

    آردوینو دارای تعدیل کننده عرض پالس داخلی است. شما می توانید از PWM فقط روی آن پین هایی استفاده کنید که توسط میکروکنترلر پشتیبانی می شوند. به عنوان مثال، Arduino Uno و Nano دارای 6 پایه PWM هستند: این پایه‌ها D3، D5، D6، D9، D10 و D11 هستند. ممکن است پین ها در سایر تخته ها متفاوت باشند. می توانید شرح تابلویی را که به آن علاقه دارید بیابید

    برای استفاده از PWM در آردوینو تابعی وجود دارد که عدد پین و مقدار PWM را از 0 تا 255 به عنوان آرگومان می گیرد. بیایید به عنوان مثال یک طرح ساده بنویسیم. بیایید LED را به آرامی روشن کنیم، یک ثانیه صبر کنیم و به همان آرامی محو شوند، و به همین ترتیب بی نهایت ادامه دهیم. در اینجا مثالی از استفاده از این تابع آورده شده است:

    // LED به پین ​​11 int ledPin = 11 متصل است. void setup() (pinMode(ledPin, OUTPUT); ) void loop() (برای (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0; i--) ( analogWrite(ledPin, i)؛ تاخیر(5)؛ )

    // LED متصل به پین ​​11

    int ledPin = 11 ;

    void setup() (

    pinMode (ledPin، OUTPUT)؛

    حلقه خالی() (

    برای (int i = 0 ; i< 255 ; i ++ ) {

    analogWrite (ledPin، i)؛

    تاخیر (5);

    تاخیر (1000);

    برای (int i = 255; i > 0; i -- ) (