งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

บทที่ 6 IPST-BOT กับการหลบ หลีก สิ่งกีดขวางแบบสัมผัส 221.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "บทที่ 6 IPST-BOT กับการหลบ หลีก สิ่งกีดขวางแบบสัมผัส 221."— ใบสำเนางานนำเสนอ:

1 บทที่ 6 IPST-BOT กับการหลบ หลีก สิ่งกีดขวางแบบสัมผัส 221

2 การทดลองที่ 3 ( ตรวจจับการ ชนด้วยสวิตซ์ 1 ตัว ) การเชื่อมต่อทางฮาร์ดแวร์ ต่อ ZX-SWITCH จากช่อง LOW เข้ากับ พอร์ต PA0 222

3 โปรแกรมทดสอบหุ่นยนต์ที่ 3 (switch1_test.c) อ่านค่าสถานะการทำงานของแผงสวิตช์ซึ่งต่อกับขา พอร์ต PA0 #include void main() { while(1) { lcd("Switch1 = %d ",in_a(0)); sleep(10); } 223

4 การทดลองที่ 4 ( หุ่นยนต์หลบ หลีกสิ่งกีดขวาง ) หลักการทำงาน 1. ในกรณีที่ไม่เกิดการชน หุ่นยนต์จะ เคลื่อนที่ไปข้างหน้าอย่างต่อเนื่อง 2. ในกรณีที่พบว่าเกิดการชน จะมีเสียง เตือนดัง 1 ครั้ง จากนั้นหุ่นยนต์จะเคลื่อนที่ ถอยหลังแล้วเปลี่ยนทิศทางการเคลื่อนที่มา ทางซ้าย 224

5 การเชื่อมต่อทางฮาร์ดแวร์ 1. ต่อ ZX-SWITCH จากช่อง LOW เข้ากับ พอร์ต PA0 2. ต่อ ZX-SPEAKER เข้ากับพอร์ต PB4 225

6 โปรแกรมทดสอบหุ่นยนต์ที่ 4 (robo_bumper1.c) หุ่นยนต์หลบหลีกสิ่งกีดขวาง #include #define POW 70 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void main() { char mid; lcd("Press SW1"); sw1_press(); while(1) { mid = in_a(0); if(mid==0) { beep_b(4); backward(1000); turn_left(800); } else { forward(10); } 226

7 การทดลองที่ 5 ( ตรวจจับการ ชนด้วยสวิตช์ 2 ตัว ) การเชื่อมต่อทางฮาร์ดแวร์ 1. ต่อ ZX-SWITCH ตัวที่ 1 จากช่อง LOW เข้า กับพอร์ต PA0 2. ต่อ ZX-SWITCH ตัวที่ 2 จากช่อง LOW เข้า กับพอร์ต PA1 227

8 โปรแกรมทดสอบหุ่นยนต์ที่ 5 (switch2_test.c) ทดสอบการทำงานของแผงสวิตช์ 2 ตัวซึ่งต่อกับขา พอร์ต PA0 และ PA1 #include void main() { while(1) { lcd("Switch1 = %d #nSwitch2 = %d", in_a(0), in_a(1)); sleep(10); } 228

9 การทดลองที่ 6 ( หุ่นยนต์หลบหลีกสิ่งกีด ขวางจากตัวตรวจจับการชน 2 ตัว ) หลักการทำงาน 1. ในกรณีที่หุ่นยนต์ไม่พบการชน หุ่นยนต์จะ เคลื่อนที่ไปข้างหน้าอย่างต่อเนื่อง 2. กรณีที่หุ่นยนต์พบการชนของแผงวงจร สวิตช์ด้านซ้าย หุ่นยนต์จะส่งเสียงสัญญาณดัง 1 ครั้ง จากนั้นหุ่นยนต์เคลื่อนที่ถอยหลัง แล้วทำการเลี้ยวขวา 3. กรณีที่หุ่นยนต์พบการชนของแผงวงจร สวิตช์ด้านขวา หุ่นยนต์จะส่งเสียงสัญญาณดัง 1 ครั้ง จากนั้นหุ่นยนต์เคลื่อนที่ถอยหลัง แล้วทำการเลี้ยว ซ้าย 4. กรณีที่หุ่นยนต์พบการชนของแผงวงจร สวิตช์ทั้งสองด้าน หุ่นยนต์จะส่งเสียงสัญญาณดัง 1 ครั้งเช่นกัน จากนั้นหุ่นยนต์เคลื่อนที่ถอยหลัง แล้วทำ การเลี้ยวซ้าย 229

10 การเชื่อมต่อทางฮาร์ดแวร์ 1. ต่อ ZX-SWITCH ตัวที่ 1 จากช่อง LOW เข้า กับพอร์ต PA0 2. ต่อ ZX-SWITCH ตัวที่ 2 จากช่อง LOW เข้า กับพอร์ต PA1 3. ต่อ ZX-SPEAKER เข้ากับพอร์ต PB4 230

11 โปรแกรมทดสอบหุ่นยนต์ที่ 6 (robo_bumper2.c) หุ่นยนต์หลบหลีกสิ่งกีดขวางโดยใช้ตัวตรวจจับ การชน 2 ตัว #include #define POW 70 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void turn_right(unsigned int delay) { motor(1,POW); motor(2,-POW); sleep(delay); } void main() { char left,right; lcd("Press SW1"); sw1_press(); while(1) { left = in_a(0); right = in_a(1); if(left==1 && right==1) { forward(10); } else if(left==0 && right==1) { beep_b(4); backward(1000); turn_right(800); } else if(left==1 && right==0) { beep_b(4); backward(1000); turn_left(800); } else if(left==0 && right==0) { beep_b(4); backward(1000); turn_left(1500); } 231

12 การทดลองที่ 7 ( หุ่นยนต์หลบหลีกสิ่งกีด ขวางด้วยการชนแบบสุ่มทิศทาง ) ฟังก์ชันสุ่มค่าตัวเลข rand() ฟังก์ชั่นสุ่มค่าตัวเลข ตั้งแต่ 0 ถึง หลักการทำงาน 1. ในกรณีที่หุ่นยนต์ไม่พบการชน ( ไม่ พบสิ่งกีดขวาง ) หุ่นยนต์จะเคลื่อนที่ไป ข้างหน้า 2. เมื่อหุ่นยนต์ตรวจพบว่าที่ด้านใดด้าน หนึ่งหรือทั้งสองด้านพร้อมกัน จะส่งเสียง สัญญาณ 1 จังหวะ จากนั้นหุ่นยนต์เคลื่อนที่ ถอยหลัง แล้วทำการสุ่มค่าเพื่อตัดสินใจเลือก ทิศทางในการเลี้ยว 232

13 การเชื่อมต่อทางฮาร์ดแวร์ 1. ต่อ ZX-SWITCH ตัวที่ 1 จากช่อง LOW เข้า กับพอร์ต PA0 2. ต่อ ZX-SWITCH ตัวที่ 2 จากช่อง LOW เข้า กับพอร์ต PA1 3. ต่อ ZX-SPEAKER เข้ากับพอร์ต PB4 233

14 โปรแกรมทดสอบหุ่นยนต์ที่ 7 (robo_bumper3.c) หุ่นยนต์หลบหลีกสิ่งกีดขวางโดยใช้วิธีการสุ่ม ทิศทาง #include #define POW 70 void forward(unsigned int delay) { motor(1,POW); motor(2,POW); sleep(delay); } void backward(unsigned int delay) { motor(1,-POW); motor(2,-POW); sleep(delay); } void turn_left(unsigned int delay) { motor(1,-POW); motor(2,POW); sleep(delay); } void turn_right(unsigned int delay) { motor(1,POW); motor(2,-POW); sleep(delay); } void main() { char left,right; lcd("Press SW1"); sw1_press(); while(1) { left = in_a(0); right = in_a(1); if(left==0 || right==0) { beep_b(4); backward(1000); if(rand()%2==1) { turn_left(800); } else { turn_right(800); } else { forward(10); } 234


ดาวน์โหลด ppt บทที่ 6 IPST-BOT กับการหลบ หลีก สิ่งกีดขวางแบบสัมผัส 221.

งานนำเสนอที่คล้ายกัน


Ads by Google