สร้างเครื่องจำลองการคัดแยกสีด้วย Arduino (Color Sorting Machine)



เครื่องจำลองการคัดแยกสี

จัดทำโดย

นายกิตติภูมิ คชแก้ว

นายพงศ์ภัค บุญกว้าง

บทนำ

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

 

จัดทำโดย

     นายกิตติภูมิ คชแก้ว 1590901037

นายพงศ์ภัค บุญกว้าง 1600902389

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

การศึกษาการทำงานของระบบและ การนำเทคโนโลยีมาใช้ เพื่อช่วยลดต้นทุนทางทรัพยากรมนุษย์ โดยการนำเทคโนโลยี เครื่องจักร สมองกลเข้ามาแทน และ ช่วยลดระยะเวลาของขั้นตอนได้



 

  1. 1. รายละเอียดโครงการ

1.1 ชื่อโครงการ

ระบบระบบการจําลองคัดแยกสีจากความเข้มวัสดุ [ Color Sorting Machine ]

1.2 สมาชิกกลุ่ม

1. นาย กิตติภูมิ คชแก้ว ภาควิชาวิศวกรรมไฟฟ้า

2. นายพงศ์ภัค บุญกว้าง ภาควิชาวิศวกรรมไฟฟ้า

 

1.3 อาจารย์ที่ปรึกษาโครงการ

อาจารย์ ทศพล บ้านคลองสี่

ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยกรุงเทพ

 

2 สาระสำคัญและคำสำคัญของโครงการ

2.1 สาระสำคัญของโครงการ

ปัจจุบันเทคโนโลยีของโรงงานอุสาหกรรมมีผมต่อการผลิตภัณฑ์ และ Conveyor หรือสายพาน ลา เลียงมกัจะเกิดขึ้นหรือมีอยูใ่ นโรงงานอุสาหกรรมที่มีขนาดใหญ่ซึ่งโรงงานขนาดกลางและขนาดเล็กยงั ใช้มนุษย์ในการล าเลียงผลิตภัณฑ์หรือใช้มนุษย์ในการแยก เนื่องจากการแยกและการใช้ Conveyorจะต้อง ใช้งบประมาณหรือความซ้อมบำรุงและพัฒนาค่อนข้างสูงจึงทำให้โรงงานขนาดกลางและขนาดเล็กเลือกที่ จะใช้แรงงานมนุษยม์ ากกวา่ เครื่องจักรด้วยเหตุผลดงักล่าวทางกลุ่มจึงคิดคน้ ระบบสายพายลา เลียงคัดแยกสีของวัตถุหรือผลิตภัณฑ์ (Conveyor Light Sensor) โดยการใช้บอร์ด Arduino และ Light Sensor เพื่อท าสายพายล าเลียงที่มี งบประมาณต่ำ กวา่ ของโรงงานอุสาหกรรมขนาดใหญ่(****วิจัยขนาดจา ลอง ****)

2.2 Keyword (คำสำคัญ)

– RGB Color Sensor [ TCS3200 ]

– Servo Motor

– Arduino UNO R3



3.หลักการและเหตุผล

โรคออฟฟิศซินโดรม เป็นโรคของคนที่ท างานหน้าจอคอมพิวเตอร์ในท่าทางที่ไม่ถูกต้อง คนส่วนใหญ่ในปัจจุบันใช้

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

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

  1. 4. วัตถุประสงค์ของโครงงาน

4.1 การให้ความรู้เรื่องการท างานของโรงงานอุสาหกรรม

4.2 เพื่อลดแรงงานมนุษย์ในโรงงานอุสาหกรรม

4.3 เพื่อใช้เป็นแนวทางการพัฒนาเทคโนโลยี

 

5.ปัญหาหรือประโยชน์ที่เป็นเหตุผลให้ควรพัฒนาโปรแกรม

5.1 ช่วยในเรื่องของการคัดแยกโดยการใชเทคโนโลยีเข้ามามีส่วนร่วม

5.2 มนุษย์จะมีหน้าที่การดูแลและควบคุมเครื่องจักรในการทำงาน

 

  1. 6. ขอบเขตของโครงงาน

สำหรับโครงงานนี้มีขอบเขตโดยแบ่งการท างานออกเป็น 2 ส่วน คือ

6.1 ส่วนตรวจจับความเขม้ของสี

6.1.1 สามารถวัดความเขม้ของสีที่ผ่านของตัว RGB Color Sensor [ TCS3200 ]

6.2 ส่วนของการคัดแยก ทฤษฎีหลักการและเทคนิคหรือเทคโนโลยี

– ใช้ Board Arduino Uno R3 ในการควบคุมตัว Sensor และ Servo Motor

– โดยเลือกใช้ Optical Sensor ในการตรวจสอบ ทำหน้าที่ตรวจสอบสีของวัตถุ

– ใช้ตัว Servo Motor 2 ตัว ในการเคลื่อนที่ของวัตถุเพื่อให้ชิ้นครบวงจรการคัดแยก

เครื่องมือที่ใช้ในการพัฒนา

อุปกรณ์และวัสดุที่ใช้

  1. ไม้อัด
  2. สายไฟต่อพวง
  3. กาวร้อน
  4. Protoboard
  5. แผ่นพลาสติกใส(โค้งงอได้)

Hardware

  1. Board Arduino Uno R3

 

2.Sensor module tcs3200

3.Servo Motor 9G

เอกสารที่เกี่ยวข้อง

             การนำเสนอระบบการจำลองคัดแยกสีจากความเข้มวัสดุ [ Color Sorting Machine ] โดยใช้เทคนิค Use the light from the LED to reflect on the object and use the TCS3200 chip. มีวัตถุประสงค์ เพื่อศึกษาความคิดเห็นของกลุ่มตัวอย่างที่มีต่อสื่อการนำเสนอระบบการจำลองคัดแยกสีโดยใช้เทคนิค Use the light from the LED to reflect on the object. โดยมีเอกสารที่เกี่ยวข้อง ดังนี้

2.1 Arduino UNO R3

2.1.1 ความหมายของ บอร์ด Arduino

2.1.2 ลักษณะของ บอร์ด Arduino

2.1.3 การนำ Arduino ไปใช้งาน

2.2 RGB Color Sensor [ TCS3200 ]

2.2.1 ลักษณะของ RGB Color Sensor [ TCS3200 ]

2.2.2 การนำ RGB Color Sensor [ TCS3200 ] ไปใช้งาน

2.3 RGB Color

2.3.1 ความหมายของ RGB Color

2.3.2 เป็นเภทของ RGB Color

2.3.3 การนำ RGB Color ไปใช้งาน

2.4 Servo Motor

2.4.1 ลักษณะของ Servo Motor

2.4.2 การนำ Servo Motor ไปใช้งาน



2.1 Arduino UNO R3

2.1.1 ความหมายของ บอร์ด Arduino

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

2.1.2 ลักษณะของ บอร์ด Arduino

บอร์ด Arduino Uno R3

 ข้อมูลจำเพาะ

   ชิปไอซีไมโครคอนโทรเลอร์ ATmega328
   ใช้แรงดันไฟฟ้า 5V
   รองรับการจ่ายแรงดันไฟฟ้า (ที่แนะนำ) 7 – 12V
   รองรับการจ่ายแรงดันไฟฟ้า (ที่จำกัด) 6 – 20V
   พอร์ต Digital I/O 14 พอร์ต (มี 6 พอร์ต PWM output)
   พอร์ต Analog Input 6 พอร์ต
   กระแสไฟที่จ่ายได้ในแต่ละพอร์ต 40mA
   กระแสไฟที่จ่ายได้ในพอร์ต 3.3V 50mA
   พื้นที่โปรแกรมภายใน 32KB พื้นที่โปรแกรม, 500B ใช้โดย Booloader
   พื้นที่แรม 2KB
   พื้นที่หน่วยความจำถาวร (EEPROM) 1KB

2.1.3 การนำ Arduino ไปใช้งาน

บอร์ด Arduino เป็นตัวไมโครคอนโทรเลอร์ที่สามารถนำไปสร้างผลงานหรือนวัตกรรมสิ่งใหม่ และสามารถสร้างสิ่งประดิษฐ์ โดยใช้โปรแกรม Arduino เป็นตัวสร้างคำสั่งตาม OUTPUT ที่เราต้องการและบอร์ด Arduino จะสามารถคุมอุปกรณ์ต่างๆ เช่น Sensor และ Servo Motor



2.2 RGB Color Sensor [ TCS3200 ]

2.2.1 ลักษณะของ RGB Color Sensor [ TCS3200 ]

    

2.2.2 การนำ RGB Color Sensor [ TCS3200 ] ไปใช้งาน

 

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

photodiodes16 ตัวเชื่อมต่อแบบขนานดังนั้นเมื่อใช้หมุดควบคุมสองตัว S2 และ S3 เราจึงสามารถเลือกได้ว่าจะอ่านอะไร ตัวอย่างเช่นถ้าเราต้องการตรวจจับสีแดงเราก็สามารถใช้ photodiodes ที่กรองด้วยสีแดง 16 ตัวโดยการตั้งหมุดสองตัวให้อยู่ในระดับตรรกะต่ำตามตาราง

Sensor มีหมุดควบคุมอีกสองตัวคือ S0 และ S1 ซึ่งใช้สำหรับปรับความถี่ Output ความถี่สามารถปรับเป็นค่าที่ตั้งไว้ล่วงหน้าสามค่าคือ 100%, 20% หรือ 2% ฟังก์ชั่นการปรับความถี่นี้ช่วยให้สามารถปรับ Outputของเซ็นเซอร์ให้เหมาะกับตัวนับความถี่หรือไมโครคอนโทรลเลอร์

 

2.3 RGB Color

2.3.1 ความหมายของ RGB Color

RGB ย่อมาจาก red , green และ blue คือ กระบวนการผสมสีจากแม่สี 3 สี คือสีแดง สีเขียว และสีน้ำเงิน การใช้สัดส่วนของสี 3 สีนี้ต่างกัน จะทำให้เกิดสีต่างๆ ได้อีกมากมาย

ระบบสี RGB เป็นระบบสีที่เกิดจากการรวมกันของแสงสีแดง เขียว และน้ำเงินโดยมีการรวมกันแบบ Additive ซึ่งโดยปกติจะนำไปใช้ในจอภาพแบบ CRT (Cathode ray tube) ในการใช้งานระบบสี RGB ยังมีการสร้างมาตรฐานที่แตกต่างกันออกไปที่นิยมใช้งานได้แต่ RGBCIE และ RGBNTSC

2.3.2 เป็นเภทของ RGB Color

ประเภทที่ 1 CMYK : ระบบสีที่ใช้กับเครื่องพิมพ์

ระบบสี CMYKเป็นระบบสีที่ใช้กับเครื่องพิมพ์ CMYK ย่อมาจาก cyan (ฟ้าอมเขียว) magenta (แดงอมม่วง) yellow (เหลือง) Black (ดำ) ซึ่งเป็นชื่อสีที่นำมาใช้ การผสมสีทั้งสี่นี้ จะทำให้เกิดสีได้อีกหลายร้อยสี นำมาใช้ในการพิมพ์สีต่าง ๆ ซึ่งเป็นสีที่เรามองเห็นบนวัตถุต่าง ๆ เช่น กระดาษ

 

ประเภทที่ 2 RGB : ระบบแสงแสดงภาพ

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

 

2.3.3 การนำ RGB Color ไปใช้งาน

 

           escription: First we need to define the pins to which the sensor is connected and define a variable for reading the frequency. In the setup section we need to define the four control pins as outputs and the sensor output as an Arduino input. Here we also need to set the frequency-scaling, for this example I will set it to 20%, and start the serial communication for displaying the results in the Serial Monitor.

       In the loop section, we will start with reading the red filtered photodiodes. For that purpose we will set the two control pins S2 and S3 to low logic level. Then using the “pulseIn()” function we will read the output frequency and put it into the variable “frequency”. Using the Serial.print() function we will print the result on the serial monitor. The same procedure goes for the two other colors, we just need to adjust the control pins for the appropriate color

  1. #define S0 4
  2. #define S1 5
  3. #define S2 6
  4. #define S3 7
  5. #define sensorOut 8
  6. int frequency = 0;
  7. void setup() {
  8. pinMode(S0, OUTPUT);
  9. pinMode(S1, OUTPUT);
  10. pinMode(S2, OUTPUT);
  11. pinMode(S3, OUTPUT);
  12. pinMode(sensorOut, INPUT);
  13. // Setting frequency-scaling to 20%
  14. digitalWrite(S0,HIGH);
  15. digitalWrite(S1,LOW);
  16. Serial.begin(9600);
  17. }
  18. void loop() {
  19. // Setting red filtered photodiodes to be read
  20. digitalWrite(S2,LOW);
  21. digitalWrite(S3,LOW);
  22. // Reading the output frequency
  23. frequency = pulseIn(sensorOut, LOW);
  24. // Printing the value on the serial monitor
  25. Serial.print(“R= “);//printing name
  26. Serial.print(frequency);//printing RED color frequency
  27. Serial.print(” “);
  28. delay(100);
  29. // Setting Green filtered photodiodes to be read
  30. digitalWrite(S2,HIGH);
  31. digitalWrite(S3,HIGH);
  32. // Reading the output frequency
  33. frequency = pulseIn(sensorOut, LOW);
  34. // Printing the value on the serial monitor
  35. Serial.print(“G= “);//printing name
  36. Serial.print(frequency);//printing RED color frequency
  37. Serial.print(” “);
  38. delay(100);
  39. // Setting Blue filtered photodiodes to be read
  40. digitalWrite(S2,LOW);
  41. digitalWrite(S3,HIGH);
  42. // Reading the output frequency
  43. frequency = pulseIn(sensorOut, LOW);
  44. // Printing the value on the serial monitor
  45. Serial.print(“B= “);//printing name
  46. Serial.print(frequency);//printing RED color frequency
  47. Serial.println(” “);
  48. delay(100);



2.4 Servo Motor

2.4.1 ลักษณะของ Servo Motor

Servo Motor

 

ส่วนประกอบของเซอร์โวมอเตอร์

  • Case ตัวถัง หรือ กรอบของตัว Servo Motor
  • Mounting Tab ส่วนจับยึดตัว Servo กับชิ้นงาน
  • Output Shaft เพลาส่งกำลัง
  • Servo Horns ส่วนเชื่อมต่อกับ Output shaft เพื่อสร้างกลไกล
  • Cable สายเชื่อมต่อเพื่อ จ่ายไฟฟ้า และ ควบคุม Servo Motor จะประกอบด้วยสายไฟ 3 เส้น และ ใน RC Servo Motor จะมีสีของสายแตกต่างกันไปดังนี้
  • สายสีแดง คือ ไฟเลี้ยง (4.8-6V)
  • สายสีด า หรือ น้ำาตาล คือ กราวด์
  • สายสีเหลือง (ส้ม ขาว หรือฟ้า) คือ สายส่งสัญญาณพัลซ์ควบคุม (3-5V)
  • Connector จุดเชื่อมต่อสายไฟ

 

2.4.2 การนำ Servo Motor ไปใช้งาน

เมื่อจ่ายสัญญาณพัลซ์เข้ามายัง RC Servo Motor ส่วนวงจรควบคุม (Electronic Control System) ภายใน Servo จะทำการอ่านและประมวลผลค่าความกว้างของสัญญาณพัลซ์ที่ส่งเข้ามาเพื่อแปลค่าเป็นตำแหน่ง องศาที่ต้องการให้ Motor หมุนเคลื่อนที่ไปยังตำแหน่งนั้น แล้วส่งค าสั่งไปท าการควบคุมให้ Motor หมุนไปยัง ตำแหน่งที่ต้องการ โดยมี Position Sensor เป็นตัวเซ็นเซอร์คอยวัดค่ามุมที่ Motor ก าลังหมุนเป็น Feedback กลับมาให้วงจรควบคุมเปรียบเทียบกับค่าอินพุตเพื่อควบคุมให้ได้ตำแหน่งที่ต้องการอย่างถูกต้องแม่นยำ สัญญาณ RC ในรูปแบบ PWM

ตัว RC Servo Motor ออกแบบมาใช้สำหรับรับคำสั่งจาก Remote Control ที่ใช้ควบคุมของเล่นด้วย สัญญาณวิทยุต่างๆ เช่นเครื่องบินบังคับ รถบังบังคับ เรือบังคับ เป็นต้น ซึ่ง Remote จำพวกนี้ที่ภาครับจะแปลง ความถี่วิทยุออกมาในรูปแบบสัญญาณ PWM (Pulse Width Modulation)

 

Remote Control RC Servo Motor 

มุมหรือองศาหมุนขึ้นอยู่กับความกว้างของสัญญาณพัลซ์

Procedure [ วิธีการดำเนินงาน ]

           วัสดุที่ใช้สำหรับโครงการนี้ คือ แผ่นใยสังเคราะห์ติ๊กขนาด 3 มม. วาดชิ้นส่วนต่างๆบนแผ่นใยไม้อัดตามแบบและใช้เลื่อยเล็ก ๆ ตัดส่วนทั้งหมดให้เป็นขนาด

พร้อมทุกส่วนฉันก็เริ่มประกอบมัน ก่อนอื่นฉันประกอบชิ้นส่วนด้านนอกโดยใช้กาว

จากนั้นใช้กาวอเนกประสงค์ฉันติดกาวเซอร์โวมอเตอร์สองตัวบนแพลตฟอร์มและต่อเข้ากับชุดประกอบ


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

ต่อไปฉันเสียบสวิตช์และแจ็คไฟสำหรับเปิดเครื่อง Arduino ด้วยอะแดปเตอร์5V และบนแพลตฟอร์มที่สามฉันใส่เซ็นเซอร์สี



เชื่อมต่อส่วนประกอบเข้าด้วยกันตามแผนงานวงจรต่อไปนี้

 

Arduino Color Sorter Source Code

  1. #include <Servo.h>
  2. #define S0 2
  3. #define S1 3
  4. #define S2 4
  5. #define S3 5
  6. #define sensorOut 6
  7. Servo topServo;
  8. Servo bottomServo;
  9. int frequency = 0;
  10. int color=0;
  11. void setup() {
  12. pinMode(S0, OUTPUT);
  13. pinMode(S1, OUTPUT);
  14. pinMode(S2, OUTPUT);
  15. pinMode(S3, OUTPUT);
  16. pinMode(sensorOut, INPUT);
  17. digitalWrite(S0, HIGH);
  18. digitalWrite(S1, LOW);
  19. topServo.attach(7);
  20. bottomServo.attach(8);
  21. Serial.begin(9600);
  22. }
  23. void loop() {
  24. topServo.write(115);
  25. delay(500);
  26. for(int i = 115; i > 65; i–) {
  27. topServo.write(i);
  28. delay(2);
  29. }
  30. delay(500);
  31. color = readColor();
  32. delay(10);
  33. switch (color) {
  34. case 1:
  35. bottomServo.write(50);
  36. break;
  37. case 2:
  38. bottomServo.write(75);
  39. break;
  40. case 3:
  41. bottomServo.write(100);
  42. break;
  43. case 4:
  44. bottomServo.write(125);
  45. break;
  46. case 5:
  47. bottomServo.write(150);
  48. break;
  49. case 6:
  50. bottomServo.write(175);
  51. break;
  52. case 0:
  53. break;
  54. }
  55. delay(300);
  56. for(int i = 65; i > 29; i–) {
  57. topServo.write(i);
  58. delay(2);
  59. }
  60. delay(200);
  61. for(int i = 29; i < 115; i++) {
  62. topServo.write(i);
  63. delay(2);
  64. }
  65. color=0;
  66. }
  67. int readColor() {
  68. digitalWrite(S2, LOW);
  69. digitalWrite(S3, LOW);
  70. frequency = pulseIn(sensorOut, LOW);
  71. int R = frequency;
  72. Serial.print(“R= “);
  73. Serial.print(frequency);
  74. Serial.print(” “);
  75. delay(50);
  76. digitalWrite(S2, HIGH);
  77. digitalWrite(S3, HIGH);
  78. frequency = pulseIn(sensorOut, LOW);
  79. int G = frequency;
  80. Serial.print(“G= “);
  81. Serial.print(frequency);
  82. Serial.print(” “);
  83. delay(50);
  84. digitalWrite(S2, LOW);
  85. digitalWrite(S3, HIGH);
  86. frequency = pulseIn(sensorOut, LOW);
  87. int B = frequency;
  88. Serial.print(“B= “);
  89. Serial.print(frequency);
  90. delay(50);
  91. if(R<175 & R>120 & G<320 & G>250){
  92. color = 1; // Red
  93. }
  94. if(R<125 & R>80 & B<285 &B>225){
  95. color = 2; // Orange
  96. }
  97. if(R<195 & R>100 & G<180 & G>120){
  98. color = 3; // Green
  99. }
  100. if(R<110 & R>85 & G<185 & G>150){
  101. color = 4; // Yellow
  102. }
  103. if(R<190 & R>128 & G<285 & G>230){
  104. color = 5; // Brown
  105. }
  106. if (G<290 & G>240 & B<300 &B>280){
  107. color = 6; // Blue
  108. }
  109. return color;
  110. }

Experimental design and experimental results : Color Sorting

Machine Drawings

Color Sorting Machine 3D Model Assembly Solidworks 

Flowchart

Finishing the Design

ปัญหาที่พบจากการทำโปรเจค คือ RGB color Sensor คือ ความเสถียรของการวัดค่า RGB ของเซนเซอร์มักพบค่า error สูงในการทำงานของแต่ละรอบ

present 15/05/2019
https://youtu.be/MJGOnzVb59s

Clip DIY
https://youtu.be/AxBipSUGZV4



KITTIPOOM KOCHAKAEW on sabfacebook
KITTIPOOM KOCHAKAEW
at GlurGeek.Com
ศึกษาอยู่ที่ คณะวิศวะกรรมศาสตร์ สาขา วิศวะไฟฟ้า มหาวิทยลัยกรุงเทพ(รังสิต) ชอบเรียนรู้เกี่ยวกับ เทคโนโลยี เพราะ ทำให้ชีวิตประจำวันเราสะดวกขึ้น และ มันทำให้การใช้ชีวิตของเราง่ายขึ้น เทคโนโลยี สามารถประยุกต์ใช้ได้กับทุกอย่างรอบๆตัวเรา

Leave a Reply

© 2022 GlurGeek.Com