1 / 14

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

221. บทที่ 6 IPST-BOT กับการหลบหลีก สิ่งกีดขวางแบบสัมผัส. 222. การทดลองที่ 3 ( ตรวจจับการชนด้วยสวิตซ์ 1 ตัว). การเชื่อมต่อทางฮาร์ดแวร์ ต่อ ZX-SWITCH จากช่อง LOW เข้ากับพอร์ต PA0. 223. #include <sleep.h> #include <in_out.h> #include <lcd.h> void main() { while(1) {

tex
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

  6. 226 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); } } } โปรแกรมทดสอบหุ่นยนต์ที่ 4(robo_bumper1.c)หุ่นยนต์หลบหลีกสิ่งกีดขวาง #include <motor.h> #include <sleep.h> #include <in_out.h> #include <lcd.h> #include <sound.h> #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); }

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

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

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

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

  11. 231 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); } } } โปรแกรมทดสอบหุ่นยนต์ที่ 6(robo_bumper2.c)หุ่นยนต์หลบหลีกสิ่งกีดขวางโดยใช้ตัวตรวจจับการชน 2 ตัว #include <motor.h> #include <sleep.h> #include <in_out.h> #include <lcd.h> #include <sound.h> #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); }

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

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

  14. 234 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); } } } โปรแกรมทดสอบหุ่นยนต์ที่ 7(robo_bumper3.c)หุ่นยนต์หลบหลีกสิ่งกีดขวางโดยใช้วิธีการสุ่มทิศทาง #include <motor.h> #include <sleep.h> #include <in_out.h> #include <lcd.h> #include <sound.h> #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); }

More Related