DRAKON.SU
https://forum.drakon.su/

Опыт использования связки Ардуино&Дракон
https://forum.drakon.su/viewtopic.php?f=233&t=6187
Страница 2 из 5

Автор:  Владимир Паронджанов [ Суббота, 08 Декабрь, 2018 17:06 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Мне задали вопрос:
Цитата:
Интересна ваша реакция на viewtopic.php?f=62&t=6187#p102295
а именно: "в более широком, как способ реализации произвольного группового оператора"

Например, если необходимо выполнить некую группу команд, объединенных в одном операторе, допустимо ли использовать блок "цикл"?

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


Мой ответ состоит из двух частей.

Часть 1

Тема "Визуальный язык ДРАКОН и Ардуино" представляет большой интерес.
Очень большой.
Чрезвычайно большой интерес.

К сожалению, на данный момент эта тема не раскрыта.

Не изложена основная идея.
Не изложен принцип ее решения.
Не понятно, какие преимущества получит пользователь по сравнению...
По сравнению с чем?
С чем будем сравнивать?

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

Желательно, чтобы автор темы Дмитрий Бардынин поставил себе цель: написать на эту тему хорошую, благодатную статью и опубликовать ее на Хабре.
Это будет большое дело.
Это будет исключительно важное достижение.

Для этого надо продумать план такой статьи.
Нужно выделить и раскрыть ключевые моменты статьи.

В статье должны быть скрин-шоты и дракон-схемы.
Десяток скрин-шотов и десяток дракон-схем. Как минимум.

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

Мне кажется, что это необязательная деталь. Она не является необходимой для раскрытия основной темы статьи "Визуальный язык ДРАКОН и Ардуино".


Часть 2

Цикл в необычной функции, предложенный Дмитрием Бардыниным, нужно описать более подробно, с иллюстрациями.

Сейчас он изложен между прочим, скороговоркой.
Не сказано, зачем он нужен.
Не сказано, какую выгоду получит пользователь.

Мне кажется, что надо все это подробно разжевывать

Автор:  Владимир Паронджанов [ Вторник, 01 Январь, 2019 21:27 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

С форума Ардуино

Цитата:
ДРАКОН и Ардуино (Atmel mega..) - есть готовые решения?
https://bit.ly/2CJqccO

Автор:  Дмитрий Бардынин [ Вторник, 08 Январь, 2019 17:22 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Для полноценной статьи на Хабре, думается, необходим материал, описывающий не просто технологию, но и завершенный материальный проект. К сожалению, пока проектов, которые можно опубликовать, у меня нет. Те, что были созданы, являются составной частью коммерческой деятельности моего работодателя. Но работа ведется, и возникновение хорошего открытого проекта, КМК, неизбежно. Пока мы оттачиваем инструментарий. Прикладные вопросы про циклы, паузы, синхронизаторы и т.д. являются частью процесса. Хабр в планах.

Автор:  Владимир Паронджанов [ Вторник, 08 Январь, 2019 18:30 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Дмитрий Бардынин писал(а):
Хабр в планах.
Очень хорошо. Будем ждать.

Автор:  Дмитрий Бардынин [ Суббота, 19 Январь, 2019 17:25 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Продублирую из непрофильной ветки viewtopic.php?f=139&t=6442&p=102628#p102624

Немного экспериментального опыта: "Вставка" в нашем случае используется как процедура без параметров, т.е. функция с void-результатом. Для процедур с параметром используем икону "Вывод". Для вызова полноценных функций используем икону "Ввод", позволяющую принять результат исполнения функции в нужную нам переменную. Если в верхнем текстовом поле иконы указывать имя диаграммы-функции, то генератор достраивает текстовую конструкцию результата сам, как положено по синтаксису. С т.з. нашей практики, логичнее называть икону "Вставка" иконой "Процедура", т.к. именно это её прямое назначение в нашем случае.

Однако, разработчики заложили дополнительный функционал в икону "Вставка", позволяющий просто вставить часть кода, без вызова подпрограмм. Похожий вариант используется в программировании ардуино, и не только, при подключении библиотек, что-то вроде такого: #include <library.h>. Подобное применение нельзя назвать "Процедурой", это именно "Вставка" в чистом виде, когда используется весь потенциал подключаемого файла, а не отдельная процедура, или даже группа процедур и функций. Я не использую такой способ, предпочитая прямую запись всех включений в заголовке файла, но как вариант на будущее - вполне.
Вложение:
Комментарий к файлу: Пример подключения библиотеки с помощью иконы "Действие"
Снимок6.PNG
Снимок6.PNG [ 2.63 КБ | Просмотров: 10276 ]

Вложение:
Комментарий к файлу: Пример подключения библиотеки с помощью иконы "Вставка"
Снимок6_1.PNG
Снимок6_1.PNG [ 2.51 КБ | Просмотров: 10276 ]

Автор:  Владимир Паронджанов [ Воскресенье, 17 Февраль, 2019 18:03 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Нужен хороший видеоролик.

https://www.youtube.com/watch?time_cont ... e1NyZVQiZ8

На этом ролике чертеж на интерактивной доске плохо виден, почти не виден.

Дмитрий, можно ли сделать видеоролик с более высоким качеством?

Автор:  Дмитрий Бардынин [ Суббота, 23 Февраль, 2019 10:03 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Можно, только немного позже.

В плане применения связки Ардуино&Дракон получил дополнительный опыт:
в течении 8 учебных часов занимались со старшеклассниками по теме "Алгоритмизация".
Итогом работы стало несколько независимых проектов и, соответственно, столько же самоделок на базе микроконтроллеров.
Ученики первоначального опыта программирования не имели почти совсем (школьная информатика не в счет). Основная их специализация была: химия, искусство.
Итогом эксперимента удовлетворен.

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

Автор:  Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 19:52 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Стоит упомянуть об опыте использования Временной Вставки в программировании разных задач. Идея вполне оправдывает себя, т.к. с помощью ВВ получаются короткие программы, понятные неподготовленному читателю. Я обязательно выложу примеры таких программ, но попозже, сейчас нет времени приводить в приличный вид творчество ребят.

Я расширил синтаксис до еще одной иконки: "Временное Действие", которая работает аналогично ВВ, только не вызывает диаграмму извне, а выполняет код непосредственно во время ожидания. Теперь с помощью такой вставки можно менять логический параметр иконки Пауза, и не только.

Вложение:
Моторы3.JPG
Моторы3.JPG [ 24.52 КБ | Просмотров: 10004 ]


Код:
void Zapuskaem_motory3(  ) {
  int zhdem = true; // shelf
  unsigned long delay_115 = millis();
  while ( zhdem ) {
    zhdem = digitalRead(D12);
  }  // delay(zhdem); // pause + action
  Zapuskaem_motory2(); // insertion
}



Пример кода, запускающего моторы по наличию LOW на пине D12

Автор:  Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 19:58 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Нам в Сириусе предстоит очередная каникулярная смена, посмотрим, насколько понятной станет новая комбинация для детей.

Автор:  Владимир Паронджанов [ Воскресенье, 24 Март, 2019 20:19 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Дмитрий Бардынин писал(а):
Я расширил синтаксис до еще одной иконки: "Временное Действие", которая работает аналогично ВВ, только не вызывает диаграмму извне, а выполняет код непосредственно во время ожидания.

Дмитрий, почему вы не используете макроикону "Цикл Ждать"?

(Книга "Учись..." стр 39, рис. 18, пункт 7).

Автор:  Дмитрий Бардынин [ Понедельник, 25 Март, 2019 14:31 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Владимир Паронджанов писал(а):
Дмитрий Бардынин писал(а):
Я расширил синтаксис до еще одной иконки: "Временное Действие", которая работает аналогично ВВ, только не вызывает диаграмму извне, а выполняет код непосредственно во время ожидания.

Дмитрий, почему вы не используете макроикону "Цикл Ждать"?

(Книга "Учись..." стр 39, рис. 18, пункт 7).

Для простых условий "Цикл Ждать" является избыточной конструкцией, которая загромождает диаграмму. Пауза с условием, как мне кажется, лаконичнее, и проще для понимания. Не нужно пробегать взглядом всю ветку ожидания, а понятно, что в конкретном месте программа притормаживает при заданном условии. Использование Временного Действия сразу показывает, что будет происходить во время ожидания, опять же без пробегания взглядом.

Конструкция "Цикл Ожидания" тоже может применяться, но в случае необходимости выполнения сложных действий.

Автор:  Дмитрий Бардынин [ Понедельник, 25 Март, 2019 15:18 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Простой пример: локальный сервер ожидает ответа от устройства-клиента:
Вложение:
клиент1.JPG
клиент1.JPG [ 12.91 КБ | Просмотров: 9978 ]


В принципе, однопоточная система не занята другими действиями, и можно поправить её на такую конструкцию:
Вложение:
клиент2.JPG
клиент2.JPG [ 11.37 КБ | Просмотров: 9978 ]


Пауза с условием выглядит гораздо лаконичнее, и Бегунок при это не нарезает круги по диаграмме:
Вложение:
клиент3.JPG
клиент3.JPG [ 9.85 КБ | Просмотров: 9978 ]


Последняя конструкция при этом выглядит понятнее, так как понятно, что это Пауза. Затем можно разобраться, что Пауза действует, пока неверно условие. Мы не тратим единицы внимания на прослеживание траектории движения бегунка. Диаграмма тоже не перегружена линиями и Вопросами.

Автор:  Владимир Паронджанов [ Понедельник, 25 Март, 2019 16:52 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Дмитрий Бардынин писал(а):
Для простых условий "Цикл Ждать" является избыточной конструкцией, которая загромождает диаграмму. Пауза с условием, как мне кажется, лаконичнее, и проще для понимания. Не нужно пробегать взглядом всю ветку ожидания, а понятно, что в конкретном месте программа притормаживает при заданном условии. Использование Временного Действия сразу показывает, что будет происходить во время ожидания, опять же без пробегания взглядом.

Ваши рассуждения являются постулатом в стиле Высоцкого: "Я себе уже все доказал".

Желательно получить экспериментальное подтверждение.
Для этого нужно разбить учащихся на две подгруппы.
Первой подгруппе дать один вариант, а второй — другой.
И сравнить результаты.
Тогда получим более точный результат.

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

Но в отсутствие эксперимента мы оказываемся во власти субъективных мнений.

Автор:  LKom [ Понедельник, 25 Март, 2019 17:19 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Дмитрий Бардынин писал(а):
Последняя конструкция при этом выглядит понятнее, так как понятно, что это Пауза. Затем можно разобраться, что Пауза действует, пока неверно условие. Мы не тратим единицы внимания на прослеживание траектории движения бегунка. Диаграмма тоже не перегружена линиями и Вопросами.
Ни одна Ваша конструкция не является понятной. Ни детям, ни сторонним людям.
В Ваших конструкциях на проч отсутствует по русски описание проблемных целей.
Проблема подменена программным кодом, раскиданным там и сям.
Программный код не имеет проблемную основу.
Изобретаете графические иконы, глядя на которые невозможно понять смысл. Приходится искать смысл в Ваших сообщениях, с которыми трудно согласиться.
К примеру, термины "Временная вставка", "Временное действие" представляют не связанные слова. Временная - это о чем? Продолжительность или время события? Чем определена продолжительность или привязка ко времени?

"пока неверно условие" - условие не может быть верным или неверным. Условие может быть истиной или ложью.

Автор:  Дмитрий Бардынин [ Понедельник, 25 Март, 2019 19:28 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

LKom писал(а):
"пока неверно условие" - условие не может быть верным или неверным. Условие может быть истиной или ложью.

согласен, не всегда правильно формулирую. но по предыдущему объяснению паузы с условиями, думаю, стало понятно, что при TRUE пауза вечная, при FALSE - нулевая. Т.е. пока результат выражения внутри Паузы TRUE, она будет стопорить работу данного алгоритма. Этот подход взят из языка SFC, и думается, что может быть полезен. В любом случае, тут есть что обсудить.
Вложение:
Пауза7.JPG
Пауза7.JPG [ 44.96 КБ | Просмотров: 9962 ]


LKom писал(а):
Дмитрий Бардынин писал(а):
Последняя конструкция при этом выглядит понятнее, так как понятно, что это Пауза. Затем можно разобраться, что Пауза действует, пока неверно условие. Мы не тратим единицы внимания на прослеживание траектории движения бегунка. Диаграмма тоже не перегружена линиями и Вопросами.
Ни одна Ваша конструкция не является понятной. Ни детям, ни сторонним людям.
А вот это не верно. :)
Я периодически проверяю свои идеи на неподготовленных детях и взрослых, благо их много вокруг. Прошу респондента описать, что за действия выполняются по данной инструкции. И сравнительную диаграмму на каноничном ДРАКОНе прилагаю. Пояснений не даю раньше времени. Мои сокращенные схемы воспринимаются адекватнее. Люди говорят, что "так яснее".

LKom писал(а):
К примеру, термины "Временная вставка", "Временное действие" представляют не связанные слова. Временная - это о чем?

Я и не настаиваю на исчерпывающем смысле названия. Предложите другое, обсудим. "Временной Вставкой/Действием" я назвал эту икону, т.к. она действует в то же время, что и Пауза слева от неё, инкапсулированно. Ну не "Инкапсулированной Вставкой" же её называть, в самом деле. :)

Автор:  Дмитрий Бардынин [ Понедельник, 25 Март, 2019 19:59 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Владимир Паронджанов писал(а):
Ваши рассуждения являются постулатом в стиле Высоцкого: "Я себе уже все доказал".

Желательно получить экспериментальное подтверждение.
Для этого нужно разбить учащихся на две подгруппы.
Первой подгруппе дать один вариант, а второй — другой.
И сравнить результаты.
Тогда получим более точный результат.

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

Но в отсутствие эксперимента мы оказываемся во власти субъективных мнений.


Повторюсь: я периодически подвергаю сомнению собственные умозаключения, и стараюсь при возможности их как-то проверять/подтверждать.
В случае с нововведениями я проверяю простыми алгоритмами реакцию не подготовленного или слабо подготовленного реципиента на две диаграммы: с новшествами, и без. И подробно расспрашиваю, что можно понять из обеих диаграмм: как правило, сокращенные диаграммы описываются как более ясные. Наверное, можно это и под камеру делать, но ведь опять при желании можно обвинить в постановке. Да и заморачиваться некогда. В этом смысле, да - я поступаю так, как Владимир Семенович пел. "Лучше гор могут быть только горы..."

Можно условиться на следующей позиции: я экспериментирую, и жевучесть моих химер докажет только практика. Если детям будет понятна такая семантика, они будут её применять, если же её будет трудно понимать - кто же их заставит мучиться? Они будут тогда использовать простые диаграммы с классическими действиями-вопросами.

Еще один аргумент (минута тщеславия): коллеги-приподаватели уже резервируют себе места на мастеркласс, который я буду давать по результатам применения моего генератора. Просто они воочию наблюдают, насколько проще и эффективнее использовать ДРАКОН с моим генератором, чем традиционный текстовый ввод в Arduino IDE, или тот же ArduBlock. При подготовке к соревнованиям в Москве, я за пару дней накодил рабочих примеров больше, чем дети и преподаватели традиционными способами за несколько месяцев.

Автор:  Владимир Паронджанов [ Вторник, 26 Март, 2019 12:59 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Дмитрий Бардынин писал(а):
они воочию наблюдают, насколько проще и эффективнее использовать ДРАКОН с моим генератором, чем традиционный текстовый ввод в Arduino IDE, или тот же ArduBlock.

Дмитрий, сильная сторона вашего проекта — объединение языка ДРАКОН с Ардуино.

Это новая, очень важная и оригинальная идея. К сожалению, вы в этой теме не раскрываете эту идею, не показываете ее суть, не объясняете детали ее реализации, не перечисляете ее преимущества.

Вы — автор этой идеи. Ваша идея принесет вам (и не только вам) большую пользу.

Вам надо обратить пристальное внимание на эту идею и научиться о ней рассказывать.
Рассказывать последовательно и понятно, ничего не упуская.

Дмитрий, вы придумали, как можно с пользой для дела соединить идею Дракона и идею Ардуино.

К сожалению, ваша идея нигде не описана. Для большинства она по-прежнему остается тайной за семью печатями.

Автор:  Дмитрий Бардынин [ Вторник, 26 Март, 2019 18:22 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

каюсь, грешен :)

пока моя технология проходит стресс-тест на детях и взрослых. есть эксперименты по внедрению в качестве мастер-класса и образовательного цикла. знакомлю преподавателей, собираю статистику. по-сути, это и есть "получение экспериментального подтверждения", в отсутствии которого меня упрекнули не так давно, только данный эксперимент затрагивает всю мою технологию "Дракон-Ардуино", а не отдельные пробные эпизоды. мне кажется, что пока рановато выставлять всё на обозрение, много чего пока существует только в виде непроверенных концепций. не хочется оказаться в ситуации оправдывающегося, что "сыро, не очевидно, не проверено". реальные проекты буду показывать. например, сейчас ученики младших классов создают под моим руководством микроконтроллерные устройства. начальный уровень = 0. результат восьми занятий по 2 учебных часа покажу, когда завершим неделю.

Автор:  Владимир Ситников [ Вторник, 26 Март, 2019 22:58 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Дмитрий Бардынин писал(а):
В принципе, однопоточная система не занята другими действиями, и можно поправить её на такую конструкцию:
Вложение:
клиент2.JPG


Всё правильно говорите, но вы не учитываете, что и в однопоточной и в многопоточной системе система может переключаться на "другие" задачи, а к этой схеме возвращаться лишь изредка и проверять "не свершилось ли условие".

Проблема "бегунок бегает" не существует. Это вымышленная вами проблема.

Дмитрий Бардынин писал(а):
Пауза с условием выглядит гораздо лаконичнее, и Бегунок при это не нарезает круги по диаграмме:

Вот не сказал бы. Вариант 2 как раз понятнее. Если его кому-нибудь показать, то он прочитает вопрос, прочитает подписи к веткам и поймёт, в каком случае что будет происходить.

Если же говорить про паузу, то мало того, что без пол-литра не понять, что это пауза, так ещё непонятно чего она ждёт. Перехода условия в true или в false?
Мысль про схему3 интересная (как бы сокращаем целую стрелку!), но, по-моему, в той схеме легко ошибиться, и невозможно понять "чего хотел автор" (перехода в true или в false).

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

Автор:  Дмитрий Бардынин [ Среда, 27 Март, 2019 15:06 ]
Заголовок сообщения:  Re: Опыт использования связки Ардуино&Дракон

Владимир Ситников писал(а):
в однопоточной ... системе система может переключаться на "другие" задачи
"высший пилотаж" не рассматриваем. для детей "Ардуино" - однопоточная система без прерываний.

Владимир Ситников писал(а):
Проблема "бегунок бегает" не существует. Это вымышленная вами проблема.
Эта не проблема. Бегунок - термин, применяемый в базовой книге по ДРАКОНу: "Учись...". Он может перемещаться по шампуру, а может быть остановлен. Я показал как.

Владимир Ситников писал(а):
Вот не сказал бы. Вариант 2 как раз понятнее. Если его кому-нибудь показать, то он прочитает вопрос, прочитает подписи к веткам и поймёт, в каком случае что будет происходить.

Никто не заставляет применять только один вариант. Кому-то покажется логичнее Пауза с условием внутри. Мнемо-правило простое: "Истинная Пауза - тормозит, Ложная Пауза - пропускает". Это просто понять и запомнить. Но я не настаиваю, можно и предать забвению такой вариант. У меня он экспериментальный, и пока кажется мне удобным и понятным.

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

Так вы и описали базовый принцип работы булевой Паузы, только застреваем мы на ней, пока TRUE. Использовать обрезанный вопрос, как мне кажется, хуже, потому, что Вопрос - это развилка. Если он будет мутировать до Паузы/Прерывателя, то это хуже, на мой взгляд, чем просто применение "Истинной Паузы".

Страница 2 из 5 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/