DRAKON.SU https://forum.drakon.su/ |
|
Можно ли подружить язык ДРАКОН и Ардуино? https://forum.drakon.su/viewtopic.php?f=233&t=5671 |
Страница 2 из 7 |
Автор: | Владимир Паронджанов [ Четверг, 14 Апрель, 2016 16:51 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Цитата: в ваших кругах много говорится про Р-Технологию от института Глушкова, но на сайте glushkov.org я ничего найти не смог .. если есть какие-то ссылки детального описания этой технологии и работ Вильбицкого - тоже буду очень признателен. Р-технология Игоря Вельбицкого см. viewtopic.php?f=62&t=4047 |
Автор: | adva [ Четверг, 14 Апрель, 2016 17:12 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Степан Митькин писал(а): adva писал(а): Основной корифей здесь — Олег Гарипов. http://www.integratorspace.com/ Почему-то по данному адресу ничего не открывается |
Автор: | Arhat109 [ Пятница, 15 Апрель, 2016 12:32 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Всем, привет. Наконец-то меня зарегистрировали и далее не требуется обращаться к В.Д. за перепостом. Какой форум предпочтительней: раздел на easyelectronics или этот? Судя по тому, что сообщения оттуда переносились сюда, решил что правильнее далее писать тут. Это верно? По ссылке: http://www.integratorspace.com/ -- у меня все открывается, но только "раз в сутки". Не знаю почему, но повторно зайти на этот ресурс не удается. Только "на следующий день". |
Автор: | Arhat109 [ Суббота, 16 Апрель, 2016 07:48 ] | |||
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? | |||
Редактор "ИС ДРАКОН" от Тышова. Таки не без "граблей", но удалось сделать первый скетч для Ардуино и даже скомпилять и залить его в контроллер. Впрочем, ничего криминально сложного не оказалось. Порядок действий для тех кто захочет повторить сей "подвиг" (можно оформить в ДРАКОНЕ и сделать заставкой к программе вместе бесполезных текстов): -1. Скачать архив с программой и распаковать *всё* в папку, где он и будет жить далее; 0. Создать (ручками в ОС) папку для хранения проектов (не нашел где указывается в программе как папка проектов); Запустить редактор. Это можно вынести на заставку редактора при первом запуске (вместо бесполезной сейчас текстовки): Первый запуск (важно!): 1. Откройте меню "Справка"->"Установить" и выбрать куда: "на компьютер" и/или "на флешку" (втыкнуть!); Начало работы: 2. Создайте новый лист: меню "Файл"->"Новый"; 3. Сразу же(!) сохраните его "Файл"->"Сохранить как", указав путь до папки сохранения (или перейдя в неё) и название листа без расширения; 4. Скопируйте туда же файл с описанием целевого языка из папки Prg_Lang каталога Дракона; 5. Правая кнопка мыша на пустом месте листа - вызывает "контекстное меню" (КМ); 6. В КМ выберите "Гном" появится схема "Гном" из 3-х икон: "Заголовок", "Модуль"; 7. Придумайте уникальный заголовок всему модулю на схеме Гном; 8. В тело модуля напишите это (именно так в 3 строчки): /myProgs/main.c Prg_C.lpr Blink.drt Здесь: 1 строка - путь и название файла куда будет компилироваться программа 2 строка - название файла целевого языка компиляции 3 строка - название вашего файла, куда вставляли схему "Гном" 9. В третий слева квадратик снизу иконы Модуль впишите это: #include "arhat.h" ==== // конец модуля Здесь: 1 строка(и) - все необходимые предварительные команды, которые будут вставлены ДО тела компиляции ==== - обязательный разделитель "ДО" и "ПОСЛЕ". НЕ УДАЛЯТЬ! последняя строка - обязательный комментарий, можно пустой. 10. И только теперь, Вы можете добавлять интересующую для разработки схему "Примитив" или "Силуэт" и начинать заполнять её. 11. В выбранной схеме точно также есть программный код (третий квадратик в самом верху иконы) , который точно также содержит разделитель ====. То что сверху - ДО тела компиляции, то что снизу - ПОСЛЕ. Сюда можно вписывать название функции схемы с параметрами и начальной открывающей скобкой и после ==== не забыть проставить закрывающую тело функции скобку тоже. Возможно я только начал освоение и написал глупость .. но мне так остался непонятен шаманский смысл этого алгоритма, который к тому же не описан нигде целиком .. только кусками по разным видео, темам и разных(!) форумов. Почему начальные действия нельзя вынести на заставку программы и править их по мере изменения программы - мне не понятно. Осталось также непонятным зачем нужны слои комментария "А" и "Б", да ещё и в купе основным слоем ДРАКОН, который по сути ничем, кроме как комментарием тут не выступает. (Ожидалось что привязка к языку позволяет упростить писание кода в терминах языка .. этого нет ни разу, есть только усложнение такового). Также осталось непонятным КАК можно включить отображение на иконах того или иного слоя? Можно ли писать непосредственно в икону, а не "в нижнее окно редактора"? Похоже что нет. В целом, огромная благодарность автору за его труд, сделано реально много и наверное хорошо. У меня под wine только трижды вывалил "исключение нарушения адреса", но ни разу не вывалился окончательно и все три раза были связаны с моими попытками запустить что-то, не указав чего-то важного .. то есть нарушив порядок описанный выше. Есть смысл дополнительно проверить ветки на контроль параметров, где запускается компиляция, в условиях не заданного модуля, имени файла, языка и т.д. Как итого: Невозможность увидеть код, да вкупе с тем, что переменные никак не фигуряют в теле икон, практически исключает использование ребенком этого редактора. Утерять, использовать переменную без инициализации, а потом вылавливать ошибки исполнения .. увольте. По сути, вся наглядность языка ДРАКОН исчезает из-за этого недостатка: код никак не зависит от схемы. Никаких изменений в создании ДРАКОН-схемы при указанном языке модуля - я не обнаружил. То есть, как понимаю, предлагается сначала создать ДРАКОН-схему на естественном языке, а потом присобачить к ней код реализации на том же самом С++. Для простых алгоритмов это наверное можно, но не понимаю "зачем" .. а для сложных, с классами, обработчиками прерываний .. автоматами (и не одним) .. это чревато сложно вылавливаемыми ошибками. В общем, скетч сделал, скомпилял, всё получилось. Для прикручивания к Ардуине ничего собственно не надо делать "особенного". Для этого надо иметь: а) Образец ДРАКОН-схемы с уже заготовленными иконами: "Гном"[#include "Arduino.h"], "Примитив"[main()], "Примитив"[setup()] и "Примитив"/"Силуэт"[loop()] б) В описании модуля надо указывать целевой файл как *.ino или *.cpp и потом переименовать в *.ino (я делал так) в) полученный результат можно будет компилировать средствами Ардуино ИДЕ.
|
Автор: | Arhat109 [ Суббота, 16 Апрель, 2016 09:40 ] | ||
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? | ||
Да, ещё. Прикладываю первую программку, написанную ребенком с использованием ИС ДРАКОН
|
Автор: | Владимир Паронджанов [ Суббота, 16 Апрель, 2016 10:02 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
В сообщении Arhat109 сделал важные критические замечания и предложения по программе "ИС Дракон" и задал ряд вопросов. Желательно тщательно рассмотреть замечания и предложения, а также ответить на вопросы. Особенная просьба ответить: к Геннадию Тышову, к LKom, к Сергею Ефанову и другим специалистам. |
Автор: | Владимир Паронджанов [ Суббота, 16 Апрель, 2016 11:06 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Arhat109 писал(а): ... как понимаю, предлагается сначала создать ДРАКОН-схему на естественном языке, а потом присобачить к ней код реализации на том же самом С++. Для простых алгоритмов это наверное можно, но не понимаю "зачем" .. а для сложных, с классами, обработчиками прерываний .. автоматами (и не одним) .. это чревато сложно вылавливаемыми ошибками. Интересное замечание. Желательно его обсудить.Остановлюсь на первой части текста. Для простоты сформулирую так: Arhat109 писал(а): ... как понимаю, предлагается сначала создать ДРАКОН-схему на естественном языке, а потом присобачить к ней код реализации на [целевом языке] Да, это так. Какая цель? Цель — сократить число ошибок, получить (по возможности) безошибочный результат. За счет чего? Составляя "ДРАКОН-схему на естественном языке" мы (почти совсем) исключаем ошибки, связанные с разветвлениями и циклами. Несколько преувеличивая, можно сказать: Цитата: «ДРАКОН предотвращает ошибки на ветвлениях и циклах» Что же остается? Остаются ошибки только на линейных участках. Это основная мысль. Наверно, с этим можно спорить. Возможно, нужны какие-то оговорки. В основе моих рассуждений лежит постулат: Цитата: 1. Самые трудные ошибки связаны с разветвлениями и циклами. 2. Обнаружить ошибку на линейном участке, как правило, легче, чем ошибку при ветвлениях и циклах. Arhat109, что Вы об этом думаете? У Вас, наверно, есть возражения? Какие? |
Автор: | LKom [ Суббота, 16 Апрель, 2016 11:49 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Вложение: Уроки.png Вот вариант программы от сына Arhat109, с заменой цикла параллельными действиями. Выключен режим Программирования и отключено отображение "А-, Б-, П-, С-текстов". ---- Для тех участников форума, кому интересен Дракон. На схеме имеется выполнение параллельных действий одним исполнителем. Исполнитель сам устанавливает последовательность выполнения, то есть определен набор действий без указания последовательности выполнения. Применительно к Дракону, данная возможность выполнения параллельных действий на форуме не обсуждалась. У andr, приводился пример вычисления суммы функций, функции при этом могут вычисляться одновременно. |
Автор: | Владимир Паронджанов [ Суббота, 16 Апрель, 2016 12:55 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Я получил письмо от Сергея Дмитриевича Ефанова, мнением которого я очень дорожу: Цитата: Re: ИС Дракон Ефанов Сергей <...@lipetsk.ru> Кому: Паронджанов Владимир сегодня, 11:41 Здравствуйте, Владимир Даниэлович. Я полностью согласен с замечаниями в адрес ИС Дракон, высказанными Arhat109. В высшей степени желательно, чтобы уважаемый LKom ответил по существу на чрезвычайно важные и глубокие замечания Владимира Arhat109 и Сергея Ефанова. |
Автор: | Arhat109 [ Суббота, 16 Апрель, 2016 13:36 ] | ||
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? | ||
Владимир Даниэлович, наверное я был несколько опрометчив, поскольку конечно же Вы правы: ДРАКОН полезен безусловно, как средство формирования Алгоритма (любого, абстрактно) автором, который может даже и вовсе не искушен в программировании. Упрощает ли ДРАКОН программирование по уже составленному алгоритму? Боюсь Вас разачаровать, но мне этот момент не виден в применении к конкретно этому редактору. Даже в части ветвлений и циклов, а не только действий. И дело в том, что код программы "упрятан" в квадратики. Привел пример следующей, ещё недоделанной программы. Как видим, ребенок начал с вопроса "линия справа" .. а ведь для того чтобы ответить на этот вопрос предварительно надо опросить датчик (получить значение), и только потом выяснять "черное" или "белое" .. тем не менее: можно ли реальзовать этот вопрос "линия справа?"? Угу, легко. Надо лишь в "квадратик кода" записать не сравнение, а составное условие: (digitalRead( leftSensor ) == IS_BLACK) .. и фсё. Видно ли это на ДРАКОН-схеме? Нет! Есть ли тут "ошибка"? Да! Дело в том, что далее, надо снова принимать решение (тут этого блока ещё нет) и придется повторно считывать датчик .. но машинка в движении и значение датчика уже, внезапно, относится к иному месту на трассе. Правильно записать условие так: ( (ls=digitalRead( leftSensor )) == IS_BLACK) но .. имеем прямое нарушение принципов ДРАКОН-схемы: реализация ДЕЙСТВИЯ внутри проверки условия. Да, на "С" так пишут и часто ..
|
Автор: | LKom [ Суббота, 16 Апрель, 2016 13:38 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
http://forum.oberoncore.ru/viewtopic.php?p=95672#p95672 Владимир Паронджанов писал(а): В высшей степени желательно, чтобы уважаемый LKom ответил по существу на чрезвычайно важные и глубокие замечания Владимира Arhat109 и Сергея Ефанова. Не уверен, что у Владимира Arhat109 замечания являются "чрезвычайно важными и глубокими". Суета наблюдается.Может быть подождем, когда Геннадий Тышов ответит Владимиру Arhat109 и Сергею Ефанова. В.Д. Паронджанов, вы торопитесь разбираться. Владимир Arhat109 быстро осваивает язык Дракон и ИС Дракон или выберет ДраконЕдитор. Возможно после освоения будет меньше вопросов. |
Автор: | Arhat109 [ Суббота, 16 Апрель, 2016 16:02 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Да, согласен. Ни разу не претендую на "важность" своих вопросов. |
Автор: | Владимир Паронджанов [ Воскресенье, 17 Апрель, 2016 09:51 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Степан Митькин писал(а): adva писал(а): А есть идеи по поводу удобного представления данных? Идеи есть. Причём реализованные. Основной корифей здесь — Олег Гарипов. http://www.integratorspace.com/ Участник нашего форума Олег Гарипов (Olegar) делает доклад на ютубе (видео): https://www.youtube.com/watch?v=gOQ690wKWbM Еще одно видео Олега Гарипова (Olegar): https://www.youtube.com/watch?v=koK2LCyF_IM Напоминаю. Олег живет и работает в Канаде, город Галифакс (Новая Шотландия). |
Автор: | Arhat109 [ Воскресенье, 17 Апрель, 2016 10:05 ] | |||
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? | |||
Спасибо, вот и у меня возник вопрос как отражать "контекст исполнения" (данные) в ДРАКОН. Привожу прямое переложение на ДРАКОН нашего робота по линии, который готовился к Робофесту .. возможно где-то именование данных расходится промеж себя .. прошу прощения, делалоль "наспех", в целом должно быть понятно.
|
Автор: | LKom [ Воскресенье, 17 Апрель, 2016 10:17 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Икона 6 - "Главный цикл", но нигде в схеме не видно наличие цикла. В языке есть средства для отображения различных видов циклов. Желательно и надо использовать. |
Автор: | Arhat109 [ Воскресенье, 17 Апрель, 2016 10:20 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Здесь, так и осталось непонятным как работает префикс "Синхронизатор" .. он действует на весь переключатель или "до куда"? По идее, хотел выразить что весь блок до иконы "Конец" выполняется с заданной периодичностью. Создать функцию "поворот" и посмотреть как прописываются параметры мне не удалось, программа не позволяет ввести текст в икону "ЗАголовок" .. как понимаю, следствие "демо версии". Описал заголовок комментарием. Так и остался непонятным вопрос как вместо текстов ДРАКОН увидеть текст программной реализации на иконах. Это тоже ограничение демо-версии? Если нет, то несмотря на всю прелесть работы с графическими элементами, редактор мало пригоден к реальной разработке. Ещё, я бы разрешил писание текста прямо в иконе .. неудобно прыгать между окном редактора и иконой и не всегда очевиден режим .. пометка к заголовку. Но это - "мелочи" с предыдущим. Расхождения в представлении данных тут. Полноценная среда программирования выдает подсказки в таких случаях или позволяя выбрать предыдущее написание из найденных или показывая что "символ не определен" .. что сильно помогает в разработке сложных систем. Решению подобного вопроса (как понимаю не решен ни в одном редакторе), мне кажется, надо уделить основное внимание. Может быть использование "полок", нет? LKom, это особенность программирования Ардуино ИДЕ в среде wiring: пользователь среды создает 2 функции setup() -- тут схема "Настройка", и loop() - тут "Главный цикл". В квадратиках "код" - это и прописано, но я так и не нашел способа как это отразить на схеме. Функции main() у Ардуино нет совсем, ибо она "встроенная" в Wiring. В целом, мне удалось разобраться с большей частью вопросов самостоятельно и за достаточно короткий срок, что однозначно говорит о полезности инструмента и его хорошей проработке. Особых проблем не возникло. Но без возможности видеть текст программы на иконах - лично для меня он практически бесполезен. |
Автор: | LKom [ Воскресенье, 17 Апрель, 2016 10:30 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Arhat109, у Вас контакты с Геннадием Тышовым есть? Пообщайтесь. Программа работает без ограничений. |
Автор: | Ильченко Эдуард [ Воскресенье, 17 Апрель, 2016 11:55 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Arhat109 писал(а): Спасибо, вот и у меня возник вопрос как отражать "контекст исполнения" (данные) в ДРАКОН. Я использую Полку. Например, в tracer: Вложение: lt_02a.png [ 81.27 КБ | Просмотров: 15483 ] Вложение: lt_01a.png [ 485.81 КБ | Просмотров: 15483 ] Вложение: lt_03a.png [ 13.22 КБ | Просмотров: 15483 ] |
Автор: | Arhat109 [ Воскресенье, 17 Апрель, 2016 12:59 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Спасибо, тоже решил что так наверное можно. Пообщался с Тышовым по скайпу, некоторые вопросы оказались "моей болезнью роста", в смысле я нашел некий "свой" способ создания программы в "ИС ДРАКОН", поэтому он не всегда реагировал ожидаемо. Часть вопросов является следствием моей привычки к иным средствам разработки, которые "продвинуты" гораздо дальше (автоподстановки, автоконтроли областей видимости, переменных, методов, классов; автоформатирование, автодокументирование и т.д.) .. Но часть вопросов, оказывается носит системный характер, в частности отсутствие возможности читать программный код непосредственно в иконах. А часть вопросов была связана с уже сложившимся применением редактора как-то: назначение А и Б блоков и наличие множественных колонтитулов или методика перемещения по схеме с клавиатуры. Кстати, колонтитулы тоже можно активно использовать для комментирования контекста исполнения. К сожалению, средств контроля потока данных тут не предполагается ни из колонтитулов ни из полок .. это только ещё один вид "комментария" к алгоритму. Вот и получается: комментариев - тьма, а программу посмотреть "негде". Сделано строго, согласно выражению автора: "Коментарии гораздо важнее алгоритма" (который сам по сути .. тоже "комментарий"). Отсутсвие возможности смотреть код непосредственно в иконах (утеря наглядности), практически отсутствие понятия "проект" (риск смешения файлов компиляции: "что открыто, то и есть проект") для моих целей обучения сына программированию пока ставит крест на этом инструменте. В связи с тем, что автор отвечает на другом форуме, дальнейшее обсуждение ИС ДРАКОН предлагаю вести на easyelectronics. В общем, пока для себя ИС ДРАКОН закрыл. Буду смотреть остальные редакторы. |
Автор: | LKom [ Воскресенье, 17 Апрель, 2016 13:59 ] |
Заголовок сообщения: | Re: Можно ли подружить язык ДРАКОН и Ардуино? |
Arhat109 пообщался с Тышовым, остались -
2. 3. Фабула. 4. DRAKON Editor. |
Страница 2 из 7 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |