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| Следующий ☛]]