Программирование лазера
Лазер может работать как простая указка. В настольных играх, например, он может указывать фигуру, которую робот хочет переместить. Другое его применение связано со сканированием рабочей области. При Прохождении лабиринта портальный робот использует лазер для сканирования плана лабиринта с его сохранением в памяти. Затем он логически решает задачу, и с помощью лазерного луча указывает путь выхода Из лабиринта.
Лазер также может работать совместно с камерой.
Программирование камеры
Камера содержит фоторезистор, включенный как делитель напряжения. Он может использоваться для измерения уровня яркости лазерного луча, отраженного от объекта (игровая фигура, игровая доска, план лабиринта) в рабочей области. Вместо лазера в качестве источника освещения может использоваться один либо большее число светодиодов, а также окружающее освещение комнаты.
При использовании камеры карта или другой целевой объект лучше всего распознается, когда он удерживается на уровне 60 мм под объективом камеры, всегда в фокусе.
Для различения между белым (или светлым тоном) и черным (или темным тоном), выходно сигнал цепи датчика подается непосредственно на компаратор микроконтроллера PIC2 (RA1, вывод 18). Регистр CM1CON0 конфигурируется. Регистр VRCON устанавливается на уровень, отличающий черную область от белой.
Для различения нескольких цветов (по их яркости) выходной сигнал подается на один из 12 каналов АЦП микроконтроллера PIC1 или PIC2. Соединения платы PIC2 со входами PIC1 при этом следующие: ХО на AN4 (вывод 16); XI на AN 11 (вывод 12) и Х2 на AN0 (вывод 19).
Для настройки схемы используйте тестер для измерения выходного напряжения при различаемых рабочих условиях. В случае применения компаратора используйте полученные замеры для вычисления опорного напряжения для VRCON, которое должно быть посередине между двумя уровнями. В программе считывайте разряд CM1CONO, который должен содержать 0 для черного и для белого цвета.
При использовании АЦП на основании полученных замеров вычисляйте аналоговые значения, отличающие различные цвета.
Реализуйте подпрограмму ветвления «Если А > В», которая на основании полученных значений будет обрабатывать результаты съема данных в процессе работы программы.
После небольших экспериментов можно научиться различать черный и белый цвета, а также один или два оттенка серого (или другие цвета, наподобие красного и зеленого).
Эта способность полезна в игровых программах при идентификации игровых фигур, принадлежащих двум игрокам (человек и робот), а также черных и белых квадратов на доске.
Источник: qwedr.com