Добрый день. Уважаемые форумчане, с ардуино я не знаком вообще, однако стоит задача на микро контроллере собрать обучаемую систему. Есть ли возможность не только запрограммировать контролер ардуино, но заставить его запоминать действия? Это для общего понимания мне стоит рыть в этом направлении или искать другие контролеры. Сейчас подробнее о том что я хочу сделать. Предположим я своял платформу на 2х шаговых двигателях. Она понимает как повернуть ровно на 90 градусов влево/вправо, двигаться вперед назад, Все эти команды она может выполнять с пульта, а так же она может двигаться прямо, от маяка до маяка. Естественно код описывающий реакцию на нажатие определенных кнопок с пульта я пропишу. Теперь конструкция собрана. Включил ардуино. Нажал вперед на пульте он поехал, нажал вправо он повернул направо на 90 градусов, нажал ехать до маяка (допустим до белой полоски под днищем робота) дале едем опять прямо пока не наткнемся на еще одну полоску) теперь поворачиваю еще раз направо опять еду прямо до белой полоски, опять направо повернул, опять проезжаю две полосы опять поворачиваю направо, еду до синей полосы (финиш). И теперь могу ли я каким то образом заставить ардуино зщапонмить праделанный маршрут? Для того что бы в дальнейшем ездить по нему? Чисто интуитивно я предполагаю что такая возможность есть например задействовав какие нибудь глобальные переменные. Ну типо поворот на 90 градусов в право допустим переменная П1 присваиваем значение константы описывающей поворт на право. Хз смог ли я обьяснить то что хотел. Ну если еще более понятно, С пульта я отправляю например сигнал (запись действий) теперь еду прямо 5сек например, далее пультом поворачиваю 180 градусов, опять еду 5 сек. опять поворачиваю на 180 градусов. Нажимаю на пульте зщапомнить действие. И теперь скажем если я на пульте нажму на кнопку повтор, робот выполнит данное действие. Как то так. Скорее всего нужно использовать две ардуино, одна в качестве программатора будет выступать а вторая в качестве ядра робота, там типо и будут описаны основные правила поведения работа при нажатии на кнопку с пульта ту или иную (кароч обработчик событий) и как раз таки программатор МК ардуино номер два считывает допустим цифровой сигнал, запоминает последовательность сигналов и потом при нажатии на кнопку записать и выполнить отправляет их обработчику Плате номер один на выполнение... Вообщем тот бред который я описал выше если кто то понял и кому то хватило терпения дочитать все до конца, если возможен на ардуино, просьба просто скажите да такое возможно, или нет ты псих иди лечись. И я буду искать либо какие то альтернативы, контролеров, или же начну досканально вникать во взаимодействие шилдов. А если это возможно и вы ткнете скажем носом в нужное направление то +1500 к карме.
Действия робота определяются последовательностью команд, вам ее и нужно запомнить. Для хранения можно использовать, например, EEPROM, если она не очень большая, либо внешний EEPROM/FLASH если встроенного не хватит.
Ваше описание задачи занимает больше места, чем реализация Сохраняйте в массив или в епром код события и время его наступления от начала записи. Потом при повторе просто выбираете из массива время до следующего события, ждете это время и выполняете событие по его коду. Все просто.
Запомнить кусочек информации - не проблема. Как уже писали, EEPROM. А вот воспроизвести маршрут - это уже довольно сложно, потому что любая мелкая неточность, вызванная внешним фактором, безнадежно собьет вашего робота с курса. Чтобы с этим бороться, нужно обвешивать робота датчиками, и быть виртуозом программирования.
Огромное спасибо за ответы. Если это реализуемо начну копать дальше тогда в сторону аппаратной части. Что касается точно выполняемых действий и окружающей среды. Я для примера упростил выполняемый и записываемый алгоритм роботом. На самом же деле я понимаю что, тут потребуется как минимум ультра звук, для того что бы двигаться от стены или произвольной направляющей на определенном расстоянии, так же необходимо будет множество условий. (проверить на наличие преград (колесо попало в яму и робат остановился), изменилась скорость движения, садиться аккумулятор, и т.д.). Ну и соответственно потребуются датчики и их обработка. Начиная от поворота на 90 градусов, ик датчики определить линию (она же маяк) , определить частоту вращения колеса (она же скорость). Это я все прекрасно понимаю. На самое главное вы ответили и спасибо вам еще раз. Контролер сможет выполнить повтор действий. Ранее естественно описанных в нем.