Как считать данные с аналоговых пинов Arduino Uno в Wolfram Mathematica?

Итак, мне нужно подсоединить мою Arduino UNO к Mathematica и считывать 3 аналоговых значения с пинов A0, A1, A2, к которым подключено по фотодиоду.

Насколько я понимаю, есть 2 способа, как я могу общаться с Arduino Uno через Mathematica:

Первый: у меня есть правильно работающий Arduino IDE скетч, который может быть загружен в девайс через Mathematica. Примерно также, как это описано здесь:
community.wolfram.com/groups/-/m/t/936358
Тем не менее, у меня не получается в правильном формате вставить codestr, Mathematica выдает ошибку компиляции постоянно.
Вот мой скетч, который компилируется и работает правильно:
int raw1 = 0, raw2 = 0, raw3 = 0;
    int x = 0, y1 = 0, y2 = 0, y3 = 0;

    void setup() 
    {
    Serial.begin(9600);
    pinMode( A0, INPUT );
    pinMode( A1, INPUT );
    pinMode( A2, INPUT );
    analogReference(INTERNAL);
    }

    void loop() 
    {
    while (x<=6000)
    { 
    raw1 = analogRead( A0 );
    y1=raw1;
    raw2 = analogRead( A1 );
    y2=raw2;
    raw3 = analogRead( A2 );
    y3=raw3;
    x++;               
    Serial.print( y1 );
    Serial.print("\t"); 
    Serial.print( y2 );
    Serial.print("\t");                
    Serial.print( y3 );
    Serial.println();
    delay(400);
    }
    }


Второй: в Mathematica 11 (версия, которой я пользуюсь) существует ряд команд, которые позволяют общаться с девайсом без помощи языка Arduino IDE. Насколько я понимаю, в случае если я хочу считывать 3 значения каждые 0.01 секунды на протяжении секунды, мой код должен выглядеть следующим образом:
Uno = DeviceOpen["Arduino", "COM3"];

    DeviceConfigure[Uno, <|"A0" -> "AnalogInput", "A1" -> "AnalogInput", "A2" -> "AnalogInput"|>];

    DeviceReadTimeSeries[Uno, {1, 0.01}, {"A0", "ReadMode" -> "Analog"}]
    DeviceReadTimeSeries[Uno, {1, 0.01}, {"A1", "ReadMode" -> "Analog"}]
    DeviceReadTimeSeries[Uno, {1, 0.01}, {"A2", "ReadMode" -> "Analog"}]

    DeviceClose[Uno]


Но Mathematica отказывается компилировать и пишет следующую ошибку:

CCompilerDriver`CreateObjectFile::cmperr: Compile error: avr-g++: error:C:\Users\Username\AppData\Local\Temp\arduinocompile1420c72c8f614b19b9df9d5891fcf275\SketchTemplate.cpp.c: No such file or directory


Кто-нибудь мог бы помочь с этим вопросом?
Буду благодарен любому отклику.
  • Вопрос задан
  • 434 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vanyamba-electronics
Файл SketchTemplate.cpp не находит.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы