basic stamp

โปรเเกรมควบคุมหุ่นยนต์ให้เดินตามเส้นพร้อมหลบหลีกสิ่งกีดขวาง

' {$STAMP BS2p}
loopLeft   VAR  Word
loopright  VAR  Word
loopStraight  VAR  Word

loopMain:
IF(IN4=0 AND IN3=0 AND IN1=0 AND IN0=0)THEN motorstop
IF(IN4=0 AND IN3=0 AND IN1=0 AND IN0=1)THEN motorstop
IF(IN4=0 AND IN3=0 AND IN1=1 AND IN0=0)THEN motorstop
IF(IN4=0 AND IN3=0 AND IN1=1 AND IN0=1)THEN motorbackward
IF(IN4=0 AND IN3=1 AND IN1=0 AND IN0=0)THEN motorstop
IF(IN4=0 AND IN3=1 AND IN1=0 AND IN0=1)THEN motorstop
IF(IN4=0 AND IN3=1 AND IN1=1 AND IN0=0)THEN motorstop
IF(IN4=0 AND IN3=1 AND IN1=1 AND IN0=1)THEN motorevadeLeft
IF(IN4=1 AND IN3=0 AND IN1=0 AND IN0=0)THEN motorstop
IF(IN4=1 AND IN3=0 AND IN1=0 AND IN0=1)THEN motorstop
IF(IN4=1 AND IN3=0 AND IN1=1 AND IN0=0)THEN motorstop
IF(IN4=1 AND IN3=0 AND IN1=1 AND IN0=1)THEN motorEvadeRight
IF(IN4=1 AND IN3=1 AND IN1=0 AND IN0=0)THEN motorForward
IF(IN4=1 AND IN3=1 AND IN1=0 AND IN0=1)THEN motorForward
IF(IN4=1 AND IN3=1 AND IN1=1 AND IN0=0)THEN motorForward
IF(IN7=0 AND IN6=0 AND IN5=0 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN motorForward
IF(IN7=0 AND IN6=0 AND IN5=1 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN motorReturnRightGoLine
IF(IN7=0 AND IN6=1 AND IN5=0 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN motorForward
IF(IN7=0 AND IN6=1 AND IN5=1 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN motorReturnright90
IF(IN7=1 AND IN6=0 AND IN5=0 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN motorReturnLeftGoLine
IF(IN7=1 AND IN6=0 AND IN5=1 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN motorForward
IF(IN7=1 AND IN6=1 AND IN5=0 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN motorReturnLeft90
IF(IN7=1 AND IN6=1 AND IN5=1 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN motorForward
GOTO loopmain
'##########motorforward##########
motorforward:
PAUSE 10
IF(IN4=1 AND IN3=1 AND IN1=0 AND IN0=0)THEN nextmotorforward
IF(IN4=1 AND IN3=1 AND IN1=0 AND IN0=1)THEN nextmotorforward
IF(IN4=1 AND IN3=1 AND IN1=1 AND IN0=0)THEN nextmotorforward
IF(IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN nextmotorforward
IF(IN7=0 AND IN6=0 AND IN5=0 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN nextmotorforward
IF(IN7=0 AND IN6=1 AND IN5=0 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN nextmotorforward
IF(IN7=1 AND IN6=0 AND IN5=1 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN nextmotorforward
GOTO loopmain
nextmotorforward:
     PULSOUT 13,1250
     PULSOUT 14,2500
     PAUSE 20
GOTO loopmain
'###########motorBackward#########
motorBackward:
  PAUSE 10
IF(IN4=0 AND IN3=0 AND IN1=1 AND IN0=1)THEN Nextmotorbackward
  GOTO loopmain
nextmotorbackward:
  FOR loopstraight=1 TO 50
    PULSOUT 12,2500
    PULSOUT 14,1250
    PAUSE 20
  NEXT
GOTO loopmain
'##########motorstop##########
motorstop:
PAUSE 10


           IF(IN4=0 AND IN3=0 AND IN1=0 AND IN0=0)THEN nextmotorstop
           IF(IN4=0 AND IN3=0 AND IN1=0 AND IN0=1)THEN nextmotorstop
           IF(IN4=0 AND IN3=0 AND IN1=1 AND IN0=0)THEN nextmotorstop
           IF(IN4=0 AND IN3=1 AND IN1=0 AND IN0=0)THEN nextmotorstop
           IF(IN4=0 AND IN3=1 AND IN1=0 AND IN0=1)THEN nextmotorstop
           IF(IN4=0 AND IN3=1 AND IN1=1 AND IN0=0)THEN nextmotorstop
           IF(IN4=1 AND IN3=0 AND IN1=0 AND IN0=0)THEN nextmotorstop
           IF(IN4=1 AND IN3=0 AND IN1=0 AND IN0=1)THEN nextmotorstop
           IF(IN4=1 AND IN3=0 AND IN1=1 AND IN0=0)THEN nextmotorstop
           GOTO loopmain
nextmotorstop:
      LOW 13
      LOW 14
      FREQOUT 15,1000,1000,1000
      GOTO loopmain
'#########motorReturnLeft90###########
motorReturnLeft90:
           PAUSE 10
 IF(IN7=1 AND IN6=1 AND IN5=0 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN nextmotorReturnLeft90
 IF(IN7=1 AND IN6=1 AND IN5=1 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN nextmotorReturnLeft90
  GOTO loopmain
nextmotorreturnleft90:
 FOR loopleft=1 TO 30
 PULSOUT 13,1250
 PULSOUT 14,2500
 PAUSE 20
NEXT
FOR loopleft=1 TO 40
  PULSOUT 13,1250
  PULSOUT 14,1250
 PAUSE 20
NEXT
GOTO loopmain
'##########motorevaderight##########
motorevaderight:
PAUSE 10
IF(IN4=1 AND IN3=0 AND IN1=1 AND IN0=1)THEN nextmotorevaderight
GOTO loopmain
nextmotorevaderight:
FOR loopright=1 TO 40
PULSOUT 13,2500
PULSOUT 14,1250
PAUSE 20
NEXT
FOR loopright=1 TO 20
PULSOUT 13,1250
PULSOUT 14,1250
PAUSE 20
NEXT
GOTO loopmain
'##########motorreturnleftgoline##########
motorreturnleftgoline:
PAUSE 10
IF(IN7=1 AND IN6=0 AND IN5=0 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN nextmotorreturnleftgoline
GOTO loopmain
nextmotorreturnleftgoline:
PULSOUT 13,1250
PULSOUT 14,1250
PAUSE 20
GOTO loopmain
'##########motorReturnRight90##########
motorreturnright90:
PAUSE 10
IF(IN7=0 AND IN6=1 AND IN5=1 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN NEXTmotorreturnright90
GOTO loopmain
nextmotorreturnright90:
FOR loopright=1 TO 30
PULSOUT 13,1250
PULSOUT 14,2500
PAUSE 20
NEXT
FOR loopright= 1 TO 40
PULSOUT 13,2500
PULSOUT 14,2500
PAUSE 20
NEXT
GOTO loopmain
'##########motorevadeleft##########
motorevadeleft:
PAUSE 10
IF(IN4=0 AND IN3=1 AND IN1=1 AND IN0=1)THEN NEXTmotorevadeleft
GOTO loopmain
NEXTmotorevadeleft:
FOR loopleft=1 TO 40
PULSOUT 13,2500
PULSOUT 14,1250
PAUSE 20
NEXT
FOR loopleft=1 TO 20
PULSOUT 13,2500
PULSOUT 14,2500
PAUSE 20
NEXT
GOTO loopmain
'##########motorreturnrightgoline##########
motorreturnrightgoline:
PAUSE 10
IF(IN7=0 AND IN6=0 AND IN5=1 AND IN4=1 AND IN3=1 AND IN1=1 AND IN0=1)THEN NEXTmotorreturnrightgoline
GOTO loopmain
NEXTmotorreturnrightgoline
PULSOUT 13,2500
PULSOUT 14,2500
PAUSE 20

GOTO loopmain

มหาวิทยาลัยศรีปทุม ผู้ใหญ่ใจดี
 

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

ช่วยกันนะครับ 
ไทยกู๊ดวิวจะได้อยู่นานๆ 
ไม่ถูกปิดเสียก่อน

ขอขอบคุณในความร่วมมือครับ

อ่านรายละเอียด

ด่วน...... ขณะนี้
พระราชบัญญัติลิขสิทธิ์ (ฉบับที่ 2) พ.ศ. 2558 
มีผลบังคับใช้แล้ว 
ขอให้นักเรียนและคุณครูที่ใช้งาน
เว็บ thaigoodview ในการส่งการบ้าน
ระมัดระวังการละเมิดลิขสิทธิ์ด้วย
อ่านรายละเอียดที่นี่ครับ

 

สมาชิกที่ออนไลน์

ขณะนี้มี สมาชิก 0 คน และ ผู้เยี่ยมชม 362 คน กำลังออนไลน์