วันพฤหัสบดีที่ 16 กรกฎาคม พ.ศ. 2558

วันที่43 ที่Fibo

-ดูข้อมูลแขนกล และหลักการของแขนกลโดยศึกษาเบื้องต้น

ทฤษฎีที่เกี่ยวข้อง
2.1 โครงสร้างทางกายภาพ
หุ่นยนต์อุตสาหกรรม (Industrial Robot)
             การทำงานของหุ่นยนต์อุตสาหกรรมจะเลียนแบบร่างกายของมนุษย์โดยจะเลียนแบบเฉพาะส่วนของร่างกายที่นำไปใช้ประโยชน์ ในอุตสาหกรรมเท่านั้น นั่นคือช่วงแขนของมนุษย์ ดังนั้น บางคนอาจจะเคยได้ยินคำว่าแขนกล ซึ่งก็หมายถึงหุ่นยนต์อุตสาหกรรม
              การทำงานของแขนกลอุตสาหกรรมเปรียบเทียบกับแขนมนุษย์ แสดงดังรูปที่ 2.1

2.2 นิยามของหุ่นยนต์ (Robotics definition)  
หุ่นยนต์ คือ เครื่องจักรที่ถูกควบคุมอัตโนมัติ สามารถเขียนโปรแกรมใหม่ได้ ใช้งานเอนกประสงค์ โปรแกรมการเคลื่อนที่ต้องสามารถโปรแกรมให้เคลื่อนที่ได้อย่างน้อย 3 แกนหรือมากกว่า หุ่นยนต์อาจยึดอยู่กับที่หรือย้ายตำแหน่ง (Mobile) เพื่อใช้ในงานอุตสาหกรรม

2.3 การแบ่งชนิดของหุ่นยนต์      
            โดยทั่วไปการแบ่งชนิดของหุ่นยนต์จะแบ่งตามลักษณะรูปทรงของพื้นที่ทำงาน (Envelope Geometric) ซึ่งการทำงานของจุดต่อ (Joint) ของหุ่นยนต์หรือแขนกลแต่ละชนิดแตกต่างกันออกไปซึ่งจุดต่อ (Joint) ของหุ่นยนต์หรือแขนกลในโรงานอุตสาหกรรมนั้น สามารถแบ่งออกเป็น 2 ชนิดดังนี้................................................................

2.4 หลักการทำงานของระบบมอเตอร์ไฟฟ้ากระแสตรง
มอเตอร์คือ  เครื่องใช้ไฟฟ้าประเภทเครื่องกล ที่ใช้งานกันอยู่โดยทั่วไปภายในอาคารบ้านเรือนและโรงงานอุตสาหกรรม ได้แก่ พัดลม เครื่องบด เครื่องปั่น เครื่องซักผ้า ปั๊มน้ำ เครื่องกลึง เครื่องไส เครื่องเจาะ เครื่องคว้าน เครื่องเลื่อย เครื่องเจียระไน แขนกล  เป็นต้น ต่างก็ทำงานด้วยการหมุนขับของมอเตอร์  ดังนั้นมอเตอร์จึงเป็นเครื่องกลฟ้าที่ให้กำเนิดพลังงานกลที่จำเป็นและสำคัญยิ่งประเภทหนึ่ง
2.4.1  หลักการเบื้องต้นของมอเตอร์
2.4.2 การสูญเสียในมอเตอร์แบ่งออกได้ดังนี้
การออกแบบ และการสร้างแขนกล
4.1 อุปกรณ์ในการทดลอง
ในการทดลองควบคุมแขนกลนี้ โดยใช้วงจรควบคุมทิศทางการหมุนของมอเตอร์ เป็นตัวควบคุมแขนกลให้เคลื่อนที่ตามมุมองศาที่ต้องการ และให้มีความคลาดเคลื่อนน้อยที่สุดในการทำโครงงานจะเป็นส่วนโครงสร้างของแขนกล ซึ่งเป็นแบบ Articulated Arm (Revolute) โดย ไม่รวมถึงการเขียนโปรแกรมควบคุมด้วย

มอเตอร์คือเครื่องกลไฟฟ้าที่เปลี่ยนพลังงานไฟฟ้า  ให้เป็นพลังงานกล 
....................................
ตัวนำที่ให้กระแสไฟฟ้าไหลผ่านเมื่อวางไว้ใกล้กันจะให้แรงดูดและแรงผลักต่อกัน
     -  ตัวนำที่ให้กระแสไหลทางเดียวกัน จะให้แรงดูดต่อกัน
     -  ตัวนำที่ให้กระแสไหลสวนทางกัน  จะให้แรงผลักต่อกัน
แรงดูดและแรงผลักระหว่างตัวนำที่ให้กระแสไฟฟ้าไหลผ่าน คำนวณได้ตามสมการไฟฟ้าต่อไปนี้

F = 2×10-7×I1×I2×/a [N]

เมื่อ       F   =  แรงดูดและแรงผลักต่อกันระหว่างตัวนำ (นิวตัน  :N)
             I1     กระแสไฟฟ้าที่ให้ไหลผ่านตัวนำ  (แอมแปร์ : A)
             I2    =   กระแสไฟฟ้าที่ให้ไหลผ่านตัวนำ  (แอมแปร์ : A)
               =  ความยาวตัวนำ (เมตร : m)
             a    =  ระยะห่างระหว่างตัวนำ (เมตร : m)
...........................................................

1.  การสูญเสียในขดลวดทองแดง
                        -  การสูญเสียในขดลวดอาร์เมเจอร์
                        -  การสูญเสียในขดลวดสนามแม่เหล็ก
...................................................

2.5 การควบคุมทิศทางการหมุนของ DC Motor
1.  วงจร H-Bridge Switching โดยใช้ สวิตช์
วงจร H-Bridge Switching ประกอบด้วยสวิตช์ 4 ตัว คือ S1  S2  S3 และ S4 และมีมอเตอร์
ไฟฟ้ากระแสตรง (DC Motor) เป็นภาระต่ออยู่ดังรูปที่ 2.9................................................
2.6  องค์ประกอบอื่นๆที่เกี่ยวข้อง
2.6.1 ระบบโซ่และล้อโซ่ (Chain And Sprocket)
การขับด้วยโซ่มีใช้อยู่มากเหมือนกันทางด้านเครื่องจักรกล  ทั้งนี้เนื่องมาจากมีลักษณะคล้ายกับการขับด้วยสายพาน  ..............................................
 
2.6.2 เซ็นเซอร
ระบบควบคุมที่ดีมีความแมนยําและทํางานอยางอัตโนมัตินั้นไมไดเกิดจากการควบคุมเพียง
อยางเดียวคงตองพึ่งพาอุปกรณตรวจจับ (Sensor Element) ..................................
ในบทนี้จะกล่าวถึงการออกแบบแขนกลเป็นแบบ  Articulated Arm (Revolute)  ซึ่งแขนกลแบบ Articulated Arm (Revolute)  ................................
3.1  การออกแบบโครงสร้างแขนกล
ในการศึกษา และเก็บข้อมูลได้เลือกการออกแบบแขนกลเป็นแบบ  Articulated Arm (Revolute)   ทุกแกนการเคลื่อนที่เป็นแบบหมุน (Revolute) รูปแบบการเคลื่อนที่คล้ายกับแขนคน ซึ่งประกอบด้วยช่วงเอว ท่อนแขนบน ท่อนแขนล่าง และข้อมือ การเคลื่อนที่ทำให้ได้พื้นที่การทำงาน ดัง รูป 3.1
3.2  วงจรไฟฟ้าควบคุมทิศทางทางหมุนของมอเตอร์กระแสตรง
ในการศึกษาเก็บข้อมูลวงจรไฟฟ้าควบคุมทิศทางทางหมุนของ DC Motor ได้เลือกใช้
ไอซี 7279P  ดังรูปที่ 3.6  
3.3  เซ็นเซอร์ (Sensor)
ในการออกแบบแขนกล เซ็นเซอร์ที่ใช้เป็นแบบ Through – beam type เปนแบบที่ตัวรับและตัวสงแสงแยก กันอยูคนละด้าน และใหวัตถุที่ตรวจจับเคลื่อนผานระหวางกลางดังรูปที่ 3.7    
............................ 
3.4  ลิมิตสวิตช์ (limit switch)
            ลิมิตสวิตช์ ภายในประกอบไปด้วย 2 ชุด ซึ่งทำหน้าที่กำหนดขอบเขตการหมุนของมอเตอร์และป้องกันการกระแทกของแขนกล
...................
3.5   วงจรการควบคุมการกลับทางหมุนของมอเตอร์ 
3.6  ไดอะแกรมการทำงานของมอเตอร์แขนกล 
การทดลองและวิเคราะห์
การทดลองและข้อมูลที่กล่าวถึงในบทนี้  เป็นส่วนที่เกี่ยวกับการควบคุมการเคลื่อนที่ของแขน ให้มีความผิดพลาดน้อยที่สุด  โดยทั่วไปแล้วแขนกลอุตสหกรรมนั้นจะมีอุปสรรคในการที่จะป้อนข้อมูลเข้าสู่หน่วยความจำของแขนกล  ทำให้สามารถรู้ตำแหน่งของแขนกลในขณะต่างๆ
1.  แขนกล
2.  อุปกรณ์ควบคุมเชื่อมต่อกับ PLC
วงจรไฟฟ้าควบคุมทิศทางทางหมุนของ มอเตอร์ไฟฟ้ากระแสตรง (DC Motor)
-  เซ็นเซอร์
-  ลิมิตสวิตช์
3.   แหล่งจ่ายไฟขนาด12 โวลต์
แหล่งที่มา http://www.duinothumb.com/showcases/diy-robot-arm 

 -key pad ศึกษาและหาความรู้เรื่อง keypad เพราะว่าเห็นมันว่างอยู่บนโต๊ะเลยลองเอามาหาความรู้ดู

โค้ดตัวอย่าง 
#include <Password.h> //http://www.arduino.cc/playground/uploads/Code/Password.zip
#include <Keypad.h> //http://www.arduino.cc/playground/uploads/Code/Keypad.zip
Password password = Password( "1234" );
const byte ROWS = 4; // Four rows
const byte COLS = 4; //  columns
// Define the Keymap
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {13, 12, 11, 10};
byte colPins[COLS] = {9, 8, 7, 6};
// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
  Serial.begin(9600);
  keypad.addEventListener(keypadEvent); //add an event listener for this keypad
}
void loop(){
  keypad.getKey();
}
//take care of some special events
void keypadEvent(KeypadEvent eKey){
  switch (keypad.getState()){
    case PRESSED:
Serial.print("Pressed: ");
Serial.println(eKey);
switch (eKey){
 case '*': checkPassword(); break;
 case '#': password.reset(); break;
 default: password.append(eKey);
     }
  }
}
void checkPassword(){
  if (password.evaluate()){
    Serial.println("Success");
    //Add code to run if it works
  }else{
    Serial.println("Wrong");
    //add code to run if it did not work
  }
}
 Arduino with 4x4 Keypad membrane and 4 Channel Relay
   วันนี้จะว่ากันด้วยเรื่องของ 4x4 Keypad membrane นะครับ โดยรุ่นที่นิยมใช้กับ Arduino ก็จะเป็นแบบ 4 x 4  ซึ่งมีตัวเลข 0 - 9  และ ตัวอักษรอีกนิดหน่อย
  มาดูหลักการทำงานของ Keypad membrane กันนิดหน่อยนะครับ  4x4 Keypad membrane แบบ 4 x 4  ชนิดนี้ก็ประกอบไปด้วยปุ่ม 16 ปุ่ม ที่เรียงต่อกันเป็นเมตริกซ์แบบ 4 Row และ 4 Column  ถ้าใครเคยได้สัมผัสแล้วก็คงพอจะเดาออกว่าปุ่มแต่ละปุ่ม  เป็นการกดเพื่อให้หน้าสัมผัสที่เป็นชั้นสีแดงในรูปด้านล่าง ไปแตะกันทำให้เป็นการเชื่อมต่อกันทางไฟฟ้าไปอีกด้านหนึ่งของสวิตช์
   ทีนี้หลักการในการตรวจสอบว่าผู้ใช้กำลังกดปุ่มอะไรอยู่นั้นก็ใช้วิธีการ scan ไปทีละ Column ครับจบครบทุก Column แล้วนำมาตีความว่ามีการตอบสนองออกมาเป็นแบบใดบ้าง  เช่น ถ้ามีการกดเลข 1  อยู่  ในขณะที่เราจ่ายแรงดัน 5 โวลต์ไปที่ Column ที่ 1  จะมีเพียง Row แรกเท่านั้นที่จะอ่านค่า แรงดันได้ High นอกนั้นจะเป็น Low     หรือ ถ้ามีการกดปุ่ม # อยู่ ขณะที่ Scan ไปแต่ละ Column นั้นจะไม่เจอแรงดัน High ที Row ใดเลย จนกว่าจะ Scan ไปถึง Column ที่ 3 ซึ่งจะพบว่ามีการตอบสนองกลับมาจาก Row ที่ 4 นั้นเอง  ดังนั้นเมือพบว่าเป็นการ Scan Column ที่ 3 และมี Row 4 ตอบสนอง ก็คือปุ่ม '#' นั่นเอง
  อ่านแล้วก็รู้สึกว่าไม่ซับซ้อนมานักใช่มั้ยครับ  แต่มันมีมากกว่านั้นอีกตรงที่ว่าจังหวะการกดของคนแต่ละคน กดด้วยช่วงเวลาสั้นยาวไม่เท่ากัน  ทำให้ต้องมีการตรวจสอบโดยมีระยะเวลาเข้ามาเกี่ยวข้อง  ไม่อย่างนั้นจะสับสนระหว่างการกดแช่ หรือ การกดแบบซ้ำปุ่ม   นอกจากนั้นยังต้องมี debouncing ด้วยครับ เพื่อป้องกันการรับค่าผิดจากการ bounce ของสวิตช์  (ถ้าใครเคยเรียน Digital Design อาจจะเข้าใจได้ทันที ถ้าไม่รู้จักก็ไม่เป็นไรนะครับ)    แถมยังต้องมีการจดจำปุ่มที่กดไปแล้วอีกว่ากดอะไรไปบ้าง  กี่ครั้งแล้ว ก่อนที่จะมาประมวลผล ตรวจสอบค่าที่ใส่ เปรียบเทียบกับค่าที่ตั้งไว้เป็นรหัส  

 

Keypad Membrane wIki
-แหล่งที่มา http://www.arduitronics.com/article/arduino-with-keypad-and-4-channel-relay

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










ไม่มีความคิดเห็น:

แสดงความคิดเห็น