04 - chytit a vrátit

Ve čtvrtém úkolu zkusíme poprvé použít senzor. Cílem je dojet pro barevnou kostku, kterou jsi si měl složit s Education robotem. Chytit ji pomocí robotické ruky a vrátit se na místo, odkud jsi vyjel. Tento úkol není tak složitý, tak nad ním zkus zapřemýšlet. Potřebuješ použít ultrazvuk, který máš na svém robotovi a vše ostatní již znáš.

../_images/ev3cxx_robotutorial_04-catch_and_return.png
/**
 * Go straight until an obstacle is detected by ultrasonic sensor, capture it and return to the start position
 *
 * Author: Jaroslav Páral (jarekparal)
 */

#include "ev3cxx.h"
#include "app.h"

void main_task(intptr_t unused) {
    ev3cxx::UltrasonicSensor ultrasonic(ev3cxx::SensorPort::S4);
    ev3cxx::MotorTank motors(ev3cxx::MotorPort::B, ev3cxx::MotorPort::C);
    ev3cxx::Motor claw_motor(ev3cxx::MotorPort::A);

    claw_motor.onForSeconds(30, 500);
    motors.on(50, 50);

    while (ultrasonic.centimeters() >= 4) {};

    motors.off(true);
    claw_motor.onForSeconds(-30, 500);
    motors.onForDegrees(-50, -50, motors.leftMotor().degrees());
}