آیرو — خودآموز رباتیک

فصل ۱ از ۱۱

پیشرفت ترم
۰٪

ترم ۳ · ربات متحرک

آناتومی ربات متحرک

فصل ۱پیش‌نمایش رایگان
۱۷ دقیقه مطالعه فصل ۱

در این فصل چه می‌سازی#

یک لحظه به مسیری که آمده‌ای نگاه کن: ترم ۱ به یک تکه برد الکترونیکی یاد دادی چشمک بزند و چراغ راهنمایی شد. ترم ۲ به آن حس دادی — نور و دما و فاصله را فهمید و ایستگاه هواشناسی شد. اما همهٔ این‌ها یک چیز مشترک داشتند: روی میز نشسته بودند. خوش آمدی به ترم ۳ — ترمی که دستگاه تو از میز پایین می‌آید. تا آخر این ترم، ربات دوچرخی داری که خودت مونتاژش کرده‌ای، روی زمین اتاقت راه می‌رود، به دیوار که نزدیک شد ترمز می‌کند، مانع را دور می‌زند و خط مشکی را دنبال می‌کند.

اما این فصل، حتی یک خط کد نمی‌نویسیم — تعجب نکن! مثل اولین فصل‌های ترم ۱ که قبل از برنامه‌نویسی، برق و Breadboard را شناختیم، اول باید بدن ربات را بشناسیم و قوانین ایمنی این ترم را ببندیم؛ چون یک بازیگر جدی وارد می‌شود: باتری. قول می‌دهم فصل پرهیجانی باشد — موتور هم می‌چرخانیم، فقط بدون کد! این هم نقشهٔ کالبدشکافی امروز:

نمای انفجاری ربات دوچرخ: صفحهٔ شاسی در وسط، دو موتور گیربکسی زرد TT، دو چرخ لاستیکی، چرخ هرزگرد کوچک، برد قرمز درایور L298N با خنک‌کنندهٔ آلومینیومی، جاباتری کلیددار و برد ESP32 در بالا به‌عنوان مغز — هر قطعه با شماره و برچسب

آخر این فصل می‌توانی:

  • اجزای اصلی ربات متحرک را نام ببری و بگویی هر کدام به کدام مرحلهٔ چرخهٔ Sense-Think-Act مربوط است.
  • با دلیل توضیح بدهی چرا موتور را نباید مستقیم به پایهٔ GPIO وصل کرد و درایور موتور چه مشکلی را حل می‌کند.
  • چهار قانون ایمنی باتری را از حفظ بگویی و اجرا کنی.
  • قانون GND مشترک را توضیح بدهی: وقتی مدار دو منبع تغذیه دارد، چرا صفرها باید به هم وصل شوند.
  • کیت ترم ۳ را با چک‌لیست تطبیق داده باشی.

قبل از شروع: چک‌لیست پیش‌نیاز#

قبل از ادامه، این سه تا را چک کن — هر کدام لنگ می‌زند، اول برگرد همان فصل:

  • از ترم ۱، فصل ۱: چرخهٔ Sense-Think-Act — امروز آن را روی یک ربات واقعیِ متحرک نقشه می‌کنیم.
  • از ترم ۱، فصل ۲: ولتاژ و جریان با تشبیه آب — بحث «حد جریان GPIO» مستقیماً روی همان سوار می‌شود.
  • از ترم ۲: دست‌ورزی مدارهای چندقطعه‌ای (مثل مقسم ولتاژ ترم ۲، فصل ۴). کد جدیدی لازم نیست بلد باشی — این فصل اصلاً کد ندارد.

لوازم این فصل:

قطعه / ابزار تعداد جایگزین
کیت شاسی 2WD (۲ موتور TT + ۲ چرخ + چرخ هرزگرد + پیچ‌ها) ۱ هر کیت ژنریک اکریلیک/پلاستیکی؛ فقط موتورها حتماً TT سه تا شش ولتی باشند
درایور موتور L298N ۱ این فصل فقط تماشایش می‌کنیم؛ خرید تا فصل ۲ کافی است
جاباتری ۴×AA کلیددار + ۴ باتری آلکالاین ۱ جاباتری ۲×۱۸۶۵۰ + سلول محافظ‌دار (فقط با نظارت والدین)
سنسور خط TCRT5000 ۳ از فصل ۷ لازم می‌شود؛ امروز فقط معرفی
نوار چسب برق مشکی ۱ حلقه چسب پارچه‌ای تیره هم جواب می‌دهد
ESP32 + کیت ترم‌های قبل ۱ امروز فقط برای نشان دادن «مغز» روی میز است
پیچ‌گوشتی چهارسو کوچک ۱

۱. کالبدشکافی: بدن ربات را بشناس#

بیا رباتِ آخر ترم را مثل یک پزشک کالبدشکافی کنیم — تصویر اول فصل را جلوی چشمت بگذار و از پایین به بالا برویم.

یک: شاسی — اسکلت ربات. به انگلیسی Chassis. یک صفحهٔ پلاستیکی یا اکریلیک با کلی سوراخ. همان کاری را می‌کند که اسکلت برای بدن تو: همه‌چیز به آن پیچ می‌شود تا یکپارچه بماند. سوراخ‌های زیادش برای این است که هر کیتی جای پیچ‌های خودش را داشته باشد.

دو: موتور گیربکسی TT — ماهیچهٔ ربات. آن جعبهٔ زرد دو قسمت دارد: خود موتور — استوانهٔ نقره‌ای پشتش — و گیربکس، جعبه‌دندهٔ پلاستیکی جلویش. چرا گیربکس؟ موتور الکتریکی به‌تنهایی خیلی تند می‌چرخد ولی زورش کم است؛ مثل وقتی که روی دوچرخه سبک‌ترین دنده هستی: پاهایت تند می‌زند ولی سربالایی نمی‌روی. گیربکس دنده‌عوض‌کنِ ماست: سرعت را کم می‌کند و در عوض زور را زیاد — همان دندهٔ سنگین دوچرخه برای سربالایی. نتیجه: چرخشی آرام‌تر ولی آن‌قدر پرقدرت که وزن کل ربات را بکشد. موتورت را بردار، شفتش را با انگشت بچرخان و از پنجرهٔ گیربکس به دنده‌ها نگاه کن.

سه: چرخ‌ها — دو تا، نه چهار تا. ربات ما فقط دو چرخ موتوردار دارد: یکی چپ، یکی راست. پس فرمانش کو؟ جواب قشنگ است: ربات دوچرخ فرمان لازم ندارد! اگر هر دو چرخ هم‌سرعت بچرخند، مستقیم می‌رود. اگر چرخ راست تندتر بچرخد، ربات به چپ می‌پیچد. اگر دو چرخ برعکس هم بچرخند، ربات سر جایش می‌چرخد — مثل تانک! فرمانِ ما نرم‌افزار است، نه سخت‌افزار. این ایده قلب کل ترم است.

چهار: چرخ هرزگرد. به انگلیسی Caster Wheel — همان چرخ کوچکی که زیر صندلی چرخ‌دار و چرخ‌دستی فروشگاه دیده‌ای. سومین نقطهٔ اتکای ربات است: میز دوپایه نمی‌ایستد، سه‌پایه می‌ایستد. هرزگرد یعنی موتور ندارد و آزادانه به هر سمتی می‌چرخد؛ فقط دنبال بقیه می‌آید و نمی‌گذارد ربات به جلو یا عقب کله کند.

پنج: درایور موتور. بین ESP32 و موتورها یک برد قرمز می‌نشیند به اسم L298N. دو بخش بعد می‌فهمی چرا وجودش حیاتی است.

شش: باتری. ربات متحرک نمی‌تواند به USB وصل بماند؛ باید انرژی‌اش را با خودش ببرد.

و نقشهٔ چرخه؟ سنسورها (از فصل ۵ به بعد) حس می‌کنند، ESP32 فکر می‌کند، موتورها عمل می‌کنند، باتری به همه انرژی می‌رساند — همان چهار عضو تیمِ ترم ۱، این بار روی چرخ.

چالش: فرمانِ بدون فرمان

اول خودت فکر کن یا امتحان کن — بعد اینجا را باز کن.

۲. آزمایش بزرگ: موتور، باتری و راز جهت#

مهم‌ترین دموی امروز را خودت انجام بده — فقط موتور و جاباتری؛ خبری از ESP32 نیست:

  1. کلید جاباتری را خاموش کن و باتری‌ها را با علامت + و − داخلش جا بزن.
  2. دو سیم موتور TT را به دو سر خروجی جاباتری برسان و محکم نگه دار.
  3. کلید را روشن کن و به شفت موتور نگاه کن.

چک کن: می‌چرخد! موتور DC ساده‌ترین قطعهٔ دنیاست: برق بده، بچرخ.

حالا آزمایش دوم:

  1. کلید را خاموش کن.
  2. دو سیم را جابه‌جا کن: سیمی که به + بود حالا به − و برعکس.
  3. کلید را روشن کن.

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

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

۳. چرا موتور مستقیم به مغز وصل نمی‌شود؟#

موتور با دو سیم کار می‌کند و ESP32 هم کلی پایه دارد. پس چرا دو سیم موتور را نزنیم به GPIO و GND و با value(1) روشنش نکنیم — همان‌طور که با LED می‌کردیم؟

جواب یک کلمه است: جریان. ترم ۱ برق را با آب فهمیدیم: ولتاژ فشار بود و جریان، مقدار عبوری. حالا دقت کن: پایهٔ GPIO یک نیِ نوشابه است — باریک و ظریف. برای LED که جرعه‌جرعه جریان می‌خواهد، عالی است: پایه به‌طور امن فقط حدود ده-دوازده میلی‌آمپر می‌دهد و سقف مطلقش حدود چهل میلی‌آمپر است.

اما موتور؟ موتور یک شلنگ آتش‌نشانی است. همین موتور کوچک TT وقتی آزاد می‌چرخد حدود دویست میلی‌آمپر می‌کشد — بیش از ده برابر توان امن پایه. و لحظهٔ استارت یا وقتی چرخ گیر کند، جهشی تا حدود یک آمپر — هزار میلی‌آمپر! شلنگ آتش‌نشانی را به نی نوشابه وصل کنی چه می‌شود؟ نی له می‌شود. در دنیای واقعی یعنی: پایهٔ GPIO داغ می‌شود و برای همیشه می‌سوزد؛ در بدترین حالت، کل ESP32 خداحافظ.

راه‌حل مهندس‌ها چیست؟ به رانندهٔ بیل مکانیکی فکر کن: با دو انگشت اهرم را می‌کشد، ولی بازوی بیل چند تُن خاک بلند می‌کند. بین انگشتِ کم‌زور و بازوی پرزور، یک واسطه نشسته که «فرمانِ کوچک» را به «قدرتِ بزرگ» ترجمه می‌کند. در ربات ما این واسطه درایور موتور است: همان برد قرمز L298N. از یک طرف سیم‌های نازکِ فرمان از ESP32 می‌آیند — جریانشان ناچیز است، در حد همان نی — و از طرف دیگر سیم‌های کلفتِ انرژی از باتری. مغز فکر می‌کند، باتری زور می‌زند، درایور ترجمه می‌کند. هر رباتی در دنیا — از جاروبرقی رباتیک تا بازوی کارخانه — همین سه‌گانه را دارد.

یک سؤال باریک‌بینانه: پس چرا Servo ترم ۲ را مستقیم وصل کردیم؟ نکتهٔ خوب! چون Servo درایورش را داخل خودش دارد — آن جعبهٔ آبی کوچک، یک موتور به‌علاوهٔ یک برد کنترل داخلی است و سیم نارنجی‌اش فقط سیگنال فرمان بود، نه سیم قدرت. موتور TT لخت است؛ درایورش را ما باید بیرون بگذاریم.

چالش: «فوقش کند می‌چرخد!»

اول خودت فکر کن یا امتحان کن — بعد اینجا را باز کن.

۴. باتری: انرژی همراه، با احترام#

چرا USB کافی نیست؟ دو دلیل: یک، ربات متحرک نمی‌تواند سیم‌کش باشد! دو — و مهم‌تر — پورت USB خودش سهمیهٔ جریان محدودی دارد و موتورها پرخورند؛ اگر موتور از USB تغذیه شود، هم سهمیه ته می‌کشد و هم نویز موتور می‌تواند پورت کامپیوتر را آزار بدهد. پس قانون این ترم: انرژی موتورها از باتری، همیشه.

دو گزینه داری. گزینهٔ یک: جاباتری ۴ تایی قلمی (AA). هر باتری آلکالاین یک و نیم ولت است؛ چهارتا پشت سر هم — سری، یعنی ولتاژها جمع می‌شوند، از ترم ۱ یادت هست — می‌شود شش ولت. ساده، ارزان، همه‌جا پیدا می‌شود؛ توصیهٔ اول برای شروع. گزینهٔ دو: دو باتری ۱۸۶۵۰ — استوانه‌های پرزور و قابل‌شارژی که داخل پاوربانک‌ها هم هستند، ولی قوانین سخت‌گیرانه‌تری دارند. با هر دو، دوره جلو می‌رود.

و حالا مهم‌ترین بخش فصل. صاف بنشین — این قوانین را با همان جدیتی می‌گوییم که مربی رانندگی ترمز را یاد می‌دهد:

پوستر چهار قانون ایمنی باتری در چهار کارت: جاباتری کنار سکه و کلید با دایرهٔ قرمز ممنوع، باتری‌های قلمی با علامت + و − و تیک سبز، دستی که قبل از دست زدن به سیم‌ها کلید جاباتری را خاموش می‌کند، و سلول ۱۸۶۵۰ با نشان سپر محافظ و بزرگ‌تری که بر شارژ نظارت می‌کند

قانون یک — اتصال کوتاه مطلقاً ممنوع: دو سر باتری هرگز، تحت هیچ شرایطی، بدون مصرف‌کننده مستقیم به هم نرسند. نه با سیم، نه با پیچ‌گوشتی، نه با سکه‌ای که در جیب کنار باتری است. باتری مثل سد پر از آب است؛ اتصال کوتاه یعنی دیوارهٔ سد را برداری: تمام انرژی یک‌جا آزاد می‌شود، سیم داغ می‌شود، عایق ذوب می‌شود، باتری ممکن است نشت کند یا — مخصوصاً لیتیومی — آتش بگیرد. برای همین جاباتری کلیددار خریدیم و سر سیم‌های آزاد هرگز لخت رها نمی‌شوند.

قانون دو — قطبیت: به انگلیسی Polarity. داخل جاباتری علامت + و − برجسته است؛ باتری فقط در همان جهت. برق برعکس می‌تواند قطعه بسوزاند.

قانون سه — کلید خاموش هنگام سیم‌کشی: همان قانون «برد را از برق جدا کن» ترم ۱، نسخهٔ باتری‌دار. هر پیچی که سفت می‌کنی، هر سیمی که جابه‌جا می‌کنی — اول کلید جاباتری خاموش.

قانون چهار — فقط برای ۱۸۶۵۰: فقط سلول محافظ‌دار بخر (روی بدنه می‌نویسد Protected — یک مدار نگهبان کوچک داخلش دارد)، فقط با شارژر استاندارد لیتیوم شارژ کن، شارژ همیشه با حضور بزرگ‌تر و هرگز شب هنگام خواب. باتری بادکرده یا داغ = بازنشستگی فوری.

⚠️ مواظب باش: اتصال کوتاه را حتی «برای امتحان» هم هرگز اجرا نکن — این تنها آزمایشی در کل این کتاب است که عمداً نشانت نمی‌دهیم. اگر وسط کار سیمی یا باتری‌ای داغ شد، فوراً کلید را خاموش کن، باتری را جدا کن و تا پیدا کردن محل اتصال کوتاه ادامه نده.

حالا یک خرابکاری عمدی آموزنده که در واقعیت زیاد پیش می‌آید:

  1. کلید جاباتری را خاموش کن و عمداً یکی از چهار باتری را برعکس بگذار.
  2. موتور را مثل بخش ۲ وصل کن و کلید را روشن کن.

چک کن: هیچی! موتوری که چند دقیقه پیش شاد می‌چرخید، الان یا اصلاً نمی‌چرخد یا خیلی بی‌جان تکان می‌خورد. چرا؟ باتریِ برعکس مثل کسی است که در طناب‌کشی به سمت مخالف تیمش می‌کشد: به‌جای اضافه کردن یک و نیم ولت، یک و نیم ولت کم می‌کند. شش ولت شد حدود سه ولت — به‌زحمت بخار موتور. نشانه‌اش را حفظ کن: «همه‌چیز وصل است ولی بی‌جان است» ← اول جهت تک‌تک باتری‌ها را چک کن. باتری را برگردان و ببین موتور دوباره سرحال می‌شود.

چالش: بازنشستگی باتری

اول خودت فکر کن یا امتحان کن — بعد اینجا را باز کن.

۵. قانون GND مشترک: زبان مشترک دو مدار#

آخرین مفهوم امروز کمی فکرْبازکن است، ولی اگر الان خوب بنشیند، در کل ترم از سردرگمی نجاتت می‌دهد.

از فصل بعد، ربات ما دو منبع تغذیه دارد: USB (بعداً پاوربانک) برای ESP32، و باتری برای موتورها از راه درایور. حالا سؤال: سیم فرمانی که از GPIO به درایور می‌رود، «یک» یعنی چه؟ یعنی سه و سه دهم ولت. ولی سه و سه دهم ولت نسبت به چی؟

تشبیه: از دو نفر می‌خواهی ارتفاع یک قفسه را بگویند. یکی از کف اتاق متر می‌کند و می‌گوید دو متر؛ دیگری از سطح میز متر می‌کند و می‌گوید یک متر و بیست. هر دو راست می‌گویند! مشکل کجاست؟ نقطهٔ صفرشان یکی نیست. تا وقتی توافق نکنند «صفر» کجاست، عددهایشان با هم قابل مقایسه نیست.

در الکترونیک، آن نقطهٔ صفر همان GND است. ولتاژ همیشه یک اختلاف است، نه یک عدد مطلق — از ترم ۱ می‌دانی. اگر مدارِ ESP32 صفرِ خودش را داشته باشد و مدارِ باتری صفرِ خودش را، سیگنالِ «سه و سه دهم ولتِ» مغز برای درایور بی‌معنی است؛ درایور شانه بالا می‌اندازد: «نسبت به صفرِ من، این عدد هر چیزی می‌تواند باشد.» نتیجه در دنیای واقعی: موتورهایی که کار نمی‌کنند یا دیوانه‌بازی درمی‌آورند — بدون هیچ پیغام خطایی.

راه‌حل یک سیم ساده است: GND مدار ESP32 را به GND درایور و باتری وصل کن. حالا هر دو مدار یک نقطهٔ صفر مشترک دارند و همهٔ سیگنال‌ها یک‌زبان می‌شوند. قانون طلایی این ترم — حفظش کن، چون بارها برمی‌گردد: «هر جا دو منبع تغذیه هست، GNDها به هم وصل می‌شوند.» فصل بعد اولین جایی است که این قانون را با دست خودت اجرا می‌کنی — و از حالا بدان که «GND مشترک یادم رفت» معروف‌ترین اشکال کل این ترم است.

چالش: پل بین دو مدار

اول خودت فکر کن یا امتحان کن — بعد اینجا را باز کن.

۶. جعبه‌گشایی کیت ترم ۳#

و حالا لحظهٔ شیرین جعبه‌گشایی! کیت ترم ۳ را باز کن و با این فهرست تطبیق بده:

  • شاسی 2WD با ورق محافظ کاغذی که کندنش نیم ساعت لذت مجانی است — ولی هنوز نکن! فصل ۳ با هم می‌کنیم.
  • دو موتور TT زرد + دو چرخ + چرخ هرزگرد + کیسهٔ پیچ و مهره. پیچ‌ها را گم نکن؛ در همان کیسه بمانند.
  • درایور L298N — برد قرمز با خنک‌کنندهٔ آلومینیومی. فصل بعد ستارهٔ برنامه است.
  • جاباتری کلیددار + باتری‌ها.
  • سه سنسور خط TCRT5000 — چشم‌های زمین‌بینِ ربات؛ از فصل ۷.
  • نوار چسب برق مشکی — باور کن همین ساده‌ترین قطعه، کف اتاقت را به پیست مسابقه تبدیل می‌کند.

یادآوری: ESP32، سیم‌های جامپر و Breadboard کوچک ترم‌های قبل هم لازم‌اند — به‌علاوهٔ HC-SR04 از فصل ۵. یک نکتهٔ پایه‌ها: در این ترم LED و دکمه‌های ترم ۱ روی مدار نیستند؛ پایه‌هایشان آزاد شده تا به درایور موتور برسد — جدول دقیقش را فصل بعد می‌بینی.

چک کن: همهٔ قطعه‌های فهرست را داری و سالم‌اند. حالا همه‌چیز را دوباره در جعبه بگذار: مکانیک یک طرف، الکترونیک طرف دیگر، باتری‌ها جدا و دور از فلزات.

🔧 اگر کار نکرد: قطعه‌ای کم یا شکسته است؟ کیت‌های ژنریک گاهی ناقص می‌رسند — زود با فروشنده تماس بگیر؛ تا فصل ۳ برای مونتاژ وقت داری. «ربات من با تصویر فرق دارد!» اشکالی ندارد: کیت‌های 2WD ده‌ها شکل دارند ولی اصولشان (دو موتور + هرزگرد + شاسی) یکی است؛ جای پیچ‌ها را با دفترچهٔ کیت خودت تطبیق بده.

یک خبر صادقانه هم برای کل ترم، از همین حالا: موتور DC و درایور L298N در شبیه‌سازها معمولاً وجود ندارند؛ پس در فصل‌های موتوری، مسیر شبیه‌ساز فقط «منطق» کد را نشان می‌دهد، نه چرخش واقعی را — به‌جای خروجی‌های موتور، LED می‌گذاریم و از الگوی روشن/خاموششان می‌فهمیم برنامه چه فرمانی می‌دهد. جزئیاتش را فصل بعد می‌بینی.

واژه‌های تازه این فصل#

کلمه تلفظ به حروف فارسی یعنی چه
Chassis چَسی (فارسی: شاسی) بدنه/اسکلت ربات که همه‌چیز به آن پیچ می‌شود
Gearbox گیرباکس جعبه‌دنده؛ سرعت موتور را کم و زورش را زیاد می‌کند
Motor Driver موتور درایوِر برد واسطه که فرمان کم‌جان مغز را با انرژی باتری اجرا می‌کند
Caster Wheel کَستِر ویل چرخ هرزگرد؛ نقطهٔ اتکای سوم که آزادانه می‌چرخد
Polarity پولَریتی قطبیت؛ جهت + و − در باتری و مدار
Short Circuit شورت سِرکیت اتصال کوتاه؛ رسیدن مستقیم دو سر منبع به هم — خطرناک‌ترین خطای این ترم
Battery Holder بَتری هولدِر جاباتری؛ ترجیحاً کلیددار
Ground (GND) گراند نقطهٔ صفر مدار؛ با دو منبع تغذیه باید مشترک شود

تمرین‌ها

اول خودت فکر کن یا امتحان کن — بعد اینجا را باز کن.

در فصل بعد#

بالاخره سیم‌ها وصل می‌شوند: درایور L298N را زیر ذره‌بین می‌بریم، راز چرخاندن موتور به هر دو جهت را با مداری جادویی به اسم H-Bridge می‌فهمیم، و برای اولین بار کدِ تو یک موتور واقعی را می‌چرخاند، نگه می‌دارد، برعکس می‌چرخاند و سرعتش را کم و زیاد می‌کند.

به آخر این فصل رسیدی!

اگر ساختی و جواب داد، این دکمه مال توست.