| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| products:beambot:uchitsya_ne_peresekat_granicu [2025/08/07 13:49] – [BeamBOT учится не пересекать границу] labuser30 | products:beambot:uchitsya_ne_peresekat_granicu [2025/12/25 16:22] (текущий) – [BeamBOT учится не пересекать границу] labuser30 |
|---|
| <php>require($_SERVER["DOCUMENT_ROOT"]."/interactive/interactive.php");</php> | <php>require($_SERVER["DOCUMENT_ROOT"]."/interactive/interactive.php");</php> |
| |
| =====BeamBOT учится не пересекать границу===== | =====22. BeamBOT учится не пересекать границу===== |
| | |
| | Давай применим умение запоминать состояние и научим нашего робота новому трюку. Как насчет умения ездить вперед-назад внутри очерченной границы? Для этого нам понадобится сразу три микросхемы: ULN2003A для инверсии сигналов от датчиков линии, CD4013 для запоминания состояний и L293D для управления моторами. Давай соберем схему и испытаем ее. |
| | |
| | ~~NOCACHE~~ |
| | |
| | <php>pinlab_draw_picture("beambot/uchitsya_ne_peresekat_granicu/scheme1");</php> |
| |
| <php>pinlab_bom("beambot/uchitsya_ne_peresekat_granicu/scheme1.mont");</php> | <php>pinlab_bom("beambot/uchitsya_ne_peresekat_granicu/scheme1.mont");</php> |
| | |
| <php>pinlab_draw_instruction("beambot/uchitsya_ne_peresekat_granicu/scheme1.mont");</php> | <php>pinlab_draw_instruction("beambot/uchitsya_ne_peresekat_granicu/scheme1.mont");</php> |
| | |
| | Если поставить робота на белую поверхность очерченную черной полосой он будет бесконечно кататься вперед-назад внутри границы. Как работает схема и зачем нужна микросхема ULN2003A? Оба мотора подключены к первому Н-мосту драйвера L293A, который управляется прямым и инверсным выходами RS-триггера CD4013. Входы же триггера подключены к переднему и заднему датчикам линии, но не напрямую, а через микросхему ULN2003A. Каналы микросхемы ULN2003A кроме того что усиливают сигнал, еще инвертируют его. То есть если на входе логический сигнал "1", то на выходе "0". Однако, чтобы работало и наоборот нужно выходы каналов подтянуть к "+", для этого и используются резисторы R1 и R2. Зачем вообще инвертировать сигналы от датчиков? Дело в том что датчики выдают логический сигнал "1" когда находятся на белой поверхностью и "0", наоборот нужен сигнал "1" на вход триггера, когда робот наезжает на черную линию. |
| | |
| | <WRAP round tip> |
| | Экспериментируй: |
| | * Поменяй местами провода подключенные к разъемам датчиков "В" и "З". Как теперь ведет себя робот? |
| | |
| | </WRAP> |
| | |
| | ---- |
| | [[products:beambot:uchitsya_zapominat_signaly|☚ Предыдущий ]] | |
| | [[products:beambot|Содержание]] | |
| | [[products:beambot:treniruet_pamyat| Следующий ☛]] |
| | |