Как считать значения с датчиков набора Lego Mindstorms EV3 в Visual Studio 2017 на C++

258
11 февраля 2020, 12:00

Недавно, я решила программировать блок EV3 на С++ в Visual Studio,подключила расширения Cpp4Robots для среды Microsoft Visual Studio, которое позволяет программировать роботов на родном языке C / C ++ и в среде разработки Microsoft Visual Studio. После подключения появилось меню для работы c EV3, в котором есть раздел "help" - документация для работы с датчиками и моторами. Скажите, пожалуйста, знаете ли вы другие источники информации (или примеры готовых программ) для программирования EV3 в Visual Studio? В частности, у меня не получается работать с датчиками - считать с них значения. Если знаете источники информации - отправьте, пожалуйста, ссылки. Спасибо.

#include <EV3_LCDDisplay.h>
#include <EV3_Thread.h>
#include <EV3_Sensor_Ultrasonic.h>
#include <EV3_Motor.h>
#include "EV3_Sensor_UART.h"
#include "EV3_Sensor_Color.h"
using namespace ev3_c_api;
int main()
{
int a = GetColor(E_Port_1, E_Layer_1);
        if(a == 0) 
        {
        SpeedMotor(E_Port_AB, 50, E_Layer_1);
        EV3_Sleep(1000);
        }
        return 0;
}

Указан код, в котором я пыталась считать значение с датчика цвета. Ожидалось - если цвет чёрный, значит моторы будут вращаться вперёд некоторое время. В реальности моторы вращаются постоянно, не обращая на поставленное условие.

Answer 1

Мне приходилось работать с EV3, только использовал я Python-библиотеки (или непосредственно работал с файлами в /sys/class/*) - поэтому, признаюсь, с используемым Вами API я не знаком.

Но, проводя аналогию между тем API которым пользовался я, и тем, которое используете Вы, могу предположить, что Вы или устанавливаете скорость (об/сек), или какое-то другое значение, вроде мощности/скважности.

Я не смог найти полноценной документации на API библиотек, поставляемых с плагином - она, вообще, имеется? Если да - поделитесь ссылкой, я постараюсь Вам помочь.

Answer 2
#include <EV3_BrickUI.h>
#include <EV3_Thread.h>
#include <EV3_Motor.h>
#include <EV3_Sensor_Color.h>
using namespace ev3_c_api;
int EV3_main()
{
    while (1)
    {
        E_Color a = GetColor(E_Port_1);
        if ( a == E_Color_Black ) 
        {
            SpeedMotor(E_Port_AB, 50);
            EV3_Sleep(1000);
            StopMotor(E_Port_AB, true);
        }
        if ( isBrickButtonPressed(E_BTN_ESC) )
            break;
    }
    return 0;
}
READ ALSO
Передача параметров. JQuery. Синтаксис

Передача параметров. JQuery. Синтаксис

Так передает нормально, send_gift_account(2432,Вася Пупкин), но нужно, чтобы параметры были в одинарных ковычках send_gift_account('2432','Вася Пупкин')

294
Передача переменных из JS в HTML

Передача переменных из JS в HTML

Нужно сделать так, чтобы в HTML коде (в тексте самой страницы) появлялись определенные значения переменных, которые рассчитываются вjs файле...

285
Валидность даты в JS

Валидность даты в JS

Преподователь придумал заданиеФорма регистрации

365
Много балунов на яндекс карте с ховером

Много балунов на яндекс карте с ховером

Вот так подключаю яндекс карту

290