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");
{{:products:beambot:line_1.png?nolink&250 |}}
Теперь, если ты поставишь робота на край черной линии, он будет ехать вдоль нее, поворачивая то правым, то левым колесом. Правда, эффектно? Рассмотрим, как работает схема.
С правым колесом все просто: на вход первого канала микросхемы ULN2003A (DA1.1) к транзистору Дарлингтона подключен датчик линии ''В'', а на его выход – мотор правого колеса. Следовательно, когда датчик «видит» белую поверхность, правое колесо проворачивается вперед.
С левым колесом – интереснее: его мотор подключен к выходу второго канала, а вход – к выходу первого. Второй канал микросхемы выполняет роль инвертора, т.е. он меняет сигнал на противоположный. Поэтому оба мотора работают по- очереди, хотя управляются одним датчиком.
У микросхемы ULN2003A есть особенность: когда канал микросхемы «выключен» (в нашем случае канал DA1.1) – его выход ни к чему не подключен. На жаргоне электронщиков – "висит в воздухе" и на нем нет никакого напряжения. Но чтобы включить второй канал (DA1.2) нужен уровень напряжения. Чтобы его получить, мы добавили резистор R1, который «подтягивает» выход первого канала к «+» питания в моменты, когда выход DA1.1 "висит в воздухе". Ток, протекающий через R1 включает DA1.2 и левый мотор.
Таким образом когда датчик находится над белой поверхностью работает один мотор, а когда над черной – другой. Когда над белой – один мотор подруливает в сторону черной линии, а когда Робот буквально видит границу линии, отслеживает ее и движется вдоль нее.
Экспериментируй:
* Попробуй сделать так, чтобы робот ехал задом наперед.
* Попробуй использовать задний датчик ''З'' в место переднего ''В''.
----
[[products:beambot:uchitsya_ostanavlivat_na_granice|☚ Предыдущий ]] |
[[products:beambot|Содержание]] |
[[products:beambot:osvaivaet_ezdu_po_linii| Следующий ☛]]