บอร์ด iKB-1 ติดตอ่ กับ Main CPU ด้วย I2C บัส I/O digital / Analog 8 ช่อง อ่านค่าอะนาลอกได้ 8 หรือ 10 บิต ทาํ งานทแ่ี รงดนั 3.3V หรือ 5V ขับมอเตอรไ์ ฟตรง 2 ชอ่ ง กระแสสูง 1.2A จดุ ตอ่ สําหรบั ขับมอเตอร์ภายนอกไดอ้ ีก 2 ช่อง ขบั เซอรโ์ วมอเตอร์ ได้ 6 ชอ่ งพร้อมวงจรควบคุมแรงดนั จ่ายไฟยอ้ นไปควบคุมบอร์ดหลกั ได้ (3.3V)
ส่วนประกอบของบอร์ด iKB-1
วงจรของบอรด์ iKB-1
iROVER
หุน่ ยนต์ iROVER IPST-WiFi + iKB-1 เชื่อมต่อสาย I2C บสั
ขน้ั ตอนตดิ ต่อ iKB-1 ดว้ ยไลบรารี่ irover ไปท่ีเวปไซต์ https://github.com/inexglobal/uPython_iRover เพ่ือดาวนโ์ หลดไลบรารี่ irover มาติดต้งั ใน uPyCraft ดาวน์โหลด
ข้นั ตอนติดตอ่ iKB-1 ด้วยไลบรารี่ irover แตกไฟล์ เปิดไฟล์ ดาวน์โหลด
ชุดคําส่ังภายในไลบราร่ี irover เริ่มต้นด้วยคําส่ัง from irover import * i=IROVER() การระบุขาใชง้ าน # ระบุขาดว้ ยตัวเลขหมายถึงบอร์ด IPST-WiFi 5,19,23,26,32-35 # เรยี กใชพ้ อรต์ บนบอร์ด iKB i0 - i7 คาํ ส่ัง OK() # จะหยดุ ท่ีคาํ สั่งจนกวา่ จะกด SW1 หนา้ จอ OLED จะข้อความ \"Press SW1 For Start\" i.OK() คาํ สั่ง SW1() อา่ นค่า SW1 บนบอรด์ ipst-wifi x= i.sw1() #อ่านคา่ สถานะสวิตช์ SW1 คําสั่ง SOUND ส่งเสียงออกลาํ โพง บนบอร์ด ipst-wifi i.sound(1000,0.1) # ส่งเสียงความถี่ 1000 Hz เวลา 0.1 วนิ าที
ชุดคาํ ส่ังภายในไลบราร่ี irover คาํ สั่ง input อ่านค่าดิจติ อล x= i.input(i5) #อา่ นค่า input จากบอรด์ ikb พอรต์ หมายเลข 5 x= i.input(5) #อ่านค่า input จากบอร์ด ipst-wifi พอรต์ หมายเลข 5 x= i.IN(5) #อา่ นค่า input จากบอรด์ ipst-wifi พอร์ตหมายเลข 5 i5 5
ชดุ คําส่ังภายในไลบราร่ี irover คาํ สั่ง output ใหค้ า่ เอาต์พุตดจิ ติ อล i.output(i5,1) #ให้ขา 5 บนบอร์ด iKB-1 มลี อจิก \"1\" i.output(5,1) #ใหข้ า 5 บนบอร์ด IPST-WiFi มลี อจกิ \"1\" i.OUT(5,1) #ให้ขา 5 บนบอรด์ IPST-WiFi มีลอจกิ \"1\" i5 5
ชดุ คาํ ส่ังภายในไลบราร่ี irover คําสั่ง sound สร้างเสียงออกลาํ โพงเปยี โซ i.sound(freq,time) freq = ความถี่ , time = เวลา (มิลลวิ ินาที) ลาํ โพงเปียโซ
ชดุ คาํ ส่ังภายในไลบราร่ี irover คาํ สั่ง analog อ่านค่าอนิ พุตแบบอะนาลอก x= i.analog(i5) #อ่านค่าอะนาลอกจากบอร์ด iKB ท่ีพอรต์ 5 ช่วง 0-1023 x= i.analog(i5,-100,100) #อ่านค่าอะนาลอกจากบอร์ด iKB ท่ีพอร์ต 5 ช่วง -100 ถึง 100 x= i.analog(34) #อ่านคา่ อะนาลอกจากบอร์ด IPST-WiFi ท่ีพอร์ต 34 คืนค่าชว่ ง 0-1023 34 i5
ชุดคําส่ังภายในไลบราร่ี irover คาํ สั่ง knob อ่านค่าจากตวั ตา้ นทานปรบั คา่ ไดบ้ นบอร์ด IPST-WiFi x=i.knob() #อา่ นจาก knob บนบอรด์ IPST-WiFi ช่วง 0-4095 x=i.knob(-100,100) #อา่ นจาก knob บนบอร์ด IPST-WiFi ช่วง -100 ถึง 100 knob
ชดุ คําส่ังภายในไลบราร่ี irover คาํ สั่งเกี่ยวกับ OLED แสดงขอ้ ความออกจอ OLED i.fill(0) #เคลยี ร์หน้าจอ i.text(\"i-Rover\",0,1) #วาดขอ้ ความ \"i-ROVER\" พิกเซลที่ X=0 Y=1 i.text(\"i=%d\"%100,0,15) #วาดข้อความและตัวเลข พิกเซลท่ี X=0 Y=15 i.show() #นําขอ้ ความที่วาดไว้มาแสดง OLED
ชดุ คําส่ังภายในไลบราร่ี irover คาํ สั่งเกย่ี วกบั SLED ให้ SLED ตาํ แหน่งที่ระบุติดตามสีทต่ี อ้ งการ i.sled(0,(10,0,0)) #ให้ SLED หลอด 0 ติดเปน็ สีแดง คา่ ความสวา่ งสูงสุด 255 i.sled(1,(0,10,0)) #ให้ SLED หลอด 1 ติดเปน็ สีเขียว คา่ ความสวา่ งสูงสุด 255 i.sled(2,(0,0,10)) #ให้ SLED หลอด 2 ตดิ เป็นสีนํ้าเงนิ ค่าความสวา่ งสูงสุด 255 SLED
ชดุ คาํ ส่ังภายในไลบราร่ี irover คําสั่ง SERVO ให้ SERVO ทีต่ ่อกบั บอร์ด iKB-1 ทีร่ ะบไุ ปยังตําแหนง่ องศาที่ต้องการ i.servo(10,0) #ให้ Servo ทต่ี อ่ กบั ขา 10 เคลอ่ื นที่ไปยังตําแหนง่ 0 องศา i.servo(10,180) #ให้ Servo ท่ตี ่อกบั ขา 10 เคลอื่ นทไ่ี ปยังตาํ แหน่ง 180 องศา Servo ขา 10
ชุดคาํ ส่ังภายในไลบราร่ี irover คาํ ส่ัง motor สั่งการ มอเตอรท์ ่ตี ่อกับบอร์ด iKB-1 i.motor(1,100) #ใหม้ อเตอร์ 1 ไปหน้าดว้ ยความเร็ว 100 % i.motor(2,-100) #ให้มอเตอร์ 2 ถอยหลังด้วยความเรว็ 100 % i.stop() #ใหม้ อเตอร์ 1 และ 2 หยุดทํางาน motor 2 motor 1
ชดุ คําส่ังภายในไลบราร่ี irover ฟงั ก์ชัน่ เคล่อื นทขี่ องห่นุ ยนต์ #ใหห้ นุ่ ยนต์เดนิ หน้า Speed 0-100% i.fd(speed) #ให้หนุ่ ยนตถ์ อยหลัง Speed 0-100% i.bk(speed) #ให้หนุ่ ยนต์หมุนซ้าย Speed 0-100% i.sl(speed) #ให้หุน่ ยนต์หมนุ ขวา Speed 0-100% i.sr(speed) #ให้หนุ่ ยนต์เลีย้ วซา้ ย Speed 0-100% i.tl(speed) #ให้หุน่ ยนตเ์ ล้ยี วขวา Speed 0-100% i.tr(speed) #ใหห้ นุ่ ยนตเ์ ดนิ หนา้ ควบคมุ ความเรว็ สองล้อตา่ งกัน i.fd2(speed1,speed2) #ให้หุ่นยนต์ถอยหลังควบคมุ ความเรว็ สองล้อตา่ งกนั i.bk2(speed1,speed2) #ใหม้ อเตอร์ 1 และ 2 หยุดทาํ งาน i.stop()
ชดุ คําส่ังภายในไลบราร่ี irover ฟงั ก์ชัน่ เคล่อื นทขี่ องห่นุ ยนต์ #ใหห้ นุ่ ยนต์เดนิ หน้า Speed 0-100% i.fd(speed) #ให้หนุ่ ยนตถ์ อยหลัง Speed 0-100% i.bk(speed) #ให้หนุ่ ยนต์หมุนซ้าย Speed 0-100% i.sl(speed) #ให้หุน่ ยนต์หมนุ ขวา Speed 0-100% i.sr(speed) #ให้หนุ่ ยนต์เลีย้ วซา้ ย Speed 0-100% i.tl(speed) #ให้หุน่ ยนตเ์ ล้ยี วขวา Speed 0-100% i.tr(speed) #ใหห้ นุ่ ยนตเ์ ดนิ หนา้ ควบคมุ ความเรว็ สองล้อตา่ งกัน i.fd2(speed1,speed2) #ให้หุ่นยนต์ถอยหลังควบคมุ ความเรว็ สองล้อตา่ งกนั i.bk2(speed1,speed2) #ใหม้ อเตอร์ 1 และ 2 หยุดทาํ งาน i.stop()
PROJECT01 : ขบั เคลื่อนหุ่นยนต์เบอ้ื งตน้ from irover import * from time import sleep i=IROVER() while True : i.fd(50) sleep(0.5) i.bk(50) sleep(0.5)
PROJECT02 : เดนิ วนเป็นรูปสี่เหลีย่ ม from irover import * from time import sleep i=IROVER() i.OK() while 1 : i.fd(70) sleep(1) i.tr(70) sleep(0.75)
PROJECT03 : เดินเปน็ วงกลม from irover import * from time import sleep i=IROVER() i.OK() while 1: x = i.knob(0,100) i.fd2(x,50) ปรับ knob เพื่อปรบั ความเรว็ มอเตอรด์ ้านซา้ ย
PROJECT04 : ควบคมุ ห่นุ ยนตด์ ้วยสวิตช์ from irover import * from time import sleep i=IROVER() while True : if i.IN(i6)==0 : i.sl(50) elif i.IN(i4)==0 : i.sr(50) else : i.ao()
PROJECT04B : ควบคมุ ห่นุ ยนตด์ ้วยสวติ ช์ from irover import * from time import sleep i=IROVER() while True : if i.IN(i6)==0 and i.IN(i4)==0 : i.fd(50) elif i.IN(i6)==0 : i.sl(50) elif i.IN(i4)==0 : i.sr(50) else : i.ao()
PROJECT04C : ควบคุมหนุ่ ยนตด์ ว้ ยสวิตช์ from irover import * from time import sleep i=IROVER() while True : L=not i.IN(i6) R=not i.IN(i4) if L and R : i.fd(50) elif L : i.sl(50) elif R : i.sr(50) else : i.ao()
ZX-03 แผงวงจรตรวจจับแสงสะทอ้ นอนิ ฟราเรด
ตําแหน่งตดิ ตง้ั ZX-03 ต้องสูงจากพ้ืนระหวา่ ง 5-15 มม. IPST-WiFi pin33 IPST-WiFi pin34
PROJECT05 : อ่านคา่ จากเซนเซอรโ์ ชว์ที่ OLED from irover import * from time import sleep i=IROVER() while True : i.fill(0) i.text(\"L=%d\"%i.analog(34),0,0) i.text(\"R=%d\"%i.analog(33),0,12) i.show() sleep(0.1)
วธิ ีหาค่ากลาง refL ,refR เพื่อใชใ้ นการเปรยี บเทยี บ ค่ากลาง 2350 if i.analog(34)>2350: เม่อื วางบนสีขาว เมอ่ื วางบนเส้นสีดาํ 0 4095 ค่ากลางสําหรบั ดา้ นซา้ ย คา่ กลางสําหรับดา้ นขวา (4000+700) / 2 = 2350 (3800+500) / 2 = 2150
PROJECT06 : ห่นุ ยนตห์ ยดุ ทเ่ี ส้นตดั (ซา้ ย) from irover import * from time import sleep i=IROVER() i.OK() while i.analog(34)>2350 : i.fd(50) i.ao()
PROJECT06B : หนุ่ ยนต์หยุดท่เี ส้นตดั (ขวา) from irover import * from time import sleep i=IROVER() i.OK() while i.analog(33)>2150 : i.fd(50) i.ao()
PROJECT06C : หุ่นยนตห์ ยดุ ท่เี ส้นตดั ใช้เซนเซอร์ตวั ใดก็ได้ from irover import * from time import sleep i=IROVER() i.OK() while i.analog(34)>2350 and i.analog(33)>2150 : i.fd(50) i.ao()
รปู แบบการเคล่อื นทีต่ ามเส้นอย่างง่าย 1 ซ้าย > คา่ กลางซ้าย and ขวา > ค่ากลางขวา เดนิ หนา้ (fd)
รปู แบบการเคล่อื นทีต่ ามเส้นอย่างง่าย 2 ซ้าย < ค่ากลางซ้าย and ขวา > ค่ากลางขวา เลย้ี วซา้ ย (tl)
รปู แบบการเคล่อื นทีต่ ามเส้นอย่างง่าย 3 ซ้าย > ค่ากลางซ้าย and ขวา < คา่ กลางขวา เลีย้ วขวา (tr)
รปู แบบการเคล่อื นทีต่ ามเส้นอยา่ งง่าย 4 ซา้ ย < คา่ กลางซา้ ย and ขวา < ค่ากลางขวา เดินตรง ขา้ มทางแยก เล้ยี วซา้ ย 90 องศา เลีย้ วขวา 90 องศา หมนุ ตัวกลับ
ตวั อย่างการทาํ สนามดว้ ยเทปพันสายไฟ เทปพันสายไฟ 3M
PROJECT07 : หุ่นยนตเ์ คลื่อนทีต่ ามเส้นอย่างง่าย from irover import * from time import sleep i=IROVER() i.OK() refL=2350 refR=2150 while True : L=i.analog(34) R=i.analog(33) if L>refL and R>refR : i.fd(50) elif L<refL and R>refR : i.sl(50) elif L>refL and R<refR : i.sr(50)
PROJECT08 : เคลือ่ นท่ีตามเส้นส่งเสียงเม่อื เจอเส้นตดั from irover import * from time import sleep i=IROVER() i.OK() refL=2350; refR=2150 while True : L=i.analog(34) R=i.analog(33) if L>refL and R>refR : i.fd(50) elif L<refL and R>refR : i.sl(50) elif L>refL and R<refR : i.sr(50) else : i.fd(50); i.sound(2000,0.1)
PROJECT08 : เคลือ่ นท่ีตามเส้นส่งเสียงเม่อื เจอเส้นตดั from irover import * from time import sleep i=IROVER() i.OK() refL=2350; refR=2150 while True : L=i.analog(34) R=i.analog(33) if L>refL and R>refR : i.fd(50) elif L<refL and R>refR : i.sl(50) elif L>refL and R<refR : i.sr(50) else : i.fd(50); i.sound(2000,0.1)
GP2Y0A41-3V : หลกั การวดั ระยะทาง GP2Y0A41-3V คา่ แรงดันเปลี่ยนแปลงตามระยะทาง
GP2Y0A41-3V : โมดลู วดั ระยะทาง 4-30 CM ใชไ้ ฟ 3.3V สูตรแสดงผล หนว่ ยเป็นเซนตเิ มตร ระยะทาง (CM) = 16050/(A+35) A คือคา่ อะนาลอก 0-4095 GP2Y0A41 GP2Y0A41-3V
PROJECT09 : อ่านคา่ จาก GP2Y0A41-3V from irover import * from time import sleep i=IROVER() while True : G=i.analog(35) D=16050/(G+35) i.fill(0) i.text(\"GP2=%d\"%G,0,0) i.text(\"Distance=%d CM\"%D,0,13) i.show() sleep(0.1)
เซอร์โวมอเตอร์ แกนหมุน 180 องศา สัญญาณ (S) GND (-) ไฟเล้ียง (+) GND (-) สัญญาณ (S)
ชดุ คาํ ส่ังภายในไลบราร่ี irover คําสั่ง SERVO ให้ SERVO ทีต่ ่อกบั บอร์ด iKB-1 ทีร่ ะบไุ ปยังตําแหนง่ องศาที่ต้องการ i.servo(10,0) #ให้ Servo ทต่ี อ่ กบั ขา 10 เคลอ่ื นที่ไปยังตําแหนง่ 0 องศา i.servo(10,180) #ให้ Servo ท่ตี ่อกบั ขา 10 เคลอื่ นทไ่ี ปยังตาํ แหน่ง 180 องศา Servo ขา 10
PROJECT10 : เจอวัตถุ ให้แขนเซอรโ์ วตี from irover import * from time import sleep i=IROVER() i.servo(10,0) while True : G=i.analog(35) if G>1500 : i.servo(10,180) sleep(0.8) i.servo(10,0)
PROJECTxx : เซอร์โวเคลือ่ นตัวชา้ from irover import * from time import sleep i=IROVER() while True : for j in range(0,180) : i.servo(10,j) sleep(0.01) for j in range(180,0,-1) : i.servo(10,j) sleep(0.01)
Search
Read the Text Version
- 1 - 47
Pages: