Использование датчиков в RobotC презентация

Содержание

Слайд 2

Сенсоры или датчики настраиваются в среде RobotC так же, как и двигатели.
Обратите

внимание на то, что для микроконтроллера VEX необходимо указывать тип датчика:
а) цифровой (VEX 2.0 Digital Sensors)
б) аналоговый (VEX 2.0 Analog Sensors)

Слайд 3

a = SensorValue[in4];
/* Переменной “а” присвоено значение, записанное микроконтроллером VEX в элемент

массива “SensorValue” с индексом in4. Индексы “in” соответствуют аналоговым датчикам, а число справа от “in” номеру аналогового порта */
a = SensorValue[dgtl1];
/* Переменной “а” присвоено значение, записанное микроконтроллером VEX в элемент массива “SensorValue” с индексом dgtl1. Индексы “dgtl” соответствуют цифровым датчикам, а число справа от “dgtl” номеру цифрового порта */

Слайд 4

Подключение и работа с ультразвуковым датчиком

Слайд 5

Ультразвуковой датчик является дальномером, измеряющим расстояние до объектов с помощью отраженного от поверхности

объекта ультразвукового сигнала.
* В отличие от тактильных датчиков и выключателей такое устройство способно заблаговременно предупредить о приближении робота к объекту, благодаря чему робот сможет передвигаться в среде с различными препятствиями и планировать свой маршрут.

Слайд 6

* Ультразвуковой дальномер, определяет расстояние до препятствия за счет вычисления времени полета звуковой

волны с момента ее распространения и до возвращения после отражения от объекта. Излучение звуковой волны осуществляется с частотой 40 кГц и позволяет измерять расстояние в диапазоне от 3 см до 3 м.

Слайд 7

Процесс работы датчика делится на несколько этапов:
Датчик отправляет звуковую волну и начинает отсчет

времени
После того как датчик принимает отраженный сигнал, отсчет времени прекращается
Расстояние до объекта рассчитывается как скорость распространения волны, умноженная на затраченное время.

Препятствие

Слайд 8

Подключение ультразвукового датчика

Слайд 9

Подключение ультразвукового датчика расстояния к программируемому контроллеру выполняется с помощью двух 2-пиновых коннекторов:
INPUT

и OUTPUT. Вывод INPUT отвечает за подачу управляющего импульса на датчик, вывод OUTPUT необходим для отправки импульса.
Пример подключения:
Подключим вывод OUTOUT к порту [dgtl7] таким образом, чтобы желтый провод смотрел внутрь контроллера. Вывод INPUT подключим к порту [dgtl8] таким образом, чтобы оранжевый провод смотрел внутрь контроллера.

Слайд 10

Напишем программу для ультразвукового датчика расстояния.
Условие: До тех пор пока расстояние до

препятствия больше 250 мм (25 см) робот будет ехать вперед со скоростью 50. Если это условие не выполняется, то робот начнет двигаться назад со скоростью 50.

Слайд 11

Task main ()
{
while (1)
{
if (SensorValue[dgtl8]>250)
{
motor [port1] = 50;
motor [port10] = 50;
}
else


{
motor [port1] = – 50;
motor [port10] = – 50;
}
}
}

Решение

Слайд 12

Task main ()
{
while (1) /* Это циклический оператор. Его аргументом в данном случае

является логическая 1 или “истина”, это значит что тело цикла будет повторяться бесконечно. Обратите внимание, после (1) нет знака “;”
{
if (SensorValue[dgtl8]>250) /* используем условный оператор “if” (если).
Если значение датчика на порту dgtl8 больше 250, то робот едет вперед */
{
motor [port1] = 50;
motor [port10] = 50;
}
else /* Здесь используем оператор “else” (иначе). Если не выполняется условие в круглых скобках следующих за оператором if, выполняются действия в фигурных скобках, следующих за оператором else. */
{
motor [port1] = – 50;
motor [port10] = – 50;
}
}
}

Решение c пояснением

Слайд 13

void move (int x, int y, int time)
{
motor [port1] = x;
motor [port10]

= y;
wait1Msec (time);
}
task main ()
{
while(1)
{
if (SensorValue[dgtl8]>250)
{
move (50, 50, 0);
}
else
{
move (–50, –50, 0);
}
}
}

Решение вариант 2

Имя файла: Использование-датчиков-в-RobotC.pptx
Количество просмотров: 52
Количество скачиваний: 0