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

воскресенье, 28 октября 2018 г.

ДРАКОН, СКРЕтЧ, С и виртуальная лаборотория

Виртуальная лаборатория Tinercad предоставляет возможность в режиме реального времени создавать виртуальную систему управления на микроконтроллера Arduino Uno, а так же позволяет создать текст программы для загрузки в реальный контроллер. Язык программирования скретч. Также возможно тестирование программы управления написанной на языке СИ в сторонних приложениях.
Рассмотрим сильные и слабые стороны способов создания пограммы управления.
Штатный способ - это разработка программы управления штатной системой разработки на языке скретч. Созданная программа автоматически получает: настройки задействованных портов контроллера, подключения сторонних библиотек для некоторого подключенного оборудования. Минус данного подхода заключается в сложности создания алгоритма управления максимально адаптированного для конкретных условий применения изделия, а также некоторыми ограничениями языка СКРЕТЧ.
Для разработки алгоритма управления очень хорошо подходит язык ДРАКОН, благодаря которому алгоритм управления становиться максимально понятным и который может легко показать пути оптимизации управления. Так же ДРАКОН позволяет разработанный алгоритм преобразовывать в текст программы управления, путём подключения к нему языка программирования.
Таким образом у нас есть возможность создавать свою программу управления и тестировать её на созданном в виртуальной лаборатории устройстве в режиме реального времени. Одним из недостатком этого метода видится необходимость обладание знаниями языка программирование С, а также структуры скрипта - программы загружаемый в контроллер.
 Есть ли возможность обойти некоторые выше указанные проблемы? Да они есть. Один из способов это создание электронной справочной системы команд управления портами контроллера(файл со схемами ГНОМ содержащий команды на языке СИ, как для заголовочной части скрипта, так и тела скрипта). Также возможно создать заголовочную часть скрипта в автоматическом режиме используя возможности виртуальной лаборатории, а так как для созданной схемы подключения устройств заголовочная часть неизменна, то ее можно скопировать и использовать в дракон-схемы в иконке МОДУЛЬ.

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

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

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

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

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

среда, 17 октября 2018 г.

Графический язык для алгоритма на СКРИПТ

Вы читаете о роботах и программировании и думаете: «Было бы здорово сделать что-то подобное самому!» Теми, кем эта идея овладевает чуть больше просто мыслей смотрят кто и как делал своего робота. Читают статьи, смотрят видео. На картинках все понятно. В видеороликах тоже обычно показываются уже готовые продукты, а также сжато показываются технологии их изготовления. И вроде бы то же всё понятно: отпилил, прикрутил, припаял, соединил, запрограммировал вон на той программе вот этим кодом. 
Для решения поставленных задач человечество создает искусственные языки. Основное их отличие от естественны языков на которых строится общение между людьми, это строго ограниченный запас слов(семантика) и очень строгие правила синтаксиса.  В графических искусственных языках это форма графического элемента, его расположение, способы связи одного элемента с другим. Какое либо своеволие в изображении элементов графического языка НЕДОПУСТИМО.
Для создания программ(скетчей), часто используются графические языки программирования, такие например как ДРАКОН, Sketchware,  Язык последовательных функциональных схем SFC (Sequential Function Chart),  App Inventor и так далее. 
Для нужд школьников был разработан простой графический язык(СКРИПТ) в виде вертикального графа задача которого организовать работу школьника в семействе программ Sketch 

иконки языка СКРИПТ


структура языка СКРИПТ

алгоритм записанный на языке СКРИПТ


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

Метод матрешки в алгоритме скретча

Алгоритм предложенный в образце оформления движения по периметру сцены конечно правильный, но слишком сложный для восприятия.  С другой стороны образец оформления алгоритма скретча наиболее подобно описывает порядок действий, однако большие алгоритмы будут теряться на фоне обилия графических элементов. Попробуем упростить восприятие алгоритма скретча на примере того же алгоритма скрипта движения по периметру сцены. Представим данный алгоритм в виде структуры из вставок, где каждая вставка бывший комментарий.
  Вставка изображается иконой "КОММЕНТАРИЙ" с последующий вертикальной чертой. Каждой вставке будет соответствовать структура действий для выполнения указанной задаче вставки




Таким образом мы разбили большой алгоритм на пять маленьких удобных для разработки 

понедельник, 15 октября 2018 г.

Методика создания алгоритма управления

Существуют два возможных направления создания робота, которые зависят от того существует ли робот для которого мы пишем алгоритм или по нашему алгоритму будет создан робот.
Рассмотрим оба направления:

  1. Если робот создан, то первое, что предстоит сделать это карту портов управляющего контроллера (что на какой порт подключено). Следующая задача - понять зачем и для чего предназначен робот, а затем как он должен действовать, то есть создать общий алгоритм его работы. Для примера рассмотрим робот светофор который регулирует переход через автомагистраль подобный тому что мы рассматривали ранее, но немного доработанный - добавлен шлагбаум на пути следования пешеходов, датчик дистанции, который контролирует наличие пешеходов на проезжей части и в светофор для пешеходов добавлен желтый сигнал "ЖДИТЕ". Общий алгоритм работы представим в виде дракон-схемы с основными иконками которой служит иконка "ВСТАВКА", возможно также использование иконки "РАЗВИЛКА". Затем, каждую иконку "ВСТАВКА" представляем, как отдельную дракон-схему состаящую из некоторого множества действий. При использовании некоторых устройств может понадобиться отдельная дракон-схема описывающая функцию данного устройства.  Таким образом мы пишем скретч для конкретного устройства.
  2. Этот вариант предполагает создание алгоритма без первичной привязки к контроллеру, таким же порядком как было показано выше, затем строится карта портов и к алгоритму привязывается контроллер, с распределенными портами согласно описания алгоритма.
Далее в обоих случаях переходим в режим программирования ИС ДРАКОН. Добавляем дракон-схему "setup", где настраиваем порты контроллера, добавляем схему "Гном" с иконой "МОДУЛЬ" (данная икона позволяет компилировать графические дракон-схемы в единый текстовой файл, то есть создавать текстовый исходник программы)




общая почта для виртуальной лаборатории

frf55021@gmail.com
&56agimn

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

Образец зачета

Задание предусматривает написание скретча для алгоритма движения спрайта по краям сцены против часовой стрелки с левого верхнего угла и окончанием движения в этой точке.
Для того чтобы написать алгоритм представим  в тетради сцену. В каждом углу поставим точки равно удалённые от краев сцены(одинаково для всех углов Пронумеруем точки с левого верхнего против часовой стрелки(по направлению движения спрайта). 
Допустим, что точка 1 имеет координаты 240-40=200 со знаком - (-200) , по оси Y 180-40=140 (140). Тогда координаты точки 2 будут по Х -200 по Y -140, точки 3 соответственно 240 и -140, точки 4  = 200 и 140. 
Чтобы перейти от точки 1 к точке 2 надо идти вниз 140-(-140)=280 шагов, от точки 2 к точке 3 соответственно 200-(-200)= 400 шагов, от точки 3 к точке 4 280, от точки 4 к точке 1 400 шагов.значит необходимо для решения задачи в стать в точку с координатами -200, 140. Повернуть в направлении 180(вниз) пройти 280 шагов, повернуть в направлении 90(на право), пройти 400 шагов, повернуть в направлении 0(вверх), пройти 280 шагов, повернуть в направлении  -90(на лево) и закончить движение.

В ТЕТРАДИ ОФОРМЛЯЕТСЯ СКРЕТЧ

РЕЗУЛЬТАТ  ЗАПИСИ СКРЕТЧА В СПРАЙТ

РЕЗУЛЬТАТ РАБОТЫ СКРЕТЧА