[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"post-data-amoozesh-arduino-az-sefr":3,"comments-38":60},{"post":4,"course":43,"related":44},{"id":5,"slug":6,"title":7,"content":8,"excerpt":9,"category":10,"date":11,"readTime":12,"wordCount":13,"image":14,"author":15,"authorRole":16,"authorImg":17,"reviewedBy":18,"tags":19,"relatedCourseSlug":21,"categoryKey":22,"summaryPoints":23,"faq":27,"seoTitle":40,"seoDesc":41,"createdAtIso":42,"updatedAtIso":42,"updatedDate":43},38,"amoozesh-arduino-az-sefr","آموزش آردوینو از صفر: از نصب نرم‌افزار تا اولین ربات، به زبان ساده","\n\u003Cp>آردوینو کوتاه‌ترین راه از «کد نوشتن» به «ساختن چیزی که در دنیای واقعی حرکت می‌کند» است. با چند خط کد، یک چراغ روشن و خاموش می‌شود، یک موتور می‌چرخد یا یک سنسور فاصله‌ی دستتان را اندازه می‌گیرد. برای همین آردوینو نقطه‌ی شروع رباتیک، اینترنت اشیا و بیشتر پروژه‌های الکترونیک آماتوری است.\u003C\u002Fp>\n\n\u003Cp>این آموزش برای کسی است که تا حالا با آردوینو کار نکرده: اول می‌بینیم آردوینو چیست و کدام برد را بخرید، بعد نرم‌افزار را نصب می‌کنیم، اولین برنامه را اجرا می‌کنیم و در پایان پنج پروژه‌ی کوچک می‌سازیم که آخرینش یک رادار ساده است. اگر هنوز برد ندارید، نگران نباشید؛ بخشی از این آموزش را می‌شود با شبیه‌ساز رایگان و بدون خرید هیچ قطعه‌ای انجام داد.\u003C\u002Fp>\n\n\u003Ch2>آردوینو چیست؟\u003C\u002Fh2>\n\n\u003Cp>آردوینو (Arduino) یک برد الکترونیکی کوچک است که یک میکروکنترلر روی آن قرار دارد؛ یعنی یک کامپیوتر خیلی ساده که فقط یک برنامه را اجرا می‌کند. برنامه را روی کامپیوتر خودتان می‌نویسید، با کابل USB روی برد می‌فرستید و از آن به بعد برد بدون کامپیوتر هم همان برنامه را اجرا می‌کند.\u003C\u002Fp>\n\n\u003Cp>روی برد تعدادی \u003Cstrong>پین\u003C\u002Fstrong> هست. به این پین‌ها قطعه وصل می‌کنید: LED، دکمه، سنسور، موتور یا نمایشگر. برنامه‌ی شما از سنسورها می‌خواند و به خروجی‌ها فرمان می‌دهد. وقتی می‌گوییم «آردوینو»، معمولاً سه چیز را با هم منظور داریم:\u003C\u002Fp>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>برد:\u003C\u002Fstrong> سخت‌افزار، مثل آردوینو اونو یا نانو.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>نرم‌افزار (Arduino IDE):\u003C\u002Fstrong> برنامه‌ای که کد را در آن می‌نویسید و روی برد می‌فرستید. رایگان است.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>زبان برنامه‌نویسی:\u003C\u002Fstrong> نسخه‌ی ساده‌شده‌ای از ++C با تعداد زیادی دستور آماده برای کار با پین‌ها.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>کدام برد را بخرم؟ اونو، نانو یا مگا\u003C\u002Fh2>\n\n\u003Cp>برای شروع، تقریباً همیشه \u003Cstrong>آردوینو اونو (Uno)\u003C\u002Fstrong> بهترین انتخاب است. بیشتر آموزش‌ها، کتاب‌ها و کیت‌ها بر اساس اونو نوشته شده‌اند و پین‌هایش درشت و کار با آن راحت است.\u003C\u002Fp>\n\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>برد\u003C\u002Fth>\u003Cth>مناسب برای\u003C\u002Fth>\u003Cth>نکته\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>اونو (Uno)\u003C\u002Ftd>\u003Ctd>شروع یادگیری و بیشتر پروژه‌های آموزشی\u003C\u002Ftd>\u003Ctd>بیشترین آموزش و کیت برای این برد است\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>نانو (Nano)\u003C\u002Ftd>\u003Ctd>پروژه‌هایی که جا کم دارند، مثل ربات کوچک\u003C\u002Ftd>\u003Ctd>همان توانایی اونو در اندازه‌ی کوچک‌تر؛ روی بردبورد می‌نشیند\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>مگا (Mega)\u003C\u002Ftd>\u003Ctd>پروژه‌های بزرگ با قطعه‌ی زیاد\u003C\u002Ftd>\u003Ctd>پین بیشتر دارد؛ برای شروع لازم نیست\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003Cp>در بازار ایران بیشتر بردها \u003Cstrong>نسخه‌ی سازگار (کلون)\u003C\u002Fstrong> هستند، نه نسخه‌ی اصلی ساخت شرکت آردوینو. کلون‌ها برای یادگیری کاملاً کار می‌کنند؛ فقط بعضی‌شان به جای تراشه‌ی USB اصلی، تراشه‌ی CH340 دارند و روی ویندوز ممکن است درایور جداگانه بخواهند. در بخش نصب به این موضوع می‌رسیم.\u003C\u002Fp>\n\n\u003Ch2>وسایل لازم برای شروع\u003C\u002Fh2>\n\n\u003Cp>اگر می‌خواهید «کیت آموزش آردوینو» بخرید، مطمئن شوید این قطعه‌ها داخلش هست. با همین‌ها همه‌ی پروژه‌های این مقاله انجام می‌شود:\u003C\u002Fp>\n\n\u003Cul>\n\u003Cli>برد آردوینو اونو و کابل USB آن\u003C\u002Fli>\n\u003Cli>بردبورد (صفحه‌ی سوراخ‌دار برای وصل کردن قطعه‌ها بدون لحیم) و تعدادی سیم جامپر\u003C\u002Fli>\n\u003Cli>چند LED و مقاومت ۲۲۰ اهمی (هر LED باید با مقاومت وصل شود)\u003C\u002Fli>\n\u003Cli>دکمه‌ی فشاری (Push Button)\u003C\u002Fli>\n\u003Cli>پتانسیومتر (ولوم چرخشی)\u003C\u002Fli>\n\u003Cli>سنسور فاصله‌ی اولتراسونیک HC-SR04\u003C\u002Fli>\n\u003Cli>سروو موتور کوچک SG90\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Cp>کیت‌های بزرگ‌تر معمولاً نمایشگر LCD، سنسور دما و رطوبت، بازر و موتور DC هم دارند که برای مرحله‌ی بعد به درد می‌خورند.\u003C\u002Fp>\n\n\u003Ch2>نصب نرم‌افزار آردوینو\u003C\u002Fh2>\n\n\u003Col>\n\u003Cli>نرم‌افزار \u003Cstrong>Arduino IDE 2\u003C\u002Fstrong> را از سایت رسمی arduino.cc بخش Software دانلود کنید. برای ویندوز، مک و لینوکس نسخه دارد.\u003C\u002Fli>\n\u003Cli>نصب کنید و برنامه را باز کنید. اگر ویندوز درباره‌ی نصب درایور سوال کرد، اجازه بدهید.\u003C\u002Fli>\n\u003Cli>برد را با کابل USB به کامپیوتر وصل کنید.\u003C\u002Fli>\n\u003Cli>از منوی بالای برنامه، در کادر انتخاب برد، \u003Ccode>Arduino Uno\u003C\u002Fcode> و پورتی را که برد به آن وصل است انتخاب کنید (در ویندوز چیزی مثل COM3).\u003C\u002Fli>\n\u003C\u002Fol>\n\n\u003Cp>\u003Cstrong>اگر پورت دیده نمی‌شود:\u003C\u002Fstrong> اول کابل را عوض کنید؛ بعضی کابل‌های USB فقط شارژ می‌کنند و داده رد نمی‌کنند. اگر برد کلون است و روی خودش تراشه‌ی CH340 دیده می‌شود، درایور CH340 را نصب کنید و برنامه را دوباره باز کنید.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>نصب کتابخانه:\u003C\u002Fstrong> بعضی قطعه‌ها، مثل نمایشگرها و بعضی سنسورها، کتابخانه‌ی آماده دارند. در Arduino IDE 2 از نوار کناری، آیکون کتاب‌ها (Library Manager) را باز کنید، اسم کتابخانه را جستجو و Install را بزنید. کتابخانه‌ی سروو که در این مقاله استفاده می‌کنیم از قبل همراه نرم‌افزار نصب است.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>با گوشی چطور؟\u003C\u002Fstrong> برنامه‌هایی برای اندروید هست که با کابل OTG کد را روی برد می‌فرستند، ولی تجربه‌ی کار با آن‌ها برای مبتدی‌ها سخت است. اگر کامپیوتر دارید، از همان Arduino IDE شروع کنید. نسخه‌ی تحت وب آردوینو (Arduino Cloud Editor) هم هست که در مرورگر کار می‌کند.\u003C\u002Fp>\n\n\u003Ch2>بدون برد هم می‌شود شروع کرد: شبیه‌ساز\u003C\u002Fh2>\n\n\u003Cp>اگر هنوز برد نخریده‌اید، می‌توانید مدار را در شبیه‌ساز بسازید و کد را همان‌جا اجرا کنید. دو گزینه‌ی رایگان و تحت وب: \u003Cstrong>Tinkercad Circuits\u003C\u002Fstrong> که برای مبتدی‌ها خیلی ساده است و \u003Cstrong>Wokwi\u003C\u002Fstrong> که بردها و قطعه‌های بیشتری دارد. خیلی‌ها برای شبیه‌سازی آردوینو سراغ پروتئوس (Proteus) می‌روند؛ پروتئوس نرم‌افزار حرفه‌ای‌تری است ولی نصب و راه‌اندازی آردوینو در آن برای شروع دردسر بیشتری دارد. برای یادگیری، شبیه‌ساز تحت وب کافی است.\u003C\u002Fp>\n\n\u003Cp>شبیه‌ساز جای کار با قطعه‌ی واقعی را نمی‌گیرد؛ سیم شل، باتری ضعیف و سنسوری که گاهی عدد عجیب می‌دهد را فقط در دنیای واقعی یاد می‌گیرید. ولی برای اینکه بفهمید آردوینو برایتان جذاب است یا نه، بهترین شروع رایگان است.\u003C\u002Fp>\n\n\u003Ch2>زبان برنامه‌نویسی آردوینو چیست؟\u003C\u002Fh2>\n\n\u003Cp>کد آردوینو به زبان ++C نوشته می‌شود، ولی لازم نیست اول ++C را کامل یاد بگیرید. هر برنامه‌ی آردوینو دو بخش اصلی دارد:\u003C\u002Fp>\n\n\u003Cul>\n\u003Cli>\u003Ccode>setup()\u003C\u002Fcode> یک بار، هنگام روشن شدن برد اجرا می‌شود. تنظیمات اولیه اینجا می‌آید؛ مثلاً اینکه کدام پین ورودی است و کدام خروجی.\u003C\u002Fli>\n\u003Cli>\u003Ccode>loop()\u003C\u002Fcode> بعد از آن، بی‌وقفه و پشت سر هم تکرار می‌شود. کار اصلی برنامه اینجاست.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Cp>\u003Cstrong>با پایتون یا اسکرچ چطور؟\u003C\u002Fstrong> برد اونو مستقیم پایتون اجرا نمی‌کند. می‌شود روی برد یک برنامه‌ی واسط (StandardFirmata) گذاشت و از روی کامپیوتر با کتابخانه‌ی pyFirmata در پایتون به آن فرمان داد؛ برای کسی که پایتون بلد است جالب است، ولی برد بدون کامپیوتر کار نمی‌کند. برای بچه‌ها و نوجوان‌ها، برنامه‌ی \u003Cstrong>mBlock\u003C\u002Fstrong> اجازه می‌دهد آردوینو را با بلوک‌هایی شبیه اسکرچ برنامه‌ریزی کنند. اگر هدفتان یادگیری جدی آردوینو است، ++C ساده‌ی خود آردوینو را انتخاب کنید؛ همه‌ی منابع و مثال‌ها به همین زبان است.\u003C\u002Fp>\n\n\u003Ch2>اولین برنامه: چشمک زدن LED\u003C\u002Fh2>\n\n\u003Cp>روی برد اونو یک LED کوچک هست که به پین ۱۳ وصل است، پس برای اولین برنامه هیچ قطعه‌ای لازم نیست. این کد را در Arduino IDE بنویسید و دکمه‌ی Upload (فلش رو به راست) را بزنید:\u003C\u002Fp>\n\n\u003Cpre>\u003Ccode class=\"language-cpp\">void setup() {\n  pinMode(LED_BUILTIN, OUTPUT);\n}\n\nvoid loop() {\n  digitalWrite(LED_BUILTIN, HIGH);  \u002F\u002F on\n  delay(1000);                      \u002F\u002F wait one second\n  digitalWrite(LED_BUILTIN, LOW);   \u002F\u002F off\n  delay(1000);\n}\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>اگر LED روی برد هر ثانیه روشن و خاموش شد، همه چیز درست نصب شده است. حالا عدد ۱۰۰۰ را به ۲۰۰ تغییر دهید و دوباره آپلود کنید؛ چشمک‌ها تند می‌شوند. همین تغییرهای کوچک بهترین راه یادگیری است.\u003C\u002Fp>\n\n\u003Ch2>پروژه‌ی ۱: روشن کردن LED با دکمه\u003C\u002Fh2>\n\n\u003Cp>\u003Cstrong>اتصال:\u003C\u002Fstrong> یک پایه‌ی دکمه به پین ۲ و پایه‌ی مقابلش به GND. یک LED با مقاومت ۲۲۰ اهم به پین ۱۳ (پایه‌ی بلند LED سمت پین، پایه‌ی کوتاه سمت GND).\u003C\u002Fp>\n\n\u003Cpre>\u003Ccode class=\"language-cpp\">const int buttonPin = 2;\nconst int ledPin = 13;\n\nvoid setup() {\n  pinMode(buttonPin, INPUT_PULLUP);  \u002F\u002F use the internal pull-up resistor\n  pinMode(ledPin, OUTPUT);\n}\n\nvoid loop() {\n  \u002F\u002F with INPUT_PULLUP, a pressed button reads LOW\n  if (digitalRead(buttonPin) == LOW) {\n    digitalWrite(ledPin, HIGH);\n  } else {\n    digitalWrite(ledPin, LOW);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>چیزی که یاد گرفتید: خواندن ورودی دیجیتال با \u003Ccode>digitalRead\u003C\u002Fcode> و تصمیم‌گیری با \u003Ccode>if\u003C\u002Fcode>. حالت \u003Ccode>INPUT_PULLUP\u003C\u002Fcode> باعث می‌شود به مقاومت اضافه برای دکمه نیاز نداشته باشید.\u003C\u002Fp>\n\n\u003Ch2>پروژه‌ی ۲: کم و زیاد کردن نور با پتانسیومتر (PWM)\u003C\u002Fh2>\n\n\u003Cp>\u003Cstrong>اتصال:\u003C\u002Fstrong> پایه‌ی وسط پتانسیومتر به A0 و دو پایه‌ی کناری به 5V و GND. LED با مقاومت به پین ۹.\u003C\u002Fp>\n\n\u003Cpre>\u003Ccode class=\"language-cpp\">const int potPin = A0;\nconst int ledPin = 9;  \u002F\u002F pins marked with ~ support PWM\n\nvoid setup() {\n  pinMode(ledPin, OUTPUT);\n}\n\nvoid loop() {\n  int value = analogRead(potPin);                \u002F\u002F 0 to 1023\n  int brightness = map(value, 0, 1023, 0, 255);  \u002F\u002F scale to 0..255\n  analogWrite(ledPin, brightness);\n}\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>\u003Cstrong>PWM چیست؟\u003C\u002Fstrong> آردوینو نمی‌تواند واقعاً ولتاژ را کم و زیاد کند؛ در عوض پین را خیلی سریع روشن و خاموش می‌کند. هرچه سهم «روشن» بیشتر باشد، LED پرنورتر دیده می‌شود. به این روش PWM می‌گویند و با \u003Ccode>analogWrite\u003C\u002Fcode> فقط روی پین‌های علامت‌دار با ~ کار می‌کند. سرعت موتورهای DC هم با همین روش کنترل می‌شود.\u003C\u002Fp>\n\n\u003Ch2>پروژه‌ی ۳: فاصله‌سنج با سنسور اولتراسونیک\u003C\u002Fh2>\n\n\u003Cp>\u003Cstrong>اتصال سنسور HC-SR04:\u003C\u002Fstrong> پایه‌ی VCC به 5V، GND به GND، Trig به پین ۹ و Echo به پین ۱۰.\u003C\u002Fp>\n\n\u003Cpre>\u003Ccode class=\"language-cpp\">const int trigPin = 9;\nconst int echoPin = 10;\n\nvoid setup() {\n  Serial.begin(9600);\n  pinMode(trigPin, OUTPUT);\n  pinMode(echoPin, INPUT);\n}\n\nvoid loop() {\n  \u002F\u002F send a short ultrasonic pulse\n  digitalWrite(trigPin, LOW);\n  delayMicroseconds(2);\n  digitalWrite(trigPin, HIGH);\n  delayMicroseconds(10);\n  digitalWrite(trigPin, LOW);\n\n  \u002F\u002F measure the echo time and convert it to centimeters\n  long duration = pulseIn(echoPin, HIGH);\n  float distance = duration * 0.0343 \u002F 2;\n\n  Serial.print(\"Distance: \");\n  Serial.print(distance);\n  Serial.println(\" cm\");\n  delay(300);\n}\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>بعد از آپلود، از منوی Tools گزینه‌ی Serial Monitor را باز کنید و سرعت را روی 9600 بگذارید. دستتان را جلوی سنسور جلو و عقب ببرید و عددها را ببینید. Serial Monitor مهم‌ترین ابزار عیب‌یابی شماست: هر وقت نمی‌دانید برنامه چه می‌کند، مقدارها را با \u003Ccode>Serial.print\u003C\u002Fcode> چاپ کنید.\u003C\u002Fp>\n\n\u003Ch2>پروژه‌ی ۴: چرخاندن سروو موتور\u003C\u002Fh2>\n\n\u003Cp>\u003Cstrong>اتصال سروو SG90:\u003C\u002Fstrong> سیم قهوه‌ای به GND، قرمز به 5V و نارنجی (سیگنال) به پین ۹.\u003C\u002Fp>\n\n\u003Cpre>\u003Ccode class=\"language-cpp\">#include &lt;Servo.h&gt;\n\nServo myServo;\n\nvoid setup() {\n  myServo.attach(9);\n}\n\nvoid loop() {\n  for (int angle = 0; angle &lt;= 180; angle++) {\n    myServo.write(angle);\n    delay(15);\n  }\n  for (int angle = 180; angle &gt;= 0; angle--) {\n    myServo.write(angle);\n    delay(15);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>خط اول کتابخانه‌ی سروو را اضافه می‌کند. حلقه‌ی \u003Ccode>for\u003C\u002Fcode> زاویه را قدم‌به‌قدم از ۰ تا ۱۸۰ درجه می‌برد و برمی‌گرداند. سروو برای بازوی ربات، درِ خودکار و فرمان ماشین‌های کوچک استفاده می‌شود.\u003C\u002Fp>\n\n\u003Ch2>پروژه‌ی ۵: رادار ساده با سروو و سنسور فاصله\u003C\u002Fh2>\n\n\u003Cp>حالا دو پروژه‌ی قبل را با هم ترکیب می‌کنیم: سنسور فاصله را با چسب روی سروو ببندید تا با چرخیدن سروو، اطراف را «اسکن» کند. این بار Trig به پین ۱۰ و Echo به پین ۱۱ می‌رود و سروو روی پین ۹ می‌ماند.\u003C\u002Fp>\n\n\u003Cpre>\u003Ccode class=\"language-cpp\">#include &lt;Servo.h&gt;\n\nconst int trigPin = 10;\nconst int echoPin = 11;\nServo radarServo;\n\nfloat readDistance() {\n  digitalWrite(trigPin, LOW);\n  delayMicroseconds(2);\n  digitalWrite(trigPin, HIGH);\n  delayMicroseconds(10);\n  digitalWrite(trigPin, LOW);\n  \u002F\u002F returns 0 if no echo arrives within 30 ms (nothing in range)\n  long duration = pulseIn(echoPin, HIGH, 30000);\n  return duration * 0.0343 \u002F 2;\n}\n\nvoid scanTo(int from, int to, int step) {\n  for (int angle = from; angle != to; angle += step) {\n    radarServo.write(angle);\n    delay(40);\n    Serial.print(angle);\n    Serial.print(\",\");\n    Serial.println(readDistance());\n  }\n}\n\nvoid setup() {\n  Serial.begin(9600);\n  pinMode(trigPin, OUTPUT);\n  pinMode(echoPin, INPUT);\n  radarServo.attach(9);\n}\n\nvoid loop() {\n  scanTo(15, 165, 3);\n  scanTo(165, 15, -3);\n}\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>در Serial Monitor برای هر زاویه، فاصله‌ی نزدیک‌ترین جسم را می‌بینید. اگر از Serial Plotter (کنار Serial Monitor) استفاده کنید، همین عددها به نمودار تبدیل می‌شوند. قدم بعدی کسانی که این پروژه را دوست دارند، کشیدن صفحه‌ی رادار روی کامپیوتر با برنامه‌ای مثل Processing یا پایتون است.\u003C\u002Fp>\n\n\u003Ch2>اشتباه‌های رایج مبتدی‌ها\u003C\u002Fh2>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>LED بدون مقاومت:\u003C\u002Fstrong> LED و گاهی پین برد می‌سوزد. همیشه یک مقاومت ۲۲۰ اهمی سر راه LED بگذارید.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GND مشترک نیست:\u003C\u002Fstrong> وقتی قطعه‌ای را با منبع تغذیه‌ی جدا روشن می‌کنید، GND آن باید به GND آردوینو هم وصل باشد؛ وگرنه رفتار عجیب می‌بینید.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>موتور مستقیم روی پین:\u003C\u002Fstrong> موتورهای DC و چند سروو با هم جریان زیادی می‌کشند. موتور DC را با درایور (مثل L298N) وصل کنید، نه مستقیم به پین.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>اشتباه در انتخاب برد یا پورت:\u003C\u002Fstrong> اگر آپلود خطا داد، اول بررسی کنید برد و پورت درست انتخاب شده باشند.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>کپی کد بدون فهمیدن:\u003C\u002Fstrong> کد آماده‌ی پروژه‌ها زیاد است، ولی تا وقتی خط‌به‌خط نفهمید، با کوچک‌ترین تغییر در مدار گیر می‌کنید.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>بعد از این پنج پروژه چه یاد بگیرم؟\u003C\u002Fh2>\n\n\u003Col>\n\u003Cli>\u003Cstrong>نمایشگر LCD و کتابخانه‌ها:\u003C\u002Fstrong> نشان دادن عدد سنسور روی صفحه، بدون نیاز به کامپیوتر.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>کار با زمان بدون delay:\u003C\u002Fstrong> با \u003Ccode>millis()\u003C\u002Fcode> چند کار را هم‌زمان انجام دهید؛ مثلاً هم LED چشمک بزند و هم دکمه خوانده شود.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>وقفه و تایمر:\u003C\u002Fstrong> واکنش فوری به یک اتفاق، مثل شمردن دور چرخ. این‌ها مباحث سطح متوسط‌اند و بعد از تسلط بر پایه‌ها معنی پیدا می‌کنند.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ساخت ربات:\u003C\u002Fstrong> ترکیب موتور، درایور و سنسور؛ مثلاً ربات مسیریاب یا ربات فرار از مانع.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>اینترنت اشیا:\u003C\u002Fstrong> برد ESP32 با همان محیط آردوینو برنامه‌ریزی می‌شود و وای‌فای دارد؛ قدم بعدی برای خانه‌ی هوشمند.\u003C\u002Fli>\n\u003C\u002Fol>\n\n\u003Ch2>آردوینو برای کودکان و نوجوانان\u003C\u002Fh2>\n\n\u003Cp>کار با آردوینو و ++C معمولاً از حدود ۱۲ سالگی، وقتی نوجوان کمی تجربه‌ی برنامه‌نویسی دارد، راحت‌تر است. برای بچه‌های کوچک‌تر بهتر است از کیت‌های آموزشی بلوکی شروع کنند. اگر برای فرزندتان دنبال شروع هستید، مقاله‌ی \u003Ca href=\"\u002Flearning\u002Frobotik-koodakan-chist\">رباتیک کودکان چیست و آیا برای فرزند من مناسب است؟\u003C\u002Fa> و \u003Ca href=\"\u002Flearning\u002Frahnama-kharid-kit-robatik-koodakan\">راهنمای خرید کیت رباتیک کودکان\u003C\u002Fa> را ببینید.\u003C\u002Fp>\n\n\u003Ch2>خودآموز یا کلاس؟\u003C\u002Fh2>\n\n\u003Cp>آردوینو را می‌شود خودآموز یاد گرفت؛ منابع رایگان و پروژه‌های آماده زیاد است. مشکل معمولاً جای دیگری است: وقتی مدار کار نمی‌کند و نمی‌دانید ایراد از سیم است، از قطعه یا از کد. در این لحظه‌ها یک منتور می‌تواند ساعت‌ها وقت شما را نجات دهد.\u003C\u002Fp>\n\n\u003Cp>در \u003Ca href=\"\u002Fcourses\u002Frobotics-adults\">دوره‌ی رباتیک و آردوینو بزرگسالان داناورس\u003C\u002Fa> کلاس‌ها آنلاین و زنده است و هر جلسه با ساختن یک پروژه‌ی واقعی پیش می‌رود، از بستن مدار تا ساخت ربات و پروژه‌های اینترنت اشیا. کیت آموزشی جدا از شهریه‌ی دوره تهیه می‌شود و برای قیمت دقیق آن باید تماس بگیرید. اگر نمی‌دانید رباتیک برایتان مناسب است یا برنامه‌نویسی، \u003Ca href=\"\u002Ftalent\">تست استعدادیابی رایگان\u003C\u002Fa> را امتحان کنید.\u003C\u002Fp>\n\n\u003Ch2>سوالات رایج\u003C\u002Fh2>\n\n\u003Ch3>آردوینو را می‌شود بدون دانش الکترونیک یاد گرفت؟\u003C\u002Fh3>\n\u003Cp>بله. همان‌قدر الکترونیک که لازم دارید، مثل مقاومت، ولتاژ و GND، در خود پروژه‌های اولیه یاد گرفته می‌شود. لازم نیست قبلش درس الکترونیک بخوانید.\u003C\u002Fp>\n\n\u003Ch3>چقدر طول می‌کشد تا بتوانم یک ربات بسازم؟\u003C\u002Fh3>\n\u003Cp>اگر هفته‌ای چند ساعت تمرین کنید، بعد از تسلط بر پروژه‌های همین مقاله و کار با موتور و درایور، ساخت یک ربات ساده چند هفته بعد ممکن است. زمان دقیق به تمرین شما بستگی دارد.\u003C\u002Fp>\n\n\u003Ch3>آردوینو اونو بخرم یا نانو؟\u003C\u002Fh3>\n\u003Cp>برای یادگیری، اونو. وقتی پروژه‌ی مشخصی داشتید که جا کم داشت، نانو بخرید؛ کد هر دو یکی است.\u003C\u002Fp>\n\n\u003Ch3>برای شروع حتماً باید برد بخرم؟\u003C\u002Fh3>\n\u003Cp>نه. با شبیه‌سازهای رایگان Tinkercad Circuits یا Wokwi می‌توانید چند هفته‌ی اول را بدون خرید قطعه پیش بروید و بعد تصمیم بگیرید.\u003C\u002Fp>\n  ","آردوینو کوتاه‌ترین راه از «کد نوشتن» به «ساختن چیزی که در دنیای واقعی حرکت می‌کند» است. با چند خط کد، یک چراغ روشن و خاموش می‌شود، یک موتور می‌چرخد یا یک سنسور فاصله‌ی دستتان را ان...","آموزش برنامه‌نویسی","۱۱ مهر ۱۴۰۵","۱۱ دقیقه",2243,"\u002Fimages\u002Fblog\u002Famoozesh-arduino-az-sefr.jpg","تیم تولید محتوای داناورس","مدرس و کارشناس آکادمی","\u002Fimages\u002Flogo-light.png","حسین عزیزی",[10,20],"داناورس","robotics-adults","tutorial",[24,25,26],"آردوینو برد کوچکی با یک میکروکنترلر است و برای شروع تقریباً همیشه آردوینو اونو (Uno) بهترین انتخاب است؛ بدون برد هم می‌شود در شبیه‌سازهای رایگان Tinkercad و Wokwi تمرین کرد.","کد آردوینو به زبان C++ نوشته می‌شود ولی لازم نیست اول C++ را کامل یاد بگیرید؛ هر برنامه دو بخش اصلی setup و loop دارد.","بعد از چشمک زدن LED، پنج پروژه‌ی قدم‌به‌قدم: LED با دکمه، کنترل نور با پتانسیومتر، فاصله‌سنج اولتراسونیک، سروو موتور و رادار ساده؛ LED را همیشه با مقاومت ۲۲۰ اهمی ببندید.",[28,31,34,37],{"q":29,"a":30},"آردوینو را می‌شود بدون دانش الکترونیک یاد گرفت؟","بله. همان‌قدر الکترونیک که لازم دارید، مثل مقاومت، ولتاژ و GND، در خود پروژه‌های اولیه یاد گرفته می‌شود. لازم نیست قبلش درس الکترونیک بخوانید.",{"q":32,"a":33},"چقدر طول می‌کشد تا بتوانم یک ربات بسازم؟","اگر هفته‌ای چند ساعت تمرین کنید، بعد از تسلط بر پروژه‌های همین مقاله و کار با موتور و درایور، ساخت یک ربات ساده چند هفته بعد ممکن است. زمان دقیق به تمرین شما بستگی دارد.",{"q":35,"a":36},"آردوینو اونو بخرم یا نانو؟","برای یادگیری، اونو. وقتی پروژه‌ی مشخصی داشتید که جا کم داشت، نانو بخرید؛ کد هر دو یکی است.",{"q":38,"a":39},"برای شروع حتماً باید برد بخرم؟","نه. با شبیه‌سازهای رایگان Tinkercad Circuits یا Wokwi می‌توانید چند هفته‌ی اول را بدون خرید قطعه پیش بروید و بعد تصمیم بگیرید.","آموزش آردوینو از صفر: نصب، اولین برنامه و ۵ پروژه","آموزش آردوینو از صفر: انتخاب برد اونو یا نانو، نصب نرم‌افزار و درایور، اولین برنامه، کار با سنسور و سروو و ۵ پروژه‌ی مبتدی، حتی بدون برد با شبیه‌ساز.","2026-10-03T08:38:02.636467+00:00",null,[45,50,55],{"path":46,"title":47,"desc":48,"image":49},"\u002Flearning\u002Famoozesh-barnamenevisi-online","آموزش برنامه‌نویسی آنلاین: کلاس زنده، دوره‌ی ضبط‌شده یا منابع رایگان؟ راهنمای انتخاب","مقایسه‌ی سه راه یادگیری برنامه‌نویسی آنلاین: کلاس زنده، دوره ضبط‌شده و منابع رایگان؛ مزایا و معایب، وسایل لازم، ۷ سوال قبل از ثبت‌نام، برای بزرگسال و کودک.","\u002Fimages\u002Fblog\u002Famoozesh-barnamenevisi-online.jpg",{"path":51,"title":52,"desc":53,"image":54},"\u002Flearning\u002Ftamrin-python-pishrafte","تمرین پایتون پیشرفته: ۱۵ تمرین با جواب، از شی‌گرایی تا دکوراتور و ژنراتور","۱۵ تمرین پایتون پیشرفته با جواب و خروجی: کلاس، ارث‌بری، متدهای ویژه، property، دکوراتور، closure، ژنراتور، context manager، Counter و پروژه‌ی کتابخانه با JSON.","\u002Fimages\u002Fblog\u002Ftamrin-python-pishrafte.jpg",{"path":56,"title":57,"desc":58,"image":59},"\u002Flearning\u002Fpython-pishrafte","آموزش پایتون پیشرفته: بعد از پایتون مقدماتی دقیقاً چه چیزهایی یاد بگیرم؟","آموزش پایتون پیشرفته قدم‌به‌قدم: شی‌گرایی، مدیریت خطا، دکوراتور، ژنراتور، JSON، دیتابیس SQL، محیط مجازی و تست، با مثال کد و مسیرهای تخصصی بعد از آن.","\u002Fimages\u002Fblog\u002Fpython-pishrafte.jpg",[]]