"Вы читаете о роботах и программировании и думаете: «Было бы здорово сделать что-то подобное самому!» Теми, кем эта идея овладевает чуть больше просто мыслей смотрят кто и как делал своего робота. Читают статьи, смотрят видео. На картинках все понятно. В видеороликах тоже обычно показываются уже готовые продукты, а также сжато показываются технологии их изготовления. И вроде бы то же всё понятно: отпилил, прикрутил, припаял, соединил, запрограммировал вон на той программе вот этим кодом."

вторник, 9 октября 2018 г.

Условный оператор

Рассмотрим робота представленного ниже:
https://www.tinkercad.com/things/9cfDnom03TK
Данный робот предназначен для управления освещением с возможностью включения/выключения с двух разнесенных друг от выключателей. Например в начале и в конце длинного коридора, включив свет в одном конце, можно пройти весь коридор и выключить свет в другом конце.
При создании алгоритма управления воспользуемся алгеброй логики и представим устройство в виде черного ящика со входами А,В и выходом Х. Составим таблицу возможных состояний входов и желательного при этом выхода Х. При использовании этой таблицы выделяем строки соответствующие нашим устремлением(вторая и третья). Используя законы алгебры логики получаем логическое условие работы нашего устройства - высокий уровень сигнала на выходе будет только тогда, когда на входы будут поступать разно-уровневые  сигналы 0 и 1 
Роль черного ящика может выполнить условный оператор(if)(ЕСЛИ), где условием будет выступать полученное выше логическое уравнение.
Дракон-схема алгоритма устройства будет выглядеть так: 

в текстовой форме это будет выключить так

  1. НАЧАЛО
  2. записать уровень сигнала в порту 4 в переменную А
  3. записать уровень сигнала в порту 8 в переменную В
  4. ЕСЛИ (A&-B || -A&B) перейти к строке 7
  5. подать на порт 7 низкий уровень сигала(логический 0)
  6. перейти к строке 8
  7. подать на порт 7 высокий уровень сигала(логическую 1)
  8. КОНЕЦ
С учетом того что алгоритм помещается в тело скрипта(вечный цикл) состояние портов будет опрашиваться постоянно после выполнения алгоритма.

Однако приведенная схема имеет недостатки:
  • через порты контроллера нельзя запитывать мощные актюаторы
  • в качестве датчиков целесообразней использовать кнопки
При устранении этих недостатков схема управления будет иметь вид: 

Алгоритм управления последней схемы разработаем самостоятельно в ИС ДРАКОН