Солнцев (различные ДЗ)

2013-09-29СтудИзба

Описание файла

Файл "Солнцев" внутри архива находится в следующих папках: различные ДЗ, дз-2011. Документ из архива "различные ДЗ", который расположен в категории "". Всё это находится в предмете "микропроцессорные устройства" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "микропроцессорные устройства управления" в общих файлах.

Онлайн просмотр документа "Солнцев"

Текст из документа "Солнцев"

Московский государственный технический университет им. Н. Э. Баумана


Домашнее задание по курсу

«Микропроцессорные устройства

управления роботами»

Выполнил: Данилов М.А.

Группа: РК10-81

Проверил: Солнцев В.И.



Москва, 2011

Задание

1. Переставить шашки в системе координат WORLD . Из положения READY выйти в зону работы. Переставить шашки из угла в угол. Вернуться в положение READY.

Использовать п/п вычисления исходного и конечного положения шашки, п/п перестановки одной шашки. Шаг доски 34.5 мм. Схват оснащен датчиком наличия шашки (вход 5). При подходе к доске для взятия и постановки шашки снизить скорость.

Обучаются только транспортные положения и положение шашки (1:1). Если робот не захватил шашку, то печатается соответствующие сообщения и эта позиция пропускается.

2. Переставить шашки в системе координат доски. Положение доски произвольное. Переобучается только положение доски (использовать FRAME). В подпрограмме вычисления начального и конечного положения шашки использовать составные положения.

Остальное аналогично первой задаче.

3. Взять шашку с номером (i,j) и поставить на позицию (k,l). I,j,k,l задаются с помощью канала ВУ , подключенного к допол­нительному терминалу.

Из положения READY выйти в зону работы. Принять по последовательному каналу ВУ номера позиций i,j,k,l. Проверить их величину (1-8) . Если ошибка, то напечатать сообщение и перейти на начало приема. Переместить шашку.

Использовать фрагменты задачи 2.

Прием номеров позиций и их проверку оформить в виде п/п.

Вводимые номера должны отображаться на экране дополнительного терминала.

4. Выполнить задачу 2 с прерыванием работы от датчика ограждения (вход 1). после прерывания робот должен продолжить свою работу.



Задание 1

.Program CHECKER1

C Программа перестановки шашек (в системе WORLD).

C Вызов подпрограммы инициализации

CALL INIT

C Выход в положение READY

GO READY

С Выход в рабочее положение (над центром доски), которое было обучено

GO #WORK

C Количество шашек по оси X

SET X.MAX=4

C Количество шашек по оси Y

SET Y.MAX=3

C Текущие номера переставляемой шашки по осям X и Y

SET X.CUR=1

SET Y.CUR=1

C Подпрограмма перестановка шашки (X.CUR, Y.CUR)

10 CALL MOVE.CHECKER

C Выполняется циклический перебор всех значений X.CUR в интервале от 1 до X.MAX и Y.CUR от 1 до Y.MAX:

C

SET Y.CUR=Y.CUR+1

IF Y.CUR>Y.MAX THEN JUMP 20

JUMP 10

20 SET Y.CUR=1

SET X.CUR=X.CUR+1

IF X.CUR>X.MAX THEN JUMP 30

JUMP 10

C Выход в рабочее положение

30 GO #WORK

C Выход в положение READY

GO READY

RETURN

.End

.Program MOVE.CHECKER

C Подпрограмма для перемещения одной шашки

С Переход в положение WORK (над центром доски)

GO #WORK

SET X.POS = X.CUR

SET Y.POS = Y.CUR

C Вызов подпрограммы вычисления координат шашки (X.POS, Y.POS). Результат

C вычислений помещается в POS.

CALL POS.XY

C Позиция, из которой надо взять шашку

LOCATE FROM=POS

C Подойти к позиции FROM на расстояние 50 мм по оси Z.

GONEAR FROM,50

C Открыть схват

OPEN

C Уменьшить скорость движения в 2 раза при подходе для взятия шашки

SPEED 50%

C Подойти по прямой к позиции, из которой можно взять шашку

GOS FROM

C Закрыть схват

CLOSE

C Подняться на 50 мм над позицией FROM

GOSNEAR FROM, 50

C Восстановить нормальную скорость

SPEED 100%

С Если датчик наличия шашки (вход 5) показывает, что шашка не захвачена, переход

C на метку 10:

IF IN -5 THEN JUMP 10

C Номер клетки, куда будет переставлена шашка:

SET X.POS=9-X.CUR

SET Y.POS=9-Y.CUR

C Расчет позиции новой клетки

CALL POS.XY

C Положение, куда нужно переставить шашку

LOCATE TO=POS

C Подойти к позиции TO на расстояние 50 мм по оси Z.

GONEAR TO,50

C Уменьшить скорость движения в 2 раза при подходе для выставления шашки

SPEED 50%

C Подойти по прямой к позиции, на которую нужно выставить шашку

GOS TO

C Открыть схват

OPEN

С Подняться по прямой на 50 мм вверх

GOSNEAR TO,50

C Закрыть схват

CLOSE

C Восстановить прежнюю скорость

SPEED 100%

C Вернуться в положение над центром доски

GO #WORK

C Выйти из подпрограммы

RETURN

C Печать сообщения об ошибке, если шашка не захвачена

10 PRINT ‘error: checker not grabbed’

RETURN

.End

.Program POS.XY

С Подпрограмма для вычисления координат шашки по номеру ее клетки

С С11 – положение шашки в нижнем левом углу доски, было обучено

C Присвоение положения C11 положению CIJ

LOCATE CIJ = C11

С Выполнение цикла (X.POS-1) раз:

10 IF X.POS <= 1 THEN JUMP 20

C Смещение положения CIJ относительно текущего по горизонтали на 34.5 мм

C (размер клетки)

SHIFT CIJ = 34.5,0,0

SET X.POS = X.POS - 1

JUMP 10

С Выполнение цикла (Y.POS-1) раз

20 IF Y.POS <= 1 THEN JUMP 30

C Смещение положения CIJ относительно текущего на 34.5 мм по вертикали

SHIFT CIJ = 0,34.5,0

SET Y.POS = Y.POS - 1

JUMP 20

C Найденная позиция I,j шашки записывается в POS

30 LOCATE POS = CIJ

RETURN

.End

.Program INIT

С Подпрограмма инициализации

C Скорость перемещения схвата манипулятора = 150 мм/c

SPEED 100

C Масштабный коэффициент скорости

SPEED 100%

C Задержка при открытии схвата = 0.5 c

ODELAY .5

C Задержка при закрытии схвата = 0.5 с

CDELAY .5

RETURN

.End

Задание 2

.Program CHECKER2

C Программа перестановки шашек с использованием FRAME.

CALL INIT

GO READY

GO #WORK

SET X.MAX=4

SET Y.MAX=3

SET X.CUR=1

SET Y.CUR=1

10 CALL MOVE.CHECKER

SET Y.CUR=Y.CUR+1

IF Y.CUR>Y.MAX THEN JUMP 20

JUMP 10

20 SET Y.CUR=1

SET X.CUR=X.CUR+1

IF X.CUR>X.MAX THEN JUMP 30

JUMP 10

30 GO #WORK

GO READY

RETURN

.End

.Program MOVE.CHECKER

C Подпрограмма для перемещения одной шашки

GO #WORK

SET X.POS = X.CUR

SET Y.POS = Y.CUR

CALL POS.XY

LOCATE FROM=POS

GONEAR FROM,50

OPEN

SPEED 50%

GOS FROM

CLOSE

GOSNEAR FROM, 50

SPEED 100%

IF IN -5 THEN JUMP 10

SET X.POS=9-X.CUR

SET Y.POS=9-Y.CUR

CALL POS.XY

LOCATE TO=POS

GONEAR TO,50

SPEED 50%

GOS TO

OPEN

GOSNEAR TO,50

CLOSE

SPEED 100%

GO #WORK

RETURN

10 PRINT ‘error: checker not grabbed’

RETURN

.End

.Program POS.XY

С Подпрограмма для вычисления координат шашки по номеру ее клетки

LOCATE CIJ = C11

10 IF X.POS <= 1 THEN JUMP 20

SHIFT CIJ = 34.5,0,0

SET X.POS = X.POS - 1

JUMP 10

20 IF Y.POS <= 1 THEN JUMP 30

SHIFT CIJ = 0,34.5,0

SET Y.POS = Y.POS - 1

JUMP 20

C Позиция шашки задается относительно плоскости BOARD

30 LOCATE POS = BOARD(CIJ)

RETURN

.End

.Program INIT

SPEED 100

ODELAY .5

CDELAY .5

C Формирование плоскости с осями X и Y и центром в точке O

FRAME BOARD=O,X,Y

RETURN

.End

Задание 3

.Program CHECKER3

C Программа перестановки шашки, координаты присылаются.

CALL INIT

GO READY

C Получить 4 значения, присвоить их переменным I,J,K,L

CALL RECEIVE.BYTE

SET I=VAL

CALL RECEIVE.BYTE

SET J=VAL

CALL RECEIVE.BYTE

SET K=VAL

CALL RECEIVE.BYTE

SET L=VAL

GO READY

RETURN

.End

.Program RECEIVE.BYTE

C Подпрограмма получает байт данных, обрабатывает и определяет,

C является ли его значение допустимым

C Пока бит 7 в регистре состояния приемника не установлен, ждать

10 IF INGROUP RSPM2 < 128 THEN JUMP 10

C Выделить младший байт регистра данных приемника битовой маской

SET BYTE = INGROUP RDPM2 AND BYTE.MASK

PRINT ‘received byte = ‘, BYTE

C Т.к. ASCII-код ‘0’ = 48, ‘1’=49 и т.д.:

SET VAL = BYTE – 48

C Допустимыми являются значения VAL от 1 до 8

IF VAL>8 THEN JUMP 20

IF VAL<1 THEN JUMP 20

RETURN

20 PRINT ‘error value received, repeat’

JUMP 10

.End

.Program MOVE.CHECKER.IJKL

C Подпрограмма для перемещения одной шашки из позиции I,J в позицию K,L

GO #WORK

SET X.POS = I

SET Y.POS = J

CALL POS.XY

LOCATE FROM=POS

GONEAR FROM,50

OPEN

SPEED 50%

GOS FROM

CLOSE

GOSNEAR FROM, 50

SPEED 100%

IF IN -5 THEN JUMP 10

SET X.POS=K

SET Y.POS=L

CALL POS.XY

LOCATE TO=POS

GONEAR TO,50

SPEED 50%

GOS TO

OPEN

GOSNEAR TO,50

CLOSE

SPEED 100%

GO #WORK

RETURN

10 PRINT ‘error: checker not grabbed’

RETURN

.End

.Program POS.XY

С Подпрограмма для вычисления координат шашки по номеру ее клетки

LOCATE CIJ = C11

10 IF X.POS <= 1 THEN JUMP 20

SHIFT CIJ = 34.5,0,0

SET X.POS = X.POS - 1

JUMP 10

20 IF Y.POS <= 1 THEN JUMP 30

SHIFT CIJ = 0,34.5,0

SET Y.POS = Y.POS - 1

JUMP 20

30 LOCATE POS = BOARD(CIJ)

RETURN

.End

.Program INIT

SPEED 100

ODELAY .5

CDELAY .5

FRAME BOARD=O,X,Y

С Адрес регистра состояния приемника данных

SET RSPM=-152

C Адрес регистра данных приемника данных

SET RDPM= -150

C Битовая маска для выделения присланного байта

SET BYTE.MASK=255

RETURN

.End

Задание 4

.Program CHECKER2

C Программа перестановки шашек с использованием FRAME.

CALL INIT

GO READY

GO #WORK

SET X.MAX=4

SET Y.MAX=3

SET X.CUR=1

SET Y.CUR=1

10 CALL MOVE.CHECKER

SET Y.CUR=Y.CUR+1

IF Y.CUR>Y.MAX THEN JUMP 20

JUMP 10

20 SET Y.CUR=1

SET X.CUR=X.CUR+1

IF X.CUR>X.MAX THEN JUMP 30

JUMP 10

30 GO #WORK

GO READY

RETURN

.End

.Program MOVE.CHECKER

C Подпрограмма для перемещения одной шашки

GO #WORK

SET X.POS = X.CUR

SET Y.POS = Y.CUR

CALL POS.XY

LOCATE FROM=POS

GONEAR FROM,50

OPEN

SPEED 50%

GOS FROM

CLOSE

GOSNEAR FROM, 50

SPEED 100%

IF IN -5 THEN JUMP 10

SET X.POS=9-X.CUR

SET Y.POS=9-Y.CUR

CALL POS.XY

LOCATE TO=POS

GONEAR TO,50

SPEED 50%

GOS TO

OPEN

GOSNEAR TO,50

CLOSE

SPEED 100%

GO #WORK

RETURN

10 PRINT ‘error: checker not grabbed’

RETURN

.End

.Program POS.XY

С Подпрограмма для вычисления координат шашки по номеру ее клетки

LOCATE CIJ = C11

10 IF X.POS <= 1 THEN JUMP 20

SHIFT CIJ = 34.5,0,0

SET X.POS = X.POS - 1

JUMP 10

20 IF Y.POS <= 1 THEN JUMP 30

SHIFT CIJ = 0,34.5,0

SET Y.POS = Y.POS - 1

JUMP 20

30 LOCATE POS = BOARD(CIJ)

RETURN

.End

.Program INIT

SPEED 100

ODELAY .5

CDELAY .5

FRAME BOARD=O,X,Y

C Включить прерывания

ENABLE INCALLS

C По появлению сигнала на входе 1 (датчик ограждения) вызвать обработчик –

C подпрограмму INTERRUPT

INCALL 1, INTERRUPT

RETURN

.End

.Program INTERRUPT

C Подпрограмма обработки прерывания

PRINT ‘interrupt’

C Ожидание, пока не исчезнет сигнал по каналу 1 (датчик ограждения)

WAIT IN -1

C Включение прерываний (были отключены при срабатывании прерывания)

ENABLE INCALLS

.End

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее