0 Comments

Πρόγραμμα απλού τηλεχειρισμού R2

  Πρόγραμμα Arduino ide                                                      Βιβλιοθήκες

Υπολοιπόμενος χρόνος 0:34
1x

Τελευταία τροποποίηση: Δευτέρα, 9 Φεβρουαρίου 2026, 12:34 AM

Η συνολική δυνατότητα τηλεχειρισμού θα περιγραφεί όπως είπαμε σε επόμενη ενότητα και περιλαμβάνει την δυνατότητα χερισιμού πολλών ενεργοποιητών. Προκειμένου να αποφύγουμε περίπλοκες διαδικασίες θα περιγράψουμε προς το παρόν το απλό τηλεχειρισμό του ρομποτ με 4 επιλογές, Μπρός – Πίσω – Αριστερά – Δεξιά.

ΔΕΝ ΕΙΝΑΙ ΚΑΘΟΛΟΥ ΣΤΟΧΟΣ ΑΥΤΗΝ ΤΗΝ ΣΤΙΓΜΗ Η ΣΥΓΓΡΑΦΗ ΚΩΔΙΚΑ.
Δεν είναι ζητούμενο και παρακαλώ μην επικεντρωθείτε σε αυτό. Παρακολουθώντας το βίντεο θα κάνουμε απλά μια αντιγραφή και μια επικόλληση.

Η λογική είναι απλή. Η εφαρμογή μέσω του tablet στέλνει ένα μύνημα στο ρομπότ. Αυτό είναι ένας χαρακτήρας ανάλογα με το κουμπί που θα επιλέξουμε : U,D,L,R. Το πρόγραμμα που γράφουμε εμείς λοιπόν (Αυτό που βρίσκεται παρακάτω) οδηγεί τον Franky σε μπροστινή κίνηση με το U, πίσω κίνηση με το D κ.ο.κ.
Όλα τα παραπάνω γίνονται με μία μεταβλητή ( cmd ) που λαμβάνει την τιμή που στέλνει το tablet

cmd = Serial.read();

και με μια σύνθετη συνθήκη επιλογής If για τον καθορισμό της κίνησης.

if (cmd == ‘U’) {
moveForward();
}
else if (cmd == ‘D’) {
moveBackward();
}
else if (cmd == ‘L’) {
turnLeft();
}
else if (cmd == ‘R’) {
turnRight();
}
else if (cmd == ‘S’) {
stopMove();

Υπολοιπόμενος χρόνος 1:44
1x

Κώδικας για Manual Editing Mind+

Κατά την αντιγραφή του παρακάτω κειμένου, προσέξτε στην επιλογή σας με τον κέρσορα, προκειμένου να μην παραλείψετε κάποιον χαρακτήρα. Τους χρειαζόμαστε όλους!

/*!
 * StoR23 – R2 Bluetooth Telecontrol
  * Λήψη χαρακτήρα → άμεση ενέργεια
 */

#include <TB6612FNG.h>

// Αντικείμενο ελέγχου κινητήρων 
TB6612FNG tb_alx(5, 4, 6, 7);

// Μεταβλητές
char cmd = '0';
int speedMove = 100;
int stepTime = 200;   // διάρκεια κίνησης (ms)

// Δηλώσεις συναρτήσεων
void moveForward();
void moveBackward();
void turnLeft();
void turnRight();
void stopMove();

void setup() {
  Serial.begin(9600);
}

void loop() {

  if (Serial.available() > 0) {
    cmd = Serial.read();

    if (cmd == 'U') {
      moveForward();
    }
    else if (cmd == 'D') {
      moveBackward();
    }
    else if (cmd == 'L') {
      turnLeft();
    }
    else if (cmd == 'R') {
      turnRight();
    }
    else if (cmd == 'S') {
      stopMove();
    }
  }
}

/* ===== Κινήσεις ===== */

void moveForward() {
  tb_alx.setSpeed(M1, CCW, speedMove);
  tb_alx.setSpeed(M2, CW, speedMove);
  delay(stepTime);
  stopMove();
}

void moveBackward() {
  tb_alx.setSpeed(M1, CW, speedMove);
  tb_alx.setSpeed(M2, CCW, speedMove);
  delay(stepTime);
  stopMove();
}

void turnLeft() {
  tb_alx.setSpeed(M1, CCW, speedMove);
  tb_alx.setSpeed(M2, CCW, speedMove);
  delay(stepTime);
  stopMove();
}

void turnRight() {
  tb_alx.setSpeed(M1, CW, speedMove);
  tb_alx.setSpeed(M2, CW, speedMove);
  delay(stepTime);
  stopMove();
}

void stopMove() {
  tb_alx.setSpeed(M1, CW, 0);
  tb_alx.setSpeed(M2, CW, 0);
}

Related Posts

ΣΥΝΑΡΜΟΛΌΓΗΣΗ R2

    (https://digrammo.gr/wp-content/uploads/2026/01/ROBOT-R2_ΕΝΟΤΗΤΑ_1_ΣΥΝΑΡΜΟΛΟΓΗΣΗ_ΚΑΙ_ΤΗΛΕΧΕΙΡΙΣΜΟΣ_ΡΟΜΠΟΤ.pdf)