ระบบจำลองหุ่นยนต์รถเก็บขยะ(Garbage truck robot simulation system)

  • 384557783_734308162068120_3754235403929964770_n
  • image-103-1
  • 6p9wmc
  • ดาวน์โหลด
  • 021699c97fdd7dca4b362cdb38b10d4a.png_720x720q80
  • image-110-1
  • Screenshot-2023-11-09-223859
  • Screenshot-2023-11-09-223859-1
  • 368561434_727523179298970_1153379490404391516_n
  • 367996058_1100568787780817_2391603521125687996_n

ผู้เขียนบทความ: นายนัทธพงศ์ แขกพงศ์COE#15

คณะวิศวกรรมศาสตร์:สาขาวิศวะคอมพิวเตอร์

วิชา:04-513-201 การโปรแกรมคอมพิวเตอร์ขั้นสูง 1/2566

1.ความเป็นมาและความสำคัญของปัญหา

ความเป็นมา: ปัญหาการจัดการขยะเกิดขึ้นเนื่องจากการเพิ่มปริมาณขยะที่สร้างขึ้นในโลกในระยะเวลาที่ผ่านมา นอกจากนี้ การทิ้งขยะอันสะสมอย่างไม่รับผิดชอบและการทิ้งขยะในที่ที่ไม่เหมาะสมก็เป็นปัจจัยที่ทำให้ปัญหาเกิดขึ้นมากขึ้น

ความสำคัญของปัญหา: ปัญหาการจัดการขยะมีความสำคัญเนื่องจากมีผลกระทบทั้งต่อสิ่งแวดล้อมและสุขภาพมนุษย์ การสะสมขยะที่ไม่มีการจัดการที่ถูกต้องสามารถทำให้เกิดปัญหาสิ่งแวดล้อม เช่น มลพิษทางอากาศและน้ำ นอกจากนี้ การจัดการขยะไม่ดีอาจเสียหายต่อสุขภาพมนุษย์และสังคมด้วย ประเด็นนี้เรียกให้ทุกคนร่วมมือกันหาวิธีการจัดการขยะที่ยั่งยืนและมีประสิทธิภาพเพื่อลดผลกระทบที่เกิดขึ้นต่อโลกและคนในมุมมองทั้งระยะสั้นและระยะยาว

2.วัตถุประสงค์

1.ลดการสะสมขยะ : วัตถุประสงค์อาจเป็นการลดปริมาณขยะที่คุณสร้างขึ้นในชีวิตประจำวันโดยการลดการใช้บริการสินค้าที่ใช้แล้วทิ้งหรือการรีไซเคิลของวัสดุที่ใช้

2.สร้างแรงบันดาลใจในสังคม : วัตถุประสงค์อาจเป็นการสร้างโครงการหรือกิจกรรมในชุมชนของคุณเพื่อเสริมสร้างการตระหนักในปัญหาการจัดการขยะและส่งเสริมการมีส่วนร่วมของคนในการแก้ไขปัญหานี้

3.สร้างธุรกิจยั่งยืน : วัตถุประสงค์อาจเป็นการเริ่มต้นธุรกิจที่เกี่ยวข้องกับการจัดการขยะหรือเทคโนโลยีที่สามารถช่วยในการลดปัญหาขยะและส่งเสริมการใช้วัสดุรีไซเคิล

4. ภายในกระบวนการการผลิต : วัตถุประสงค์อาจเป็นการใช้วิธีการผลิตที่ยั่งยืนและลดการสร้างขยะในกระบวนการผลิตของบริษัทหรือองค์กร.

3.ขอบเขต

  1. ข้อมูลสำคัญ : ระบุข้อมูลหรือข้อมูลที่จำเป็นต้องใช้ในโครงการหรือกิจกรรมนั้น ๆ เพื่อให้ทราบว่ามีทรัพยากรเพียงพอหรือไม่เพื่อดำเนินการ.
  2. เป้าหมายและผลผลิต : ระบุเป้าหมายหลักและผลผลิตที่คุณต้องการที่จะบรรลุผ่านโครงการหรือกิจกรรมนี้.
  3. ระยะเวลา : กำหนดระยะเวลาที่คุณต้องการใช้ในการดำเนินโครงการหรือกิจกรรม รวมถึงกำหนดเวลาสิ้นสุดหรือกำหนดเวลาสำหรับขั้นตอนย่อย.
  4. ทรัพยากร : ระบุทรัพยากรที่คุณต้องการใช้ เช่น งบประมาณ, บุคลากร, เทคโนโลยี, หรืออุปกรณ์.
  5. ข้อจำกัด : ระบุข้อจำกัดหรือข้อกำหนดที่ต้องเป็นไปตาม เช่น ข้อกำหนดจากลูกค้าหรือข้อบังคับกฎหมาย.
  6. ส่วนที่ไม่รวม : ระบุสิ่งที่ไม่อยู่ในขอบเขตของโครงการหรือกิจกรรม ซึ่งเป็นสิ่งที่ควรหลีกเลี่ยง.

4.ประโยชน์ที่คาดว่าจะได้รับ

  1. ลดค่าใช้จ่าย : การจัดการขยะที่ดีอาจช่วยลดค่าใช้จ่ายในการบริหารขยะและการทำความสะอาดสาธารณะ รวมถึงค่าใช้จ่ายในการจัดการกับปัญหาสิ่งแวดล้อมที่เกิดขึ้นจากขยะไม่ที่ถูกทิ้ง.
  2. สิ่งแวดล้อม : การลดปริมาณขยะที่ส่งลงสู่ถังขยะที่สุดท้ายสามารถลดการมลพิษทางอากาศและน้ำ และช่วยประหยัดทรัพยากรธรรมชาติ เช่น ไม้และน้ำ.
  3. สุขภาพ : การจัดการขยะที่ดีสามารถลดความเสี่ยงต่อสุขภาพมนุษย์ โดยลดการสะสมขยะที่ทำให้เกิดโรคติดเชื้อและแมลงพาหะ.
  4. ชุมชนที่สวยงาม : การทำให้พื้นที่สาธารณะมีลักษณะที่สวยงามและบรรยากาศดีสามารถสร้างความพึงพอใจและสร้างสัมพันธ์ที่ดีในชุมชน.
  5. สร้างโอกาส : การจัดการขยะที่ยั่งยืนอาจสร้างโอกาสในการสร้างงาน, สนับสนุนธุรกิจที่เกี่ยวข้อง, หรือสร้างโครงการสำหรับชุมชน.
  6. สร้างความตระหนัก : การกระทำที่ดีในการจัดการขยะสามารถสร้างความตระหนักในปัญหาการจัดการขยะและสิ่งแวดล้อมในสังคม โดยเป็นต้นแบบที่ดีสำหรับผู้อื่น.

5.ทฤษฎีและงานอื่นที่เกี่ยวข้อง

1.ESP32 เป็นชิปไมโครคอนโทรลเลอร์ที่มาพร้อม WiFi มาตรฐาน 802.11 b/g/n และบลูทูธเวอร์ชั่น 4.2 เป็นรุ่นต่อยอดความสำเร็จของ ESP8266 โดยในรุ่นนี้ได้ออกมาแก้ไขข้อเสียของ ESP8266 ทั้งหมด 

2.RELAY รีเลย์ คืออุปกรณ์อิเล็กทรอนิกส์ที่ทำหน้าเปรียบเสมือนสวิตซ์สำหรับตัดต่อในวงจรควบคุมอัตโนมัติ

3.แบตเตอรี่ เป็นอุปกรณ์ที่ประกอบด้วย เซลล์ไฟฟ้าเคมี หนึ่งเซลล์หรือมากกว่า ที่มีการเชื่อมต่อภายนอกเพื่อให้กำลังงานกับอุปกรณ์ไฟฟ้า แบตเตอรี่มี ขั้วบวก และ ขั้วลบ

4.มอเตอร์เกียร์ (Geared Motor) มอเตอร์เกียร์ คือ มอเตอรฺ์ที่ประกอบติดกับเกียร์ทด ทำให้ได้รอบการทำงานที่ต้องการโดยไม่ต้องต่ออุปกรณ์ทดรอบภายนอก

5.Arduino IoT Cloud Application เป็นแอพพลิเคชั่น ที่มีความคล้ายคลึงกับ Blynk แต่มีความสามารถในการรองรับ Code โปรแกรมที่แตกต่างกันในบางส่วนเล็กน้อย ซึ่งหากทำงานเกี่ยวกับ Arduino เจ้าแอพพลิเคชั่น Arduino IoT Cloud จะทำงานได้รวดเร็วกว่า และไม่มีดีเลย์ การตอบสนองจะไวกว่าแอพ Blynk

6.ผลการดำเนินงาน

Diagram : การทำงานของระบบ

ขั้นตอนที่ 1ภาพรวมโมดูลของระบบ

โดยในการทดลองนี้เราสร้างมามารถควบคุมสั่งทางระไกลได้               เราจะส่งข้อมูลให้ Blynk และ Blynk จะส่งสันญาณให้MicrocontrolleESP32 ประมวลผลหลังจากนั้น Microcontroller ESP32 ก็จะสั่งการให้ ตัว Relay ทำงานตามที่เราต้องการ แล้วมอเตอร์ก็จะทำงาน โดยในโครงงานนี้เราจะใช้Microcontroller ESP32 ในการควบคุมและส่งข้อมูลต่างๆ ให้ Hardware ทุกตัวในระบบนี้ ซึ่งเราจะต้องเขียนฟังก์ชั่นต่างๆของระบบตามที่เราต้องการ และอัปโหลดลงตัวMicrocontroller ESP32 เพื่อให้ Hardwareทุกตัวในระบบทำงานตามที่เราต้องการ แบตเตอร์รี่ทำหน้าที่จ่ายไฟ

โค้ดในส่วนของ Main Code

#include <WiFi.h>
#include <BlynkSimpleEsp32.h>

const char ssid[] = “c2xn_.ig”;
const char pwd[] = “e200346za”;
#define BLYNK_SERVER “blynk.cloud”
#define BLYNK_TEMPLATE_ID “TMPL6F7k2ranI”
#define BLYNK_DEVICE_NAME “esp32”
#define BLYNK_AUTH_TOKEN “aIcqgQbJyS45_2oD0CDLMLzJABOJdaGh”

class Robot {
public:
Robot() : cleanserPin(17) {
wheelpin[0] = 21;
wheelpin[1] = 19;
wheelpin[2] = 18;
wheelpin[3] = 5;
}

void setup() {
Serial.begin(115200);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pwd, BLYNK_SERVER);
Serial.println(“Test Blynk”);

for (int i = 0; i < 4; i++) {
pinMode(wheelpin[i], OUTPUT);
digitalWrite(wheelpin[i], 1);
}

pinMode(cleanserPin, OUTPUT);
digitalWrite(cleanserPin, 1);
}

void run() {
Blynk.run();
}

void setWheelPins(int pin1, int pin2, int pin3, int pin4) {
wheelpin[0] = pin1;
wheelpin[1] = pin2;
wheelpin[2] = pin3;
wheelpin[3] = pin4;
}

void setCleanerPin(int pin) {
cleanserPin = pin;
}

void moveForward() {
digitalWrite(wheelpin[0], 0);
digitalWrite(wheelpin[2], 0);
digitalWrite(wheelpin[1], 1);
digitalWrite(wheelpin[3], 1);
}

void moveBackward() {
digitalWrite(wheelpin[0], 1);
digitalWrite(wheelpin[2], 1);
digitalWrite(wheelpin[1], 0);
digitalWrite(wheelpin[3], 0);
}

void turnLeft() {
digitalWrite(wheelpin[0], 0);
digitalWrite(wheelpin[2], 1);
digitalWrite(wheelpin[1], 1);
digitalWrite(wheelpin[3], 1);
}

void turnRight() {
digitalWrite(wheelpin[0], 1);
digitalWrite(wheelpin[2], 0);
digitalWrite(wheelpin[1], 1);
digitalWrite(wheelpin[3], 1);
}

void stop() {
for (int i = 0; i < 4; i++) {
digitalWrite(wheelpin[i], 1);
}
}

void startCleanser() {
digitalWrite(cleanserPin, 0);
}

void stopCleanser() {
digitalWrite(cleanserPin, 1);
}

private:
int wheelpin[4];
int cleanserPin;
};

Robot myRobot;

BLYNK_WRITE(V0) {
int value = param.asInt();
if (value == 1) {
myRobot.moveForward();
} else {
myRobot.stop();
}
}

BLYNK_WRITE(V1) {
int value = param.asInt();
if (value == 1) {
myRobot.moveBackward();
} else {
myRobot.stop();
}
}

BLYNK_WRITE(V2) {
int value = param.asInt();
if (value == 1) {
myRobot.turnLeft();
} else {
myRobot.stop();
}
}

BLYNK_WRITE(V3) {
int value = param.asInt();
if (value == 1) {
myRobot.turnRight();
} else {
myRobot.stop();
}
}

BLYNK_WRITE(V4) {
int value = param.asInt();
if (value == 1) {
myRobot.startCleanser();
}
}
BLYNK_WRITE(V5) {
int value = param.asInt();
if(value == 1) {
myRobot.stopCleanser();
}
}
void setup() {
myRobot.setup();
}

void loop() {
myRobot.run();
}

7.ผลสรุปผลการทดลอง

จากผลการทดลองระบบควบคุม รถเก็บขยะ ช่วงแรกๆจะมีปัญหา กดปุ่ม แล้ว มอเตอร์ทำงานบ้างและไม่ทำงานบ้าง และได้ทำการแก้ ต่างๆ หรือจะเป็นความเร็วรถที่เคลื่อที่เร็วไปแต่ก็ทำการแก้ไข้จนสำเร็จ

เอกสารอ้างอิง

You may also like...

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *