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

суббота, 20 октября 2018 г.

ДРАКОН, СКРЕТЧ и язык С

Для обучения основам управления рассмотрим робота регулирующего пешеходный переход через автомагистраль, оснащенного кроме раздельными светофорами, шлагбаумом для пешеходов ультрозвуковым дальномером для контроля пешеходного перехода.
Создав робота в виртуальной лаборатории мы получили возможность проверки алгоритма управления в режиме реального времени, а также возможность написать скрипт не только на языке С, но и с помощью языка скретч, что значительно упрощает написание полноценной программы управления.
Для достижения заданной цели мы сначала разработаем алгоритм управления, затем реализуем по возможности на языке скретч и только потом рассмотрим, как такую программу написать на языке программирования С. 
 Алгоритм для управления роботом светофором на Arduino Uno создадим используя ИС ДРАКОН в режиме создания алгоритма.
общая схема алгоритма
Используя полученный ранее алгоритм запишем его на вкладке КОД(режим блоки) с помощью встроенного редактора СКРЕТЧ. Проверив его робото-способность вспомним структуру скрипта.
из схемы видно, что написанный нами алгоритм управления помещается в тело скрипта, таким образом если мы будем вносить только программные изменения в робота то верхняя часть скрипта остается неизменной. Запомним. Протестировав виртуального робота получаем рабочую программу на скретч, которую можно сохранить в текстовом формате на языке С(файл *.ino). Собственно на  этом можно и остановиться, но в ходе тестирования выясняется, что скретч функционально ограничен и иногда нужную нам опцию в управлении роботом можно написать только на языке С в текстовом режиме. Для реализации этого начинания (срочное прерывание режима "переход" вне зависимости от показаний ультрозвукового датчика) перейдем в ИС ДРАКОН и внесем соответствующие изменения в дракон-схему. Осталось переписать программу в ручном режиме на С. Для этого:

  1. Добавим схему ГНОМ и выберем иконку МОДУЛЬ. 
  2. Перейдем в виртуальную лабораторию откроем вкладку код в режиме блок+текст. В крайне правом окне мы увидим нашу программу на языке С в текстовом режиме. Скопируем в буфер обмена текст от начала до void loop(). 
  3. Переходим в ИС ДРАКОН и устанавливаем режим "программирование". 
  4. Переходим к иконке модуль. Щелкаем мышкой в третий квадрат (считаем слева на право под иконкой) и вставляем из буфера обмена скопированну часть скрипта. 
  5. Далее с новой строчке вносим служебные строчки ИС ДРАКОН
      //Shema
      //
   6. В саму иконку модуль необходимо поместить:
      \swetoforka_C.ino
     затем ниже поместить копию ссылки из колонтитула         дракон-схемы.
   7. Начинаем работу с дракон-схемой. Третий квадрат  в колонтитуле дракон-схемы заполняется следующим образом:
      void loop()
      {
       //Shema
       //
      }
остальные третьи квадратики заполняются командами на языке С(список команд  файле "команды для ардуино.drt" папка ДРАКОН_С).
   8. Далее нажимаем клавишу F9 и если все правильно заполнено то получаем текстовик программы, который для проверки можно скопировать в виртуальную лабораторию(вкладка КОД режим текст) заменив им предыдущий текст скрипта.

Таким образом при разработки скрипта для  робота мы смогли объединить три программы, которые позволили нам написать скрипт на низкоуровневом языке программирования совершенно не зная его основ.