ประดิษฐ์หุ่นยนต์ส่งเอกสารด้วย Arduino



รถส่งเอกสาร

บทนำ

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

กลุ่มของเราเล็งเห็นถึงความสำคัญในเรื่องของ ” เวลา ” ควบคู่ไปกับเรื่องของ”สุขภาพ”ในการดำเนินงานเพื่อลดปัญหาการเลิกงานหลังเวลาและอาจช่วยในการขยับเขยื้อนร่างกายและการหยุดพักสายตาระหว่างทำงานและเพื่อความสะดวกสบายในเวลาที่จำกัดจึงได้จัดทำโครงการนี้ขึ้นมาโดยนำเทคโนโลยีArduino มาประยุกต์ใช้ในการดัดแปลงทำ ” เครื่องส่งเอกสารใน office “ซึ่งจะออกแบบให้สามารถส่งเอกสารภายในสำนักงานได้โดยทำตัวรถที่ใช้ในการบรรจุเอกสารและสามารถสั่งการได้โดยวิ่งตามเส้นเพื่อให้ไปส่งเอกสารยังสถานที่ที่ต้องการโดยทางเราได้คำนึงถึงเรื่องปัญหาofficesyndromโดยการไม่ให้พนักงานต้องนั่งทำงานในท่าซ้ำๆเป็นระยะเวลานานจนเกินไป

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

 วัตถุประสงค์และเป้าหมาย

1.เพื่อประยุกต์ใช้เทคโนโลยีอาดูโน่ในการประดิษฐ์ชิ้นงานที่สามารถใช้ได้จริงในชีวิตประจำวัน

2.เพื่อเพิ่มความสะดวกสบายแก่ผู้ใช้งาน

3.เพื่อส่งเสริมจินตนาการและความคิดสร้างสรรค์

รายละเอียดของการพัฒนา

IR Infrared Obstacle Avoidance Sensor Module

โมดูลเซ็นเซอร์แสงสำหรับตรวจจับวัตถุกีดขวาง  IR Infrared Obstacle Avoidance Sensor Module โดยโมดูลนี้ จะมีตัวรับและตัวส่ง infrared ในตัว ตัวสัญญาณ(สีขาว) infrared จะส่งสัญญาณออกมา และเมื่อมีวัตถุมาบังคลื่นสัญญาณinfrared  ที่ถูกสั่งออกมาจะสะท้องกลับ

ไปเข้าตัวรับสัญญาณ (สีดำ) สามารถนำมาใช้ตรวจจับวัตถุที่อยู่ตรงหน้าได้ และสามารถปรับความไว ระยะการตรวจจับ ใกล้หรือไกลได้


ภายตัวเซ็นเซอร์แบบนี้จะมีตัวส่ง Emitter และ ตัวรับ Receiver ติดตั้งภายในตัวเดียวกัน ทำให้ไม่จำเป็นต้องเดินสายไฟทั้งสองฝั่ง เหมือนแบบ Opposed Mode ทำให้การติดตั้งใช้งานได้ง่ายกว่า แต่อย่างไรก็ตามจำเป็นต้องติดตั้งตัวแผ่นสะท้อนหรือ Reflector ไว้ตรงข้ามกับตัวเซ็นเซอร์เองโดยโฟโต้เซ็นเซอร์แบบที่ใช้แผ่นสะท้อน

แบบนี้จะเหมาะสำหรับชิ้นงานที่มีลักษณะทึบแสงไม่เป็นมันวาว เนื่องจากอาจทำให้ตัวเซ็นเซอร์เข้าใจผิดว่าเป็นตัวแผ่นสะท้อน และ ทำให้ทำงานผิดพลาดได้เซ็นเซอร์แบบนี้จะมีช่วงในการทำงาน หรือ ระยะในการตรวจจับจะได้ใกล้กว่าแบบ Opposed mode ซึ่งในสภาวะการทำงานปกติตัวรับReceiverจะสามารถรับสัญญาณแสงจากตัวส่ง  Emitter ได้ตลอดเวลา เนื่องจากลำแสงจะสะท้อนกับแผ่นสะท้อน Reflector อยู่ตลอดเวลา จะแสดงค่า เป็น 0

หน้าที่หลักของเซ็นเซอร์ชนิดนี้จะคอยตรวจจับวัตถุที่เคลื่อนที่ตัดผ่านหน้า

เซ็นเซอร์เมื่อวัตถุหรือชิ้นงานผ่านเข้ามาที่หน้าเซ็นเซอร์แล้วจะการขวาง

ลำแสงที่ส่งจากตัวส่ง Emitter ที่ส่งไปยังแผ่นสะท้อน จึงทำให้ตัวรับ Receiver ไม่สามารถรับลำแสงที่จะสะท้อนกลับมาได้ จะแสดงค่า เป็น 1

 

ซึ่งจะทำให้วงจรภายในรับรู้ได้ว่ามีวัตถุหรือชิ้นงานขวางอยู่ทำให้สถานะ

ของเอาท์พุตของตัวรับเปลี่ยนแปลงไปโดยเราเรียกลักษณะการทำงานแบบนี้ว่า Dark On หรือ Dark Operate

แบบจำลองตัวรถส่งเอกสาร

 



รถส่งเอกสารได้พัฒนามาจากเทคโนโลยีอาดูโน่และมีหลักการดังนี้

เซ็นเซอร์ตรวจสอบการสะท้อนแสงกลับมาแล้วส่งสัญญาณไปยัง Arduino Uno R3 แล้ว Arduino Uno R3 จึงไปสั่งให้มอเตอร์ทำงานโดย Motor Drive ModuleL298Nให้เป็นไปตามการส่งค่ามาของเซ็นเซอร์

รถส่งเอกสารเดินตามเส้นนี้ เราจะใช้ 2 เซ็นเซอร์อินฟราเรด คือด้านซ้ายและด้านขวา  โดย เมื่อเซ็นเซอร์ ทั้งด้านซ้ายและด้านขวา ตรวจสอบแล้วเป็นพื้นสีขาว ลำแสง สามารถสะท้อนกลับมาได้ทั้งคู่

( 0 , 0 ) ให้หุ่นยนต์เคลื่อนที่ไปข้างหน้า

หากเซ็นเซอร์ซ้ายมาพบพื้นสีดำ และ เซ็นเซอร์ขวาพบพื้นสีขาว ( 1 , 0 ) ให้หุ่นยนต์เลี้ยวไปทางด้านซ้าย

 

หากเซ็นเซอร์ขวามาพบพื้นสีดำ และ เซ็นเซอร์ซ้ายพบพื้นสีขาว ( 0 , 1 ) ให้หุ่นยนต์เลี้ยวไปทางด้านขวา

หากเซ็นเซอร์ทั้งสองมาอยู่บนเส้นสีดำทั้งคู่ ( 1 , 1 ) ให้หุ่นยนต์หยุด

 

 

อุปกรณ์ที่ใช้ประดิษฐ์รถส่งเอกสาร

Hardware

  1. 2WD Smart Robot Car Chassis Kits
    2. Arduino UNO R3 – Made in italy
    3. IR Infrared Obstacle Avoidance Sensor Module จำนวน 2 ชิ้น
    4. Motor Drive Module L298N
    5. สาย Jumper Female to Male ยาว 20cm.
    6. สาย Jumper Male to Male ยาว 20cm.
    7. รางถ่านแบบ 18650 ใส่ถ่าน 2 ก้อน
    8. แบตเตอรี่ลิเธียม 18650 จำนวน 2 ก้อน
    9. สกรูหัวกลมน็อตตัวเมีย ขนาด 3มม ยาว12 มม.



Software

โปรแกรมที่ใช้ Arduino (IDE)

ให้เลือก Board : เป็น Arduino/Genuino UNO

ตรวจสอบ ต้องมี Port :  ในตัวอย่างเป็น COM3

ถ้าทุกอย่างถูกต้อง ให้คลิกเครื่องหมายตรงไป เพื่ออัพโหลด

รอกระทั่ง จนขึ้น Done uploading. 

ถ้าขึ้นแล้วแสดงว่า สามารถอัพโหลดโปรแกรมเข้า Arduino UNO สําเร็จแล้ว

และโค้ดที่ใช้กับตัวรถส่งเอกสารคือ

/*——-definning Inputs——*/
int LS = 2;     // left sensor
int RS  = 3;      // right sensor
/*——-definning Outputs——*/
int LM1 = 4;      // left motor
int LM2 =  5;       // left motor
int RM1 =  6;       // right motor
int RM2 =  7;       // right motor
/*——-PWM ควบคุมความเร็วมอเตอร์—–*/
int PWM1 = 10;    // PWM left motor
int PWM2 = 11;    // PWM right motor
int SPEED = 90;  // Speed PWM สามารถปรับความเร็วได้ถึง 255
void setup()
{
pinMode(LS, INPUT);
pinMode(RS, INPUT);
pinMode(LM1, OUTPUT);
pinMode(LM2, OUTPUT);
pinMode(RM1, OUTPUT);
pinMode(RM2, OUTPUT);
pinMode(PWM1, OUTPUT);
pinMode(PWM2, OUTPUT);
}
void loop()
{
if (!(digitalRead(LS)) && !(digitalRead(RS)))

{
analogWrite(PWM1, SPEED);
digitalWrite(LM1, HIGH);
digitalWrite(LM2, LOW);
analogWrite(PWM2, SPEED);
digitalWrite(RM1, HIGH);
digitalWrite(RM2, LOW);
}
if (!(digitalRead(LS)) && digitalRead(RS))

{
digitalWrite(LM1, LOW);
digitalWrite(LM2, LOW);
analogWrite(PWM2, SPEED);
digitalWrite(RM1, HIGH);
digitalWrite(RM2, LOW);
}

if (digitalRead(LS) && !(digitalRead(RS)))
{
analogWrite(PWM1, SPEED);
digitalWrite(LM1, HIGH);
digitalWrite(LM2, LOW);
digitalWrite(RM1, LOW);
digitalWrite(RM2, LOW);
}

if (digitalRead(LS) && digitalRead(RS))
{
digitalWrite(LM1, LOW);
digitalWrite(LM2, LOW);
digitalWrite(RM1, LOW);
digitalWrite(RM2, LOW);
}
}



อาดูโน่กับอุปกรณ์ต่างๆ

การต่ออาดูโน่เข้ากับอุปกรณ์ต่างๆ เช่น ต่อเข้ากับ Sensors และ Motor Drive Module เป็นต้น

วิธีการต่ออาดูโน่กับMotor Drive Moduleเข้าด้วยกัน

ดังตารางนี้

วิธีการต่ออาดูโน่กับSenSorเข้าด้วยกัน

VCC (ซ้าย,ขวา) <-> 5V               GND (ซ้าย,ขวา) <-> GND
OUT (ซ้าย)       <-> D2                 OUT (ขวา)       <-> D3

 

ตรง 5V ของ Arduino จะมี 3 สายใช้ร่วมกัน ให้เชื่อมต่อ บัตกรี รวมกันก่อนแล้วจึงต่อเข้าไปที่ 5V 

FlowChart ภาพรวมโปรแกรม

 

 SourceCode 

ตัวรถส่งเอกสาร

/*——-บอกตัวแปร Inputs——*/
int LS = 2;     // left sensor
int RS  = 3;      // right sensor

/*——-บอกตัวแปร Outputs——*/
int LM1 = 4;      // left motor
int LM2 =  5;       // left motor
int RM1 =  6;       // right motor
int RM2 =  7;       // right motor

/*——-PWM ควบคุมความเร็วมอเตอร์—–*/
int PWM1 = 10;    // PWM left motor
int PWM2 = 11;    // PWM right motor
int SPEED = 90;  // Speed PWM สามารถปรับความเร็วได้ถึง 255

void setup()
{
pinMode(LS, INPUT);
pinMode(RS, INPUT);
pinMode(LM1, OUTPUT);
pinMode(LM2, OUTPUT);
pinMode(RM1, OUTPUT);
pinMode(RM2, OUTPUT);
pinMode(PWM1, OUTPUT);
pinMode(PWM2, OUTPUT);
}

void loop()
{

if (!(digitalRead(LS)) && !(digitalRead(RS)))    // ไปข้างหน้า

{
analogWrite(PWM1, SPEED);
digitalWrite(LM1, HIGH);
digitalWrite(LM2, LOW);
analogWrite(PWM2, SPEED);
digitalWrite(RM1, HIGH);
digitalWrite(RM2, LOW);
}

if (!(digitalRead(LS)) && digitalRead(RS))    // เลี้ยวขวา
{
digitalWrite(LM1, LOW);
digitalWrite(LM2, LOW);
analogWrite(PWM2, SPEED);
digitalWrite(RM1, HIGH);
digitalWrite(RM2, LOW);
}

if (digitalRead(LS) && !(digitalRead(RS)))    // เลี้ยวซ้าย
{
analogWrite(PWM1, SPEED);
digitalWrite(LM1, HIGH);
digitalWrite(LM2, LOW);
digitalWrite(RM1, LOW);
digitalWrite(RM2, LOW);
}

if (digitalRead(LS) && digitalRead(RS))    // หยุด
{
digitalWrite(LM1, LOW);
digitalWrite(LM2, LOW);
digitalWrite(RM1, LOW);
digitalWrite(RM2, LOW);
}

}




Source Code :

หุ่นยนต์เดินตามเส้น 2 เซ็นเซอร์ด้วย Arduino

ขอบเขตการทำงาน

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

กลุ่มผู้ใช้โปรแกรมพร้อมผลประเมินจากผู้ใช้

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

การทำงานของรถส่งเอกสาร

ปัญหาและอุปสรรคเกี่ยวกับรถส่งเอกสาร

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

แนวทางในการพัฒนาต่อในอนาคต

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

ข้อสรุปและข้อเสนอแนะ

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

Reference :

http://naringroup.blogspot.com/2016/03/robot-l298n-dual-h-bridge-motor.html?m=1

https://robotsiam.blogspot.com/2016/10/ir-infrared-obstacle-avoidance-sensor.html?m=1

http://www.robotsiam.com/article/12/

 

Clip นำเสนอโครงงาน
https://youtu.be/9YQCWIjsZXI

Clip สาธิตวิธีการทำแบบ D.I.Y.
https://youtu.be/U9mHULpcNZk

จัดทำโดย

นาย เกียรติณรงค์ นันทปัยญา

นาย พงศกร ปิ่นเนตร

นาย ธนบดี สุขสุขวัญ



PHONGSAKORN PINNATE
at GlurGeek.Com

Leave a Reply

© 2022 GlurGeek.Com