Angel71 » 04 дек 2016, 10:31
Dmitry__, в пень эту болтологию с частичками души и ии. простая задача и в реальной ситуации можно было проще реализовать на си или ещё чём. но он же ищет на чём делать для разных задач, так что немного усложнив для машинки можно посмотреть, на сколько этот вариант с клипсом подходит. то, что "луноход" простой как валенок это да, только для разных задач и выбор более подходящего подхода может отличаться. из полезного на практике может пригодится прерывание выполнения, параллельные задачи, прокладка маршрута, как организовывать работу с ресурсами у которых возможен только монопольный доступ, хранение и обработка данных об истории действий и/или окружающей среде.
некая простенькая платформа на колёсах или гусеницах, перемещение по клеткам. 3 светодиода (2 индикация поворота, третий для общей индикации). использовать или нет бамперы, дальномеры, энкодеры, датчики цвета,... то другой момент.
1) выполнения списка задач на подобии: из начальной клетки проехать вперёд 2, повернуть направо, проехать вперёд 1, повернуть налево, включить "общий" светодиод, проехать вперёд 4, включить "общий" светодиод. все повороты в этом режиме на 90 градусов и при поворотах мигать соответствующим сетодиодом.
2) из начальной клетки проехать в клетку с определёнными координатами. на пути могут быть клетки "препятствие", которые нужно объезжать. если есть путь, остаться в целевой клетке, если нет, вернться в изначальную.
3) при нажатии на кнопку или получении команды по проводам/радиоканалу начать мигать всеми тремя светодиодамим. при повторном нажатии или получении этой же команды (или команды отмены) прекратить мигать диодами. это будет допустим симуляцией поведения при разряде аккумулятора.
4) опять кнопка/радиоканал. получена команда вернуться в изначальную клетку. текущее выполнение других (всех или только определённых, допустим 1 отменить, а 3 нет) задач полностью прерываются, без дальнейшей возможности выполнения. пока не получена другая команда для отмены этого режима, никакие не отменяемые режимы/задачи не могут выполняться.
5) как и 4, только после получения команды отмены этого режима, прерванные задачи/режимы должны продолжить свою работу. с вариациями. 1 может начать выполняться с начала или проехав в точку в которой было прервано выполнение продолжить выполнение по списку. 2 может вернуться в клетку и продолжить движение в заданную клетку или по полученным данным (клетки в которых можно перемещаться и клетки "препятствие") проложить новый путь.
при прерывании два