วันพุธที่ 7 พฤศจิกายน พ.ศ. 2550

ตรวจสอบการสะท้อนและไม่สะทอนแสง

' {$STAMP BS2sx}
' {$PBASIC 2.5}
ADC VAR Word
CH VAR Byte
do
CH = 3
GOSUB RD_ADC
DEBUG CLS,"LEFT SENSOR = ", DEC ADC , TAB
CH = 5
GOSUB RD_ADC
DEBUG "RIGHT SENSOR = ",DEC ADC , TAB
PAUSE 300
LOOP
RD_ADC: LOW 10:PAUSE 2:HIGH 10
SEROUT 10,240,[CH]
SERIN 10,240,250,Error,[ADC.BYTE0,ADC.BYTE1]
RETURN
Error: DEBUG "Error Reading",CR
RETURN

รีโมท

' {$STAMP BS2sx}
' {$PBASIC 2.5}
key VAR Byte
DO
SERIN 3,2063,[key] 'recive 1200 8n1 on p3
DEBUG key , TAB ' show on debug terminal
LOOP

วันพุธที่ 19 กันยายน พ.ศ. 2550

โจทย์เลเซอร์

ให้ตัวหุ่นยนต์หยุดอยู่ใกล้ผนังมากที่สุดโดยใช้แสงอินฟราเรด

เขาวงกต

PAUSE 1000
Main: GOSUB go
IF(IN1=0)OR(IN6=0)THEN
GOSUB back:PAUSE 150
GOSUB right:PAUSE 500
ENDIF
GOSUB go
IF(IN1=0)OR(IN6=0)THEN
GOSUB back:PAUSE 150
GOSUB right:PAUSE 500
ENDIF
GOSUB go
IF(IN1=0)OR(IN6=0)THEN
GOSUB back:PAUSE 150
GOSUB left:PAUSE 500
ENDIF
GOSUB go
IF(IN1=0)OR(IN6=0)THEN
GOSUB back:PAUSE 150
GOSUB right:PAUSE 500
ENDIF
GOSUB go
IF(IN1=0)OR(IN6=0)THEN
GOSUB back:PAUSE 150
GOSUB right:PAUSE 500
ENDIF
GOSUB go
IF(IN1=0)OR(IN6=0)THEN
GOSUB back:PAUSE 150
GOSUB left:PAUSE 500
ENDIF
GOSUB go
IF(IN1=0)OR(IN6=0)THEN
GOSUB back:PAUSE 150
GOSUB left:PAUSE 500
ENDIF
GOTO Main
go:HIGH 13:LOW 12:HIGH 15:LOW 14:RETURN
back:HIGH 12:LOW 13:HIGH 14:LOW 15:RETURN
right:LOW 13:LOW 12:HIGH 15:LOW 14:RETURN
left:HIGH 13:LOW 12:LOW 15:LOW 14:RETURN

วันพุธที่ 29 สิงหาคม พ.ศ. 2550

เขาวงกต


การเดินโดยมีสวิตช์

' {$STAMP BS2sx}
' {$PBASIC 2.5}
PAUSE 1000
main : GOSUB forward
IF ( IN1=0 ) OR ( IN6=0 ) THEN
GOSUB backward : PAUSE 1000
GOSUB t_right : PAUSE 500
GOSUB forward: PAUSE 1000
ENDIF
forward :HIGH 15:LOW 14:HIGH 13:LOW 12:RETURN
backward:LOW 15:HIGH 14:LOW 13:HIGH 12:RETURN
t_right:HIGH 15:LOW 14:LOW 13:LOW 12:RETURN


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

สวิตช์

สวิตช์มีทั้งหมด 2 แบบ คือ
1.กด-ทำงาน ปล่อย-หยุดทำงาน
2.กดครั้งที่1-ทำงาน ครั้งที่2-หยุดทำงาน