Робоняша: проект 8 - круизоконтроль

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем aalsol, 3 янв 2021.

  1. aalsol

    aalsol Нуб

    • 5.10. Запрещено публиковать исходный код без BB-кода — CODE.
    Пишу код по инструкции, но ничего не происходит-- робот не движется.
    Может в коде есть ошибка?


    var motor = require('@amperka/motor');
    var leftMotor = motor.connect(motor.MotorShield.M1);
    var rightMotor = motor.connect(motor.MotorShield.M2);

    var encoder = recuire('@amperka/sensor');
    var leftEncoder = encoder.connect(P10);
    var rightEncoder = encoder.connect(P9);

    function cruise(curMotor, STARTV, CRUISESPEED, DELTAV) {
    var counter = 0;
    var WHEEL_LENGTH = 195;
    var lastTime = getTime();
    var V = STARTV;
    curMotor.write(V);

    return function () {
    counter++;
    if (counter % 12 !== 0) return;
    var deltaTime = getTime() - lastTime;
    var speed = WHEEL_LENGTH / deltaTime / 1000;
    lastTime = getTime();
    if (speed < CRUISESPEED && Math.abs(V) < 1) {
    V = V + DELTAV;

    } else if (speed > CRUISESPEED && Math.abs(V) > 0){
    V = V - DELTAV;
    }
    curMotor.write(V);
    };
    }
    leftEncoder.on('white', cruise(leftMotor, 0.3, 0.3, 0.01));
    rightEncoder.on('white', cruise(rightMotor, -0.3, 0.3, -0.01));
     
  2. NikitOS

    NikitOS Король шутов Администратор

    Ошибка в том, что код вставлен не по правилам форума.
     
  3. Wild

    Wild Нуб

    Так-же затупил в этом месте инструкции.
    Там ошибка в использовании портов в инструкции и примере кода, надо:
    Левый энкодер - на P9
    Правый энкодер- на P10
    Ну или переставить местами разъёмы на плате.
    Где-то там ещё были опечатки.
    @NikitOS , вообще имеет смысл сообщать об ошибках? Как это сделать? Или всем пофиг уже, можно не дёргаться?
     
  4. NikitOS

    NikitOS Король шутов Администратор

    @Wild, можно в техподдержку написать, думаю там разберутся.