BeamBOT учится не пересекать границу

Давай применим умение запоминать состояние и научим нашего робота новому трюку. Как насчет умения ездить вперед-назад внутри очерченной границы? Для этого нам понадобится сразу три микросхемы: ULN2003A для инверсии сигналов от датчиков линии, CD4013 для запоминания состояний и L293D для управления моторами. Давай соберем схему и испытаем ее.

Не поддерживается SVG

Тип компонентаНоминалКоличествоСписок
МикросхемаULN2003A1DA1
МикросхемаCD40131DD1
МикросхемаL293D1DA2
Резистор10 кОм2R1, R2
Провод 26
 

Если поставить робота на белую поверхность очерченную черной полосой он будет бесконечно кататься вперед-назад внутри границы. Как работает схема и зачем нужна микросхема ULN2003A? Оба мотора подключены к первому Н-мосту драйвера L293A, который управляется прямым и инверсным выходами RS-триггера CD4013. Входы же триггера подключены к переднему и заднему датчикам линии, но не напрямую, а через микросхему ULN2003A. Каналы микросхемы ULN2003A кроме того что усиливают сигнал, еще инвертируют его. То есть если на входе логический сигнал «1», то на выходе «0». Однако, чтобы работало и наоборот нужно выходы каналов подтянуть к «+», для этого и используются резисторы R1 и R2. Зачем вообще инвертировать сигналы от датчиков? Дело в том что датчики выдают логический сигнал «1» когда находятся на белой поверхностью и «0», наоборот нужен сигнал «1» на вход триггера, когда робот наезжает на черную линию.

Экспериментируй:

  • Поменяй местами провода подключенные к разъемам датчиков «В» и «З». Как теперь ведет себя робот?