معرفی دوره آموزش برنامهنویسی آردوینو 🚀🔧
این دوره آموزشی به مفاهیم پایهای برنامهنویسی بردهای آردوینو میپردازد و برای افرادی که قصد دارند برنامهنویسی را از پایه یاد بگیرند، طراحی شده است. در این دوره، شما با تعریف متغیرها 🏷️، انواع عملگرها ➕➖✖️➗، ساختارهای کنترلی 🔄، حلقهها 🔁 و توابع ⚙️ آشنا خواهید شد.
✅ شبیهسازی پروژهها در محیط UnoArduSim 💻
آموزشها بهصورت شبیهسازیشده در نرمافزار UnoArduSim ارائه میشوند که به شما امکان اجرای کدها بدون نیاز به برد فیزیکی را میدهد. لینک دانلود این نرمافزار در بخش دانلودهای سایت موجود است.
✅ درک مفاهیم پایهای برنامهنویسی 🧠
برنامهنویسی در تمام زبانها مفاهیم مشترکی دارد، اما هر زبان ساختار نوشتاری مخصوص به خود را دارد. این دوره به شما کمک میکند تا اصول اولیه را بیاموزید و با زبان مخصوص آردوینو (C/C++) کدنویسی کنید.
✅ مناسب برای مبتدیان 🏁
اگر تا به حال برنامهنویسی نکردهاید، نگران نباشید! این دوره به زبان ساده و همراه با مثالهای عملی توضیح داده شده است تا یادگیری برای شما سریع، جذاب و کاربردی باشد.
🔗 شروع یادگیری و ورود به دنیای اینترنت اشیا (IoT) و الکترونیک هوشمند از همین امروز!
مطالب این دوره:
🖥️ ساختار برنامه آردوینو
در دنیای آردوینو، به برنامهای که روی برد آپلود میکنید، Sketch (اسکچ) گفته میشود. اسکچ در حقیقت کدهای نوشته شده به زبان C/C++ است که با استفاده از توابع و کتابخانههای آماده در محیط Arduino IDE نوشته و اجرا میشود.
📂 بخشهای اصلی محیط Arduino IDE
هنگام باز کردن محیط Arduino IDE، با پنجرهای ساده و کاربردی مواجه میشوید که شامل بخشهای زیر است:
1️⃣ نوار منو (Menu Bar)
این بخش شامل گزینههایی مانند File، Edit، Sketch، Tools و Help میباشد که دسترسی به تنظیمات، ذخیره فایلها، و مدیریت کتابخانهها را فراهم میکند.
2️⃣ ناحیه کدنویسی (Code Area)
در این بخش کدهای مربوط به پروژه خود را مینویسید. کدها میتوانند توابعی مانند setup()
و loop()
را شامل شوند:
setup()
: برای تنظیمات اولیه و کدهایی که فقط یک بار در ابتدای برنامه اجرا میشوند.loop()
: برای کدهایی که به صورت مداوم اجرا میشوند.
3️⃣ نوار ابزار (Toolbar)
این بخش شامل دکمههای سریع برای عملیاتهای مختلف است:
- 🔄 Verify (تأیید): برای بررسی وجود خطا در کد.
- 🔼 Upload (آپلود): برای انتقال کد به برد آردوینو.
- 📄 New (ایجاد پروژه جدید): برای باز کردن یک اسکچ جدید.
- 💾 Open (باز کردن پروژه ذخیره شده): برای باز کردن فایلهای موجود.
- 🖨 Serial Monitor (مانیتور سریال): برای مشاهده و ارسال دادهها بین برد و کامپیوتر.
4️⃣ Serial Monitor (مانیتور سریال)
این ابزار برای مشاهده دادههای ارسالی و دریافتی از برد آردوینو از طریق پروتکل سریال به کار میرود و برای پروژههایی مانند خواندن دادههای حسگر بسیار مفید است.
📜 ساختار کد (Sketch) در آردوینو
همانطور که گفتیم، هر پروژه آردوینو شامل دو تابع اصلی است:
void setup()
- این تابع فقط یک بار هنگام روشن شدن برد یا ریست شدن آن اجرا میشود و برای تنظیمات اولیه مثل تعیین ورودی یا خروجی بودن پینها به کار میرود.
- نمونه:
void setup() {
pinMode(13, OUTPUT); // پین شماره 13 به عنوان خروجی تعریف میشود
}
2.void loop()
- این تابع به صورت پیوسته اجرا میشود و کدهای آن تا زمانی که برد روشن است، تکرار میشوند.
- نمونه:
void setup() {
pinMode(13, OUTPUT); // پین شماره 13 به عنوان خروجی تعریف میشود
}
📦 کتابخانهها (Libraries)
کتابخانهها در آردوینو مجموعهای از کدهای از پیش آماده هستند که به شما اجازه میدهند تا به راحتی از ماژولها و سنسورهای مختلف مانند LCD، سروو موتور، سنسور دما و… استفاده کنید. کتابخانهها را میتوانید از طریق منوی Sketch > Include Library اضافه کنید.
🌐 متنباز بودن Arduino IDE
نرمافزار آردوینو متنباز (Open-Source) است.
- کد محیط برنامهنویسی با زبان Java نوشته شده و تحت مجوز GPL منتشر شده است.
- کتابخانههای C/C++ مربوط به میکروکنترلر نیز تحت مجوز LGPL ارائه شدهاند.
🎯 چرا Arduino IDE؟
- رایگان و ساده 🎈
- پشتیبانی از تعداد زیادی کتابخانه و ماژول 📚
- امکان آپلود و دیباگ سریع پروژهها 🛠️
- سازگار با سیستمعاملهای ویندوز، مک و لینوکس 🖥
اگر به دنبال یادگیری آردوینو و پیادهسازی پروژههای مختلف مثل رباتهای ساده، کنترل روشنایی و ارتباطات سریال هستید، Arduino IDE بهترین نقطه شروع برای شماست! 🚀
انوع متغیر و حافظه ها:
📚 معرفی انواع متغیرها در آردوینو
در آردوینو، متغیرها برای ذخیره دادهها و مدیریت آنها استفاده میشوند. هر نوع متغیر مقدار خاصی از حافظه را اشغال میکند و هدف متفاوتی دارد. در ادامه، چهار نوع پرکاربرد متغیر در آردوینو معرفی میشوند:
🔹 Boolean
متغیر Boolean تنها میتواند دو مقدار منطقی true
(درست) یا false
(نادرست) را ذخیره کند. هر متغیر Boolean یک بایت از حافظه را اشغال میکند و معمولاً در شرایط یا تصمیمگیریها (مثل حلقهها و شرطها) استفاده میشود.
🔹 Char
متغیر Char برای ذخیره یک کاراکتر (مانند ‘A’ یا ‘b’) استفاده میشود و یک بایت از حافظه را اشغال میکند.
کاراکترها به صورت عددی مطابق با استاندارد ASCII ذخیره میشوند. به همین دلیل، میتوان روی کاراکترها عملیات ریاضی انجام داد.
🔹 int (Integer)
int یک نوع دادهای عددی صحیح است که مقدارهای بین -32,768 تا 32,767 را ذخیره میکند و 16 بیت (2 بایت) از حافظه را اشغال میکند.
اندازه و محدودهی متغیر int ممکن است بسته به نوع برد متفاوت باشد. برای مثال، در برد Arduino Due متغیر int، به صورت 32 بیتی (4 بایت) ذخیره میشود.
🔹 float (Floating-Point)
متغیر float برای ذخیره اعداد اعشاری یا مقادیر با دقت بالا استفاده میشود. این نوع متغیر، 4 بایت (32 بیت) از حافظه را اشغال میکند و میتواند اعدادی در بازهی -3.4028235E+38 تا 3.4028235E+38 را ذخیره کند.
// Boolean
boolean val = false; // تعریف متغیر Boolean و مقداردهی اولیه با false
// Char
char chr_a = 'a'; // تعریف متغیر Char و مقداردهی اولیه با 'a'
char chr_c = 97; // تعریف متغیر Char و مقداردهی با مقدار عددی 97 (معادل 'a' در ASCII)
// int
int counter = 32; // تعریف متغیر int و مقداردهی اولیه با 32
// float
float num = 1.352; // تعریف متغیر float و مقداردهی اولیه با عدد اعشاری 1.352
📚 متغیرهای محلی (Local) و سراسری (Global) در آردوینو
در برنامهنویسی آردوینو، محدوده (Scope) متغیرها تعیین میکند که آیا متغیر فقط در بخشی از کد در دسترس است یا در کل برنامه. متغیرها میتوانند محلی یا سراسری باشند:
🔹 متغیرهای محلی (Local Variables)
متغیرهایی که داخل یک تابع یا بلوک کد تعریف میشوند، متغیرهای محلی هستند.
این متغیرها فقط توسط همان تابع یا بلوک کد قابل استفاده هستند و در خارج از محدوده تعریفشده خود ناشناخته خواهند بود. این نوع متغیرها معمولاً برای ذخیره دادههایی که فقط در همان تابع موردنیاز هستند، استفاده میشوند.
🔹 متغیرهای سراسری (Global Variables)
متغیرهایی که خارج از تمام توابع، معمولاً در بالای برنامه، تعریف میشوند، متغیرهای سراسری هستند.
این متغیرها میتوانند توسط تمام توابع برنامه استفاده شوند و مقدارشان در طول اجرای برنامه حفظ میشود.
📝 نمونه کد برای متغیرهای محلی و سراسری
// تعریف متغیر سراسری
int globalVar = 10; // این متغیر سراسری میتواند توسط تمام توابع استفاده شود
void setup() {
Serial.begin(9600);
}
void loop() {
int localVar = 5; // تعریف متغیر محلی، فقط در این بلوک loop() معتبر است
Serial.print("Global Variable: ");
Serial.println(globalVar); // استفاده از متغیر سراسری
Serial.print("Local Variable: ");
Serial.println(localVar); // استفاده از متغیر محلی
}
🎯 آشنایی با انواع عملگرها (Operators) در آردوینو
عملگرها نمادهایی هستند که به کامپایلر میگویند تا عملیات خاصی را روی مقادیر یا متغیرها انجام دهد. آردوینو، که بر پایه زبان C/C++ ساخته شده، طیف وسیعی از عملگرهای داخلی (Built-in Operators) را پشتیبانی میکند. در ادامه به معرفی انواع عملگرهای مهم و کاربرد آنها میپردازیم.
🔹 1. عملگرهای محاسباتی (Arithmetic Operators)
این عملگرها برای انجام عملیات ریاضی مانند جمع، تفریق، ضرب و تقسیم استفاده میشوند:
+
: جمع-
: تفریق*
: ضرب/
: تقسیم%
: باقیمانده (مدول)
🔹 2. عملگرهای مقایسهای (Comparison Operators)
این عملگرها مقایسه بین دو مقدار را انجام داده و نتیجهی true یا false را برمیگردانند:
==
: برابر بودن!=
: نابرابر بودن>
: بزرگتر<
: کوچکتر>=
: بزرگتر یا مساوی<=
: کوچکتر یا مساوی
🔹 3. عملگرهای منطقی (Boolean Operators)
این عملگرها روی مقادیر منطقی (Boolean) اعمال شده و نتیجهی true یا false تولید میکنند:
&&
: AND منطقی (و) – زمانی true میشود که هر دو شرط true باشند||
: OR منطقی (یا) – زمانی true میشود که حداقل یکی از شروط true باشد!
: NOT منطقی (نقیض) – مقدار منطقی را معکوس میکند
🔹 4. عملگرهای بیتی (Bitwise Operators)
این عملگرها مستقیماً روی بیتهای عددها عمل میکنند:
&
: AND بیتی|
: OR بیتی^
: XOR بیتی~
: NOT بیتی<<
: شیفت به چپ>>
: شیفت به راست
🔹 5. عملگرهای ترکیبی (Compound Operators)
این عملگرها، ترکیبی از عملگرهای محاسباتی و انتسابی هستند و برای کاهش تعداد خطوط کد استفاده میشوند:
+=
: جمع و انتساب-=
: تفریق و انتساب*=
: ضرب و انتساب/=
: تقسیم و انتساب%=
: باقیمانده و انتساب
📝 نمونه کد واقعی برای انواع عملگرها در آردوینو
void setup() {
Serial.begin(9600);
// عملگرهای محاسباتی
int a = 10, b = 3;
Serial.print("a + b = ");
Serial.println(a + b); // جمع
Serial.print("a % b = ");
Serial.println(a % b); // باقیمانده
// عملگرهای مقایسهای
Serial.println(a > b); // true (1) چون a بزرگتر از b است
Serial.println(a == b); // false (0) چون a با b برابر نیست
// عملگرهای منطقی
boolean x = true, y = false;
Serial.println(x && y); // false چون یکی از شرطها false است
Serial.println(x || y); // true چون یکی از شرطها true است
// عملگرهای ترکیبی
int num = 5;
num += 10; // معادل: num = num + 10
Serial.print("num += 10: ");
Serial.println(num);
// عملگرهای بیتی
int p = 5; // 0101 در باینری
int q = 3; // 0011 در باینری
Serial.print("p & q = ");
Serial.println(p & q); // نتیجه: 0001 (برابر 1 در دهدهی)
Serial.print("p << 1 = ");
Serial.println(p << 1); // شیفت به چپ: 1010 (برابر 10 در دهدهی)
}
void loop() {
// این قسمت میتواند تکرار وظایف را انجام دهد اما در اینجا نیازی به تکرار نیست
}
🧠 ساختارهای تصمیمگیری (Decision Making Structures) در آردوینو
🧠 ساختارهای تصمیمگیری در آردوینو (Decision Making Structures)
در برنامهنویسی، ساختارهای تصمیمگیری به شما این امکان را میدهند که شرایطی را تعریف کنید و بر اساس درست (True) یا نادرست (False) بودن آن شرایط، بخشهای مختلفی از کد اجرا شود. این ساختارها در کنترل جریان برنامه و تصمیمگیری نقش کلیدی دارند.
انواع ساختارهای تصمیمگیری که در آردوینو به کار میروند به شرح زیر هستند:
🔹 1. If Statement (دستور شرطی If)
این دستور زمانی به کار میرود که بخواهید یک شرط خاص را بررسی کنید. اگر شرط برقرار باشد (True)، کد درون بلوک if
اجرا میشود. در غیر این صورت، این بخش نادیده گرفته میشود.
🔹 2. If…Else Statement (دستور If همراه با Else)
این دستور برای زمانی است که میخواهید در صورت برقرار نبودن شرط if
، یک مسیر جایگزین اجرا شود. اگر شرط if
برقرار باشد، کد مربوط به آن اجرا میشود و اگر برقرار نباشد، کد درون else
اجرا میشود.
🔹 3. If…Else If…Else Statement (شرایط چندگانه)
این ساختار به شما اجازه میدهد چندین شرط را پشت سر هم بررسی کنید. به محض اینکه یکی از شرایط برقرار شود، کد مربوط به همان بخش اجرا شده و بقیه شرایط نادیده گرفته میشوند.
🔹 4. Switch…Case Statement (دستور Switch)
این ساختار زمانی استفاده میشود که بخواهید یک متغیر را با مقادیر مشخص مقایسه کنید و برای هر مقدار یک بخش کد متفاوت اجرا شود. switch
مشابه if...else
است، اما خوانایی و کارایی بیشتری در شرایط ثابت (مانند مقادیر عددی) دارد.
📝 کد نمونه ساختارهای تصمیمگیری در آردوینو
void setup() {
Serial.begin(9600); // راهاندازی ارتباط سریال با سرعت 9600
int temperature = 25; // متغیر نمونه برای دما
// 1. مثال دستور شرطی If
if (temperature > 30) {
Serial.println("هوا خیلی گرم است!"); // اگر دما بیشتر از 30 باشد، این خط اجرا میشود
}
// 2. مثال دستور If...Else
if (temperature > 30) {
Serial.println("هوا گرم است!"); // اگر دما بیشتر از 30 باشد
} else {
Serial.println("هوا زیاد گرم نیست!"); // اگر دما 30 یا کمتر باشد
}
// 3. مثال If...Else If...Else
if (temperature > 35) {
Serial.println("هوا خیلی گرم و غیرقابل تحمل است!"); // اگر دما بالای 35 باشد
} else if (temperature > 25) {
Serial.println("هوا گرم است."); // اگر دما بین 25 و 35 باشد
} else {
Serial.println("هوا خنک است."); // اگر دما کمتر از 25 باشد
}
// 4. مثال Switch...Case
int day = 2; // فرض کنیم عدد روز هفته (1=یکشنبه، 2=دوشنبه و ...)
switch (day) {
case 1:
Serial.println("امروز یکشنبه است.");
break;
case 2:
Serial.println("امروز دوشنبه است.");
break;
case 3:
Serial.println("امروز سهشنبه است.");
break;
default:
Serial.println("روز معتبر وارد نشده است.");
break;
}
}
void loop() {
// اینجا نیازی به تکرار دستورات نیست، چون setup یک بار اجرا میشود
}
🔹 انواع حلقهها:
حلقهها یکی از ساختارهای کنترلی مهم در زبانهای برنامهنویسی هستند که به ما امکان میدهند مجموعهای از دستورات را بهطور مکرر اجرا کنیم 🔄. استفاده از حلقهها باعث کاهش کدنویسی تکراری 📝 و بهینهسازی اجرای برنامهها ⚡ میشود.
🔸 حلقه while
⏳
این نوع حلقه تا زمانی که شرط داخل پرانتز ()
برقرار باشد، دستورات درون بدنه حلقه را اجرا میکند ✅. اگر مقدار متغیری که در شرط بررسی میشود تغییر نکند، حلقه میتواند بینهایت اجرا شود ♾️ که معمولاً باعث هنگ کردن برنامه خواهد شد 🚨.
🔸 حلقه do...while
🔁
این حلقه مشابه حلقه while
است، با این تفاوت که شرط بررسی در انتهای حلقه انجام میشود 📌. به این معنی که بدنه حلقه حداقل یک بار اجرا خواهد شد 🎯، حتی اگر شرط از ابتدا برقرار نباشد.
🔸 حلقه for
🎛️
این حلقه برای تعداد دفعات مشخصی اجرا میشود 🔢. مقدار اولیه، شرط پایان و نحوه تغییر مقدار متغیر کنترلی همگی درون پرانتز for
تعریف میشوند 📊 که باعث خوانایی بهتر 👀 و مدیریت بهتر اجرای حلقه میشود 🏆.
در ادامه مثالهایی برای هر نوع حلقه ارائه خواهد شد 💻.
// 🔄 مثال حلقه while
// این برنامه اعداد 1 تا 5 را چاپ میکند 🖥️
int number = 1; // مقدار اولیه متغیر 🔢
while (number <= 5) { // شرط ادامه اجرای حلقه ✅
Serial.print("عدد: ");
Serial.println(number); // چاپ مقدار متغیر 📌
number += 1; // افزایش مقدار متغیر برای جلوگیری از بینهایت شدن حلقه 🔄
}
// 🔄 مثال حلقه do...while در آردوینو
// این برنامه اعداد 1 تا 5 را چاپ میکند 🖥️
number = 1;
do {
Serial.print("عدد: ");
Serial.println(number); // چاپ مقدار متغیر 📌
number += 1; // افزایش مقدار متغیر 🔄
} while (number <= 5); // بررسی شرط برای ادامه یا خروج از حلقه ✅
// 🔄 مثال حلقه for
// این برنامه اعداد 1 تا 5 را با استفاده از حلقه for چاپ میکند 🖥️
for (int number = 1; number <= 5; number++) { // مقدار اولیه 1، شرط پایان 5، افزایش مقدار متغیر 🔢
Serial.print("عدد: ");
Serial.println(number); // چاپ مقدار متغیر 📌
}
معرفی محیط شبیه سازی:
نرمافزار UnoArduSim 🎛️ یک شبیهساز فوقالعاده برای برد Arduino Uno 🤖 است که به شما این امکان را میدهد تا بدون نیاز به خرید سختافزار واقعی 🎯، به راحتی آردوینو را شبیهسازی و برنامهنویسی کنید. اگر به دنبال یادگیری پروژههای آردوینو هستید و هنوز برد واقعی تهیه نکردهاید 🛒، با این نرمافزار میتوانید ابتدا در یک محیط کاملاً شبیهسازی شده 📚 آموزش ببینید، تست کنید، و تجربه کسب کنید!
🌟 چرا UnoArduSim را امتحان کنیم؟
✅ شبیهسازی محیط واقعی Arduino:
تمامی پینهای دیجیتال (D0 تا D13) و آنالوگ (A0 تا A5)، ارتباطات سریال 🛰️، SPI، و حتی سروو موتور و LEDها 💡 را به طور کامل شبیهسازی میکند.
✅ بدون نیاز به خرید سختافزار:
قبل از اینکه برای خرید یک برد آردوینو هزینه کنید، میتوانید اینجا برنامهنویسی را یاد بگیرید و پروژهها را بدون هیچ خطری اجرا کنید.
✅ پروژههای جذاب و کاربردی:
در این نرمافزار میتوانید بسیاری از پروژههای معروف آردوینو را اجرا کنید، مانند:
🔹 روشن و خاموش کردن LED با دکمه فشاری 🕹️
🔹 خواندن مقادیر آنالوگ از پتانسیومتر 🎚️
🔹 کنترل سروو موتور با PWM ⚙️
🔹 ارسال و دریافت دادههای سریال 🔄
🔹 شبیهسازی پاسخ سیستم به سیگنالهای سینوسی و مربعی 📈
🔬 معرفی بخشهای مختلف UnoArduSim (مطابق تصویر)
📌 برد Arduino Uno شبیهسازی شده:
در مرکز تصویر، برد آردوینو به همراه تمامی پینها قرار دارد که میتوانید ورودی و خروجیها را بهصورت مجازی آزمایش کنید.
📌 دکمههای فشاری و پتانسیومتر:
سمت چپ تصویر، دکمههای فشاری 🟥 و پتانسیومتر (R-1K) 🎚️ را میبینید که برای شبیهسازی ورودیهای دیجیتال و آنالوگ به کار میروند.
📌 خروجیهای LED و ابزارهای مولد سیگنال:
سمت راست، مجموعهای از LEDهای RGB 💡 و مولد پالس و سیگنال ⚡ برای آزمایش پینهای خروجی و PWM وجود دارد.
📌 ماژولهای ارتباطی:
شبیهساز ارتباط سریال (UART)، SPI، و مولد پالسهای کنترلی نیز در این نرمافزار قرار گرفتهاند.
🎯 فرصت یادگیری بدون محدودیت
با این نرمافزار میتوانید مهارتهای آردوینو را بدون نگرانی از سوختن مدار یا اشتباهات سختافزاری 🛠️ یاد بگیرید و بارها و بارها کدهای خود را آزمایش کنید! 🎓
اگر به دنبال یک دوره آموزشی جامع هستید که شما را با پروژههای واقعی آردوینو در همین نرمافزار حرفهای کند، پیشنهاد میکنم دوره ما را تهیه کنید و قدم به دنیای الکترونیک و آردوینو بگذارید! 🚀
🛒 همین حالا شروع کن و آردوینو را به بهترین شکل یاد بگیر! 🌐
در صورتی که قبلا این دوره را گذارنده اید و آزمون نهایی را با موفقیت پیش سر گذاشته اید با ثبت کد رهگیری دوره خود را بررسی کنید
درخواست مشاوره
برای کسب اطلاعات بیشتر درباره این دوره درخواست مشاوره خود را ارسال کنید و یا با ما در تماس باشید.
درخواست مشاورهدوره های مرتبط
هوش مصنوعی با PICTOBLOX
🚀✨ معرفی دوره آموزشی پایتون در محیط PictoBlox ✨🚀 🎯 این دوره به شما آموزش میدهد که چگونه برنامهنویسی با…
بسته ربات Vira Analog
Vira Analog یک ربات آنالوگ نوریاب و مسیریاب است که بدون نیاز به برنامهنویسی، بهصورت خودکار مسیرها را دنبال کرده و از موانع عبور میکند. 🤖✨ این ربات با استفاده از دو حسگر نوری و موتورهای DC 6 ولتی، نور و خطوط را تشخیص داده و حرکت میکند. ⚡🛤️ بدنهی آن از چوب سبک و مقاوم ساخته شده و مانند یک ماشین اسباببازی طراحی شده است. 🚗🪵 منبع تغذیه آن باطری 6 ولتی است، اما امکان استفاده از رگولاتور 7805 برای ولتاژ بالاتر نیز وجود دارد. 🎛️🔋 این ربات گزینهای عالی برای آموزش مفاهیم اولیهی رباتیک و الکترونیک است و تجربهای جذاب و عملی را برای کودکان و مبتدیان فراهم میکند. 🎓🚀
155,000 تومان Original price was: 155,000 تومان.1 تومانCurrent price is: 1 تومان.


حسین رضایی
مدرس رباتیک، الکترونیک، برنامه نویسیمدیر موسسه پیشروخلاقیت آزاد مهر ویرا

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