Суть (Архив готовых домашних заданий)
Описание файла
Файл "Суть" внутри архива находится в следующих папках: Архив готовых домашних заданий, дз-2011. Документ из архива "Архив готовых домашних заданий", который расположен в категории "". Всё это находится в предмете "микропроцессорные устройства" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "микропроцессорные устройства управления" в общих файлах.
Онлайн просмотр документа "Суть"
Текст из документа "Суть"
Р асстановка сил: есть шахматная доска, 8х8. В левом нижнем углу стоит кучка шашек, каждая на своей клетке. Понятия не имею, сколько их там в действительности, я посчитал, что как на этой картинке (12 штук снизу).
ДЗ это 4 задания (отдельных друг от друга):
-
Переставить все шашки из одного угла в другой симметрично относительно диагонали, в глобальной СК WORLD.
-
То же самое, но более гибко. Робот обучается точкам O,X,Y доски (по ним задается плоскость) и все вычисления делаются относительно этой плоскости. Можно повернуть как угодно доску, переобучить новым точкам робота, а прога останется такой же. Прога для первой задачи так не может, ей критично, чтобы оси доски X и Y были параллельны осям WORLD.
-
Нужно переставить шашку из клетки I,j в клетку k,l. Но, информация о том, чему равны эти I,j,k,l передается по какому-то больному порту в виде отдельных байтов. Нужно аккуратно всосать эти байты и обработать их, чтобы все было хорошо.
-
То же, что и задание 2, только если робот в процессе перемещений напорется на какую-нибудь корягу/препятствие, нужно, чтобы он ускакал по соответствующему прерыванию, где бы его обработчик прерывания изнасиловал за такие дела с выводом соответствующего сообщения и вынесением строгого выговора.
Различные интересные факты:
0) Если кто удумает залезть с этим ДЗ поперек меня к Солнцеву, отрежу голову и закопаю на детской площадке позади РЦ. Шутка. Но лезть крайне не рекомендую.
1) Существует 2 режима работы Пумы: запуск набранной проги (она работает сама по себе) в консоли и ручной набор команд в консоли (мониторе).
/*
Второй режим нужен, чтобы обучать Пуму стратегически важным точкам. Это происходит так: с помощью пульта выставляется нужное положение, в консоли пишется:
HERE <POSNAME>
В результате в переменной <POSNAME> (на самом деле, это позиция, массив из 6 чисел) сохраняются текущие декартовы координаты робота (x,y,z,o,a,t схвата)
Если написать
HERE #<POSNAME>
то в POSNAME сохранятся текущие обобщенные координаты робота (углы поворотов сочленений).
Это удобно, т.к. если написать, например:
GO #POSNAME, роботу не надо решать обратную задачу по положению (здорово, Крутиков!), чтобы найти обобщенные координаты для точки POSNAME – они уже есть, нужно просто туда приехать.
В противном случае роботу ничего не остается, кроме как находить обобщенные координаты конечной точки своего маршрута. Это будет с погрешностью, долго и глупо.
Мораль: #!
*/
Далее, запускается набранная программа, которая имеет доступ ко всем точкам, которым был обучен робот, как к обычным переменным, что более гибко и удобно, чем набивать координаты этих точек ручками в коде.
2) Для прог ДЗ обучаются следующие точки:
-
C11 – положение шашки в левой нижней клетке
-
O – положение левого нижнего угла доски (оно не совпадает с C11)
-
X – какая-нибудь точка на нижней грани доски
-
Y – какая-нибудь точка на левой грани доски
-
WORK – положение над центром доски. Промежуточное положение маршрута по переправке шашек в теплые края.
3) Нужно, чтобы OXY была системой координат, к которой двумя сторонами «прилеплена» доска (см. картинку сверху).
СК можно создать в коде проги вот так:
FRAME SYS=O,X,Y
В результате, имеем СК SYS с центром в О и осями OX и OY
O,X,Y используется ТОЛЬКО в задачах 2-4.
4) Переменные в программе глобальные, их не нужно передавать при вызове функции, как например, это делается в C.
5) Кого-нибудь Солнцев по-любому спросит – когда пишется точка перед командой? (например, когда GO READY, а когда .GO READY ?). В тесте программ все команды без точек в начале, в консоли команды набираются с точкой в начале.
6). Проги пишутся на ARPS с довольно убогим синтаксисом: не допускаются пустые строки.
Присвоение переменных – командой SET.
Присвоений позиций – командой LOCATE.
Сдвиг позиции – команда SHIFT.
7). У Пумы есть точка, которая зашита на заводе: READY. Это вертикальное положение руки. Проги написаны так, чтобы манипулятор начинал работу из этой точки и туда же возвращался в конце.
8). Одно из требований ДЗ – при подходе к шашке надо снизить скорость. Здесь это делается с помощью масштабного коэффициента командой SPEED 50% (уменьшить в 2 раза). Обратно – SPEED 100% (выставится номинальная скорость)
9). Геометрия доски представлена в коде числом 34.5 – это шаг клетки.
Об остальных фактах проще рассказать, чем описать их.