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

0

برای تصمیم گیری، یک ربات از کامپیوتر یا میکروکنترلر استفاده می کند. بیک میکروکنترلر اساساً یک قطعه الکترونیکی است که می تواند سه کار را انجام دهد. می تواند ورودی های دنیای فیزیکی را تفسیر کند، این اطلاعات را پردازش کند و دستگاه های خروجی را در دنیای فیزیکی کنترل کند. در یک مفهوم اساسی، یک میکروکنترلر می تواند حسگرها را بخواند، تصمیم بگیرد و چراغ ها، بلندگوها و موتورها را کنترل کند.

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

مرحله 1: آردوینو

آردوینو یک نوع میکروکنترلر بسیار رایج است. چیزی که آردوینو را از سایر میکروکنترلرهای آموزشگاه فنی متمایز می کند این است که استفاده از آن آسان است، به خوبی مستند شده است و دارای جامعه آنلاین گسترده ای از افرادی است که از آن استفاده می کنند. این بدان معنی است که مهم نیست که چه چیزی ممکن است اشتباه باشد، احتمالاً می توانید یک راه حل مستند را به صورت آنلاین یا شخصی که مایل به کمک به شما باشد پیدا کنید. این در هنگام شروع بسیار سودمند است.

انواع مختلفی از آردوینو وجود دارد، اما برای این کلاس از آردوینو Uno استفاده خواهیم کرد. این در حال حاضر رایج ترین نسخه میکروکنترلرهای آردوینو است. تا زمانی که این درس تمام شود، درک مختصری از نحوه استفاده از برد خواهید داشت، اما به هیچ وجه متخصص نخواهید بود.

در حالی که آردوینو ویژگی های زیادی دارد، اما باید به چند مورد توجه کنید. یک پورت USB وجود دارد که برای برنامه نویسی استفاده می شود. یک سوکت برق وجود دارد که برای تغذیه آردوینو در زمانی که به کامپیوتر شما متصل نیست استفاده می شود. همچنین دو ردیف سوکت ماده در امتداد لبه تخته وجود دارد. هر یک از این سوراخ های کوچک به چیز دیگری روی برد متصل می شود و عملکرد متفاوتی را انجام می دهد. همه آنها باید به خوبی برچسب گذاری شوند تا نشان دهند که چه هستند.

مرحله 2: به برق وصل کنید.

برای روشن کردن برد کافی است آن را با یک کابل USB-A به USB-B به رایانه خود وصل کنید. این در اصل یک کابل USB استاندارد است که چیزی شبیه به یک چاپگر کامپیوتری از آن استفاده می کند.

مرحله 3: برنامه نویسی آردوینو

برای برنامه ریزی آردوینو از Arduino IDE (محیط توسعه یکپارچه) میتوان استفاده کرد. جدیدترین نسخه نرم افزار را می توان به صورت رایگان از سایت آردوینو دانلود و یا به صورت مستقیم در اینترنت استفاده کرد.

مرحله 4: نکته ای در مورد برنامه نویسی

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

مرحله 5: پروتوکل

هر زبان برنامه نویسی یک نحو برای نحوه قالب بندی کد دارد. این اساساً معادل دانستن دستور زبان صحیح است. به عنوان مثال، بیشتر عبارات در برنامه نویسی با نقطه ویرگول خاتمه می یابند – مانند این. این کمی شبیه نوشتن نقطه در انتهای جمله است. اگر مقاله ای را بدون دوره بنویسید، خواننده را گیج می کنید. به همین ترتیب، اگر یک برنامه آردوینو را بدون سینتکس بنویسید، کامپایلر را گیج خواهید کرد. کامپایلر کد را تفسیر می کند و در قیاس ما کمی شبیه خواننده یک مقاله است.

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

مرحله 6: عبارات کد

هنگام خواندن و نوشتن کد، مانند هر زبان دیگری با برخی از بلوک های ساختمانی اساسی روبرو خواهید شد. به عنوان مثال، انگلیسی دارای اسم، صفت و افعال است. سپس این مؤلفه ها به صورت جملاتی در می آیند. برنامه نویسی به نوبه خود دارای ثابت، متغیر و عملگر است. سپس اینها به توابع ساختار می‌یابند.

در اینجا چند تعاریف اساسی از اجزای برنامه نویسی رایج آورده شده است:

  1. ثابت ها اصطلاحاتی هستند که یک بار تعریف می شوند و تغییر نمی کنند.
  2. متغیرها اصطلاحاتی هستند که مکان‌هایی برای مقادیر دیگر هستند و می‌توانند تغییر کنند.
  3. عملگرها اصطلاحاتی هستند که عملی را انجام می دهند که معمولاً نوعی مقایسه ریاضی یا منطقی بین مقادیر است.
  4. توابع مجموعه ای ساختار یافته از ثابت ها، عملگرها و متغیرها هستند. هر بار که یک تابع فراخوانی می شود، همان روال عمل خاص را می خواند و اجرا می کند.

مرحله 7: ساختار برنامه

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

کامپایلر معمولاً از یک خط به خط دیگر از چپ به راست می خواند. خب، در بیشتر قسمت ها. چند تفاوت کلیدی با روش یک فرد عادی وجود دارد که درک آنها بسیار مهم است.

یک راه خوب برای فکر کردن در مورد یک برنامه کامپیوتری کمی شبیه انتخاب داستان ماجراجویی خود است. کامپایلر داستان را مانند هر کار دیگری می خواند، اما وقتی کامپایلر یک تابع را می خواند، به جای خواندن خط بعدی، به محل زندگی آن تابع می پرد و به جای آن خط به خط آن را می خواند. هنگامی که خواندن تابع تمام شد، به خط بعدی کد از جایی که متوقف شد برمی گردد. همچنین، توابع می توانند توابع دیگری را در درون خود داشته باشند. بنابراین، یک تابع، قبل از بازگشت به روال اصلی، می‌تواند به عملکرد دیگری، به عملکرد دیگری منجر شود.

هنگامی که کامپایلر به حلقه اصلی می‌رسد، هر آنچه در این حلقه وجود دارد بارها و بارها و بارها و بارها تکرار می‌شود تا زمانی که قدرت آردوینو تمام شود. حلقه اصلی () مکان تکراری بی پایانی است که گوشت کد باید در آن زندگی کند. هر کاری که می خواهید انجام دهید باید در حلقه اصلی () وجود داشته باشد. یادگیری زبان برنامه نویسی آردوینو کمی شبیه یادگیری دوره revit mep است. دستیابی به آن زمان می برد، و حتی در این صورت هم زمان زیادی طول می کشد تا واقعاً مسلط باشید.

مرحله 8: یک برنامه را اجرا کنید

اجرای یک برنامه در آردوینو بسیار ساده است.

برای شروع، باید نوع بردی که استفاده می کنید را مشخص کنید. این آسان است، گزینه “Arduino/Genuino Uno” را انتخاب کنید. همچنین باید پورتی را که آردوینو در آن یافت می شود مشخص کنید. این کمی پیچیده تر است، اما نه خیلی سخت. فقط گزینه ای را انتخاب کنید که شبیه “/dev/cu.usbmodem [اعداد تصادفی]” است.

مثال Blink را از منوی Example 01.Basics باز کنید. سپس، دکمه آپلود را پیدا کنید (مثل فلش سمت راست است) و آن را فشار دهید. اگر همه چیز به درستی پیکربندی شده باشد، باید LED روی برد آردوینو به طور پیوسته چشمک بزند.

سعی کنید مقدار عدد را در توابع تاخیر تغییر دهید و کد را دوباره آپلود کنید. توجه داشته باشید که سرعت چشمک زدن را تغییر می دهد.

مرحله 9: اجرا به روی Breadboard

هنگامی که نیاز به نمونه سازی مداری دارید که به آردوینو متصل می شود، باید از برد استفاده کنید. همانند تابلوهای برق صنعتی، Breadboard برای ایجاد اتصالات سریع غیر دائمی بین قطعات الکترونیکی طراحی شده است. آنها در سوراخ های سوکت کوچکی که به صورت ردیفی به هم متصل شده اند پوشیده شده اند. خود تابلو به چهار بخش تقسیم می شود. دو بخش داخلی پر از ردیف های افقی کوتاه و دو بخش بیرونی با ردیف های عمودی بلندتر وجود دارد.

بخش‌های داخلی معمولاً برای اتصال قطعات استفاده می‌شوند و بخش‌های بیرونی معمولاً به عنوان خطوط اتوبوس برق استفاده می‌شوند. به عبارت دیگر، می‌توانید باتری را به یکی از خطوط بیرونی متصل کرده و با اتصال سیم به این بخش، قطعات داخلی را تغذیه کنید.

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

مرحله 10: یادداشت سریع در مورد LED

اگر مردم ال‌ای‌دی‌ها را لامپ‌های کوچک می‌دانند، در واقع کاملاً متفاوت هستند. ال ای دی ها نوعی قطعه الکترونیکی به نام دیود هستند. در واقع LED مخفف دیود ساطع کننده نور است.

در مورد وضعیت منحصر به فرد آنها به عنوان یک دیود چیزهای زیادی برای گفتن وجود دارد، اما برای اهداف ما تنها چیزی که باید بدانید این است که دیودها فقط اجازه می دهند الکتریسیته در یک جهت جریان یابد. آنها همان چیزی هستند که شما آن را “قطبی” می نامید. یک پایه وجود دارد که همیشه باید به برق وصل شود و یکی باید به زمین وصل شود. اگر آنها را به عقب وصل کنید، برق جریان نخواهد داشت.

پایه ای که به برق متصل است آند نامیده می شود. پایه ای که به زمین متصل است کاتد نامیده می شود. سه راه برای تشخیص آند LED از کاتد آن وجود دارد.

1) پایه متصل به آند معمولا طولانی تر از پایه متصل به کاتد است.

2) بدنه LED معمولاً دارای یک نقطه صاف در سمت کاتد است.

3) اگر به داخل LED نگاه کنید، قطعه فلزی کوچک متصل به سرب آند بسیار کوچکتر از کاتد است.

مقاومت ها اساساً به مدار مقاومت اضافه می کنند. دلایل زیادی برای انجام این کار وجود دارد، اما من تمام روز برای توضیح دادن ندارم.

اساساً ما به یک مقاومت در مداری که می خواهیم بسازیم نیاز داریم زیرا LED هیچ مقاومتی ارائه نمی دهد. اگر برق را از طریق یک LED بدون هیچ مقاومتی وصل کنیم، در واقع همان ایجاد یک اتصال کوتاه با اتصال منبع تغذیه به زمین است. ما یک مقاومت را به صورت سری به LED اضافه می کنیم تا مقداری از برق مصرف شود و از اتصال کوتاه جلوگیری شود. اگر می خواهید بیشتر بدانید، می توانید در مورد مقاومت ها و مقاومت ها در آموزش الکترونیک پایه بیشتر بدانید.

تنها چیزی که در این مرحله باید در مورد مقاومت ها بدانیم این است که اگرچه تقریباً یکسان به نظر می رسند، اما همه آنها مقادیر متفاوتی دارند. با خواندن کدهای مقاومتی که روی آن ها مشخص شده است، می توانید میزان مقاومتی را که هر کدام از آنها ارائه می دهد، مشخص کنید. کدهای مقاومت از چپ به راست به سمت نوار طلایی (یا نقره ای) خوانده می شوند.

برای شروع، ساده ترین راه برای تفسیر کدها استفاده از یک ماشین حساب مقاومت گرافیکی آنلاین است. هنگامی که از این به اندازه کافی استفاده کردید، یاد خواهید گرفت که چگونه آنها را به تنهایی و بدون ماشین حساب تفسیر کنید.

مرحله 12: برد یک مدار

یک LED را در تخته برد قرار دهید. یک مقاومت 150 اهم را به صورت سری با کاتد LED وصل کنید.

با استفاده از یک سیم هسته جامد سیاه، انتهای مخالف مقاومت (سمت غیر متصل به LED) را به زمین آردوینو متصل کنید.

با استفاده از یک سیم هسته جامد قرمز، آند LED را به پایه دیجیتال 7 آردوینو وصل کنید.

مرحله 13: یک LED خارجی چشمک بزنید

می توانید با باز کردن کد مثال Blink و تغییر این کد و جایگزینی تمام عدد 13 به عدد 7 هر زمان که ظاهر شد، یک LED خارجی چشمک بزنید. با انجام این کار، شما به سادگی پین دیجیتالی را که در حال روشن و خاموش شدن پالس می شود از 13 به 7 تغییر می دهید تا با مداری که روی تخته نان خود ساخته اید مطابقت داشته باشد.

مرحله 14: یک LED را فید کنید

به غیر از چشمک زدن LED، می‌توانیم یکی از آنها را فید کنیم. برای این کار باید از پین PWM استفاده کنیم. پین‌های PWM، پایه‌های دیجیتالی ویژه‌ای در آردوینو هستند که امکان خروجی آنالوگ مانند را فراهم می‌کنند که ولتاژ خروجی بین ۰ تا ۵ ولت را شبیه‌سازی می‌کند. همه آنها با یک ~ در جلوی شماره پین برچسب گذاری شده اند.

PWM مخفف مدولاسیون عرض پالس است. به زبان ساده، PWM آنقدر سریع یک پین را روشن و خاموش می کند که به نظر می رسد نور LED را کم نور می کند.

یک LED کم نور با روشنایی 1/4 به این معنی است که سیگنال ارسال شده به آن بسیار بیشتر از روشن شدن خاموش می شود. به عنوان مثال، 75٪ از مواقع خاموش و 25٪ از مواقع روشن است. یک LED روشن تر با روشنایی 3/4 سیگنال PWM را دریافت می کند که برعکس است. بنابراین در 75% مواقع روشن و 25% خاموش خواهد بود. مسئله این است که خیلی سریع اتفاق می‌افتد، شما نمی‌بینید که روشن و خاموش می‌شود، اما فقط نور LED را کمی کم‌رنگ می‌بینید.

مرحله 15:

پس از تسلط بر چشمک زدن و محو شدن LED ها، می توانید این دانش را به کنترل موتور منتقل کنید. با این حال، به دو دلیل نمی‌توانید یک موتور را مستقیماً به پین آردوینو وصل کنید. اولاً، پین آردوینو فقط می‌تواند جریان کمی را تأمین کند و موتور یک گراز جریان است (مخصوصاً وقتی شروع به کار می‌کند و متوقف می‌شود). همچنین، هنگامی که یک موتور متوقف می شود، جریانی با قطبیت مخالف قطبی که در آن کار می کند تولید می کند. شناخته شده است که این جریان به پین‌های آردوینو آسیب می‌زند و از کار کردن آن‌ها جلوگیری می‌کند. بنابراین، ساخت یک مدار بافر مفید است.

تنها چیزی که برای کنترل موتور با استفاده از آردوینو نیاز دارید، یک مقاومت 2K، یک ترانزیستور NPN (در این مورد TIP120) و یک دیود 1N4001 است. مقاومت 2K برای محافظت از پین آردوینو کار می کند، ترانزیستور به عنوان دریچه ای عمل می کند که اجازه می دهد جریان کم و بیش از موتور عبور کند. این همان چیزی است که موتور را روشن و خاموش می کند و سرعت آن را کنترل می کند.

دیود به عنوان بافر استفاده می شود. وقتی برق از موتور عبور می کند، دیود هیچ کاری انجام نمی دهد. با این حال، هنگامی که موتور متوقف می شود، جریان معکوس از دیود عبور می کند و از طریق موتور باز می گردد. این از مدار در برابر افزایش ناگهانی ولتاژ محافظت می کند.

اگر می خواهید موتور را با استفاده از مدار تصویر روشن و خاموش کنید، باید دو اتصال دیگر ایجاد کنید. ابتدا زمین بسته باتری خارجی را به پایه زمین آردوینو وصل کنید. این “زمین مشترک” نامیده می شود و برای کار مدار ضروری است. سپس پایه 13 را از آردوینو به مقاومت 2K متصل به پایه ترانزیستور وصل کنید. پس از انجام این کار، مثال Blink را بارگذاری کرده و آن را در آردوینو آپلود کنید. به جای چشمک زدن LED، موتور را روشن و خاموش می کند.

اگر می خواهید سرعت موتور را کنترل کنید، سیم کشی را به پین 13 تغییر دهید و نمونه محو را برای افزایش و کاهش سرعت موتور بارگذاری کنید. ممکن است اکنون متوجه شما شده باشد، هیچ یک از این راه حل ها موتور را معکوس نمی کند. برای اینکه موتور به عقب بچرخد، به یک پل H نیاز دارید.

مرحله 16:

پل H مداری است که اجازه می دهد جهت موتور معکوس شود. پل های H پیشرفته تر – مانند نوع موجود در موتورهای سروو – همچنین به شما امکان می دهد سرعت موتور را کنترل کنید.

اساساً یک پل H از چهار سوئیچ یا ترانزیستور تشکیل شده است. در مثال بالا، یک سوئیچ بین هر قطب موتور و زمین وجود دارد. همچنین مجموعه دیگری از سوئیچ ها بین هر قطب موتور و قدرت وجود دارد. هنگامی که این سوئیچ ها در یک نمودار کشیده می شوند، به نوعی شبیه یک “H” به نظر می رسند. به این ترتیب مدار نام H-bridge را می گیرد.

هنگامی که مجموعه کلیدهای دارای برچسب “A” بسته می شود، نیرو از طریق موتور به گونه ای جریان می یابد که در جهت عقربه های ساعت می چرخد. هنگامی که مجموعه “B” دیگر بسته است، نیرو در جهت مخالف جریان می یابد و موتور در خلاف جهت عقربه های ساعت می چرخد. نکته مهمی که در برخورد با پل های H باید به خاطر داشته باشید این است که هر دو مجموعه را نمی توان همزمان بسته کرد و یا برق و زمین مستقیماً به هم متصل می شوند و شما یک اتصال کوتاه خواهید داشت.

همچنین، اگر کلیدهایی مانند بستن A1 و B2 را با هم ترکیب کنید، یک اتصال کوتاه نیز ایجاد خواهید کرد. مهم است که سوئیچ های “A” بسته شوند یا سوئیچ های “B“. هرگز هر دو یا ترکیبی از آنها. اگر می خواهید سرعت را کنترل کنید، باید به جای سوئیچ از چهار ترانزیستور استفاده کنید و پایه هر ترانزیستور را با استفاده از آردوینو کنترل کنید.

قبل از اینکه بیرون بروید و این مدار را بسازید و در پروژه خود قرار دهید، مهم است که به خاطر داشته باشید که این ترانزیستورها اصلا نمی توانند جریان زیادی را تحمل کنند. این مثال را فقط باید با موتورهای نسبتاً “بسیار کوچک” امتحان کرد (بزرگتر از نمونه تصویر نیست)، و ساخت آن ضروری نیست. در درجه اول فقط برای توضیح مفهوم آن اینجاست. در ادامه مسیر از بردهای کنترل کننده موتور با پل های H از پیش ساخته شده استفاده خواهیم کرد.

هر طرف “H” از یک ترانزیستور PNP در “بالا” و یک ترانزیستور NPN در “پایین” تشکیل شده است. پایه هر یک از این ترانزیستورها از طریق یک مقاومت 1K (برای محافظت از آردوینو) به یک ریل مشترک متصل می شود و این ریل به یک پایه آردوینو متصل می شود. امیتر ترانزیستور PNP به برق و امیتر ترانزیستور NPN به زمین متصل است. در هر طرف ‘H‘، هر دو کلکتور به یکدیگر متصل می شوند تا به یک پین موتور بپیوندند. همچنین چهار دیود محافظ سیلیکونی 1N4001 در مدار گنجانده شده است که بین هر پایه موتور و منبع ولتاژ مثبت و زمین بایاس معکوس می شوند.

با استفاده از ترکیبی از ترانزیستورهای PNP و NPN – در مقابل چهار ترانزیستور NPN – دو چیز انجام می شود. اول، ترتیبی ایجاد می کند که در آن یک ترانزیستور در هر طرف همیشه جدا می شود و از شورت جلوگیری می کند. ثانیاً، امکان کنترل پل H را تنها با دو پین دیجیتال آردوینو فراهم می کند.

به عنوان مثال، اگر یک پایه آردوینو سیگنال بالا را به یک طرف “H” ارسال می کند و پایه دیگر آردوینو سیگنال کم را به طرف دیگر ارسال می کند، برق از PNP در یک طرف به NPN در دیگر. اگر پین های آردوینو را معکوس کنید، الکتریسیته از طریق جفت ترانزیستور مخالف جریان می یابد و جهت موتور معکوس می شود. سرعت موتور را می‌توان با استفاده از پل H مانند این، با PWM و پین مثبت آردوینو به جای تنظیم آن روی HIGH، کنترل کرد.

منبع:

https://www.instructables.com/Robot-Brains/

ثبت نظر

آدرس ایمیل شما منتشر نمیشود