The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by nutty on tour, 2019-11-30 03:30:54

KB_Robot

KB_Robot

KB ROBOT

©Gravitech www.gravitechthai.com [email protected]

KB ROBOT

KB ROBOT คือบอร์ดเสริมท่ีถกู ออกแบบมาให้มีเซนเซอร์หรือฟังก์ช่นั การทางานท่ีมากมาย เช่น ควบคมุ มอเตอร์
ควบคมุ ลาโพง สามารถนาไปประยคุ ต์ใช้ได้หลากหลาย ไม่ว่าจะเป็นการประดิษฐ์ห่นุ ยนต์หรือรถบงั คบั KB ROBOT นนั้ ถูก
ออกแบบมาให้รองรับการทางานร่วมกบั บอร์ด Arduino Nano Chili ได้และยงั สามารถใช้งานร่วมกบั KidBright32 ได้อกี ด้วย

©Gravitech www.gravitechthai.com [email protected]

รายละเอียดของบอร์ด KB ROBOT

• 4 x Analog or Digital Servo control, with precision 16-bit timers
• 2 x Bi-directional brushed DC motor control, 1 Amp current limited each, with 8-bit PWM speed control

(or one
• stepper)
• 4 x High current "Darlington" 500mA drive outputs with kick-back diode protection. For solenoids, relays,

large
• LEDs, or one uni-polar stepper
• 4 x Capacitive touch sensors with alligator-pads
• 8 x Signal pins, digital in/out or analog inputs
• 1 x NeoPixel driver with 5V level shifter
• 1 x Class D, 4-8ohm speaker, 3W-max audio amplifier
• 1 x I2C Compatibility for KidBright and M5Stack

©Gravitech www.gravitechthai.com [email protected]

ฟังก์ช่ันการทางาน

4 CH Servo DC Jack Power 5-12VDC

4 CH Load Drive Switch ON/OFF
2 CH Motor Drive

USB Debug/Charger I2C KB Chain
Li-Po Battery 3.7V I2C Grove

Neo Pixel

8 CH Signal I/O Speaker

Touch Capacitive

©Gravitech www.gravitechthai.com [email protected]

แหล่งจ่ายไฟ

สามารถใช้ DC Jack Adapter ขนาด 2.1 มลิ เิ มตร
แรงดนั ไฟขนาด 5-12V เพอ่ื ใช้ในการจา่ ยไฟให้แก่ KB ROBOT
ได้ โดยเม่อื จา่ ยไฟแล้วตวั KB ROBOT จะทาการจา่ ยไฟไปยงั
NANO Chili โดยทนั ที

นอกจากการจ่ายไฟผา่ นทางแหลง่ จ่ายไฟ DC Jack โดยตรงแล้วตวั
KB ROBOT ยงั รองรับการจา่ ยไฟแบบเบตเตอรร่ีอกี ด้วยโดยสามารถนาแบตเต
อรร่ีแบบ Li-Po แรงดนั 3.7V มาตอ่ ได้และยงั ได้มีการใสช่ ดุ วงจรชาตแบตเอาไว้
แล้วบนบอร์ดอีกด้วยโดยสามารถชาจแบตผา่ นทางสาย Micro USB โดย
กระแสสงู สดุ ท่สี ามารถจา่ ยได้อยทู่ ี่ 500mAh

*แบตเตอร์ร่ีทีแ่ นะนาให้ใช้ Li-Po 3.7V 1150 - 1200mAh ใช้เวลาชาจประมาณ 3-4 hr.
**สามารถใสแ่ บตเตอรร่ีทม่ี รความจมุ ากกวา่ หรือน้อยกวา่ ได้เชน่ กนั แตระยะเวลาในการชาจแบบจะขนึ ้ อยกู่ บั ขนาดของแบตเตอรร่ท่ีใช้งานด้วย

©Gravitech www.gravitechthai.com [email protected]

สวิต เปิ ด/ปิ ด และ รีเซต

KB ROBOT นนั้ มปี ่มุ เปิดและปิด(1) การทางานของบอร์ดโดยจะ
เป็นป่ มุ กดตดิ กดดบั สามารถกดลงไปเพอ่ื ให้บอร์ดดทาการเร่ิมการ
ทางาน และทาการกดอีกครัง้ เพอื่ ปิดการทางาน

KB ROBOT การกดป่ มุ Reset(2) นนั้ ไมใ่ ช่เพยี งแตก่ ดเพื่อเริ่มต้น
การทางานใหม่ของบอร์ดเพียงอย่างเดียวแต่บอร์ด KB ROBOT นัน้
สามารถเข้าสู่ Bootloader ได้ผ่านการกดป่ มุ Reset ได้ เพียงกดป่ มุ Reset
ติดกนั 2 ครัง้ จากนนั้ จะขนึ ้ ไดว์ท่ีมีช่ือว่า KBROBOT ขึน้ มา สามารถใช้ใน
การอปั โหลดโปรแกรมเข้าไปควบคมุ การทางานได้

การกดป่มุ Reset บนบอร์ด KB ROBOT นนั้ ไมไ่ ด้เพยี งแตจ่ ะทา
การ Reset ตวั เอง แตจ่ ะทาให้บอร์ด Arduino Nano Chili นนั้ ถกู Reset ไป
ด้วยหากไมต่ ้องการให้การกดป่ มุ Reset นมี ้ ผี ลกบั บอร์ด KB ROBOT
สามารถทาการใช้คคตั เตอร์ตดั ลายวงจรบนบอร์ด KB
ROBOT .ให้ขาดออกจากกนั ได้(3)

(1): ป่ มุ Power ON/OFF จะอยใู่ นกรอบสแี ดงสีเหลย่ี ม
(2): ป่ มุ Reset ในกรอบสีฟา้
(3): เม่ือทาการตดั ลายวงจรแล้วจะทาให้บอร์ด KB ROBOT ไมส่ ามารถกดป่มุ Reset ได้อกี ต้องกดป่ มุ เปิด ปิดเพ่ือเร่ิมการทางานใหมเ่ ทา่ นัน้

©Gravitech www.gravitechthai.com [email protected]

Servo Driver Control

ในบอร์ด KB ROBOT นนั้ มีความสามารถในการควบคมุ Servo ได้
โดย Servo นนั้ ถือเป็นมอเตอร์ท่ีคบุ คมุ ได้ที่สามารถหาซือ้ ได้ง่าย ราคา
ไมส่ งู มาก และลง่านยในการใช้งานดงั นนั้ ทาให้มีผ้ใู ช้งานอยเู่ ป็นจานวน
ไมน่ ้อยนกั

โดย KB ROBOT นนั้ สามารถรองรับการควบคมุ Servo พร้อมกนั ได้
สงู สดุ ถงึ 4 ตวั จงึ สามารถนาไปประยคุ ต์สร้างเป็นขาของหนุ่ ยนต์เดินได้

สามารถใช้ Servo ขนาดใดก็ได้ในการรรต่อเพื่อ
ควบคมุ Servo โดย Servo นนั้ ต้องเป็นแบบทส่ี ามารถหมนุ
ได้ 180 องศา และใช้สายในการเชื่อมต่อ 3 เส้น โดยมี
ไฟเลยี ้ งท่ี 3.3V

• ขาท่ใี ช้ในการควบคมุ ของ Servo นนั้ ต่อด้วยขาหมายเลข 14,15,16,17
• ขา PWM ของ Servo นนั้ เป็นแบบ 16bit
• ไฟท่ี KB ROBOT สามารถจา่ ยไปเลยี ้ ง Servo ได้นนั้ คือ 3.3V เทา่ นนั้

©Gravitech www.gravitechthai.com [email protected]

Motor Drive 2CH

โดยปกติแล้ว Motor เม่ือจ่ายไฟแล้วมันจะทาการหมุ่น
อย่างต่อเนื่องในทิศทางเดียวตลอดจนกว่าจะทาการตดั ไฟ
หากต้องการจะสลบั ทิศทางการหมนุ นนั้ จะต้องตอ่ ไฟสลบั ขว่ั
กัน ทาให้เป็นปัญหาในการใช้งานในหลายๆด้าน ดังนัน้
Motor Driver จึงเข้ามามีบทบาทในการควบคมุ Motor เป็น
อย่างมาก เน่ืองจากต่อ Motor เพียงแค่ 2 สายเท่านัน้ เรา
สามารถควบคมุ ได้ทงั้ ความเร็วในการหมนุ และทิศทางการ
หมนุ ได้อยา่ งอิสระเลยทเี ดยี ว

KB ROBOT นัน้ มีการออกแบบให้ มีวงจรขับ
Motor ถงึ 2 channel หมายความวา่ สามารถควบคมุ
Motor ได้พร้ อมกันถึง 2 ตัว โดย Motor ท่ีสามารถ
ควบคมได้มแี รงดนั อยทู่ ี่ 3 – 6V

(1): ขาท่ีใช้ในการควบคมุ ของ Motor Driver นนั้ ตอ่ ด้วยขาหมายเลข 22+23 (motor1) และ 19+18(motor2)
©Gravitech www.gravitechthai.com [email protected]

High Power Drivers

ในบางครัง้ เราไม่ได้แค่ตงั้ การควบคุมแค่ Servo หรือ DC
Motor เท่านัน้ บ้างครัง้ เราอาจจะต้องการที่จะควบคุมการ
ทางานอุปกรณ์ที่มีกาลังสูงๆ หรืออุปกรณ์ท่ีใช้ กระแสไฟ
ค่อนข้างสงู ในการทางาน เช่น รีเลย์ มอเตอร์ขนาดใหญ่ หรือ
หลอดไฟ LED ขนาดใหญ่ เป็นต้น แตม่ กั จะเจอปัญหาท่ีวา่ ขา
ของบอร์ดสว่ นใหญ่นนั้ จะขบั กระแสได้ข่อนขา่ งต่าทาใหม่ไม่
สามารถใช้ งานได้ หรื อถ้ าอยากใช้ งานจริ งก็จาเป็ นจ้ องต่อ
วงจรขบั เองซง่ึ ก็มขี นาดและความยงุ่ ยากอยพู่ อสมควร

KB ROBOT นนั้ ได้แก้ปัญหาในข้อนี ้ โดยการ เพิ่มวงจรขบั High Power Drivers เพื่อทาการขบั อุปกรณ์ที่ต้องการ
กระแสสงู ๆในการทางานได้

โดยสามารถตอ่ อปุ กรณ์ที่ใช้กาลงั สงู ตอ่ เข้ากบั หวั ตอ่ เทอร์มนิ อลได้ 4 Chanel โดยขาของ Output นนั้ เมอ่ื ถกู ใช้งานจะ
ทาการตอ่ ลง GND

ในกรณีที่ต้ องการจะนาไปประยุคใช้ งานกับ
อปุ กรณ์ที่มีแรงดนั สงู กว่าปกติ เช่น โซลนิ อย 12V
นนั้ สามารถทาได้ โดยการจ่ายไฟจากภายนอก
ให้กับอุปกรณ์ โซลินอย แล้วทาการต่อขา GND
เข้ากับขา OUTPUT ของบอร์ด KB ROBOT ได้
และ GND จากแหล่งจ่ายภายนอก 12V จะต้อง
ตอ่ ร่วมกบั GND ของบอร์ดด้วย(1)

©Gravitech www.gravitechthai.com [email protected]

ตวั อยา่ งการตอ่ โซลนิ อยทใ่ี ช้แรงดนั 12V โดยใช้บอร์ด KB ROBOT ควบคมุ การทางาน

ข้อควรระวงั
(1): การตอ่ อปุ กรณ์ทมี่ ีแรงดนั ไฟมากกวา่ 5V สามารถทาได้แตต่ ้องจา่ ยาจกภายนอกเทา่ นนั้ และทาการเชอื่ มตอ่ GND ร่วมกบั บอร์ดด้วยเสมอ
(2): กระแสท่ีสงู สดุ ท่ีสามารถขบั ได้อยทู่ ่ี 500mA
(3): สามารถตอ่ ไฟภายนอกได้สงู สดุ 30VDC
(4): ขาทีใ่ ช้ในการควบคมุ OUTPUT ขา 13, 12, 43, 42

©Gravitech www.gravitechthai.com [email protected]

Signal I/O 8CH

และแน่นอนว่าหากต้องการจะ blink
LED หรือต้องการอ่านค่าที่ได้จาก Switch นนั้ ก็สามารถ
ทาได้เช่นกันเพราะ KB ROBOT นัน้ มีพอต Signal I/O
มาเลือกใช้งานถงึ 8 channel 8 คณุ ามารถใช้ในการอา่ น
ค่า digital หรือ อ่านค่าจาก analog ก็ได้ หรือแม้ แต่
ต้องการควบคุมสัญญาณ digital ได้เช่นกัน เนื่องจาก
การออกแบบให้ Connector เป็นแบบ 3x8 ซึ่งมีขาไฟ
3.3V และ GND มาด้วยแล้วจะสะดวกท่ีจะนาเซนเซอร์
มาตอ่ เข้างานได้ทนั ที

คณุ สมบตั ิของขาสญั ญาณ
• ขาทัง้ หมดของ Signal เป็ น Logic แบบ

3.3V
• ขาทงั้ หมดสามารถค่าแบบ analog ด้วยความ

ละเอยี ดแบบ 12bit ได้
• ขาทัง้ หมดสามารถควบคุม Logic High(3.3V)

และ Low(0V) ได้
• ขาทงั้ หมดสามารถขบั กระแสได้สงู สดุ อย่ทู ่ี 7mA

ในกรณีที่กาหนดเป็น Output
• ขาทัง้ หมดนัน้ ต่อตัวต้านทานภายในเอาแล้วท่ี

50KΩ pull-upในกรณีท่กี าหนดเป็น Input
• Signal IO จะมีขาหมายเลข 2, 3, 40,

41, 11, 10, 9, 8 ตามลาดบั

©Gravitech www.gravitechthai.com [email protected]

Capacitive Touch

Capacitive touch หรือ เซนเซอร์จบั การสมั ผสั นนั้ มีความสามารถในการรับการแตะหรือสมั ผสั ท่ีมาจากนิว้ มือหรือ
การสมั ผสั ท่ีเกิดจากโลหะได้ โดยแถบเซนเซอร์จะมีลกั ษณะเป็นแถบทองแดงท่ีเคลอื บไว้ด้วยหมึกที่มีความสามารถในการนา
ไฟฟ้า KB ROBOT นัน้ สามารถตรวจจับสัญญาณท่ีมาจากการแตะที่เกิดขึน้ บนแถบทองแดง Capacitive touch ได้ทัง้ 4
channel ได้

โดยคณุ สามารถใช้นิว้ มือสมั ผสั โดยตรงหรืจะใช้วสั ดทุ ี่เปียกนา้ มาสมั ผสั ก็ได้เชน่ กนั (1) ตวั แถบ Capacitive
touch นนั้ ก็สามารถอา่ นคา่ ได้เชน่ เดยี วกนั

(1): การใช้วสั ดทุ ีเปียกนา้ มาสมั ผสั ควรใช้สายไฟปากจรเข้มาหนบี ท่แี ถบสมั ผสั ก่อนแล้วจงึ นาปลายสายอกี ด้านไปสมั ผสั วสั ดทุ เ่ี ปลียกนา้
(2): Capacitive touch นนั้ มีขาหมายเลข 4, 5, 6, 7

©Gravitech www.gravitechthai.com [email protected]

NeoPixel Drive

แสงจากหลอด NeoPixel นัน้ ช่วยเพิ่มความ
สวยงามให้แก่ ห่นุ ยนต์หรือโปรเจคของคณุ ได้ มนั ง่ายมาก
หากคณุ ใช้ KB ROBOT ควบคมุ หลอด NeoPixel เพราะ KB
ROBOT นัน้ มีหัว ต่อเทอมิน อลที่สามารถต่อเข้ ากับ
NeoPixel ได้ โดยแบ่งออกเป็ น GND Signal 5V รุ่นของ
Chipset ที่ลองรับคือ (WS2811/WS2811/SK6812) โดย
ขาสญั ญาณนนั้ มีวงจร Level Shifter 5V มาแล้ว แนะนาให้
ใช้ รุ่นท่ีใช้ ขาสัญญาณที่ 5V เพ่ือการใช้ งานอย่างเต็ม
ประสทิ ธิภาพ

KB ROBOT หากใ ช้ งานร่ วมกับ Arduino Nano Chili จะ
สามารถใช้งาน NeoPixel External ได้เลยโดยจะใช้ขา A1 (Pin15)

กรณีที่ไม่ได้ใช้งานร่วมกับ Arduino Nano Chili ก็สามารถใช้
งานได้โดยการตดั ลายวงจรท่ีด้านหลงั บอร์ด KB ROBOT แล้วทาการ
บดั กรี แผดบดั กรีขากลางเข้ากบั ขา I2C ก็จะสามารถใช้งาน NeoPixel
ผา่ น I2C ได้

©Gravitech www.gravitechthai.com [email protected]

Speaker Drive

คุณสามารถใช้ KB ROBOT ในการสร้ างเสียงเพลงให้แก
ห่นุ ยนต์หรือแม้แต่โปรเจคของคณุ ได้ ใน KB ROBOT มีวงจรขยายเสยี ง
ให้แก่คุณแล้ว แต่ต้องระลกึ ไว้เสมอว่า KB ROBOT ไม่สามารถสง่ เสยี ง
ได้ด้วยตวั ของมันเองเสียงที่ส่งออกมานนั้ ต้องมาจากการควบคุมของ
Arduino Nano Chili(1)

คุณสมบัตขิ องตวั ขับลาโพง KB ROBOT

• เป็นตวั ขยายเสยี งแบบ Class D
• สามารถขยายลาโพงได้สงู สดุ อยทู่ ่ี 4Ω ถึง 8Ω โดยขบั ได้

กาลงั 3W ที่ 4Ω และ 1W ที่ 8Ω
• สามารถกาลงั ขยาย(ความดงั ของลาโพง) ได้จากการหมนุ ตวั

ต้านทานปรับคา่ ได้
• เทอมนิ อลที่ใช้ในการตอ่ ลาโพงเป็นแบบ 5VDC ไมค่ วรนาไป

ตอ่ และตอ่ มาจากวงจรขยายโดยตรง ไมค่ วรนาไปตอ่ กบั ชดุ
ลาโพงขนาดใหญ่หรือตอ่ ไฟเข้าไปโดยตรง

(1): สามารถใช้บอร์ดรุ่นอนื่ ตวบคมุ การทางานของลโพงได้เชน่ เดยี วกนั โดยการตอ่ ขา PWM เข้ากบั ขา (A0,Pin14)
บนตวั บอร์ด KB ROBOT

©Gravitech www.gravitechthai.com [email protected]

รองรับหลายการเช่ือมต่อ

KB ROBOT ถกู ออกแบบมาเพื่อรองรับการทางานร่วมกบั
บอร์ด Arduino Nano Chili โดยเฉพาะ เน่ืองจากถกู ออกแบบมา
สาหรับ Nano Chili แล้วดังนัน้ จึกสามารถท่ีจะใช้ ฟังก์ชั่นของ
บอร์ด KB ROBOT ได้อยา่ งครบรั่นไมว่ า่ จะเป็นการควบคมุ Servo
หรือแม้แต่การทางานของลาโพงก็ตาม โดยให้หนั ทางด้าน Micro
USB ไปตามแนวลกู ษร(1)

KB ROBOT ไม่เพียงแต่จะรองรับแต่ Nano
Chili บอร์ด KB ROBOT ยังสามารถรองรับการทางาน
โดยตรงกบั บอร์ด KidBright32 อีกด้วยโดยการเช่ือมต่อ
หลกั จะเชื่อมตอ่ ผา่ นทางสาย KB Chain Connector ของ
ทาง KidBright โดยตรงรูปแบบการสื่อสารจะอยู่ใน
รูปแบบของ I2C(2)

เช่นเดียวกับ M5Stack ก็สามารถใช้งานบอร์ด
KB ROBOT เล่นกันผ่านทางสาย Grove ผ่านการ
สอ่ื สารแบบ I2C(3)

(1): การตอ่ Arduino Nano Chili ควรระวงั ขาที่เสียบลงบนบอร์ด KB ROBOT ควรตรวจสอบให้ดีกอ่ นจา่ ยไฟมิเชน่ นนั้ อาจเกิดความเสยี หายกบั บอร์ดทงั้ 2 ได้
(2): การตอ่ KB ROBOT ผา่ นสาย Chain Connector นนั้ ใน KidBright ใช้ I2C นะใช้ขาหมายเลย 4,5
(3): การตอ่ KB ROBOT นสาย Grove แนะนาให้ใช้สายเฉพาะของ Grove Sensor เทา่ นนั้

©Gravitech www.gravitechthai.com [email protected]

USB Programmer and Charger Battery

ใน KB ROBOT ใช้ ATSAMD21 เป็ นหน่วย
ประมวลผลหลกั โดยจะมีหลอดไฟ NeoPixel ท่ีใช้ในการ
บอกสถานะต่างๆ ของบอร์ดติดมาให้ เราสามารถควบคมุ
หลอดนไี ้ ด้เช่นเดยี วกนั (1)

หวั ตอ่ Micro USB นใี ้ ช้ในการอปั โหลดโปรแกรม
และใช้ ในการชาจแบตเตอรร่ี ให้ ช่องต่อแบตเตอรรี่ เท่านนั ้
(2)ไม่สามารถใช้ในการจ่ายไฟเพ่ือเลีย้ งทงั้ บอร์ดให้ทางาน
ได้

คุณสมบัตขิ อง ATSAMD21

• ARM Cortex-M0+ CPU running at up to 48MHz 32bit MCU
• 256KB in-system self-programmable Flash
• 32KB SRAM Memory
• Power-on reset (POR) and brown-out detection (BOD)

(1): หลอด NeoPixel ภายในบอร์ดสามารถใช้ขาหมายเลข 27 ในการควบคมุ ได้
(2): สามารถใช้ Micro USB ในการชาจแบตเตอร์รี่ได้สามารถดขู ้อมลู แบตเตอร์ได้ในหวั ข้อ แหลง่ จา่ ยไฟ

©Gravitech www.gravitechthai.com [email protected]

เร่ิมต้นการทางานของ KB ROBOT

การใช้งาน KB ROBOT ก่อนที่เราจะเริ่มชงานในฟังก์ช่ันต่างๆของ KB ROBOT ได้นนั้ ไม่ว่าจะเป็น Motor Drive,
Servo Drive หรือ Signal I/O ได้นนั้ เราจะต้องมีการใสเ่ ฟริมแวร์ท่ีใช้ในการควบคมุ การทางานให้แก่บอร์ด KB ROBOT ของเรา
กอ่ น

ขัน้ ตอนการอปั เดทเฟริมแวร์

ขัน้ ตอนท่ี1: เร่ิมต้นในการเสียบสาย Micro USB เข้ากับบอร์ด KB ROBOT

เร่ิมต้นโดยการตอ่ สายที่เช่ือมต่อเข้ากบั PC/Laptop เข้ากบั KB ROBOT ของเราก่อนโดยเมือ่ เชื่อมต่อแล้วเราจะเหน็
ไฟสถานะทห่ี ลอด NeoPixel ติดขนึ ้

ขัน้ ตอนท่ี2: กดรีเซต 2 ครัง้

ในขนั้ ตอนนีห้ ลงั จากที่เราเช่ือมต่อสาย Micro USB แล้ว
เราจะสู้โหมดท่ีเรียกว่า Mode Bootloader ของตัวบอร์ด KB
ROBOT โดยการกดท่ีป่ มุ Reset 2 ครัง้ ติดกนั โดยตวั โหมดนีจ้ ะ
มลี กั ษณะเป็น Drive ขนึ ้ มาใน PC/Laptop ของเรา

ขัน้ ตอนท่ี3: การดสู ถานะแจ้งเตอื น Led Status
NeoPixel Status
หลงั จากท่ีเรากดป่ ุม reset เพื่อเข้าสู่โหมด
bootloader แล้ วมีมีสถานะบอก โดยเราสามารถ
สงั เกตไุ ด้จากหลอด NeoPixel ที่ตดิ อยบู่ นตวั บอร์ด KB
ROBOT ได้โดยจะแสดงออกมาเป็นแสงสเี ขียวและอกี
1 สญั ญาณคือหลอด LED ที่อย่ตู ิดกบั หวั Micro USB
ก็จะแสดงออกมาในลกั ษณะ pulsing ด้วย

©Gravitech www.gravitechthai.com [email protected]

ขัน้ ตอนท่ี4: ตรวจสอบ Drive ใน PC/Laptop

ถ้าการเข้าสู่โหมด bootloader ไม่มีขัน้ ตอน
ไหนผิดพลาดเราจะสามารถเห็น Drive ขึน้ มาใหม่ 1 Drive ใน
PC/Laptop ของเราโดยมีชื่อวา่ KBROBOT เพ่ือใช้ในการอปั เดท
เฟริมแวร์ได้แล้ว

ขัน้ ตอนท่ี5: Download firmware สาหรับ KB ROBOT

คลกิ เพ่อื ไปยงั แหลง่ Download firmware ของ KB ROBOT ได้เลยโดยไฟล์จะเป็นนามสกลุ uf2

Click Download

ขัน้ ตอนท่ี6: ลากไฟล์ UF2 ใส่ใน KB ROBOT

หลงั จากท่ี download ไฟล์ uf2 มาแล้วให้เราทา
การลากไฟล์ uf2 .ใส่ใน drive KBBOOT บน PC/Laptop
ของเราได้เลย เพียงเท่านี ้KB ROBOT ของเราก็พร้อมเลน่
แล้ว

©Gravitech www.gravitechthai.com [email protected]

เร่ิมต้นการใช้งาน

การจ่ายไฟให้ KB ROBOT

ในบอร์ด KB ROBOT ในส่วนของแหล่งจ่ายไฟ
นัน้ จะใช้ หัว connector แบบ DC Jack ขนาด 2.1mm (1)
สามารถรับแรงดนั ได้ตงั้ แต่ 5-12V(2)

เม่ือทาการจา่ ยไฟแล้วะมีไฟเสดงสถานะการทางานสแี ดง
ขึน้ มา เพ่ือแสดงให้ทราบว่าบอร์ดสามารถใช้งานได้ (สามารถกด
เปิด ปิด การทางานได้ขากสวติ ข้างๆ)

คาแนะนา
(1): ขนาดของ DC Jack อยทู่ ี่ 2.1mm
(2): ในกรณีทใี่ ช้งานทกุ ฟังก์ชน่ั จะกินพลงั งานประมาณ 50W แนะนาให้ใช้ Adapter ดงั ตอ่ ไปนี ้5V/2A 9V/2A 12V/1.5A

©Gravitech www.gravitechthai.com [email protected]

ตวั อย่าง Adapter
Wall Adapter Switching Power Supply 5.0VDC, 2A, 2.1mm
Item# PSAD-3121
https://www.gravitechthai.com/product-detail.php?WP=pQqgZKp1GQAgG2rDqYyc4Uuw
2.1mm Power Jack Breakout Adapter + Batterry case AAA x4
Item# COOT-1741
Item# ADBO-0136
https://www.gravitechthai.com/product-
detail.php?WP=pQMgAaplGQWgG2rDqYyc4Uuw
https://www.gravitechthai.com/product-
detail.php?WP=oGS3BRjkoH9axUF5nrO4Ljo7o3Qo7o3Q

©Gravitech www.gravitechthai.com [email protected]

การจ่ายไฟยังสามารถจ่ายไฟผ่านทางแบตเตอรร่ี Lithium
Polymer 3.7V(1) ต่อทางหวั ต่อ Wafer สีขาวได้ KB ROBOT ก็สามารถใช้
งานได้เช่นกนั เนื่องจากเป็นแบตเตอรี่แบบ Li-Po เราจึงไม่ต้องกงั วลวา่ แบ
ตจะหมดแล้วหามาเปลย่ี นให้เสียเวลา เพราะเราสามารถทาการรีชาจแบต
ได้เช่นเดียวกับมือถือ โดยสามารถเสียบสายชาจแบบ Micro USB ได้เพ่ือ
ชาจแบตได้ และเนื่องจากเป็นแบตเตอรร่ีขนาดเล็กเราจึงสามารถนา KB
ROBOT ไปทาโปรเจคในรูปแบบไร้สายได้อยา่ งสบาย

ในกรณีท่ีทาการชาจแบตจะมีไฟสถานะสแี ดงตดิ ขนึ ้ มาเพื่อเป็นการ
บอกว่ากาลงั ชาจแบตอยู่ในระหว่างนีไ้ ม่ควรใช้งานบอร์ด KB ROBOT เพ่ือ
ประสทิ ธิภาพสงู สดุ ในการชาจแบตเตอรรี่ ในการชาจแตล่ ะครัง้ อาจใช้เวลาใน
การชาจประมาณ 3-4 ชม. ขึน้ อย่กู บั ปริมาณแบตเตอรรี่คงเหลอื ณ ตอนนนั้
เมือ่ การชาจเสร็จสนิ ้ ไฟแสดงสถานะจะดบั ลงเอง

Lithium Ion Polymer Battery LiPo 1200mAh 3.7V – 703450
Item# PSBA-2976
https://www.gravitechthai.com/product-
detail.php?WP=pQEgZ3pmGQAgG2rDqYyc4Uuw

ข้อแนะนา
(1): แบตเตอรร่ีทแี่ นะนาให้ใช้ Li-Po 3.7V 1150 - 1200mAh ใช้เวลาชาจประมาณ 3-4 hr

©Gravitech www.gravitechthai.com [email protected]

ไฟแสดงสถานะของบอร์ด KB ROBOT

สแี ดงกระพริบคอื ไฟเลยี ้ งอปุ กรณ์ไมพ่ อ
สแี ดงตดิ ค้างคือสาย Micro USB ไมไ่ ด้เชื่อมตอ่ กบั PC
สเี ขียวคอื เข้าสโู่ หมด bootloader

หลอดไฟแสดงสถานะ

การใช้งาน Arduino Code กับ KB ROBOT

ในการใช้งาน Arduino นนั้ จะไม่ได้ทาการควบคมุ KB ROBOT โดยตรง แตจ่ ะเป็นการควบคมุ ผา่ สนบอร์ดที่ถกู เสยี บ
ลงไปบน KB ROBOT ในที่นีจ้ ะใช้เป็น Arduino Nano Chili เพ่ือให้สามารถใช้งานได้หลากลายฟังก์ชน่ั โดยหลกั การทางาน
ของ KB ROBOT นนั้ จะเป็นรูปแบบการสง่ั งานจากบอร์ดที่นามาปลกั๊ โดยใช้การสอ่ื สารในรูปแบบ I2C เป็นหลกั

ขัน้ ตอนการตดิ ตัง้ Arduino

สามารถ Download แล้วตดิ ตงั้ ด้วยตวั เองได้จากลงิ ค์นี ้ Lib Seesaw (https://github.com/gravitech-
engineer/Adafruit_Seesaw)
หรือ ตดิ ตงั้ ผา่ น Library Manager ได้ตามขนั้ ตอนตอ่ ไปนี ้

©Gravitech www.gravitechthai.com [email protected]

©Gravitech www.gravitechthai.com [email protected]

การใช้งาน Servo Driver Control

ทดสอบการทางานของ Servo โดยในตวั อย่างจะใช้
ชอ่ งหมายเลข 1 โดยจะให้ Servo จะขยบั 0 ถงึ 180 องศา

เราสามารถควบคุม Servo ได้ สูงสุดถึง 4 ตัว โดย
กาหนดขาดงั นี ้ ขา 17
( CIRCKIT_SERVO1 ) , 1 6 ( CIRCKIT_SERVO2 ) , 1 5
(CIRCKIT_SERVO3), 14 (CIRCKIT_SERVO4)

#include "Adafruit_Crickit.h"
#include "seesaw_servo.h"

Adafruit_Crickit crickit;
seesaw_Servo myservo1(&crickit);

void setup() {
Serial.begin(115200);
if (!crickit.begin()) {
Serial.println("ERROR!");
while (1);
}
else Serial.println("Crickit started");
myservo1.attach(CRICKIT_SERVO1);

}

void loop() {
myservo1.write(0);
delay(500);
myservo1.write(180);
delay(500);

}

©Gravitech www.gravitechthai.com [email protected]

คาส่งั ท่ใี ช้ในการควบคุม Servo ท่สี ามารถใช้ได้
เราสามารถใช้กาหนดคา่ สงู สดุ ตา่ สดุ ได้โดยใช้คาสงั่ attach()

myservo.attach(CRICKIT_SERVO1);

โดยปกตแิ ล้วคา่ ดงั่ เดิมต่าสดุ ถกู กาหนดไว้ที่ 1000 microsec แตเ่ ราจะกาหนดเป็น 750 และคา่ สงู สดุ จะถกู กาหนดไว้ท่ี 2000
microsec แตเ่ ราจะกาหนดใหมใ่ ห้เป็น 2250 แทนตามคาสง่ั ดงั ตอ่ ไปนี ้

myservo.attach(CRICKIT_SERVO1, 750, 2250);

สามารถกาหนดคา่ pulse เองได้จากคาสง่ั writeMicroseconds()
เราสารถทาการสงั่ หยดุ การทางานของ Servo จากคาสงั่

myservo.writeMicroseconds(0);

หรือสามรถกาหนดจาแหนง่ การหยดุ ให้แก่ Servo ได้เลยจากคาสงั่ เดยี วกนั โดยจะมรี ูปแบบการเขยี นดงั นี ้

myservo.writeMicroseconds(number);

number คอื จานวนความยาวของ pulse ทีก่ าหนดให้แก่ Servo โดยจะอยใู่ นหนว่ ยของ microsec มีช่วงตงั้ แต่ 0(off) ถงึ
20000(หมนุ ไปสดุ )

Micro Servo 9g Tower Pro SG90
Item# ROMT-0497
https://www.gravitechthai.com/product-
detail.php?WP=oGA3A0j1oH9axUF5nrO4Ljo7o3Qo7o3Q

Servo motor 90S
Item# ROMT-1704
https://www.gravitechthai.com/product-
detail.php?WP=pQIgZap5GQSgG2rDqYyc4Uuw

©Gravitech www.gravitechthai.com [email protected]

การใช้งาน Motor Drive 2CH

Motor เป็นอปุ กรณ์ท่ีเป็นพืน้ ฐานท่ีสามารถนาไปประยคุ ต์
ใช้ได้มากมาย โดยปกติ motor นนั้ จะทางานโดยการจ่ายไฟเข้าไป
แล้วจะเกิดการหมุนเกิดขึน้ แต่ปัญหาอยู่ท่ีการหมุนนัน้ มันจะไปใน
ทิศทางเดียวเทา่ นนั้ การจะสลบั ทิศทางการหมนุ จะต้องทาการสลบั ขว่ั ไฟ
ซ่ึงจะเกิดความยงุ่ ยากเป็นอย่างมาก ดงั นนั้ ในการใช้งาน motor เรา
จึงจะได้เป็นชุดวบคมุ การทางานของ motor เป็นส่วนใหญ่เน่ืองจาก
สามารถควบคมุ ทิศทางการหมนุ ได้แล้วยงั สามารถควบคมุ ความเร็วใน
การหมุนได้ อีกด้ วยจะเป็ นเหตุผลท่ีว่าทาไมจึงนิยมนาชุดควบคุม
motor มาใช้งานกนั
ในบอร์ด KB ROBOT นนั้ มีวงจรควบคมุ motor ที่สามารถควบคมุ motor ได้พร้อมกนั ถงึ 2 ตวั โดยสามารถ
ใช้ในการควบคมุ ทศิ ทางการหมนุ ได้และสามารถควบคมุ ความเร็วในการหมนุ ได้เช่นเดยี วกนั

©Gravitech www.gravitechthai.com [email protected]

#include "Adafruit_Crickit.h"
#include "seesaw_motor.h"

Adafruit_Crickit crickit;

seesaw_Motor motor_a(&crickit);
seesaw_Motor motor_b(&crickit);

void setup() {
Serial.begin(115200);
Serial.println("Dual motor demo!");

if(!crickit.begin()){
Serial.println("ERROR!");
while(1);

}
else Serial.println("Crickit started");

//attach motor a
motor_a.attach(CRICKIT_MOTOR_A1, CRICKIT_MOTOR_A2);

//attach motor b
motor_b.attach(CRICKIT_MOTOR_B1, CRICKIT_MOTOR_B2);
}

void loop() {
motor_a.throttle(1);
motor_b.throttle(-1);
delay(1000);

motor_a.throttle(.5);
motor_b.throttle(-.5);
delay(1000);

motor_a.throttle(0);
motor_b.throttle(0);
delay(1000);

motor_a.throttle(0);
motor_b.throttle(0);
delay(500);
}

©Gravitech www.gravitechthai.com [email protected]

การใช้งาน High Power Drive

พอตนมี ้ ีความสามารถในการขบั อปุ กรณืที่ใช้กระแส
สงู ในการทางานได้

การต่อใช้งาน High Power Drive

โดยที่พอตนนั้ จะมีช่องสาหรับจ่ายไฟ 5V มาแล้ว โดยการเชื่อมตอ่ นนั้ จะต้องต่อไฟและขา Drive1-4 เพื่อควบมุ การ
ทางานของอุปกรณ์ ขาของ Drive1-4 นัน้ มีคุณสมบัติเป็ นแบบ PWM เราจึงสามารถควบคุมค่าได้ ตัง้ แต่ 0
(CRICKIT_DUTY_CYCLE_OFF) ถึง 65535 (CRICKIT_DUTY_CYCLE_MAX)

ในกรณีที่ต้ องการใช้ Drive หมายเลขอื่นท่ีนอกเหนือจากหมายเลข 1 นัส้ ามารถใช้ งานได้ ดังนี ้ ขา 13
(CRICKIT_DRIVE1), 12 (CRICKIT_DRIVE2), 43 (CRICKIT_DRIVE3), 42 (CRICKIT_DRIVE4)

©Gravitech www.gravitechthai.com [email protected]

#include "Adafruit_Crickit.h"
Adafruit_Crickit crickit;
void setup() {
Serial.begin(115200);

Serial.println("1 Drive demo!");
if(!crickit.begin()){

Serial.println("ERROR!");
while(1);
}
else Serial.println("Crickit started");
//our default frequency is 1khz
crickit.setPWMFreq(CRICKIT_DRIVE1, 1000);
}
void loop() {
//turn all the way on
crickit.analogWrite(CRICKIT_DRIVE1, CRICKIT_DUTY_CYCLE_OFF);
delay(500);
//turn all the way off
crickit.analogWrite(CRICKIT_DRIVE1, CRICKIT_DUTY_CYCLE_MAX);
delay(500);
}

©Gravitech www.gravitechthai.com [email protected]

การใช้งาน Signal I/O 8CH

Signal I/O บน KB ROBOT นนั้ มีความสามารถ
เป็น INPUT และ OUTPUT ได้ โดย Logic นนั้ ะเป็น
แบบ 3.3V โดยสามารถอา่ น INPUT ได้ทงั้ แบบ digital
และ analog สว่ นการควบคมุ นนั้ สามารถควบคบุ แบบ
digital ได้

โดย Signal I/O นัน้ KB ROBOT จะใส่ Pin
Header แบบตัวเมียมาให้ถึง 8 Channel โดยการใช้
งานนนั้ สามารถใช้สายไฟแบบ Jumper ตัวผู้ต้องลง
ไปได้เลย และอีกทงั้ ยงั มีช่องสาหรับจา่ ยไฟแบบ 3.3V
และ GND ไว้อยแู่ ล้วสามารถนาไปใช้งานได้ทนั ที

หมายเลขของขา Signal I/O ชื่อท่กี าหนดไว้ใน Arduino หมายเลขขา
CRICKIT_SIGNAL1 2
หมายเลขบนบอร์ด CRICKIT_SIGNAL2 3
1 CRICKIT_SIGNAL3 40
2 CRICKIT_SIGNAL4 41
3 CRICKIT_SIGNAL5 11
4 CRICKIT_SIGNAL6 10
5 CRICKIT_SIGNAL7 9
6 CRICKIT_SIGNAL8 8
7
8

©Gravitech www.gravitechthai.com [email protected]

#include "Adafruit_Crickit.h"

Adafruit_Crickit crickit;

#define BUTTON_1 CRICKIT_SIGNAL1
#define BUTTON_2 CRICKIT_SIGNAL2
#define LED_1 CRICKIT_SIGNAL3
#define LED_2 CRICKIT_SIGNAL4

void setup() {
Serial.begin(9600);
if(!crickit.begin()){
Serial.println("ERROR!");
while(1);
}
else Serial.println("Crickit started");
//Two buttons are pullups, connect to ground to activate
crickit.pinMode(BUTTON_1, INPUT_PULLUP);
crickit.pinMode(BUTTON_2, INPUT_PULLUP);
// Two LEDs are outputs, on by default
crickit.pinMode(LED_1, OUTPUT);
crickit.pinMode(LED_2, OUTPUT);
crickit.digitalWrite(LED_1, HIGH);
crickit.digitalWrite(LED_2, HIGH);
}

void loop() {
if(!crickit.digitalRead(BUTTON_1))
crickit.digitalWrite(LED_1, HIGH);
else
crickit.digitalWrite(LED_1, LOW);
if(!crickit.digitalRead(BUTTON_2))
crickit.digitalWrite(LED_2, HIGH);
else
crickit.digitalWrite(LED_2, LOW);

}

©Gravitech www.gravitechthai.com [email protected]

การใช้งาน Capacitive Touch

Capacitive Touch บน KB ROBOT นัน้ เม่ือมี
การสมั ผสั จากมือของมนษุ ย์นนั้ จะทาการอา่ นคา่ สญั ญาณ
ออกมาในรู ปของตัวเลขแบบ analog โดยค่านัน้ จะ
เปลยี่ นแปลงไปตามแรงกดหรือตามแตว่ สั ดทุ ี่ใช้สมั ผสั

#include "Adafruit_Crickit.h"

Adafruit_Crickit crickit;

#define CRICKIT_NUM_TOUCH 4
#define CAPTOUCH_THRESH 500

void setup() {
Serial.begin(9600);
Serial.println("Cap Touch Demo");
if(!crickit.begin()) {
Serial.println("ERROR Starting crickit");
while(1) ;

}
else Serial.println("seesaw started");

}

void loop() {

for(int i=0; i<CRICKIT_NUM_TOUCH; i++){
uint16_t val = crickit.touchRead(i);

if(val > CAPTOUCH_THRESH){
Serial.print("CT");
Serial.print(i + 1);
Serial.print(" touched! value: ");
Serial.println(val);

}
}
delay(100);
}

©Gravitech www.gravitechthai.com [email protected]

การใช้งาน NeoPixel

ในการใช้ งาน NeoPixel นัน้ ในบอร์ด KB ROBOT นัน้ จะไม่
เหมือนกนั การใช้งานฟังก์ชน่ั อ่ืนที่ผา่ นมาเนื่องจากเป็นฟังก์ชั่นท่ีออกแบบมาให้
ใช้งานได้ 2 โหมด โดยจะเป็นโหมดที่สามารถควบคมุ ผา่ น I2C สว่ นอกี โหมดจะ
เป็นการควบคมุ ผา่ น Pin ของบอร์ด Arduino Nano Chili โดยตรงดงั นนั้
หากต้องการนาบอร์ดอื่นที่ไมใ่ ช้ Arduino Nano Chili มาใช้งานจงึ จาเป็น
จะต้องตดั ลายวงจรและทาการบดั กรีดงั ลายใหม่ สามารถย้อนดกู ารตดั ลายได้ที่
หวั ข้อ Neo Pixel Drive

ในโหมดแรกจะเป็นการตอ่ แบบใช้ Arduino Nano Chili โดย
โ ห ม ด นี จ้ ะ เ ป็ น ก า ร ค ว บ คุ ม ผ่ า น ข า ข อ ง Arduino Nano Chili
(A1,Pin15) โดยตรงโดยจะใช้ library Adafruit_NeoPixel

ในกรณีท่ใี ช้ NeoPixel Drive ผา่ น I2C นนั้ จาต้องใช้ Library อกี ตวั ในการ
ควบคมุ การทางานของ NeoPixel และขาของ KB ROBOT ที่ใช้ในการควบคมุ
NeoPixel นนั้ คอื ขาหมายเลข 20

©Gravitech www.gravitechthai.com [email protected]

#include <seesaw_neopixel.h>
#define PIN 20

#include <Adafruit_NeoPixel.h>
seesaw_NeoPixel strip = seesaw_NeoPixel(10, PIN, NEO_GRB + NEO_KHZ800);

#define PIN 15
void setup() {

Seria#ld.ebfeignien(N1U1M5P2I0X0E)L;S 10
Wire.begin(4,5);

if (!Asdtarfirpu.ibte_gNieno(P)i)xe{l pixels =
SerAidaalf.rpuriitn_tNleno(P"iExReRlO(RN"U)M;PIXELS, PIN, NEO_GRB +
whiNlEeO_(K1H)Z;800);

} int delayval = 500;
Serial.println("seesaw started!");

stripv.osihdows(e)t;up/(/)I{nitialize all pixels to 'off'
} pixels.begin(); // This initializes the NeoPixel

library.
void lo}op() {

for(int i=0;i<NUMPIXELS;i++){

strviopi.dseltoPoipx(e)lC{olor(i, strip.Color(0,150,0));
stripf.osrh(oiwn(t);i=0;i<NUMPIXELS;i++){
delay(5p0i)x;els.setPixelColor(i, pixels.Color(0,150,0));
}
} pixels.show();
delay(delayval);

}

}

สามารถใช้ NeoPixel แบบในรูปได้
Gerora
Item# MISP-0382

https://www.gravitechthai.com/product-
detail.php?WP=oGI3ZRj0oH9axUF5nrO4Ljo7o3Qo7o3Q

©Gravitech www.gravitechthai.com [email protected]

การใช้งาน Speaker Drive

อยา่ งที่กลา่ วไว้ข้างต้นวา่ KB ROBOT นนั้ นอกจากจะ
สามารถแต่งสีสนั จากหลอดไฟได้แล้วยงั สามารถควบคุมเสียงได้ด้วย ตวั
อยา่ นจี ้ ะเป็นการควบคมุ ผา่ นขา (A0,Pin14)

ตวั อยา่ งสง่ เสยี งบปี

int speaker = 14;
void setup(void)
{

pinMode(speaker, OUTPUT);//buzzer

}
void loop()
{

unsigned char i;
for (i = 0; i < 100; i++)

{
digitalWrite(speaker, HIGH);
delay(1); //wait for 1ms
digitalWrite(speaker, LOW);
delay(1); //wait for 1ms

}
}

หรือสามารถ Download Code ตวั อยา่ งการเลน่ เป็นเพลงได้จาก Link นี ้

©Gravitech www.gravitechthai.com [email protected]

ตวั อยา่ งลาโพงทส่ี ามารถใช้งานได้

8x53mm 8 Ohm Speaker with 2.00mm Connector
Item# COOT-2716

https://www.gravitechthai.com/product-
detail.php?WP=pQMgZ3pkGQAgG2rDqYyc4Uuw

17mm 8 Ohm Speaker 7.56mm Pitch - Breadboard
Item# COOT-2709

https://www.gravitechthai.com/product-
detail.php?WP=pQugZ3pkGQAgG2rDqYyc4Uuw

©Gravitech www.gravitechthai.com [email protected]

Download

สามารถ Download Library ได้จากทางลงิ คข์ ้างใต้
Library: https://github.com/gravitech-engineer/Adafruit_Seesaw
Example: https://github.com/gravitech-engineer/KB_ROBOT

©Gravitech www.gravitechthai.com [email protected]


Click to View FlipBook Version