FTC21 урок
FTC Programming
Разберись, как управлять роботом с помощью кода, работать с датчиками и создавать автономные программы.
Курс для тех, кто впервые пишет код для FTC-робота. Разбираемся, как устроены OpMode и LinearOpMode, подключаем моторы, сервоприводы и датчики, собираем драйв и знакомимся с автономкой. В каждом уроке есть песочница прямо в браузере: пишешь Java-код, жмёшь INIT и START и сразу видишь, как отвечает виртуальный робот.
Уроки
- 1Как устроено управление роботомИз чего состоит система управления FTC-роботом: Control Hub, Expansion Hub, Driver Hub и геймпад — и какой путь проходит нажатие кнопки, прежде чем закрутится мотор.Чтение
- 2OpMode и LinearOpModeВ FTC есть два способа написать программу, и разница между ними фундаментальная. Разбираемся, как думает каждый из них и что выбирать для TeleOp и автономки.Чтение
- 3Жизненный цикл: init, init_loop, start, loopКогда ты выбираешь программу на Driver Hub, она не запускается вся сразу — она проходит строго определённые этапы. Разбираем каждый и смотрим вживую, сколько раз SDK их вызывает.Чтение
- 4ПеременныеПеременная — именованная ячейка памяти. Разбираем типы, которые нужны в FTC, и главное отличие полей класса от локальных переменных.Чтение
- 5ГеймпадКак читать стики, триггеры и кнопки через gamepad1 и gamepad2 и как отличить нажатие кнопки от удержания — один из главных приёмов в TeleOp.Чтение
- 6DC-мотор: подключение и настройкаКак работает DC-мотор, как получить его из hardwareMap и зачем нужны setDirection и setZeroPowerBehavior.Чтение
- 7Подача мощностиУправляем мотором со стика, разбираемся с диапазоном мощности и с самой частой ошибкой новичков — мотор не останавливается сам.Чтение
- 8Энкодер и тикиЭнкодер — датчик внутри мотора, который считает обороты вала. Без него робот не знает, сколько проехал; с ним можно сказать «подними механизм ровно на 200 тиков».Чтение
- 9Отладка мотораВыводим в телеметрию мощность, позицию и скорость мотора — так за секунды находят, почему механизм ведёт себя не так, как задумано.Чтение
- 10СервоприводСерво — мотор со встроенным контроллером позиции. Ты задаёшь не мощность, а угол, и серво само туда доезжает и держит позицию.Чтение
- 11Клешня по кнопкеСобираем вместе серво, геймпад и флаг состояния — одна кнопка открывает клешню, повторное нажатие закрывает.Чтение
- 12Мотор или сервоКороткая шпаргалка: чем DcMotor отличается от Servo и где что ставить на роботе.Чтение
- 13Танковый драйвСамая простая схема управления базой: левый стик ведёт левую сторону, правый — правую. Пишем её и катаемся по виртуальному полю.Чтение
- 14Аркадный драйвОдин стик управляет всем: вверх-вниз — едем, влево-вправо — поворачиваем. Разбираем математику drive ± turn.Чтение
- 15Touch SensorПростейший датчик в FTC — кнопка с двумя состояниями. Используем его как концевик, чтобы лифт сам останавливался внизу.Чтение
- 16Color SensorДатчик цвета измеряет красный, зелёный и синий свет, отражённый от поверхности. Учимся по нему отличать игровые элементы и линии на поле.Чтение
- 17Distance SensorДатчик расстояния измеряет, сколько сантиметров до ближайшего объекта. Используем его, чтобы понять, есть ли элемент в клешне.Чтение
- 18IMU — гироскоп роботаIMU встроен в каждый Control Hub и знает, на сколько градусов повернулся робот. Подключаем его, задаём ориентацию хаба и читаем угол, катаясь по полю.Чтение
- 19Автономный периодПервые 30 секунд матча робот действует сам — по заранее написанному коду. Разбираем, почему автономку пишут на LinearOpMode и почему езда «по времени» не работает стабильно.Чтение
- 20Одометрия и PinpointКак робот узнаёт свои координаты на поле: «мёртвые колёса» одометрии и специализированный компьютер goBILDA Pinpoint.Чтение
- 21RoadRunner и Pedro PathingДве главные библиотеки для движения робота в автономке. Разбираем, как устроена каждая, и сравниваем их по пунктам.Чтение