require($_SERVER["DOCUMENT_ROOT"]."/interactive/interactive.php");
=====BeamBOT учится ездить по линии. Датчик на плате=====
В предыдущем уроке мы научили нашего робота доезжать до черной линии и останавливаться, но это было не слишком интересно. Давай соберем схему благодаря которой робот сможет ездить по краю черной линии?
pinlab_draw_picture("beambot/uchitsya_ezdit_po_linii/scheme1");
~~NOCACHE~~
pinlab_bom("beambot/uchitsya_ezdit_po_linii/scheme1.mont");
pinlab_draw_instruction("beambot/uchitsya_ezdit_po_linii/scheme1.mont");
Если ты поставишь робота на край черной линии он будет ехать вдоль нее поворачивая то правым, то левым колесом. Правда выглядит завораживающе? Как же работает наша схема? С правым колесом все просто: на вход первого канала (транзистора Дарлингтона) микросхемы ULN2003A подключен датчик линии «В», а на его выход собственно мотор правого колеса. Следовательно когда датчик "видит" белую поверхность правое колесо поворачивается вперед. С левым колесом все интереснее: его мотор подключен к выходу второго канала, а вот вход к выходу первого. Когда канал ULN2003A "выключен" (на его входе «В»), его выход "висит в воздухе", то есть ни к чему не подключен. Что бы это исправить мы добавили резистор R1, который "подтягивает" выход первого канала к «+» питания и вход второго тоже, так как они соединены. Этим мы добились того, что когда на входе первого канала «-», на входе второго «+», и наоборот. Следовательно и моторы с колесами включаются по очереди.
Кстати если ты уберешь резистор R1 из схемы, то робот все также будет ездить по краю линии. Почему так? Все дело в том, что функцию резистора будет R1 выполнять правый мотор.
Экспериментируй:
* Попробуй сделать так, чтобы робот ехал задом наперед.
* Попробуй использовать задний датчик «З» в место переднего «В».