Posted on

SLAM (Simultaneous Localization and Mapping)

SLAM (Simultaneous Localization and Mapping)
คือเทคโนโลยีที่ทำให้ หุ่นยนต์สามารถสร้างแผนที่ของพื้นที่ (Mapping) และ รู้ตำแหน่งของตัวเองบนแผนที่นั้น (Localization) ได้ พร้อมกันแบบ Real-time โดยไม่ต้องมีแผนที่ล่วงหน้า

ทำงานอย่างไร:

  • ใช้เซ็นเซอร์ เช่น Lidar, กล้อง หรือ IMU → ตรวจจับสิ่งรอบตัว
  • ประมวลผลข้อมูล → สร้างแผนที่พื้นที่ที่หุ่นยนต์กำลังเคลื่อนที่อยู่
  • คำนวณตำแหน่งปัจจุบันของตัวเองบนแผนที่นั้น
  • นำผลที่ได้ไปใช้ในการวางแผนเส้นทาง (Navigation) และหลบหลีกสิ่งกีดขวาง (Obstacle Avoidance)

ข้อดีของระบบ SLAM

  • พาหุ่นยนต์เดินได้เองในที่ที่ไม่เคยไป ไม่ต้องติดแท็กหรือ Marker ใดๆ
  • ใช้ได้ทั้งภายในอาคารและพื้นที่ซับซ้อน
  • เคลื่อนที่ได้แม่นยำ ลดการชน ลดการหลงทาง
  • เป็นหัวใจของ AGV, AMR, Robot Delivery, หุ่นยนต์ทำความสะอาด ฯลฯ

สรุป

SLAM คือสมองที่ช่วยให้หุ่นยนต์ “สร้างแผนที่” และ “รู้ตำแหน่งของตัวเอง” เพื่อเดินนำทางได้แบบอัตโนมัติ ไม่ต้องมีคนบังคับ

Posted on

IMU (Inertial Measurement Unit)

IMU (Inertial Measurement Unit) คือ เซ็นเซอร์วัดการเคลื่อนที่ที่ประกอบด้วยชุดตรวจจับ 3 แกนหลัก ได้แก่

  • Gyroscope Sensor → วัดการหมุน (Angular Rate / องศาการหมุน)
  • Accelerometer Sensor → วัดความเร่ง/ทิศทางการเคลื่อนที่
  • Magnetometer Sensor → วัดทิศทางสนามแม่เหล็กโลก (ใช้สำหรับบอกทิศทาง/Heading)

เมื่อรวมกันทั้ง 3 ส่วน จะกลายเป็น IMU 9-axis (9 แกน) ซึ่งสามารถระบุตำแหน่งเชิงมุม (Orientation), การเคลื่อนที่ (Motion), และทิศทาง (Heading) ของวัตถุได้อย่างแม่นยำ นิยมใช้ในหุ่นยนต์, โดรน, รถอัตโนมัติ, AR/VR, โทรศัพท์มือถือ และระบบนำทางต่างๆ

Posted on

ความรู้เบื้องต้นเกี่ยวกับ proximity sensor switches

ความรู้เบื้องต้นเกี่ยวกับ proximity sensor switches

  • Inductive proximity sensor switch ตรวจจับวัตถุโลหะ (เช่น เหล็ก เหล็กกล้า ทองแดง ฯลฯ)
  • Capacitive proximity sensor switch ตรวจจับวัตถุวัตถุ (เช่น แก้ว โลหะ พลาสติก น้ำ น้ำมัน กระดาษ ฯลฯ)
  • พร็อกซิมิตี้สวิตช์แบบฮอลล์ วัตถุตรวจจับเป็นโลหะแม่เหล็ก (เช่น แม่เหล็กถาวร)
  • Diffuse reflection photoelectric sensor switch ตรวจจับวัตถุวัตถุ (วัตถุโปร่งใสและทึบแสง) เช่น: โต๊ะ ผนัง กระจกใส แผ่นโลหะ ฯลฯ

ประเภท NPN คืออะไร และประเภท PNP คืออะไร

ประเภท NPN

  • การเชื่อมต่อโหลด เชื่อมต่อโหลดระหว่างขั้วเอาท์พุท Sensor และขั้วลบ – ของแหล่งจ่ายไฟ (Vcc)
  • ระดับเอาต์พุต เมื่อไม่มีการตรวจจับ เอาต์พุตจะอยู่ในระดับสูง Hi (Vcc) และเมื่อมีการตรวจจับ เอาต์พุตจะอยู่ในระดับต่ำ Lo (0V)
  • ทิศทางกระแส กระแสโหลดไหลเข้า Sensor (Sinking current)

ประเภท PNP

  • การเชื่อมต่อโหลด เชื่อมต่อโหลดระหว่างขั้วบวก + ของแหล่งจ่ายไฟ (Vcc) และเอาต์พุต Sensor
  • ระดับเอาต์พุต เมื่อไม่มีการตรวจจับ เอาต์พุตจะอยู่ในระดับต่ำ Lo (0V) และเมื่อมีการตรวจจับ เอาต์พุตจะอยู่ในระดับสูง Hi (Vcc)
  • ทิศทางกระแส กระแสโหลดไหลออกจาก Sensor (Source current)

ความแตกต่างระหว่างปกติ เปิด (NO) และปกติ ปิด (NC)

  • 1. ปกติเปิด (NO) หมายความว่า สัญญาณเอาต์พุต ถูกเปิดวงจรในสถานะปกติ ไม่มีการส่งสัญญาณเอาต์พุต และจะปิดวงจรเมื่อตรวจพบวัตถุ และสัญญาณเอาต์พุตจะถูกส่งออก
  • 2. ปกติปิด (NC) หมายความว่า สัญญาณเอาต์พุต อยู่ในสถานะปิดวงจรภายใต้สภาวะปกติ และมีการส่งสัญญาณเอาต์พุต เมื่อตรวจพบวัตถุ จะเปิดวงจร และสัญญาณเอาต์พุตจะไม่ถูกส่งออก

วิธีการเดินสายไฟแบบ 3 สาย

  1. สีน้ำตาลเชื่อมต่อกับขั้วบวกของแหล่งจ่ายไฟ
  2. สีน้ำเงินเชื่อมต่อกับขั้วลบของแหล่งจ่ายไฟ
  3. สีดำเชื่อมต่อกับโหลด (เอาต์พุตสัญญาณ)

วิธีการเดินสายไฟสองสาย (DC หรือ AC)

  1. สายสีน้ำตาลเชื่อมต่อกับขั้วลบของโหลด บวกของโหลดเชื่อมต่อกับขั้วบวกของแหล่งจ่ายไฟ
  2. สายสีน้ำเงินเชื่อมต่อโดยตรงกับขั้วลบของแหล่งจ่ายไฟ
Posted on

วิธีทำถังขยะอัตโนมัติใช้อาดูโน่เซอร์โวมอเตอร์และอัลตร้าโซนิคเซนเซอร์ Arduino automatic waste bin

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

วิธีทำถังขยะอัตโนมัติโดยใช้อาดูโน่และเซอร์โวมอเตอร์และอัลตร้าโซนิคเซนเซอร์ การทำถังขยะอัตโนมัติโดยใช้ Arduino เซอร์โวมอเตอร์ และเซ็นเซอร์อัลตราโซนิกเป็นโครงการง่ายๆ ที่สามารถทำได้ในไม่กี่ขั้นตอน นี่คือโครงร่างทั่วไปของวิธีเริ่มต้นใช้งาน: หลักการทำงานของ เซ็นเซอร์อัลตราโซนิก HC-SR04 เป็นอุปกรณ์ยอดนิยมและราคาไม่แพงที่สามารถใช้วัดระยะทางไปยังวัตถุได้ ทำงานโดยปล่อยคลื่นเสียงความถี่สูงและวัดเวลาที่คลื่นเสียงสะท้อนกลับหลังจากกระทบวัตถุ หากต้องการใช้เซ็นเซอร์อัลตราโซนิก HC-SR04 กับบอร์ด Arduino จะต้องเชื่อมต่อเข้ากับบอร์ดโดยใช้สายจัมเปอร์ HC-SR04 มี 4 พิน คือ Vcc, Trig, Echo และ GND

รวบรวมวัสดุที่จำเป็น:

  1. BDMC04 บอร์ดอาดุยโน่ Arduino Uno R3 Compatible DIP IC CH340 USB Cable
  2. MT0501 เซอร์โวมอเตอร์ RC Servo Motor Micro RC SG90 Black
  3. SSUS01 เซ็นเซอร์อัลตราโซนิก เซ็นเซอร์จับระยะ Ultrasonic Sensor HC-SR04
  4. แหล่งพลังงาน (เช่น แบตเตอรี่หรือแหล่งจ่ายไฟ DC 4.5 – 12V)
  5. รังถ่านใส่แบตเตอรี่ Battery Holder
  6. สายไฟจัมเปอร์ Jumper Wire
  7. ถังขยะขนาดเล็กตามแต่จะหาได้

ตั้งค่าฮาร์ดแวร์:

  1. เชื่อมต่อเซอร์โวมอเตอร์เข้ากับ บอร์ด Arduino UNO R3 โดยใช้สายจัมเปอร์
  2. เชื่อมต่อเซ็นเซอร์อัลตราโซนิกเข้ากับ บอร์ด Arduino UNO R3 โดยใช้สายจัมเปอร์
  3. เชื่อมต่อแหล่งจ่ายไฟ DC 4.5 – 12V เข้ากับ บอร์ด Arduino Uno R3 ผ่านทางขั้ว DC Jack 5.5×2.1mm
  4. Code นี้ เซอร์โวมอเตอร์เชื่อมต่ออยู่กับขา 8 ของ บอร์ด Arduino Uno R3
  5. ขา Trig Pin ของเซ็นเซอร์อัลตราโซนิกเชื่อมต่อกับขา 9 ของ บอร์ด Arduino Uno R3
  6. ขา echo Pin ของเซ็นเซอร์อัลตราโซนิกเชื่อมต่อกับขา 10 ของ บอร์ด Arduino Uno R3

How HC-SR04 Ultrasonic Module Distance Sensor works

เซ็นเซอร์จะส่ง Ping ที่เวลา t1 และรับการ Ping ที่เด้งที่เวลา t2 เมื่อทราบความเร็วของเสียง ความแตกต่างของเวลา Δt = t2 – t1 สามารถทำให้เราทราบระยะทางของวัตถุได้

  • D, distance = (t2 – t1/2)
  • D, distance = (Δt /2)
  • D, distance = (duration/2)

ตัวอย่างเช่น ถ้า Δt = 500us เรารู้ว่าต้องใช้เวลา 250us ในการส่ง Ping ไปกระทบวัตถุ และอีก 250us ในการกลับมา
ความเร็วเสียง c โดยประมาณในอากาศแห้งกำหนดโดย  สมการ:

  • c = 331.5 + 0.6 * [อุณหภูมิอากาศเป็นองศาเซลเซียส]
    ที่ 20°C,
  • c = 331.5 + 0.6 * 20
  • c = 343.5 m/s
    ถ้าเราแปลงความเร็วเป็นเซนติเมตรต่อไมโครวินาที เราจะได้:
  • c = 343.5 * (100/1000000)
  • c = 0.03435 cm./s

ระยะทางคือ

  • D, distance = (Δt/2)*c

หรือ

  • distance = 250*0.03435 = 8.6cm.

แทนที่จะใช้ความเร็วของเสียง เราสามารถใช้ “อัตราเร็วของเสียง” ได้เช่นกัน
อัตราเร็วของเสียง = 1 / c

อัตราเร็วของเสียง = 1 / 0.03435

อัตราเร็วของเสียง = 29.1ss/cm

ในกรณีนี้ สมการที่ใช้คำนวณระยะทางจะกลายเป็น:

  • distance = (Δt/2) / อัตราเร็วของเสียง

และสำหรับตัวอย่างด้านบน:

  • distance = 250 / 29.1
  • distance = 8.6 cm

https://www.instructables.com/Using-a-SR04/

 

แผนผังการต่อสายไฟ

https://oshwlab.com/s2insupply/arduino-automatic-waste-bin

เขียน Code: arduino Code เชื่อมต่ออัลตราโซนิคเซนเซอร์เพื่อควบคุมเซอร์โวมอเตอร์

  1. ใช้ Arduino Integrated Development Environment (IDE) เพื่อเขียนโปรแกรมที่จะควบคุมเซอร์โวมอเตอร์และเซ็นเซอร์อัลตราโซนิก
  2. กำหนดตัวแปร
    1. const int trigPin = 9; // define trigPin for ultrasonic sensor
    2. const int echoPin = 10; // define echoPin for ultrasonic sensor
    3. myservo.attach(8);  // attach the servo to pin 8
  3. ตั้งค่าเซอร์โวมอเตอร์และเซ็นเซอร์อัลตราโซนิก
  4. ในฟังก์ชันลูป ใช้เซ็นเซอร์อัลตราโซนิกเพื่อวัดระยะทางไปยังวัตถุ
  5. หากระยะทางต่ำกว่าเกณฑ์ที่กำหนด ให้เปิดใช้งานเซอร์โวมอเตอร์เพื่อเปิดถังขยะ
    1. เซ็นเซอร์อัลตราโซนิกจะใช้เพื่อวัดระยะทางไปยังวัตถุ หากระยะห่างน้อยกว่า 20 ซม. เซอร์โวมอเตอร์จะตั้งค่าเป็น 0 องศาเป็นเวลา 1 วินาที จากนั้นตั้งค่าเป็น 90 องศา
    2. หากระยะทางมากกว่า 20 ซม. เซอร์โวมอเตอร์จะตั้งค่าเป็น 90 องศา
  6. อัพโหลดโค้ดไปยังบอร์ด Arduino
  7. ทดสอบและดีบัก
  8. ทดสอบโปรแกรมโดยวางวัตถุไว้ด้านหน้าเซ็นเซอร์อัลตราโซนิก และตรวจสอบว่าเซอร์โวมอเตอร์เคลื่อนที่เพื่อเปิดถังขยะ
  9. ดีบักปัญหา ที่เกิดขึ้นโดยใช้เครื่องมือดีบักในตัว Arduino IDE และตรวจหาข้อผิดพลาดทางไวยากรณ์หรือข้อผิดพลาดเชิงตรรกะในโค้ดของเรา

ตัวอย่าง Arduino Code เชื่อมต่ออัลตราโซนิคเซนเซอร์เพื่อวัดระยะทางไปยังวัตถุ

// define the pins for Ultrasonic Sensor HC-SR04
const int trigPin = 9;  // define the trigPin and trigPin for the Ultrasonic Sensor HC-SR04
const int echoPin = 10; // define the trigPin and echoPin for the Ultrasonic Sensor HC-SR04

void setup() {
  // initialize the pins as outputs and inputs
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  
  // start the serial communication
  Serial.begin(9600);
}

void loop() {
  // send a pulse to the trigPin
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // measure the time it takes for the pulse to return
  long duration = pulseIn(echoPin, HIGH);
  
  // calculate the distance based on the speed of sound
  int distance = duration * 0.034 / 2;
  
  // print the distance to the serial monitor
  Serial.println(distance);
  
  // wait a bit before taking the next measurement
  delay(100);
}

 

ตัวอย่าง Arduino Code เชื่อมต่ออัลตราโซนิคเซนเซอร์เพื่อวัดระยะทางไปยังวัตถุและควบคุมเซอร์โวมอเตอร์

#include <Servo.h> // include the Servo library

Servo myservo; // create a servo object

// define the pins for Ultrasonic Sensor HC-SR04
const int trigPin = 9;  // define the trigPin and trigPin for the Ultrasonic Sensor HC-SR04
const int echoPin = 10; // define the trigPin and echoPin for the Ultrasonic Sensor HC-SR04

void setup() {
  myservo.attach(8); // attach the servo to pin 8
  pinMode(trigPin, OUTPUT); // set the trigPin as an output
  pinMode(echoPin, INPUT); // set the echoPin as an input
  
  // start the serial communication
  Serial.begin(9600);

}

void loop() {
  long duration, distance; // create variables to store the duration and distance
  
  digitalWrite(trigPin, LOW); // set the trigPin low
  delayMicroseconds(2); // wait for 2 microseconds
  
  digitalWrite(trigPin, HIGH); // set the trigPin high
  delayMicroseconds(10); // wait for 10 microseconds
  
  digitalWrite(trigPin, LOW); // set the trigPin low
  
  duration = pulseIn(echoPin, HIGH); // read the duration of the pulse
  distance = (duration/2) / 29.1; // calculate the distance in centimeters
  
  if (distance < 20) { // if the distance is less than 20 cm
    myservo.write(0); // set the servo to 0 degrees
    delay(1000); // wait for 1 second
    myservo.write(90); // set the servo to 90 degrees
  }
  else { // if the distance is greater than 20 cm
    myservo.write(90); // set the servo to 90 degrees
        Serial.println(distance);
  }
}

 

Posted on

การต่อเซ็นเซอร์ที่มีเอาต์พุตเป็น NPN ร่วมกับอาดูโน่

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

 

เราสามารถประโยช์การเปลี่ยนแปลงสัญยาณเอาต์พุตของเซ็นเซอร์ เอาไปใช้ในการควบคุมอุปกรณ์ เอาต์พุต อย่างเช่น  Rejector ได้

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

*การใช้งานเซ็นเซอร์ที่มี เอาต์พุต เป็นชนิด PNP
ต้องระวังเรื่องแรงดัน เราควรจะเลือกรุ่นที่มีแรงดันเป็น 5 โวลท์

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

* หากมีความจำเป็นต้องใช้เซนเซอร์ที่ใช้แรงดัน 12 หรือ 24 โวลท์

แนะนำให้ต่อตัวต้านทาน 2K อนุกรม

 

 

 

 

 

 

Posted on

โหลดเซล สเตนเกจ Stain gauge Weight Sensor (Load Cell)

โหลดเซล Weight Sensor (Load Cell) เป็นเซนเซอร์สำหรับชั่งน้ำหนัก ประกอบด้วยสเตนเกจ หรือเซนเซอร์แบบใช้แรงกด (ความเครียด) 4 ตัว ซึ่งจัดเรียงวงจรในรูปแบบของวงจรวิจสโตนบริดจ์ โหลดเซล จะแปลงค่า ความเครียด เป็นสัญญาณแรงดันไฟฟ้าแบบ Differential โดยใช้สายสัญญาณ (+) และสายสัญญาณ (-) แรงดันไฟฟ้าที่ได้มีขนาดเพียงไม่กี่มิลลิโวลต์ ต้องนำสัญญาณเข้าโมดูลขยายสัญญาณและแปลงเป็นสัญญาณ Digital เช่นโมดูล HX711 ก่อนเข้าสู่ ไมโครคอนโทรลเลอร์ เพื่อนำสัญญาณไปแปลงเป็นน้ำหนัก

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

  1. โหลดเซลล์ ประเภท คลาสความแม่นยำ D1 – C2 มีความแม่นยำค่อนข้างต่ำใน สำหรับเครื่องชั่งวัสดุก่อสร้างทั่วไปที่ใช้ชั่งน้ำหนักทราย ซีเมนต์ หรือน้ำ
  2. โหลดเซลล์ ประเภท คลาสความแม่นยำ C3 มีความแม่นยำสูง (0.0230%) – accuracy class ใช้ในการใช้งานทั่วไป ได้แก่ เครื่องชั่งแบบสายพาน เครื่องชั่งแบบตั้งพื้น และอุปกรณ์ชั่งน้ำหนักอิเล็กทรอนิกส์อื่นๆ เครื่องชั่ง เครื่องบรรจุ เครื่องชั่งในส่วนการประกันคุณภาพ ที่ต้องระบุหน่วยเป็น กรัม หรือไมโครกรัม
  3. โหลดเซลล์ ประเภท คลาสความแม่นยำ C4 – C5 (0.0174% – 0.0140%) ใช้สำหรับเครื่องชั่งที่ใช้สำหรับเครื่องชั่งแบบนับเคาน์เตอร์ในร้านค้า เครื่องบรรจุ การตรวจสอบการชั่งน้ำหนักแบบไดนามิก ตลอดจนเครื่องชั่งแบบตั้งพื้นและแบบสายพานที่ต้องการความแม่นยำสูง
  4. โหลดเซลล์ ประเภท คลาสความแม่นยำ C6 (0.0116%) มีความแม่นยำสูงสุด ใช้ในเครื่องชั่งแบบพิเศษ หรือในเครื่องตรวจสอบน้ำหนักบนสายพาน บรรจุภัณฑ์อาหาร และการทดสอบยานพาหนะ

Single Point Load Cells

LCA001 โหลดเซลล์/สเตรนเกจ Load Cell Strain Gauge Weighing Sensor AT8500-0.3kg C3 1mV/V

Posted on

ประเภทของโพรบไฟเบอร์แอมพลิฟายเออร์ M3-M4-M6 Type of M3-M4-M6 Fiber Amplifier Probe

ประเภทของโพรบไฟเบอร์แอมพลิฟายเออร์ M3-M4-M6 Type

M3 Reflective

  • FRS-310 (Reflective M3 Probe 1Meter Cable)
  • FRS-320 (Reflective M3 Probe 2Meter Cable)

M3 Through beam

  • FT-310 (M3 Through-beam Probe 1Meter Cable)
  • FT-320 (M3 Through-beam Probe 2Meter Cable)

M4 Reflective

  • FRS-410 (Reflective M4 Probe 1Meter Cable)
  • FRS-420 (Reflective M4 Probe 2Meter Cable)
  • FRS-410I (Reflective M4 Probe+Dai1.5-L10mm 1Meter Cable)
  • FRS-410S (Reflective M4 Probe+Dai1.5-L20mm 1Meter Cable)
  • FRS-410M (Reflective M4 Probe+Dai1.5-L40mm 1Meter Cable)

M4 Through beam

  • FT-410 (M4 Through-beam Probe 1Meter Cable)
  • FT-420 (M4 Through-beam Probe 2Meter Cable)

M6 Reflective

  • FR-610 (Reflective M6 Probe 1Meter Cable)
  • FR-620 (Reflective M6 Probe 2Meter Cable)
  • FR-610I (Reflective M6 Probe+Dai2.5-L10mm 1Meter Cable)
  • FR-610S (Reflective M6 Probe+Dai2.5-L20mm 1Meter Cable)
  • FR-610M (Reflective M6 Probe+Dai2.5-L40mm 1Meter Cable)
  • FR-610L (Reflective M6 Probe+Dai2.5-L90mm 1Meter Cable)

M6 Through beam

  • FT-610 (M6 Through-beam Probe 1Meter Cable)
  • FT-620 (M6 Through-beam Probe 2Meter Cable)

FR Reflective , FRS Reflective

  • Reflective (1 ชุดมี หัวเดียว รับ+ส่ง ในตัว)

FT Through beam

  • Through-beam (1 ชุดมี 2 หัวตัวรับและตัวส่ง)