KruTee.org-ครูทีสอนคอม

KruTee.org-ครูทีสอนคอม สวัสดีครับ

04/06/2026
28/05/2026

/*
หุ่นยนต์สำหรับเดินในเขาวงกต - ใช้อัลกอริทึมติดตามกำแพง

วิธีการทำงาน:
- ใช้เซนเซอร์ IR 2 ตัว สำหรับตรวจจับสิ่งกีดขวาง
- ใช้กฎมือขวา (Right-Hand Rule) ในการแก้เขาวงกต
- หุ่นยนต์จะเดินไปชิดกำแพงแล้วติดตามกำแพงเพื่อหาทางออก

การเชื่อมต่อ:
- motor2: มอเตอร์ซ้าย
- motor3: มอเตอร์ขวา
- ir_left (pin 10): เซนเซอร์ IR ซ้าย
- ir_right (pin 9): เซนเซอร์ IR ขวา

หลักการ:
- เมื่อไม่มีสิ่งกีดขวาง = เดินตรง
- เมื่อมีสิ่งกีดขวางด้านซ้าย = เลี้ยวขวา
- เมื่อมีสิ่งกีดขวางด้านขวา = เลี้ยวซ้าย
- เมื่อเจอทางตัน (มีสิ่งกีดขวางทั้งสองข้าง) = หันกลับ 180 องศา
*/



AF_DCMotor motor1(1, MOTOR12_1KHZ);
AF_DCMotor motor2(2, MOTOR12_1KHZ); // มอเตอร์ซ้าย
AF_DCMotor motor3(3, MOTOR34_1KHZ); // มอเตอร์ขวา
AF_DCMotor motor4(4, MOTOR34_1KHZ);

const int ir_left = 10; // เซนเซอร์ IR ซ้าย
const int ir_right = 9; // เซนเซอร์ IR ขวา

// int speedSet_L = 150; // ความเร็วมอเตอร์ซ้าย (0-255)
// int speedSet_R = 140; // ความเร็วมอเตอร์ขวา (0-255)
int speedSet_L = 120; // ความเร็วมอเตอร์ซ้าย (0-255)
int speedSet_R = 110; // ความเร็วมอเตอร์ขวา (0-255)

void setup() {
Serial.begin(11520);
pinMode(ir_left, INPUT);
pinMode(ir_right, INPUT);

Serial.println("Robot Ready");
delay(3000);
}

void loop() {
bool leftObstacle = (digitalRead(ir_left) == LOW);
bool rightObstacle = (digitalRead(ir_right) == LOW);

if (leftObstacle && rightObstacle) {
// กรณีที่ 1: เจอทางตัน หรือกำแพงบีบทั้งสองข้าง
moveBackward(); delay(200); // ถอยหลังนิดนึงกันติด
turnAround(); delay(900);
}
else if (leftObstacle) {
// กรณีที่ 2: เจอกำแพงซ้าย -> ต้องเลี้ยวขวาหนีกำแพง
turnRight();
delay(300);
}
else if (rightObstacle) {
// กรณีที่ 3: เจอกำแพงขวา -> ต้องเลี้ยวซ้ายหนีกำแพง
turnLeft();
delay(300);
}
else {
// กรณีที่ 4: ทางสะดวก -> เดินหน้า
moveForward();
}

delay(50);
}

void moveStop() {
motor2.run(RELEASE);
motor3.run(RELEASE);
}

void moveForward() {
motor2.setSpeed(speedSet_L);
motor3.setSpeed(speedSet_R);
motor2.run(FORWARD);
motor3.run(FORWARD);
}

void moveBackward() {
motor2.setSpeed(speedSet_L);
motor3.setSpeed(speedSet_R);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
}

void turnRight() {
motor2.setSpeed(speedSet_L-30);
motor3.setSpeed(speedSet_R-30);
motor2.run(FORWARD);
motor3.run(BACKWARD);
}

void turnLeft() {
motor2.setSpeed(speedSet_L-30);
motor3.setSpeed(speedSet_R-30);
motor2.run(BACKWARD);
motor3.run(FORWARD);
}

void turnAround() {
// หันกลับ 180 องศา โดยการหมุนซ้าย
motor2.setSpeed(speedSet_L);
motor3.setSpeed(speedSet_R);
motor2.run(FORWARD);
motor3.run(BACKWARD);
}

20/05/2026

หาอุปกรณ์ที่ใช้ในการซ่อมของเล่น รถบังคับวิทยุ

มาทั้งหมด 10 อุปกณ์ พร้อมอธิบายการใช้งาน

20/05/2026

ให้นักเรียนเขียนชื่อแอพพลิเคชั่นที่ใช้ เขียนโปรแกรม จำนวน 20 โปรแกรม พร้อมอธิบายคุณสมบัติของโปรแกรม

https://www.youtube.com/watch?v=XuzQDnUelzU
09/03/2026

https://www.youtube.com/watch?v=XuzQDnUelzU

SketchUp 3D แชร์การใช้เครื่องมือและเทคนิคต่างๆ พร้อมอธิบายทุกขั้นตอนชัดเจน ทำตามได้เลย สำหรับผู้ที่ชื่นชอบในกา...

ที่อยู่

Amphoe Pak Chong

เว็บไซต์

แจ้งเตือน

รับทราบข่าวสารและโปรโมชั่นของ KruTee.org-ครูทีสอนคอมผ่านทางอีเมล์ของคุณ เราจะเก็บข้อมูลของคุณเป็นความลับ คุณสามารถกดยกเลิกการติดตามได้ตลอดเวลา

ทางลัด

แชร์