Данная работа посвящена разработке робототехнической модели под названием Simon (англ. Саймон) на базе конструктора Lego mindstorms.
Устройство загадывает (случайным образом) некоторую последовательность чисел (каждой из которых соответствует одна из четырех кнопок). Путем подсвечивания этих кнопок, игрок видит загаданную последовательность. Далее, после загадывания, игрок должен воспроизвести эту последовательность в том же порядке. Если ему это удалось, то число загаданных чисел увеличивается на единицу. В противном случае игра заканчивается. Вначале игры, загадывается всего одно число.
Разработать модель, используя имеющийся набор технических средств и программного обеспечения.
Для начала были собраны небольшие платформы, которые играли роль цветных плиток. Далее, закрепив четыре датчика касания на четырех больших сервомоторах, были получены конструкции, играющие роль кнопок в разрабатываемой модели. Такой тип конструирования был выбран не случайно. Так как датчики касания не могут реализовывать подсвечивания также, как кнопки в оригинальной версии игры Саймон, было принято решение закрепить их на моторах, которые путем последовательной передачи будут поднимать и опускать датчики касания, что позволит увидеть потенциальному игроку загаданную последовательность чисел.
Окончательно, соединив платформы с заготовленными конструкциями и главным блоком, обрабатывающим всю информацию, которая поступает с моторов и датчиков, мы получили готовую модель.
Разработать программное обеспечение
Процесс программирования заключался в создании структуры данных (массив), в который программа записывала, используя генератор случайных чисел, последовательность чисел. При этом, при загадывании некоторого числа, на соответствующий мотор подавался сигнал, в результате чего сам мотор совершал кратковременное вращательное движение, приподнимающее платформу. При этом раздавался характерный звуковой сигнал, различный для разных платформ.
После загадывания, начинался цикл, ожидающий, пока игрок не задаст последовательность нажатий в том количестве, в котором предусмотрено программой. После каждого щелчка также раздавался характерный звук, оповещающий игрока о том совершенном действии. Задаваемая игроком последовательность записывалась в другой массив.
В итоге, сравнивались два массива данных, которые при несовпадении, оповещали игрока характерным звуком. В противном случае, игра продолжалась.