среда, 6 апреля 2011 г.

Робот для состязаний: отладка робота-сортировщика

В ходе программирования робота-сортировщика может случиться такая ситуация, когда определить характеристики кубика не представляется возможным:
  • сломался цветовой сенсор
  • недостаточно кубиков для прогона полной программы
  • кубики не тех цветов
  • нет кубиков вообще
  • трудности с определением характеристик кубиков
  • вообще пока не понятно, как определять цвета и размеры кубиков
Даже если такое случилось – возможность тестировать работу сортировщика все еще есть. Для этого можно эмулировать определение характеристик кубиков. Т.е. в в программе, вместо настоящей работы с сенсорами будет происходить нечто, результатом чего будут точно такие же характеристики, как-будьто они были определены автоматически.

Самый простой способ такой эмуляции – генерировать характеристики случайным образом. В случае, когда цвет и размер кубика формируют уникальный код, можно просто использовать блок Random, вместо блока опроса сенсоров:


Еще один способ - определить несколько переменных (в данной заметке рассматривается только вариант с NXT-G, т.е. массиви – не вариант), в которых задать характеристики. Каждый новый кубик тогда будет определяться новой переменной, а получение значений будет подобно тому, как это было описано в предыдущей заметке


Способ, который можно использовать на самых последних этапах отладки робота – задавать характеристики кубиков вручную с помощью кнопок на NXT блоке каждый раз перед запуском робота. Такой способ позволит протестировать всевозможные комбинации кубиков без необходимости перекомпилировать программу.

В данном примере, с помощью кнопки вправо, можно выбрать соответствующий кубик. Номер строки, в которой происходит выбор, соответствует номеру кубика в мусорке. Каждая выбранная характеристика для кубика в виде кода попадает в переменные. Переменная Cube1 содержит характеристику 1-го кубика, Cube2 – второго кубика и т.д.

После выбора всех кубиков экран будет выглядеть следующим образом:


Переменные можно будет использовать через блок разветвления. Для запроса характеристик определенного кубика нужно просто обратиться по его номеру:

Комментариев нет:

Отправить комментарий

Related Posts Plugin for WordPress, Blogger...