Skip to content

Kalibracija

diko-p edited this page Aug 26, 2018 · 8 revisions

Opis

Primer kalibracije senzorjev za sledenje črti.

V void.setup() najprej robot čaka na pritisk funkcijskega gumba in zažene komunikacijo preko bluetooth-a.

V void.loop() poleg funkcij za izpis na serijski monitor uporabimo funkcijo robot.line.getPosition(). Ta je uporabljena zato, da lahko v for zanki preverimo stanje vsakega izmed 8 senzorjev. Stanja senzorjev izpisujmo s pomočjo Serial1.print() in Serial1.println(). Vse skupaj se ponavlja v neskončni zanki.

Koda

#include <Robot.h>

int i;
int sensors[7]; //vektor, ki vsebuje stanja 8 senzorjev

void setup() {
  while (!robot.buttonPressed()); //čaka na pritisk tipke
  Serial1.begin(115200); //nastavi hitrost prenosa podatkov preko bluetooth
  delay(250); //čaka 0,25 sekunde
  robot.motor[LEFT].setVoltage(1.5); //na levem motorju nastavi napetost 1,5 V
  robot.motor[RIGHT].setVoltage(-1.5); //na desnem motorju nastavi napetost -1,5 V
  robot.line.calibrate(2000); //kalibrira senzorje 2000ms
  robot.motor[LEFT].setVoltage(0); //na levem motorju nastavi napetost 0 V
  robot.motor[RIGHT].setVoltage(0); //na desnem motorju nastavi napetost 0 V
  while (!robot.buttonPressed()); //čaka na pritisk tipke
  delay(250); //čaka 0,25 sekunde
}

void loop() {
  Serial1.print("stanje senzorjev (0-7):"); //izpis na serijskem monitorju
  robot.line.getPosition(); 
  for(int i=0; i<=7; i++){
    sensors[i]=bitRead(robot.line.getOnLine(),i); //prebere stanje i-tega senzorja (0-ni na črti, 1-je na črti)
    Serial1.print(" "); Serial1.print(sensors[i]); //izpis na serijskem monitorju
  }
  Serial1.println(" "); //izpis na serijskem monitorju
}

Glej tudi

robot.buttonPressed()

Serial1.begin()

delay()

robot.motor[].setVoltage()

robot.line.calibrate()

Serial1.print()

Serial1.println()

robot.line.getPosition()

bitRead()

robot.line.getOnLine()

Video

Video: Kalibracija

Clone this wiki locally