Arduino
Arduino
امروز ميخوام براتون در مورد نحوه ساخت يک برد آردوينو با ھر ميکروکنترلر AVRکه دم دست
داريد صحبت کنم.
دوستان عزيز ،با توجه به گرانی ھای اخير بردھای آردوينو ،ديگه استفاده از اونا برامون سخت شده .لذا با
توجه به شعار ھميشگی استاد عزيزم مھندس محمود بخت آور که من از بچگی با کتابھای ايشان
الکترونيک رو ياد گرفته ام ،ايشان ھميشه در کتابھای خود مينوشتند که “احتياج ،مادر اختراع است ”.لذا
ما ھم از اين شعار پيروی ميکنيم و برد آردوينوی خودمان را می سازيم.
خيلی از دوستان قديمی که قبالً با ميکروکنترلر ھای AVRکار ميکردند ،اکثراً در منزل چندين
ميکروکنترلر بدون استفاده دارند که سالھاست در گوشه کمد خاک ميخورند .حاال ديگه وقتشه که يک
استفاده ای از اونا ببريم .من که خودم حدود 10تا ATMEGA32و 15تا ATMEGA8بدون استفاده
دارم ،که از تقريبا ً از سال 1380توی کشوی قطعات بی استفاده مانده اند .پس بياييد باھم برد آردوينوی
دلخواھمون رو بسازيم .و فعالً برد آردوينو نخريم تا شايد کمی ارزانتر شوند) .عرضه زياد +تقاضای کم
= ارزانی(.
حتما ً شما ھم بارھا اين سوال احمقانه رو شنيده ايد که ميگن آردوينو بھتره يا AVR؟ خب مگه آردوينو
ميکروکنترلر ھست که با يک ميکروکنترلر مقايسه اش ميکنيد؟
دوستان ھمونطوريکه قبالً ھم توی کانال گفته ام ،نرم افزار IDEآروينو ،قدرتمند ترين و پر کاربرد ترين
نرم افزاری است که تا کنون برای کد نويسی ميکروکنترلر ھا ساخته شده و رو دست نداره .راحت ترين
زبان برای يادگيری و کار کردن با ميکروکنترلرھا ،با دستورات مفھومی که خود دستورات به ما ميگن
که چه کاری ميخواھند انجام دھند .مثالً ;) pinMode (5, OUTPUTخب اين دستور ميگه که ميخواھم
MODEيا حالت پين شماره 5خروجی باشه .حاال مقايسه اش کنيد با DDRB = 00000000به نظر
شما کدوم قابل فھم تره؟؟؟
و اگه منظور از سوال باال مقايسه ميکروکنترلر AVRبا برھايی است که برای تست سريع کدھای
آردوينو ساخته شده اند و به بردھای آردوينو معروف ھستند ،می باشد ،بايد بگم که باز ھم سوال بی
خردانه ای است .چون برد ھای آردوينو دارای يک ميکروکنترلر است که در بعضی از برد ھا مثل
آردوينو UNOيا NANOيا MEGA2560ميکروکنترلر AVRاست .و در بعضی از بردھای
آردوينو مانند آردوينو DUEاز ميکروکنترلر ARMاستفاده شده و يا بعضی از برد ھای آردوينو ،با
استفاده از ميکروکنترلر ھای PICو يا STM32و غيره ساخته شده اند .به عالوه منبع تغيه و پروگرامر
سرخود و مبدل USBبه سريال و غيره که کار رو برای کاربر ،بسيار راحت کرده اند .من خودم سالھا با
ميکروکنترلر ھای AVRکار کرده بودم ولی ھيچ وقت حوصله ساخت يک مبدل USBبه سريال رو
نداشتم تا تست کنم ببينم پورت سريال چطوری کار ميکنه .ولی االن ھر چيزی رو که ميخوام تست کنم،
بالفاصله اطالعاتش رو ميفرستم به پورت سريال تا مطمئن بشم درست کار ميکنه .از طرفی اين بردھا
نياز به لحيم کاری يا برد بورد ،ندارند .و با چند تا سيم جامپر برد بوردی ميشه ھر سنسوری رو بھش
وصل کرد .و يا بردھايی بنام شيلد برايشان ساخته شده که در يک ثانيه بھشون متصل ميشه و بھشون
امکانات اضافه ميکنه) .مثالً شيلد شبکه(.
حاال شما تجسم کنيد که بدون منبع تغذيه و پروگرامر و مبدل USBبه سريال و غيره با خود
ميکروکنترلر AVRخالی چه کاری ميشه انجام داد؟؟؟
پس نتيجه ميگيريم که برای کار با ميکروکنترلر ھای AVRھم بايد برد آردوينو رو شبيه سازی کرد .تا
کار کنه .يعنی ھمون کاری که ما امروز ميخواھيم انجام دھيم.
از طرفی خود نرم افزار آردوينو دارای کتابخانه ھای بسيار قدرتمندی ھست که به کاربر اجازه ميده در
کمترين زمان ممکن ،بھترين نتيجه رو بگيره و دستگاه ھای الزمه اش رو بسازه .و ديگه کاربر با اين که
االن به کدوم پين سنسور ،پالس بدم و چند ميکروثانيه مکث کنم و جھت پالس رو برعکس کنم و دوباره
چند ميکروثانيه صبر کنم و بعدش کد ھگز فالن رو از باس آدرس براش بفرستم و بالفاصله برم از باس
داده اطالعاتش رو بخونم و ...درگير نيست.
بعنوان مثال برای خواندن ميزان دما و رطوبت از سنسور DHT22فقط کافيه کتابخانه DHT22رو به
برنامه اش اضافه کنه > #include <DHT22.hبعد به ميکرو بگه که اين سنسور رو ميخوام به کدوم
پايه ات وصل کنم و استارت کار سنسور رو بزنه dht.begin(); .حاال ميتونه دما و رطوبت رو ازش
بخونه dht.readTemprature(); :و ;)( dht.readHumidityو تموم شد و رفت .من ميخوام يک
دماسنج بسازم و استفاده کنم و به من ھيچ ربطی نداره که به اين سنسور چطوری بايد پالس اعمال بشه و
نمودارھای زمانی و غيره اش رو ياد بگيرم .خود کتابخانه اين کارھا رو برام انجام ميده .و اين بزرگترين
مزيت آردوينو ھست .که باعث ايجاد انگيزه در عالقه مندان به الکترونيک در طراحی دستگاه ھای جديد و
ثبت اختراعات جديد ميشه.
و بد نيست به اين مطلب ھم اشاره کرد که با نرم افزار IDEآردوينو ،ميشه برای بردھای آردوينو،
ميکروکنترلر ھای ،AVRميکروکنترلر ھای ،ARMميکروکنترلر ھای ،STMميکروکنترلرھای PIC
و ھمچنين ماژول ھای وای فای و غيره کدنويسی کرد .که ھيچکدام از محيط ھای کدنويسی ديگر ،اين
امکانات رو ندارند.
يا به قول بعضی از دوستان ،بردھای آردوينو که خيلی گرونتر از ميکروکنترلر ھا ھستند ،بخاطر اينه که
يک سری قطعات يکبار مصرف اضافی دارند .مثالً بعد از پروگرام کردن برد ،ديگه چه نيازی ھست که
پروگرامر روش باشه؟ و ميشه حذفش کرد .اين سوال کمی نياز به تعمق داره .چون اگه فردا روزی
خواستيد برنامه نوشته شده داخل ميکروکنترلرتون رو آپديت کنيد و به اصطالح ورژن بزنيد ،بايد چند
ساعت دنبال پروگرامرتون بگرديد تا اگه پيداش کرديد ،برنامه رو آپديت کنيد .ولی ميشه حذفش کرد و مثل
برد آردوينويی که من ساخته ام و اون باال تصويرش رو ديديد ،از مبدل USBبه سريال استفاده ميکنه.
خب ديگه از انجمن حمايت از آردوينو ھای گمنام بياييم بيرون و بريم سراغ ساخت برد آردوينو و ببينيم
چطور ميتونيم برد آردوينوی دلخواه خودمون رو بسازيم .ھمچنين در اين آموزش ،ميخواھم براتون در
مورد روش ھای پروگرام کردن بوت لودر و اگر فرصت شد ،در مورد OTAتوضيح بدم OTA .نوعی
بوت لودر ھست که باعث ميشه ما برد آردوينو رو بدون وصل کردن کابل و از طريق وای فای ،داخل برد
آردوينو ،پروگرام کنيم.
ھمونطوريکه در تصوير زير مالحظه ميکنيد ،من برای راحتی کار با اين برد آزمايشی ،برای پينھای
آردوينو از ھر دو نوع پين ھدرھای نری و مادگی استفاده کرده ام و برای ارتباطات I2C, RS232, SPI
ھم از پين ھدرھای مادگی رايت يا ھمون خم شده استفاده کرده ام .و يک سری پين ھدر نر و ماده ھم برای
+5Vو GNDروی برد لحيم کرده ام .و ھمچنين برای ميکروکنترلر و راحتی تعويض اون ،يک سوکت
زيف گذاشته ام .که شما ميتونيد بجای سوکت زيف ھم از پين ھدر مادگی استفاده کنيد .من چون اين سوکت
رو داشتم ،گذاشتم) .دارندگی و برازندگی ☺(
خب حاال من ميتونم با استفاده از اين برد آزمايشی که ساخته ام ،برنامه آردوينو رو توی تمامی
ميکروکنترلر ھای 40پين آپلود کنم و براحتی تست کنم .و در صورت جواب گرفتن از برنامه ،بيام و
ميکروکنترلر رو ازش جدا کرده و روی PCBمدار اصلی که ميخواھم درست کنم ،قرار دھم .و به قول
اون دوستان که ميگن AVRاز آردوينو بھتره ☺ بيام و از خود AVRاستفاده کنم .تا ھم اقتصادی تر
باشه و ھم جمع و جور تر و ھم اينکه چون بوت لودر آردوينو روش ھست ،کافيه در PCBاصلی مدارم،
موقع طراحی ،فقط يک پين ھدر مادگی 4پين اضافه کنم و پين ھای RX, TX, GND, +5V
ميکروکنترلرم رو به اون پين ھدر متصل کنم تا ھر موقع نياز به تغيير برنامه بود ،بيام مبدل USBبه
سريالم رو داخل پين ھدر فوق قرار بدم و با يک کابل USBرابط به کامپيوتر متصل کنم و مثل يک برد
آردوينو معمولی ،پروگرامش کنم.
من از پروگرامر AVR USB PROGRAMMERشرکت دلتا تراشه مدل DAP 300استفاده ميکنم.
به ھر حال فرقی ھم نميکنه که شما از چه پروگرامری استفاده کنيد .مھم اينه که درايور اون پروگرامر
حتما بايد روی کامپيوترتون نصب شده باشه.
گام اول :نصب برد ھای آردوينو
قبل از ھر کاری ،ھر ميکرکنترلری که ميخواھيد پروگرام کنيد رو بايد به آردوينو معرفی کنيد.
آردوينو فقط به بردھايی که در منوی Tools >> Boardمعرفی شده اند ،پاسخ ميده .بنابراين .مثال اگر
شما ميخواھيد ميکرکنترلر ATMEGA8رو با آردوينو پروگرام کنيد ،حتما ً بايد نام ميکرکنترلر
ATMEGA8در منوی Tools >> Boardوجود داشته باشه.
برای نصب بردھای آردوينو مربوط به ميکروکنترلر ھای مختلف ،مراحل زير را انجام دھيد:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
http://www.maxim-ic.com/datasheet/index.mvp/id/4627
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
https://mcudude.github.io/MegaCore/package_MCUdude_MegaCore_index.json
با اين کار به آردوينو گفتيم که برد ھای مورد نظر ما را از کدام سايتھا ميتواند دانلود کند .حاال بايد به
منوی Tools >> Board >> Boards Managerبرويم و بردھايمان را دانلود نماييم.
-4به منوی Tools >> Board >> Boards Managerبرويد و منتظر بمانيد تا چک کردن
بردھای نصب شده برای آپديت شدن تمام شود .بعد در کادر بااليی عبارت avr arduino
boardsرا تايپ کرده و روی گزينه آپديت کليک نماييد تا برد ھای آردوينو نصب شده آپديت
شوند.
اگر کليد آپديت را نمی بينيد روی گزينه پيدا شده يکبار کليک کنيد تا دکمه Updateظاھر شود.
-5سپس به ھمين صورت در کادر بااليی بايد يکی از عبارات زير را برای پيدا کردن و نصب برد
ھای مورد نظر تايپ کنيد و سپس دکمه Installرا بزنيد .و پس از اتمام نصب برد ھا يکبار IDE
آردوينو را ببنديد و دوباره باز کنيد .مالحظه خواھيد کرد که تمامی برد ھای مورد نظر شما به
منوی Tools >> Boardاضافه شده اند:
برای نصب برد ھای: ATTINY -1
البته الزم به ذکر است که ھنگام دانلود برد ھای آردوينو به ھيچ عنوان نبايد فيلتر شکن روی سيستم شما
فعال باشد .وگرنه بردھاتون رو پيدا نميکنه☺ .
گام دوم :نصب بوت لودر آردوينو
حاال ميرسيم به نصب بوت لودر آردوينو روی ميکروکنترلر ھای .AVRابتدا بايد ببينيم که بوت لودر
چيه و به چه دردی ميخوره؟
دوستان گلم احتماالً تا کنون ھمه تون روی کامپيوتر ،ويندوز نصب کرده ايد .وقتی ميخواھيد ويندوز نصب
کنيد به تنظيمات سيستم وارد می شويد و حالت بوت شدن رو انتخاب ميکنيد .و به سيستم ميگوييد که ابتدا
توسط CD_ROMباال بياد و اگه CD_ROMداخلش نرم افزار Bootableپيدا نشد ،با ھارد ديسک
باال بياد و ويندوزی که روی اون ھست و برنامه ھای مربوط به اون رو اجرا کنه...
توی ميکروکنترلر ھم يک ھمچين وضعيتی حاکم ھست .ولی وقتی ما به يک پين خاصی ولتاژ بيش از
تغذيه اعمال ميکنيم ،مياد و از طريق پوت SPIپروگرام ميشه و در واقع از طريق پورت SPIبوت ميشه
و ما ميتونيم برنامه مون رو داخلش پروگرام کنيم .که به اين روش ميگن روش پروگرام کردن ISPکه
مخفف In System Programmingاست.
حاال آردوينو اومده و ميگه من نميخوام از طريق SPIميکروکنترلر رو پروگرام کنم .من ميخوام
ميکروکنترلر رو از طريق پورت سريال پروگرام کنم تا کاربر ،ديگه نيازی به خريد پروگرامر نداشته
باشه و با يک مبدل USBبه سريال ساده بتونه برنامه اش رو بريزه داخل ميکروکنترلر و استفاده کنه.
بنابراين بوت لودر آردوينو در ھر لحظه داره پورت سريال رو چک ميکنه و اطالعاتی که از پورت
سريال رد و بدل ميشن رو نگاه ميکنه ببينه آيا ھدر فايل مربوط به پروگرام شدن داخل اون رشته دريافتی
ھست يا نه؟ اگر بود ،ميره به حالت پروگرام شدن و اطالعات رسيده از پورت سريال رو مياره ميريزه
داخل حافظه Flashو بعدش ميکروکنترلر ريست ميشه و با برنامه جديد کار ميکنه .در غير اينصورت
)يعنی اگه ھدر فايل مربوط به پروگرام شدن داخل اون رشته دريافتی نبود( ،برنامه داخل حافظه Flash
اجرا ميشه .و اطالعات دريافتی از پورت سريال رو توی برنامه استفاده ميکنه.
خب اين روش روش بسيار خوب و ارزان قيمتی است ولی يک ايرادی داره و اون ھم اينه که وقتی ما به
پورت سريال ميکروکنترلر ،يک وسيله سريال متصل ميکنيم تا باھاش کار کنيم و ھمزمان پورت سريال
رو بوسيله مبدل USBبه سريال به کامپيوتر متصل ميکنيم ،ديگه نميتونيم از اون وسيله استفاده کنيم .و
ھمچنين نميتونيم برنامه رو داخل ميکروکنترلر آپلود کنيم .چرا؟؟؟
چون پورت سريال در ھر لحظه فقط ميتونه به يک وسيله متصل بشه و در اين حالتی که ما ايجاد کرده ايم
دوتا وسيله بھش متصل ھست .يکی اون دستگاه يا ماژول سريال مون و ديگری کامپيوتر.
چون اکثر کاربران عادت کرده اند که تغذيه آردوينو رو از مبدل USBبه سريال بگيرند ،مثالً وقتی دارن
ماژول بلوتوث رو چک ميکنند که به پايه ھای RX, TXميکرو متصل ھست ،و تغذيه آردوينو رو ھم از
کامپيوتر گرفته اند تا اطالعات دريافتی رو ھم توی کامپيوتر ببينند .ديگه فکر نميکنند که اينکار باعث شده
پورت سريال از کار بيافته و ميان توی تاالر گفتمان آردوينو کاران جوان سوال ميکنند که چرا دستگاه
ماژول بلوتوث من کار نميکنه؟؟؟
-1اگر ميکروکنترلرتون چندين پورت سريال داره ،ماژولتون رو به يک پورت ديگه بغير از
Serial0متصل کنيد.
-2اگه ميکروکنترلرتون فقط يک پورت سريال داره ،از کتابخانه SoftwareSerialاستفاده کنيد و
يک پورت سريال مجازی روی پينھای ديگر ميکرو ايجاد کنيد و ماژولتون رو بھش متصل کنيد.
)توی کانال آردوينو کاران جوان آموزش کامل SoftwareSerialرو بصورت فيلم قرارداده ام(.
-3اگه پين اضافی نداريد که SoftwareSerialدرست کنيد ،فقط کافيه که موقع پروگرام کردن
ميکروکنترلر ،ماژول رو ازش جدا کنيد .و بعد از پروگرام کردن ھم از باتری يا شارژر موبايل
استفاده کنيد تا ماژولتون کار کنه و نبايد به کامپيوتر متصل باشه.
خب مثل اينکه از بحث اصلی دور شديم .برگرديم بريم سراغ نصب بوت لودر آردوينو:
پس تا اينجا متوجه شديم که بوت لودر چيه و چه کاربردی داره .بنابراين شما بايد تابحال متوجه شده باشيد
که در صورت عدم وجود بوت لودر آردوينو روی ميکروکنترلر ھم ميتوان با IDEآردوينو برای
ميکروکنترلر مورد نظر برنامه نوشت .ولی نميشه با مبدل USBبه سريال پروگرامش کرد.
اگه بخواھيم با مبدل USBبه سريال پروگرامش کنيم ،بايد بوت لودر آردوينو رو روش نصب بکنيم .خب
حاال چطوری اين کار رو انجام بديم؟؟؟
حاال که ما ھمه چيز رو راجع به بوت لودر ميدونيم ،ميدونيم که ميکروکنترلری که خريده ايم دارای بوت
لودر آردوينو نيست .بنابراين يک پروگرامر STK500از يک نفر قرض ميگيريم و ميکروکنترلرمون
رو داخلش قرار ميديم و درايورش رو ھم روی کامپيوتر نصب ميکنيم .البته اگر پروگرامر ديگه ای ھم
باشه که اسمش توی ليست پروگرامر ھای موجود در منوی Tools>>Programmerباشه ھيچ اشکالی
نداره .فقط يادتون باشه که حتما ً درايورش رو نصب کرده باشد .بعدش ميريم به ھمون منوی
Tools>>Programmerو اسم پروگرامرمون رو انتخاب ميکنيم .در مرحله بعدی بايد از منوی
Tools>>Boardميکروکنترلر مورد نظرمون رو انتخاب کنيم .و حاال بازدن گزينه Burn
Bootloaderاز منوی Toolsمی بينيد که بوت لودر آردوينو روی ميکروکنترلر روی پروگرامر آپلود
شد.
روش دوم اينه که کسی بھتون پروگرامر STK500قرض نميده☺☺☺ ...
ولی نگران نباشيد .اگه شما يک برد آردوينو UNOيا ھر آردوينوی ديگه ای داشته باشيد ،مشکل حل
ميشه ...چطوری؟؟؟
تبريک ميگم شما يک پروگرامر ISPساختيد .حاال با ھمين پروگرامر ميتونيم شروع کنيم به آپلود برنامه
داخل ميکرو کنترلر .فقط از اين به بعد به اين برد آردوينو UNOميگيم Programmerکه اشتباھی پيش
نيايد.
اگر بخواھيد ميتوانيد چند تا LEDھم بصورت زير به پروگرامر اضافه کنيد تا حالتھای مختلف پروگرام
شدن را ببينيد:
در صورتيکه پروگرامر شما ھنگام آپلود برنامه خطا ميدھد ،يک عدد خازن الکتروليتی 16V_100uF
بين پين GNDو RSTيا ھمان RESETپروگرامر لحيم کنيد .مخصوصا ً در آردوينو .Nano
حاال مدار شکل زير را ببنديد :توجه داشته باشيد که در مدارات زير برد آردوينويی که داخلش برنامه
ArduinoISPرو ريخته ايم بنام Programmerو آردوينو ديگر که از روش ميکروکنترلرش رو
درآورده ايم و ميکروکنترلر خريداری شده رو قرار داده ايم ،بنام Targetنامگذاری شده اند .بله درسته ما
بايد ميکروکنترلر خريداری شده رو با ميکروکنترلر يک آردوينو جايگزين کنيم تا بتونيم پروگرامش کنيم.
در غير اين صورت ميتوانيم ميکروکنترلر خريداری شده رو روی برد بورد بگذاريم و يک کريستال
16MHzو دوتا خازن 22pFبه پين ھای کريستالش بزنيم و تغذيه اش رو ھم متصل کنيم .و بعد پينھای
معادل نقشه زير رو بھش بزنيم و بعد کار رو ادامه بديم.
شما ميتونيد ھر آردوينويی که داريد برنامه ArduinoISPرو داخلش بريزيد و به عنوان پروگرامر ISP
استفاده نماييد .به شکل ھای زير توجه کنيد:
آردوينو UNOبعنوان پروگرامر آردوينو NANO
حاال ديگه فرقی نميکنه که برای Targetاز آردوينو استفاده کنيد يا برد بورد .مھم اينه که پين ھای SPI
قسمت تارگت يا ھدف بصورت شکل ھای باال به پروگرامر متصل بشن .من شماره پين ھای چند تا از
بردھای آردوينو رو براتون در جدول زير نشان داده ام بقيه اش رو خودتون از اينترنت ميتونيد پيدا کنيد.
اگر ھم پيدا کردن پين ھای SPIبراتون سخته ميتونيد از شکل زير استفاده کنيد .ترتيب پين ھای سوکت
ICSPکه روی تمامی برد ھای آردوينو وجود دارد بصورت شکل زير است .که دقيقا ً به ھمان پين ھای
SPIروی برد متصل است:
خب می بينيد که ھيچ بھونه ای نداريد برای اينکه نتونيد پروگرامر ISPبسازيد.
تنھا کاری که بعد از ساختن اين برد ھا بايد انجام دھيد اين است که پروگرامر ساخته شده رو به کامپيوتر
متصل کنيد و به منوی Tools>>Boardبرويد و برد آردوينوی Targetرو انتخاب کنيد) .يعنی ھمون
ميکروکنترلری که ميخواھيد بوت لودر داخلش بريزيد(.
خيلی ھم عالی ...تا اينجا ما تونستيم يک برد آردوينو بسازيم و بوت لودر ھم روش داشته باشيم .حاال فقط
کافيه که ميکروکنترلر ساخته شده رو روی برد بورد کار بگذاريم و کريستال و خازن ھای عدسی رو
بھش متصل کنيم و تغذيه ھم بھش بديم .و با يک مبدل USBبه سريال راحت پروگرامش کنيم .يادتون نره
که پروگرامر رو بعد از آپلود بوت لودر حتما ً روی Arduino as ISPقرار بدين .و Boardو Port
مناسب رو ھم انتخاب کنيد .برنامه تون رو توی محيط IDEآردوينو بنويسيد و بعد روی دکمه آپلود کليک
کنيد .با کمال تعجب خواھيد ديد که برنامه روی ميکروکنترلر شما آپلود نميشه .چرا؟؟؟
برای اينکه برد ھای آردوينو دارای يک مداری ھستند که به محظ شروع آپلود ،يکبار مدار رو ريست
ميکند .بنابراين اگر ميخواھيد برنامه تان آپلود شود به محظ اينکه برنامه کامپايل شد و نوشت Uploading
بايد بالفاصله دکمه ريست رو روی برد ساخته شده خودتون بصورت لحظه ای فشار بدين☺☺☺ .
حاال بياييد ببينيم اگه نخواھيم بوت لودر آردوينو رو روی ميکروکنترلر بريزيم چيکار کنيم؟
سوال :آيا بدون بوت لودر ھم ميشه برنامه رو روی ميکروکنترلر مورد نظرمون آپلود کرد؟؟؟
جواب :بله
سوال :چطوری؟
مثالً ما يک ميکروکنترلر ATMEGA32داريم .و بردھای آن را نيز مثل توضيحات اول ھمين آموزش
روی نرم افزار IDEآردوينو نصب کرده ايم .و يک پروگرامر STK500ھم داريم .که درايور آن را ھم
روی کامپيوتر نصب کرده ايم.
تنھا کاری که بايد انجام دھيم اين است که يک سرچ توی اينترنت قسمت IMAGEبزنيم و دنبال
ATMEGA32 ARDUINO PINOUTبگرديم .خيلی سريع شماره پينھای آردوينو معادل
ATMEGA32رو پيدا ميکنيم.
حاال ميکروکنترلر ATMEGA32رو داخل پروگرامر STK500قرار داده و
برنامه رو با ھر پروگرامری که داريد ميتونيد به ھمين روش داخل ميکروکنترلر بريزيد .فقط بايد اسم
پروگرامرتون رو از منوی Tools>>Programmerانتخاب کنيد.
برنامه رو مينويسم و
خب دوستان گلم ،و آردوينو کاران عزيز من ديگه خسته شدم و فکر کنم تا ھمينجا کفايت بکنه .در برنامه
Over The Airتوضيح بدم .بوت آموزشی بعدی ميخوام براتون در مورد بوت لودر OTAيا ھمون ir
لودر OTAھم يک برنامه ساده است که داخل ماژول ESP_01ريخته ميشه و ماژول ESP_01ھم به
پورت سريال آردوينو وصل ميشه .و بعد ما ميتونيم با استفاده از اينترنت ،برنامه مون رو به ماژول
ESP_01بفرستيم تا برد آردوينو مون پروگرام بشه ☺ .اينطوری ديگه نميخواد مثالً بردی رو که داخل
لوستر کار گذاشته ايم با داخل داشپورت ماشين جاسازی کرده ايم يا بردی که دور از دسترس ھست و مثالً
توی يک شعبه از بانک کار گذاشته ايم رو بياريم و به کامپيوتر متصل کرده و پروگرام کنيم و ورژن جديد
برنامه مون رو داخلش آپلود کنيم .فقط کافيه که با اينترنت به اون ماژول ESP_01متصل شده و برنامه
مون رو بھش بديم تا آپلود بشه داخل آردوينو و تغييرات الزم اعمال بشه☺☺☺ .
بعنوان حسن ختام اين آموزش ھم ميخواھم PINOUTچند تا از ميکروکنترلر ھای AVRرو معادل
آردوينوشون رو قرار بدم:
برای ساخت برد آزمايشی آردوينو ميتوانيد از آموزش ساخت PCBبرای ATMEGA32آموزش داده
شده در کانال آردوينو کاران جوان و يا آموزش ساخت آردوينو روی برد بورد در ھمين کانال نيز استفاده
نماييد.
پس با ما در کانال تلگرام آردوينو کاران جوان ھمراه باشيد و کانال رو به دوستانتون معرفی کنيد.
رضا اژدرکش