Перейти к основному содержимому

Логические элементы

Логические элементы в робототехнике

Коротко

Логические элементы помогают роботу принимать простые решения по правилам: И, ИЛИ, НЕ, исключающее ИЛИ и другим. Из них складываются простые алгоритмы действий.

Зачем это нужно

Робот постоянно получает сигналы:

  • кнопка нажата или не нажата;
  • датчик видит линию или не видит;
  • препятствие близко или далеко;
  • свет включен или выключен.

Такие ответы удобно записывать двумя числами:

ЗначениеКак читать
1да, правда, включено
0нет, неправда, выключено

Пример интерпретации программой кнопки:

Кнопка нажата -> 1
Кнопка не нажата -> 0

Пример интерпретации программой состояния лампы:

Лампа включена -> 1
Лампа выключена -> 0

Пример управления состоянием лампы программой:

1 -> включить лампу
0 -> выключить лампу

Мы можем объединить "анализ" состояния одного элемента и "управление" другим элементом:

Кнопка нажата -> 1 -> включить лампу
Кнопка не нажата -> 0 -> выключить лампу

Но если управляющих сигналов несколько (например, несколько кнопок управляют работой одной лампы), то потребуется способ обработки этих сигналов - логические элементы.

Главная идея

Логический элемент похож на маленькое правило.

сигналы на входе -> правило -> ответ на выходе

Логический элемент берет один или несколько таких сигналов и выдает новый ответ: 1 или 0.

Например:

Логические элементы в робототехнике

Если правило говорит 1, программа включает лампу. Если правило говорит 0, лампа выключается.

Как сигналы управляют роботом

Как сигналы управляют роботом

В качестве примеров далее возьмем робота, который может ездить по следующему правилу:

  • управляющий сигнал 1: робот едет
  • управляющий сигнал 0: робот стоит

Для управления используются кнопки:

  • кнопка нажата - 1
  • кнопка не нажата - 0

НЕ

НЕ меняет ответ на противоположный.

Если было 1, станет 0.
Если было 0, станет 1.

Обозначение на схемах

Логические элементы в робототехнике

Уточнение

Кружок на выходе означает, что ответ инвертируется (переворачивается).

Как читать обозначение логического элемента

Все логические элементы читаются слева направо:

  • слева - входы;
  • справа - выходы.

Пример из жизни:

  • датчик говорит: "перед роботом есть препятствие";
  • команда роботу: "ехать можно, если препятствия НЕТ".

То есть робот едет, когда ответ датчика перевернут.

Таблица истинности НЕ

AНЕ A
01
10
Что это?

Таблица истинности - это таблица, которая показывает, какой ответ получится при разных значениях входных сигналов.

Уточнение

В таблицах истинности первые столбики обычно называются A, B, C и так далее. Каждая буква - входной сигнал, например кнопка. Так как у нас один входной сигнал A, значит у нас одна кнопка.

Пример с роботом

Есть препятствие?НЕ есть препятствиеРобот едет?
01да
10нет

И

И дает 1 только тогда, когда все условия равны 1.

Пример:

Робот едет вперед, если:

  • левая кнопка нажата;
  • правая кнопка нажата.

Если нажата только одна кнопка, робот не едет.

Обозначение на схемах

Логические элементы в робототехнике

Знак & означает: на выходе будет 1, только если все входы равны 1.

Таблица истинности И

ABA И B
000
010
100
111

Пример с роботом

Левая кнопкаПравая кнопкаЕхать вперед?
00нет
01нет
10нет
11да

Запомнить просто: И строгое. Оно хочет, чтобы все условия были выполнены.

ИЛИ

ИЛИ дает 1, если хотя бы одно условие равно 1.

Пример:

Робот включает сигнал, если:

  • нажата левая кнопка;
  • или нажата правая кнопка.

Достаточно одной кнопки.

Обозначение на схемах

Логические элементы в робототехнике

Знак 1 означает: на выходе будет 1, если хотя бы один вход равен 1.

Таблица истинности ИЛИ

ABA ИЛИ B
000
011
101
111

Пример с роботом

Левая кнопкаПравая кнопкаВключить сигнал?
00нет
01да
10да
11да

Запомнить просто: ИЛИ мягкое. Ему достаточно одного условия.

Исключающее ИЛИ

Исключающее ИЛИ часто называют XOR.

Оно дает 1, если включено ровно одно условие из двух.

Пример:

У робота есть две кнопки поворота:

  • левая кнопка - повернуть налево;
  • правая кнопка - повернуть направо.

Если нажата только одна кнопка, робот понимает команду.
Если нажаты обе сразу, команда странная: непонятно, куда поворачивать.

Обозначение на схемах

Логические элементы в робототехнике

Знак =1 означает: на выходе будет 1, если ровно один вход равен 1.

Таблица истинности XOR (исключающего ИЛИ)

ABA XOR B
000
011
101
110

Пример с роботом

Левая кнопкаПравая кнопкаКоманда понятна?
00нет
01да
10да
11нет

Запомнить просто: исключающее ИЛИ означает "или одно, или другое, но не оба сразу".

Основные логические элементы

Логические элементы в робототехнике

ПравилоКогда на выходе 1Простой пример
НЕкогда вход равен 0ехать, если препятствия нет
Икогда все условия равны 1ехать, если нажаты две кнопки
ИЛИкогда хотя бы одно условие равно 1пищать, если нажата любая кнопка
исключающее ИЛИкогда ровно одно условие равно 1поворачивать, если нажата только одна кнопка

Пример: робот не должен врезаться

Логические элементы в робототехнике

Представим маленького робота на колесах.

У него есть два датчика:

  • A - спереди свободно;
  • B - кнопка "старт" нажата.

Робот должен ехать вперед только тогда, когда спереди свободно И нажата кнопка "старт".

Правило:

Ехать вперед = A И B

Таблица:

Спереди свободно AКнопка "старт" BЕхать вперед
000
010
100
111

Если впереди стена, робот не едет даже при нажатой кнопке.

Пример: робот ищет черную линию

Логические элементы в робототехнике

У робота два датчика снизу:

  • левый датчик видит черную линию;
  • правый датчик видит черную линию.

Правила можно сделать такими:

Левый датчикПравый датчикЧто делает робот
00ищет линию
10поворачивает влево
01поворачивает вправо
11едет вперед

Здесь тоже есть логика. Робот смотрит на два ответа и выбирает действие.

Уточнение

Такой способ движения похож на релейный регулятор: робот не выбирает плавный поворот, а переключается между готовыми действиями. Например: линия слева - повернуть влево, линия справа - повернуть вправо, оба датчика видят линию - ехать прямо. В учебной робототехнике такой подход иногда называют "алгоритмом утюга".

Практика

Задание 1

Лампа должна гореть, если нажата хотя бы одна из двух кнопок.

Какое правило нужно выбрать?

  • И
  • ИЛИ
  • НЕ
  • исключающее ИЛИ

Задание 2

Робот должен ехать, если:

  • нажата кнопка "старт";
  • впереди нет препятствия.

Заполните таблицу.

СтартЕсть препятствиеЕхать?
00
01
10
11

Подсказка:

Ехать = Старт И НЕ Есть_препятствие

Задание 3

Придумайте свое правило для робота.

Например:

Включить звук = датчик_слева ИЛИ датчик_справа

Запишите:

  1. Какие есть входы?
  2. Какое правило используется?
  3. Что получится на выходе?

Проверьте себя

  • Что значит 1?
  • Что значит 0?
  • Чем И отличается от ИЛИ?
  • Что делает НЕ?
  • Почему 1 XOR 1 дает 0?
  • Какое правило подойдет роботу, который едет только при нажатой кнопке и свободной дороге?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

  • формулируете основную мысль своими словами;
  • называете важные условия, ограничения или меры безопасности;
  • для схемы, кода или расчёта показываете ход решения и ожидаемый результат.

Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.

Словарь статьи

  • Сигнал - значение, которое получает или выдает устройство: 1 или 0.
  • Вход - место, куда приходит сигнал. Например, от кнопки или датчика.
  • Выход - ответ логического элемента после обработки входных сигналов.
  • Логический элемент - простое правило, которое получает сигналы и выдает новый сигнал.
  • Таблица истинности - таблица со всеми вариантами входов и выходов.
  • НЕ - правило, которое меняет 1 на 0, а 0 на 1.
  • И - правило, где на выходе будет 1, только если все входы равны 1.
  • ИЛИ - правило, где на выходе будет 1, если хотя бы один вход равен 1.
  • Исключающее ИЛИ - правило, где на выходе будет 1, если ровно один вход равен 1.
  • Обозначение на схеме - рисунок элемента, который показывает его входы, выход и выполняемое правило.

Связанные темы

Источники