Веб-тренажер arduino
- Войдите на сайт для отправки комментариев
Здравствуйте! Не так давно появилась идея создания он-лайн тренажера для Arduino. Я веду лабораторные занятия в универсистете по курсу "Организация обмена информацией". В этом курсе активно используется Arduino в качестве удобной платформы для разработки и тестирования алгоритмов. Хотелось бы дать возможность заочникам, вечерникам проверять свои программы без доступа к плате. Пока готов прототип программы:
Симулятор целиком написан на JavaScript на основе интерпретатора http://math.chapman.edu/~jipsen/js/ и графической библиотеки Raphael http://raphaeljs.com Алгоритм работы следующий:
1. Пользователь вводит текст программы в левую колонку
2. Нажимает кнопку Запуск. При этом текст из языка Arduino конвертируется в чистый JavaScript и интерпретируется.
3. Результаты смотрит как в консольном окне, так и на самом изображении платы.
Также существует возможность проверять результаты выполнения программы (Check-Box Проверка). После выполнения программы пользователем выдается сообщение о выполнении задачи или провале. Сейчас реализованы три задачи: управление светодиодом, устранение дребезга кнопки, считывание матричной клавиатуры. Хотелось бы узнать мнение общества на подобный проект и есть ли желающие поучаствовать в нем.
Мысль хорошая, но лучше ограничить эмуляцию десятком стандартных эффектов "для начинающих". Кому будет интересно - лучше сразу переходить к железу, а чтобы понять это - достаточно того десятка эффектов.
Вы правы Андрей, что нужно ограничиться базовыми функциями для начинающих, однако когда у вас в группе человек 15-20, надо всех обеспечить компьютерами, Arduino, макетными платами с датчиками, тут вопрос становиться трудно решаем. Целью тренажера должно быть освоение алгоритмов обработки данных с использованием Arduino, а потом закрепление знаний на промежуточных "сложных" лабораторных работах со всеми необходимыми датчиками. Вот пример устранения дребезка кнопки:
Пример кода взят из книги Arduino CoockBook. Вместо того, чтобы студент долго разбирался на реальном устройстве с дребезгом, можно сам алгоритм его устранения отработать автономно.
Значит теперь студенты смогут делать лабораторные прямо из дома? отлаживать алгоритмы и все такое? здоооорово ))
К сожалению поучаствовать готов только в качестве бета-тестера ;)
Спасибо за такую инициативу, постараюсь выложить бета версию на какой-нибудь бесплатный хостинг, чтобы можно было "пощупать". Скину ссылку
Прототип выложен, конечно там много не доделано, так что не судите строго: http://kafedra11.16mb.com/ArduinoTest/
Думаю как аккуратнее добавить электрические схемы заданий. Из текущих возможностей:
1) Цифровой ввод/вывод
2) Вывод на консоль через методы класса Serial (print,println)
3) задержки, стандартные математические функции, массивы
4) пользовательские функции
Ответ для задания 2:
Ответ для задания 3:
С точки зрения логики программирования - последний if надо заменять на esle. :) Иначе какая-то мысль незаконченная получается.
Все условия в примере развязаны, хотя более корректный вариант, конечно:
Еще вариант, с массивом: