ПРОСТ РОБОТ НА МИКРОКОНТРОЛЕР (Част 1)
Прост робот на микроконтролер може да бъде сглобен въз основа на драйвера за управление на двигателя и самия микроконтролер. |
Използваме микросхемата L293D като двигателен драйвер, чиито входове са свързани към изходите на микроконтролера, както е показано на диаграмата. В този пример ще бъде разгледан микроконтролерът ATmega8, въпреки че може да се използва друг микроконтролер (например ATtiny26 или всеки микроконтролер от фамилията Mega).
![]() |
Коментар на диаграмата на робота |
От разговорите на Бибот и Бобот |
Уважаеми Bobot, на някои други вериги съм виждал допълнителни елементи, като резистор, който дърпа щифта RESET към захранването, или кондензатор, преместващ RESET към земята. Необходими ли са?
Това е много добър въпрос, стари Бибот. Външният подтягащ резистор, за който говориш, е свързан към извода RESET, за да предотврати случайно нулиране на микроконтролера при прекъсване на захранването, а кондензаторът е за допълнителна защита на линията RESET от външни смущения. Те не са в горната диаграма поради следната причина: AVR микроконтролерите от второ поколение вече имат вграден подтягащ резистор за линията RESET, чиято стойност е калибрирана във фабриката на Atmel по такъв начин, че да осигури най-стабилната работа на чипа без използване на външен подтягащ резистор [1]. И ако погледнете бележката за приложението на Atmel „AVR042: AVR Hardware Design Consideration“ (PDF), можете да прочетете следното за кондензатора, който споменахте: „Това не е директно необходимо, тъй като AVR имат нискочестотен филтър за елиминиране на пикове ишум, който може да причини нулиране."
Представената схема е максимално опростена и е най-простият пример за първите експерименти за изграждане на робот върху микроконтролер. И за да се предпази микроконтролера от евентуално намаляване на мощността, както можете да видите, във веригата е въведен кондензатор от 1000 микрофарада, който играе ролята на устройство за съхранение на енергия и осигурява нормалното функциониране на микроконтролера. Заслужава да се добави, че роботите, построени в строго съответствие със схемите, дадени в курса „Стъпка по стъпка“, въпреки цялата си простота, бяха многократни участници и победители в състезанията на Българската олимпиада по роботи, Открития турнир по роботика за Купата на Политехническия музей, Общобългарския фестивал на роботиката и състезанията на Фестивала на науката в Москва.
И какво трябва да добавя към веригата на първо място, ако искам да я направя по-сигурна?
Започнете с веригата за нулиране, за която току-що говорихме. Свържете външен изтеглящ резистор от 4,7 до 10 kΩ, както е показано на следващата фигура, и свържете "аналоговия" AVCC захранващ щифт. В този случай схемата няма да стане много по-сложна.


Не можеш да си абсолютно сигурен в нищо (Бобот погледна със съжаление необосновано угасналата си лула). Но е напълно възможно да се предвидят някои мерки, така че работата на устройството да е близка до нивото на стабилност на индустриалната автоматизация. За повече подробности вижте статията "Свързване на AVR: стабилизиране на микроконтролера".
Необходим е електролитен кондензатор C3 (1000uF, 10-25V) за изглаждане на пренапреженията на тока, причинени от работата на двигателите. Този кондензатор е много важен. Именно той прави възможно веригата да работи с необходимото ниво на стабилност. Могат да се използват два кондензатора вместо един. Стойността на всеки от тях в този случай може да бъде около 470 микрофарада. В този случай един от кондензаторите е инсталиран в непосредствена близост до щифтовете за захранване на микроконтролера, а вторият е монтиран до щифта Vs на микросхемата на драйвера на двигателя L293D. Осигуряването на стабилизиране на мощността е един от най-важните аспекти при проектирането на устройства, базирани на микроконтролери.
За по-нататъшно стабилизиране на работата на микроконтролера, керамичен кондензатор с капацитет около 0,1 микрофарада, свързан между захранващите изводи VCC, GND (крака 7 и 8) и разположен в непосредствена близост до тях (не е показано на диаграмата), може да служи като добро решение.
Механичната схема на разглеждания робот трябва да бъде сглобена на принципа на "резервоара": левият двигател предава движението на лявото колело, десният - на дясното. По друг начин такава механична схема се нарича схема за задвижване на двете колела.
След като изключите програматора, проверете посоката на въртене на колелата на робота. Ако двигателите въртят колелата в противоположни посоки, разменете проводниците им.
Следващата стъпка е да създадете програма, която изпълнява завъртането до желания ъгъл.спиране на един от двигателите.
Като промените времето за забавяне, опитайте се да постигнете завой под прав ъгъл, така че пътят на робота да прилича на квадрат.
За по-бързо завъртане на робота можете да използвате реверса (въртене в обратна посока) на един от двигателите. Написването на такава програма ще бъде добра практика за самопрограмиране на движението на робота.

Въпреки че полученият робот е доста прост, с него могат да се проведат редица интересни експерименти, сред които може да има експерименти за създаване на робот за рисуване и робот танцьор.
За да направите първия от тях, е достатъчно да фиксирате цветен маркер върху шасито на робота, който докосва повърхността, върху която се движи роботът, и да поставите робота върху лист хартия за рисуване. Циклоидните рисунки на такъв арт робот ще зависят от програмата, която сте написали и, разбира се, от вашето въображение.

Ако последователно използвате няколко дебели цветни маркера с различни цветове на един лист, за всеки от които ще бъде написана специална програма, можете да получите истински шедьоври на абстрактното изкуство. Такива произведения на роботизираното изкуство вече се излагат дори в престижни галерии.

файлове: |
Описание на чипа за управление на двигателя L293D. L293D.pdf
Описание на микроконтролера ATmega8 (английски). ATmega8.pdf