آردوینو
خیر، این کیت فقط آموزش مقدماتی مدارهای الکترونیکی است. که دارای آموزش ساخت 200 مدار مختلف و ابتدایی برای یادگیری علم الکترونیک است.
این کیت فاقد آموزشهای تخصصی است. ولی یک فایل راهنمای راه اندازی اولیه طراحی کردهایم که پس از خرید میتوانید آنرا دانلود کنید.
برای نصب بوتلودر روی برد آردوینو بایستی توسط یک برد دیگر از آردوینو انجام شود. اتصالات به صورت زیر خواهد بود.
از برد آردوینو Uno به برد آردوینو uno بدون بوتلورد
pin 11 به pin11
pin12 به pin12
pin13 به pin13
5v به 5v
GND به GND
سپس از منوی File> example> Arduino ISP را فراخوان کرده و روی برد آردوینو دارای بوتلودر آپلود کنید.
قدم بعدی انتقال فایل به آردوینو بدون بوتلودر است. از منوی tools گزینه burn bootloader را کلیک کنید.
بله سنسورهای PIR مدلهای SR501 و SR505 بدون استفاده از میکروکنترلر هم قابل راه اندازی هستند. کافیست قطعات زیر را تهیه کنید. این ماژول دارای یک پایه ورودی به نام IN و یا SIGNAL جهت فعال و یا غیر فعال سازی لامپ متصل به رله است. ماژول رله زمانی عملکرد صحیح خواهد داشت که ولتاژ پایه IN با ولتاژ تغذیه یکسان باشد. از آنجاییکه ولتاژ تغذیه ماژول ۵ بوده و خروجی سنسور تشخیص حرکت ۳٫۳ ولت است، لذا از یک ترانزیستور استفاده می کنیم. این ترانزیستور به شکل یک گیت NOT عمل می کند. زمانیکه ولتاژ ۳٫۳ در ورودی قرار گیرد، خروجی آن ۰ شده و زمانیکه ورودی ۰ در بیس آن قرار گیرد، خروجی ۵ ولت می شود. سپس اتصالات را طبق توضیحات زیر انجام دهید.
- اتصال پایه VCC ماژول تشخیص حرکت به ۵ ولت
- اتصال پایه GND ماژول تشخیص حرکت به GND تغذیه
- اتصال پایه OUT ماژول تشخیص حرکت به یک پایه مقاومت یک کیلو اهم و اتصال پایه دیگر مقاومت به پایه بیس ترانزیستور
- اتصال پایه امیتر ترانزیستور به GND
- اتصال پایه کلکتور ترانزیستور به صورت سری با یک مقاومت یک کیلو اهمی به ۵ ولت
- اتصال پایه کلکتور(به تصویر شماتیک دقت کنید) به پایه IN ماژول رله
- اتصال پایه VCC ماژول رله به ۵ ولت
- اتصال پایه GND ماژول رله به GND
این پروژه برپایه آی سی میکرو AVR طراحی شده است. لیست اقلام مورد نیاز برای اجرا پس از خرید به همراه فایل سورس کدها در اختیار شما قرار میگیرد.
این برد از لحاظ ابعاد و کارایی یکسان هستند. پیشنهاد میشود برای اطلاع از تفاوت این دو مدل به پست زیر مراجعه کنید.
تفاوت برد آردوینو UNO R3 با UNO SMD CH340 و راهنمای انتخاب برای پروژههای مختلف
پاسخ کوتاه این است که بستگی به پروژه دارد. آردوینو برای پروژههای صنعتی کوچک و ساده مناسب است. اما برای پروژههای صنعتی بزرگ و پیچیده، AVR یا ARM گزینههای بهتری هستند.
مزایا:
- ارزانتر از AVR یا ARM است.
- یادگیری آن آسانتر است.
- دارای جامعه بزرگی از کاربران و توسعهدهندگان است.
- دارای کتابخانههای متنوعی برای سنسورها و ماژولهای مختلف است.
معایب:
- برای محیطهای صنعتی سخت مانند دمای بالا، رطوبت بالا، یا نویز الکترومغناطیسی مناسب نیست.
- برای پروژههای بزرگ و پیچیده مناسب نیست.
- برای استفاده در سیستمهای مهم و حیاتی مناسب نیست.
AVR و ARM میکروکنترلرهای قدرتمندتری نسبت به آردوینو هستند. آنها برای محیطهای صنعتی سخت مناسب هستند و میتوانند برای پروژههای بزرگ و پیچیده استفاده شوند. همچنین، برای استفاده در سیستمهای مهم و حیاتی نیز مناسب هستند.
در نهایت، بهترین گزینه برای کارهای صنعتی به عوامل مختلفی مانند نوع پروژه، بودجه، و نیازهای خاص شما بستگی دارد. اگر به دنبال یک گزینه ارزانتر و آسانتر برای یادگیری هستید، آردوینو میتواند گزینه مناسبی باشد. اما اگر به دنبال یک گزینه قدرتمندتر و مناسب برای پروژههای بزرگ و پیچیده هستید، AVR یا ARM گزینههای بهتری هستند.
اینتراپت یک عملکرد مهم در کامپیوترها و میکروکنترلرها است که به شما امکان انجام واکنش به تغییرات یا وقوع رویدادها در سیستم را میدهد. این عملکرد در میکروکنترلرها و مدارات دیجیتالی معمولاً با استفاده از ماژولهای سختافزاری تنظیم میشود.اما اینتراپت نه تنها در مدارات دیجیتالی، بلکه در سیستمهای مختلف از جمله میکروکنترلرها، میکروپروسسورها، سیستمعاملها و حتی در برنامهنویسی نرمافزاری نیز استفاده میشود. در برنامهنویسی نرمافزاری، شما میتوانید با استفاده از زبانهای برنامهنویسی مختلف، اینتراپتها را به صورت نرمافزاری پیادهسازی کنید. به عنوان مثال، در زبانهای برنامهنویسی مانند C, C++, Java, Python و ... از کتابخانهها یا روشهای مختلفی برای ایجاد و کنترل اینتراپتها استفاده میشود.بنابراین، شما نه تنها در ماژولهای دیجیتال، بلکه در برنامهنویسی نرمافزاری نیز میتوانید از اینتراپتها استفاده کنید. این وابستگی به محیط و کاربرد خاص شما دارد.
اتصال 25 سنسور DHT به یک Arduino به طور همزمان کار چالشبرانگیزی است. این کار به دلایلی از جمله محدودیتهای منابع میتواند مشکل باشد. اما در صورتی که نیاز به انجام این کار دارید، میتوانید از چندین روش برای انجام آن استفاده کنید. برای اتصال تعداد زیادی از سنسور DHT به Arduino، میتوانید از مبدلهای I2C مانند "MCP23017" یا "PCF8574" استفاده کنید. این مبدلها به شما این امکان را میدهند که بیش از 25 سنسور DHT را به Arduino وصل کنید.ابتدا مبدل I2C را به Arduino وصل کنید و سپس تعداد زیادی از سنسورهای DHT را به مبدل I2C متصل کنید. سپس با استفاده از کتابخانههای مناسب برای مبدل I2C و سنسور DHT، اطلاعات حسگرها را بخوانید.
از میکروکنترلرها میتوانید برای مدیریت تعداد زیادی از سنسورهای DHT استفاده کنید. این میکروکنترلرها به شما امکان مدیریت و کنترل بیشتری را ارائه میدهند. به عنوان مثال، میتوانید از Arduinoها، Raspberry Piها یا میکروکنترلرهای ARM مانند STM32 استفاده کنید.در این روش، شما باید زمان خواندن اطلاعات از هر سنسور را تقسیم کنید. به عنوان مثال، هر 1 ثانیه از 25 سنسور DHT به ترتیب خوانده شود. این روش نیازمند برنامهنویسی دقیق و مدیریت زمانی دقیق است.
خیر، آردوینو برای بسیاری از کاربردها به اینترنت وصل نیاز ندارد. اما اگر شما به اتصال به اینترنت برای انجام پروژه خاصی نیاز دارید، میتوانید از ماژولهای اضافی برای اتصال به اینترنت استفاده کنید.
خیر، برای شروع به کار با آردوینو نیاز به تخصص برنامهنویسی ندارید. آموزشهای آردوینو برای مبتدیان در دیجی اسپارک و کیت های آموزشی دانشجوکیت موجود است و شما میتوانید با یادگیری مباحث پایه زبان C/C++ به راحتی پروژههای ساده را انجام دهید.
بله، Arduino IoT Cloud از امنیت مناسبی برای اتصالات و دادههای ارسالی و دریافتی از سنسورها پشتیبانی میکند و از پروتکلهای امنیتی مانند TLS/SSL برای ارتباطات استفاده میکند.
Interrupt یک فانکشن در آردوینو است که به میکروکنترلر این امکان را میدهد که در واکنش به وقوع یک حالت یا وقوع یک وقفه (به عنوان مثال، تغییر وضعیت پین) از اجرای برنامه اصلی جدا شود و یک تابع مشخص (تابع Interrupt) را اجرا کند.
در آردوینو، میتوانید از توابع attachInterrupt() و detachInterrupt() برای اتصال و جدا سازی Interrupt به کانالهای مختلف پینهای ورودی استفاده کنید. همچنین میتوانید تابع Interrupt خود را با استفاده از توابع ISR() تعریف کنید.
در پروژههای IoT، Interrupt میتواند برای اندازهگیری دادههای سنسورها، دریافت دادهها از ماژولهای ارتباطی (مثل Wi-Fi)، و واکنش به وقوع وقایع خاص (مانند دکمههای فشرده شده) استفاده شود.
خیر، همه پینها برای استفاده از Interrupt مناسب نیستند. برخی پینها توانایی پشتیبانی از Interrupt را ندارند، و برخی دیگر توانایی فقط در حالت خاصی دارند. در دیتاشیت آردوینو، پایه های 2 و3 به ترتیب پایه های اینتراپت هستند.
مولتیتسکینگ (Multitasking) در آردوینو به اجرای چندین وظیفه مختلف به صورت همزمان در یک برنامه ارتباطی میان وظایف یا تردها اطلاق میشود. مفهوم مولتیتسکینگ در آردوینو از طریق کتابخانهها و فریمورکهایی مانند FreeRTOS، TaskScheduler، و غیره پشتیبانی میشود. در پروژههای اینترنت اشیاء (IoT)، ممکن است نیاز باشد که بیش از یک وظیفه را همزمان اجرا کنید. به عنوان مثال، در یک دستگاه که دادههای حسگرها را جمعآوری کرده و به یک سرور ارسال میکند، میتوانید وظیفه جمعآوری داده و وظیفه ارسال داده را همزمان اجرا کنید. در برنامههای کنترلی، مولتیتسکینگ میتواند به شما امکان کنترل همزمان را بدهد. به عنوان مثال، در یک ربات خودرو، میتوانید یک وظیفه برای کنترل موتورها و یک وظیفه برای تشخیص موانع داشته باشید. در برنامههایی که نیاز به واکنش سریع به وقوع وقایع خاص دارند، مولتیتسکینگ مفید است. به عنوان مثال، در یک سیستم آژیر، میتوانید یک وظیفه برای نمایش هشدار و یک وظیفه برای پخش صدا از همزمان اجرا کرد.
وقوع وقایع مختلف همزمان که نیاز به واکنش سریع دارند، از جمله خواندن دادهها از سنسورها، واکنش به وقوع دکمهها، یا دریافت دادههای ورودی از شبکه (IoT)، میتواند با استفاده از مولتیتسکینگ مدیریت شود. در برنامههایی که نیاز به افزایش کارآیی و پاسخگویی دارند، مولتیتسکینگ به شما امکان میدهد وظایف را به صورت پویا تخصیص دهید. به عنوان مثال، در یک پروژه موبایل با طیف گستردهای از ویژگیها، ممکن است نیاز به همزمان اجرای وظایف مختلف داشته باشید. اگر برنامهی شما نیاز به تعامل با واحدهای خارجی مانند ماژولهای شبکه (برای ارسال و دریافت دادهها) و (مانند نمایشگرها یا سنسورها) یا دیگر دستگاهها دارد، مولتیتسکینگ میتواند به شما کمک کند تا این ارتباطات را به صورت همزمان مدیریت کنید. در پروژههایی که نیاز به کنترل و مدیریت دستگاههای مختلف دارید، مولتیتسکینگ میتواند به شما اجازه دهد تا این سنسور ها را همزمان کنترل کنید.
در این خصوص بایستی از مولتی تسکینگ multitasking در آردوینو استفاده کنید. برای هر برنامه یک فانکشن اختصاصی مینویسم تا هر برنامه به صورت مجزا کار کند.
// تعریف تابع
void myFunction() {
// بدنه تابع (کد اجرایی)
}
void setup() {
// کد تنظیمات...
}
void loop() {
// کد اجرایی...
myFunction(); // فراخوانی تابع
}
بله، بردهای STM (مانند STM32) به طور گستردهای از میکروکنترلرهای ARM Cortex-M استفاده میکنند و این امکان را فراهم میکنند که با زبانهای برنامهنویسی مختلفی از جمله میکروپایتون (MicroPython) برنامه نویسی شوند.برای اجرای MicroPython بر روی بردهای STM32، میتوانید از پروژههای متنبازی مانند "MicroPython for STM32" یا "MicroPython on STM32F4" استفاده کنید. در این پروژهها، MicroPython به طور مستقیم بر روی میکروکنترلر STM32 نصب شده و از طریق REPL (Read-Eval-Print Loop) یا از طریق اجرای اسکریپتهای Python امکان برنامهنویسی فراهم میشود.
برای راهاندازی سروموتور با آردوینو، نیاز به تغذیه مناسب برای هر دو دارید. سروموتورها نیاز به ولتاژ و جریان معینی دارند، و بستگی به نوع و مدل سروموتور ممکن است این مقادیر متغیر باشند.در اغلب موارد، سروموتورها به ولتاژ متغیری از 4.8 ولت تا 7.4 ولت یا بیشتر نیاز دارند. برخی از سروموتورها از ولتاژ بالاتر نیز پشتیبانی میکنند، اما حتماً باید مشخصات فنی سروموتور خود را چک کنید تا از تغذیه مناسب استفاده کنید.در مورد آردوینو، برخی مدلها مانند Arduino Uno و Nano به صورت مستقیم از ولتاژ 5 ولت USB پشتیبانی میکنند. بنابراین، اگر سروموتور شما نیاز به ولتاژ 5 ولت دارد، میتوانید از منبع تغذیه USB آردوینو استفاده کنید.در صورتی که سروموتور شما به ولتاژ بیشتری نیاز دارد، میتوانید از منبع تغذیه خارجی به جای USB آردوینو استفاده کنید
میکروپروسسور یک تراشه کلی است که اجزای مختلف سیستم را در خود جای داده است، در حالی که میکروکنترلر، یک نوع ویژه از میکروپروسسور است که اجزای کنترلی و ورودی/خروجی را برای اجرای برنامههای کنترلی دارد.
برای یادگیری آردوینو، نیازی به دانش قبلی در زمینه الکترونیک یا برنامهنویسی ندارید. با این حال، داشتن دانش پایه در این زمینهها میتواند به شما کمک کند تا یادگیری آردوینو را سریعتر و آسانتر انجام دهید. اگر دانش پایهای در زمینه الکترونیک ندارید، میتوانید با مطالعه دیجی اسپارک، مقالات و دورههای آموزشی آنلاین و متنی، این دانش را به دست آورید. اگر دانش پایهای در زمینه برنامهنویسی ندارید، میتوانید با یادگیری زبان برنامهنویسی C/C++، شروع به یادگیری آردوینو کنید.
برای کدنویسی در آردوینو، باید از زبان برنامهنویسی C/C++ استفاده کنید. کدهای آردوینو در فایلهای متنی با پسوند .ino ذخیره میشوند. برای نوشتن کدهای آردوینو، میتوانید از نرمافزار Arduino IDE استفاده کنید. در نرم افزار نمونه کد ساده برای شروع قرار گرفته شده است اما میتوانید با مراجعه به سایت دیجی اسپارک از سری آموزشهای مقدماتی و رایگان بهره ببرید.
برای شروع کار با آردوینو، نیازی به دانش قبلی در زمینه الکترونیک یا برنامهنویسی ندارید. با این حال، داشتن دانش پایه در این زمینهها میتواند به شما کمک کند تا یادگیری آردوینو را سریعتر و آسانتر انجام دهید.
برای شروع کار با آردوینو، به یک برد آردوینو ترجیحا مدل UNO R3 و یا R4، کابل Type Bو یک سیستم نیاز دارید. از نرمافزار Arduino IDE برای نوشتن و کامپایل کردن کدهای آردوینو و برنامهنویسی استفاده کنید. برای خرید قطعات کیت سنسور انتخاب خوبی برای شروع برنامه نویسی میکروکنترلرهاست و به مجموعهای از سنسورهای کاربردی دسترسی خواهید داشت.
با آردوینو میتوان طیف وسیعی از پروژههای الکترونیک را اجرا کرد
- پروژههای مبتنی بر اینترنت اشیا (IoT)
- پروژههای کنترل ربات
- پروژههای بیومتریک
- پروژههای نمایشگر
- پروژههای مخابراتی
- پروژههای کنترلی
- ساخت دستگاه تب سنج
- ساخت موقعیت یاب
- ساخت اس ام اس کنترل
- ساخت ماشین ربات حرکتی
- ساخت دستگاه ضربان قلب و کنترل از راه دور
با دستور digitalWrite(pinNumber, HIGH); و digitalWrite(pinNumber, LOW); میتوانید وضعیت پین را به ترتیب به HIGH و LOW تغییر دهید.
منظور از pinnumber همان پایههای دیجیتال برد آردوینو است به عنوان مثال از 3 تا 130
digitalRead برای خواندن وضعیت یک پین دیجیتال (HIGH یا LOW) و analogRead برای خواندن ولتاژ از یک پین آنالوگ استفاده میشود.
Serial.print داده را به صورت ASCII به سریال ارسال میکند، در حالیکه Serial.write داده را به صورت بایتی ارسال میکند.
آردوینو به صورت پیشفرض thread است. برای پیادهسازی چندنخی، میتوان از توابع اینتراپت و مدیریت توابع کالبک (callback functions) استفاده کرد.
با استفاده از کلمه کلیدی inline میتوان تابع را به عنوان یک تابع inline تعریف کرد تا در زمان اجرا، کد تابع در نقطه استفاده آن جایگزین شود.
واژه کلیدی inline به کامپایلر اطلاع میدهد که تابع مورد نظر باید در نقطه استفاده آن، جایگزین شود، به جای این که به صورت یک فراخوانی تابع عمل کند.
PlatformIO یک ابزار مفید برای برنامهنویسانی است که به دنبال ابزاری جامع و پیشرفته برای توسعه برنامههای میکروکنترلر هستند.
با نصب PlatformIO به عنوان یک افزونه در محیط توسعه (IDE) مانند VSCode یا Atom و ایجاد یک پروژه جدید با PlatformIO، میتوانید برنامههای آردوینو را توسعه دهید.
در این خصوص پیشنهاد میشود از فول پک سنسور استفاده کنید.
در ادامه لینک کالا قرار گرفته شده است.
برای عیب یابی کد خود در نرم افزار آردوینو می توانید از بخش Debug استفاده کنید. برای این کار، ابتدا باید گزینه Debug را از منوی Tools انتخاب کنید. سپس، کد خود را به صورت مرحله ای اجرا کنید و مقادیر متغیرها را مشاهده کنید. برای این کار، می توانید از دکمه های Step Into، Step Over، Step Out، و Run استفاده کنید.
در Arduino IDE، خروجی Serial Monitor به عنوان یک ابزار برای مشاهده لاگها به کار میرود. اما در آینده، ابزارهای دیگر ممکن است این امکانات را گسترش دهند.
با استفاده از یک دوربین و الگوریتمهای پردازش تصویر برای تشخیص چهره میتوانید این سیستم را پیادهسازی کنید.
همچنین از برد مایکسیدوینو برای پردازش تصویر میتوانید استفاده کنید.
پین SWD در Arduino UNO R4 برای اشکال زدایی پیشرفته استفاده میشود. SWD مخفف Serial Wire Debug است و یک پروتکل ارتباطی است که برای اتصال یک ابزار اشکال زدایی به یک میکروکنترلر استفاده میشود. با استفاده از پین های SWD، می توان کد میکروکنترلر را در حین اجرا مشاهده کرد، مقادیر حافظه را خواند و نوشت، و نقاط وقفه را تنظیم کرد. این می تواند برای عیب یابی مشکلات در کد میکروکنترلر بسیار مفید باشد.
در Arduino UNO R4، پین های SWD در زیر برد قرار دارند و به شرح زیر نامگذاری شده اند:
- SWDCLK- پین ساعت SWD
- SWDIO- پین داده SWD
- SWDRST - پین ریست SWD
Arduino uno R3 گزینه بهتری برای مبتدیان است زیرا ارزان تر و سادهتر است. همچنین دارای یک کتابخانه گسترده تر از کدها و مثال ها است که برای مبتدیان مفید است.
Arduino uno r4 RA4M1 گزینه بهتری برای کاربران پیشرفته است زیرا دارای ویژگی ها و عملکردهای بیشتری است. همچنین می تواند برای پروژه هایی که نیاز به حافظه بیشتر، سرعت کلاک بالاتر یا پشتیبانی از ویژگی های جدید مانند CAN bus دارند، استفاده شود.
برای اتصال برد آردوینو uno r4 به کابل تایپ C نیاز دارید. برای برقراری ارتباط ابتدا نرمافزار آردوینو arduino ide را نصب کنید. سپس پکیج UNO R4 را نصب کنید. با استفاده از کابل تایپ C اتصال برد به سیستم را برقرار کنید.
برای نصب برد Arduino Uno R4 Minima RA4M1 در نرمافزار Arduino، ابتدا باید نرمافزار Arduino را از وبسایت رسمی Arduino دانلود و نصب کنید. پس از نصب نرمافزار Arduino، مراحل زیر را دنبال کنید:
۱. در نرمافزار Arduino، به منوی File > Preferences بروید.
۲. در پنجره باز شده، به بخش Boards Manager بروید.
۳. در کادر جستجو، عبارت Arduino Uno R4 Minima RA4M1 را تایپ کنید.
۴. پس از یافتن برد Arduino Uno R4 Minima RA4M1، روی دکمه Install کلیک کنید.
پس از نصب برد Arduino Uno R4 Minima RA4M1، میتوانید آن را در پروژههای خود استفاده کنید.
آردوینو یک پلتفرم توسعه است که شامل یک IDE (محیط توسعه یکپارچه) و یک زبان برنامه نویسی مبتنی بر C++ است. میکروپایتون یک زبان برنامه نویسی است که می تواند بر روی بردهای آردوینو با تراشه ESP, RP2040 و همچنین سایر میکروکنترلرها مثل ESP, STM استفاده شود.
تفاوت های کلیدی بین میکروپایتون و آردوینو:
زبان برنامه نویسی:
- میکروپایتون: از زبان برنامه نویسی پایتون استفاده می کند که خواندن و نوشتن آن آسان است و برای مبتدیان مناسب تر است.
- آردوینو: از زبان برنامه نویسی مبتنی بر C++ استفاده می کند که پیچیده تر است و به دانش برنامه نویسی بیشتری نیاز دارد.
سخت افزار:
- میکروپایتون: می تواند بر روی بردهای مختلف میکروکنترلر، از جمله ESP8266، ESP32 و Raspberry Pi Pico اجرا شود.
- آردوینو: پلتفرمی با مجموعه ای از بردهای توسعه خود است که هر کدام ویژگی ها و قابلیت های خاص خود را دارند.
قابلیت ها:
- میکروپایتون: به طور پیش فرض از بسیاری از کتابخانه های مفید مانند GPIO، ADC، PWM، I2C، SPI و Wi-Fi پشتیبانی می کند.
- آردوینو: برای استفاده از بسیاری از این کتابخانه ها، نیاز به نصب کتابخانه های خارجی دارید.
جامعه:
- میکروپایتون: جامعه ای رو به رشد دارد، اما به اندازه جامعه آردوینو بزرگ نیست.
- آردوینو: جامعه ای بزرگ و فعال با پشتیبانی گسترده و منابع آموزشی فراوان دارد.
موارد دیگر:
- میکروپایتون: به طور کلی سریعتر از آردوینو است.
- آردوینو: برای پروژه های مبتنی بر الکترونیک و سخت افزار مناسب تر است.
انتخاب بین میکروپایتون و آردوینو به عوامل مختلفی بستگی دارد:
- سطح تجربه شما در برنامه نویسی: اگر مبتدی هستید، میکروپایتون انتخاب آسان تری است.
- نوع پروژه ای که می خواهید انجام دهید: اگر به دنبال پروژه ای مبتنی بر الکترونیک هستید، آردوینو انتخاب مناسب تری است.