DRAKON.SU

Текущее время: Четверг, 26 Апрель, 2018 04:42

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 11 Декабрь, 2017 14:09 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 9
Откуда: Астрахань
Настоящая тема предназначена для обсуждения способов скрещивания драконовских схем со средой программирования Arduino IDE. Начну её с рассказа о наших экспериментах с обучением детей младшего школьного возраста основам программирования микроконтроллеров.

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

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

В итоге, мы пришли к следующим функциям генератора:
- конвертация русских букв в латинские; (это позволило задавать имена переменных и названия функций на понятном детям языке)
- генерация стандартных имен и названий; (типы переменных, главные функции loop и setup мы тоже переименовывали автоматически)
- создание файла со стандартным расширением ino;
- создание корректного заголовка программы;

Параллельно пришлось несколько поправить логику работы основной программы редактора, разрешив обработку отдельных блоков, например ПАУЗА.

Процесс написания программы сводился к следующему: рисовалась общая диаграмма работы программы, с последующими уточнениями, затем создавались примитивы с низкоуровневыми командами для исполнения на языке Wiring. В дальнейшем эти блоки служили строительным материалом для наполнения более сложных примитивов и силуэтов. В процессе отладки диаграмм разработчик просто регулярно использует пункт меню "Генерировать код", и открывает результат с помощью Arduino IDE. После код загружается в микроконтроллер.

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

Если тема интересна, то могу привести пример программирования, например, можно написать программу BLINK.

Список примитивов, использованных в проекте

Вложение:
Комментарий к файлу: Список примитивов, использованных в проекте
image (1).png
image (1).png [ 37.08 КБ | Просмотров: 292 ]
Вложение:
Комментарий к файлу: Список примитивов, использованных в проекте
image (1).png
image (1).png [ 37.08 КБ | Просмотров: 292 ]


Вложения:
Комментарий к файлу: Блок "Линия", использующий два параметра
image.png
image.png [ 39.96 КБ | Просмотров: 292 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 11 Декабрь, 2017 14:25 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 9
Откуда: Астрахань
На данный момент подобным образом работаем редко, т.к. моей квалификации как программиста явно не достаточно для качественной переработки кода редактора. Автор, к сожалению, не проявил интереса к развитию программы по нашим предложениям, поэтому, если найдутся желающие довести технологию до презентабельного вида, то буду всячески содействовать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 11 Декабрь, 2017 15:26 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3623
Откуда: Москва
Дмитрий Бардынин писал(а):
Автор, к сожалению, не проявил интереса к развитию программы по нашим предложениям

Дмитрий, просьба пояснить, в чем заключаются ваши предложения по развитию программы Степана Митькина.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 11 Декабрь, 2017 15:46 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 9
Откуда: Астрахань
Пару лет назад мы довольно обстоятельно обсудили тему, я выслал ему файлы со своими правками. Описал технологию. У меня существует список 2DO, чтобы довести до беспроблемной работы с технологией неподготовленного пользователя. В последнем письме от 30/11/2015 я предложил ему дополнить программу опцией перетаскивания блоков ВСТАВКА прямо из контекстного меню или из списка примитивов. К сожалению, больше на связь Степан не выходил, и я предположил, что он человек занятой, и ему пока не до того. Если он подключится к проекту, то я очень даже ЗА!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2018, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB