1 คู่มืออบรมการใช้บอร์ดKidBright
2 บอร์ดKidBrightด้านหน้า บอรด์ KidBrightด้านหลัง ตาแหนง่ อปุ กรณบ์ นบอร์ดKidBright 1. ชอ่ งเสียบ USB 2. เซนเซอรว์ ดั แสง(LDR) 3. เซนเซอร์วัดอณุ หภูมิ 4. พอรต์ I/O 5. ไฟแสดงสถานะการเชอ่ื มตอ่ 6. Dot matrix 7. Buzzer 8. KidBright chain 9. พอร์ต I/O(I2C) 10. ปมุ่ กด1 และ ปุ่มกด2 11. ปมุ่ Reset 12. พอรต์ USB 13. Real Time Clock battery 14. Processor
วิธกี ารตดิ ตั้งโปรแกรม 3 1. ด า ว น์ โ ห ล ด โ ป ร แ ก ร ม KidBright IDE ที https://sites.google.com/view/wukidbright/ downloads จะได้เปน็ ไฟล์ .rar 2. เปิดไฟล์และดบั เบลิ คลกิ เพือ่ ทาการตดิ ต้ัง 3. หลงั จากดบั เบิลคลิกเพื่อทาการติดต้ัง โปรแกรมจะ เลือกท่ีต้งั อัตโนมตั ิ
4 4. เมอ่ื ตดิ ตงั เสร็จส้นิ โปรแกรมจะมีไอคอนโปรแกรมท่ี Desktop สามารถตรวจสอบท่ีติดตั้งโปรแกรมโดย การคลกิ ขวา -> Properties -> Target วิธแี กป้ ญั หาเบ้ืองต้นกรณี Port Failed 1. ลองปิดเปดิ โปรแกรม KidBright ใหม่ หลังจากเปดิ ใหล้ อง Build Program อกี ครัง้ นึง 1.1. ถ้ายงั ไม่สามารถ Build Program ไดใ้ ห้ลอง Uninstall แลว้ ตดิ ต้ังใหม่อีกคร้งั 2. ในกรณขี อ้ (1) ยงั ไมส่ ามารถแกไ้ ขไดใ้ ห้ทาตามขัน้ ตอนดังนี้ 2.1. ลองใชง้ านบอรด์ กับเคร่อื งอ่ืน ถา้ สามารถใชง้ านได้ใหท้ าข้อ(2.2) 2.2. ดาวนโ์ หลดไดรเวอร์ Cypress USB UART Driver ที่ ลิงคh์ ttp://www.cypress.com/file/135701/download
5 หน้าต่างโปรแกรม KidBright IDE หน้าตา่ งโปรแกรม KidBright IDE 2. เปดิ โปรแกรมที่เซฟ 3. เซฟโปรแกรมท่เี ขียน 5. แฟลชโปรแกรมลงบอร์ด 6. ตง้ั เวลาใหบ้ อร์ด 1. แถบบลอ็ กเครือ่ งมอื 8. พ้ืนทว่ี างบล็อก 9. ยอ่ -ขยาย และลบบลอ็ ก 4. ลบโปรแกรมทเ่ี ซฟ 7. เปลย่ี นภาษา
ความหมายของเครอื่ งมอื แต่ละชนดิ 6 1. แถบ Basic: แถบการแสดงผลโดยใช้ Dot matrix แสดงผล Dot matrix แบบกาหนดเอง เคลยี รส์ ถานะDot matrix แสดงผล 2 ตวั อกั ษร แสดงผลแบบเล่ือน แสดงผลแบบเลอื่ นเม่อื Dot matrix พรอ้ มทางาน หนว่ งเวลาทางาน วนทางานซา้ ตลอดเวลา กาหนดขอ้ ความ 2. แถบ Math: แถบเคร่ืองมือดาเนินการทางคณิตศาสตร์ การประกาศตัวแปร และการกาหนดค่าตัว แปร กาหนดค่าคงที่ ดาเนนิ การทางคณิตศาสตร์ กาหนดค่าตัวแปร ประกาศตัวแปร
3. แถบ Logic: แถบเคร่ืองมือการตัดสินใจและการเปรียบเทยี บ 7 ถ้า (เงื่อนไข) เป็นจรงิ ให้ทา.... ถา้ (เง่อื นไข) เปน็ จรงิ ให้ทา.... ถา้ เป็นเทจ็ ใหท้ า.... เปรยี บเทยี บค่าแบบคณิตศาสตร์ (ให้คาตอบจรงิ -เทจ็ ) เปรยี บเทยี บคา่ แบบตรรกศาสตร์ (ใหค้ าตอบจริง-เทจ็ ) อนิ เวิร์ส(จริง->เทจ็ , เทจ็ ->จริง) ค่าคงทแ่ี บบตรรกะ ตัง้ สถานะให้ Dot matrix พรอ้ ม เมื่อปุ่ม 1 ถกู กดจะให้คา่ จรงิ เมอ่ื ปมุ่ 1 ปลอ่ ยจะใหค้ า่ จริง เมื่อปมุ่ 2 ถูกกดจะให้ค่าจรงิ เมอ่ื ปมุ่ 2 ปล่อยจะใหค้ า่ จริง
8 4. แถบ Loop: แถบเครื่องมอื ใชใ้ นการทางานแบบวนซา้ วนซ้าเม่อื เง่ือนไขเป็นจรงิ ออกจากบลอ็ ก ทางานในบล็อกตอ่ 5. แถบ Wait: แถบท่ีรอสถานะของอปุ กรณ์ รอจนกว่า Dot matrixพรอ้ มทางาน รอจนกวา่ ปมุ่ 1 จะถูกกด รอจนกวา่ ปมุ่ 1 จะถกู ปล่อย รอจนกว่าป่มุ 2 จะถูกกด รอจนกวา่ ปุ่ม 2 จะถูกปลอ่ ย
9 6. แถบ Music: แถบทีใ่ ช้ควบคุมการทางานของ Buzzer เพอื่ ใหเ้ กิดเสยี ง เลือกโนต๊ และความยาวเสียง เงียบตามความยาวเสยี ง เลือกสเกลเสียง, โน๊ต และ ความยาวเสยี ง ตง้ั คา่ ความดังเสียง อา่ นค่าความดังเสยี ง 7. แถบ Sensor: แถบท่ใี ช้ในการอ่านค่าเซน็ เซอรท์ ี่อยู่บนบอรด์ อ่านคา่ เซ็นเซอรว์ ัดแสง อ่านคา่ อุณหภมู ิ (หน่วย:องศาเซลเซียส) อา่ นค่าป่มุ 1 อ่านคา่ ปมุ่ 2
10 8. แถบ Clock: เปน็ แถบทใ่ี ชอ้ า่ นค่าเวลาจาก RTC(Real Time Clock) อา่ นคา่ วัน-เวลาแบบเต็ม อ่านค่าวนั ทีแ่ บบเตม็ อา่ นคา่ เวลาแบบเตม็ อา่ นคา่ วนั ที่ อา่ นคา่ เดอื น อา่ นค่าปี อา่ นคา่ เวลา(ช่วั โมง) อา่ นค่าเวลา(นาที) อ่านค่าเวลา(วินาท)ี 9. แถบ I/O: เป็นแถบใช้ในการควบคมุ Input/Output * เขยี นสถานะOutput * อินเวริ ส์ (กลับ)สถานะOutput เออา่ ท่ นสถานะOutput * เขยี นสถานะUSB อนิ เวริ ส์ (กลบั )สถานะUSB อา่ นสถานะUSB อ่านสถานะInput
11 10. แถบ Task: เป็นแถบที่ใช้เขยี น Multi-tasking สร้างเธรด(Thread)ใหม่ * วงจร Output เปน็ วงจรแบบ Open-drain แนะนาให้ดู Schematic ของวงจรบนบอรด์ เพ่ือประกอบความ เข้าใจในการตอ่ อุปกรณภ์ ายนอก
12 โปรแกรมที่ 1: Hello World! โปรแกรม Hello World! เป็นโปรแกรมพื้นฐานไม่ว่าจะเขียนด้วยภาษาใดก็ตาม ในโปรแกรม KidBright IDE เราสามารถเขียนได้ตามรปู ดา้ นล่าง โดยแตล่ ะบลอ็ กท่ีประกอบเปน็ โปรแกรมมีการทางานดงั นี้ วนซ้าโปรแกรมท่ี ใหแ้ สดงข้อความ ...... เม่ือ อยภู่ ายในบล็อก สถานะ Dot matrix พรอ้ ม ข้อความท่ตี ้องการให้แสดง(แก้ไขได้) มุมมอง Flowchart เทียบกับบล็อก ลองเอา Forever ออกแล้วสงั เกตการเปล่ยี นแปลง ลองเปล่ียนไปใช้ LED 16x8 Scroll และ LED 16x8 2-Char โดยลองสังเกตความแตกต่างระหว่างท่ี ใช้ LED 16x8 Scroll When Ready ใหส้ ังเกตผลทีเ่ กิดข้นึ ถา้ หากเปล่ียนจากบล็อก “Hello world!” เป็นปุ่ม1ดังภาพ
13 โปรแกรมท่ี 2: กดปมุ่ มีเสยี ง โปรแกรมนี้เป็นตัวอย่างของการเขียนโปรแกรมแบบมีการตดั สนิ ใจเมื่อกดปุ่ม 1 Buzzerจะมีเสียงและ เมื่อปล่อยปมุ่ 1 จะไม่มเี สียง วนซ้าโปรแกรมที่ ถ้า (เงอื่ นไข) เปน็ จรงิ ใหท้ า(A) อยภู่ ายในบลอ็ ก ถา้ (เงือ่ นไข) เป็นเท็จใหท้ า(B) (เงอ่ื นไข) (A) (B) มุมมอง Flowchart เทียบกับบลอ็ ก
14 ในบล็อก Music จะเห็นไดว้ ่าเราสามารถปรบั ได้สองส่วนคอื Note กบั Duration เราสามารถปรบั ได้ดังน้ี Symbol C D E F G A B Note โด เร มี ฟา ซอล ลา ที ตัวเลขข้างหลังโน๊ตเป็นตัวบอกว่าโน๊ตตัวนี้อยู่ในออกเตฟไหนเช่น C5 กับ C7 เป็นโน๊ตโดท้ังคู่แต่ว่า C7 จะมี เสยี งสูงกวา่ C5 เพราะว่าอยู่ออกเตฟทส่ี ูงกวา่ น่ันเอง Symbol Duration 4 2 1 1/2 1/4 ตัวเลข Duration จะเปน็ ตัวบอกว่าโนต๊ ตวั นม้ี คี า่ ความยาวเปน็ กี่จงั หวะของห้องเพลง (1ห้องเพลง = 4จงั หวะ) จากรายละเอยี ดดา้ นบน ใหล้ องแต่งเพลงแบบง่ายๆจากเพลงทเ่ี คยได้ยนิ เชน่ เพลงช้าง
15 โปรแกรมที่ 3: นาฬกิ าปลกุ ตามแสง ปกติแล้วนาฬิกาปลุกจะปลุกจามเวลาที่ต้ังไว้ล่วงหน้า แต่โปรแกรมนี้เป็นการปลุกโดยมีแสงเป็น ตวั กระตุ้นการปลกุ วนซา้ โปรแกรมท่ี ถา้ ระดับแสง>80 เป็นจรงิ ให้ทา(A) อยภู่ ายในบล็อก ถ้า ระดบั แสง>80 เปน็ เทจ็ ให้ทา(B) (A) (B) โปรแกรมนี้จะไม่มีตัวอย่าง Flowchart ให้ดเู พราะวา่ โครงสร้างเป็นแบบเดียวกับโปรแกรมข้อ(2) จะมี จุดต่างกันที่เงื่อนไขการตัดสินใจ โปรแกรมข้อ(2) เป็นการตัดสินใจโดยใช้สวิตซ์ ซึ่งสวิตซ์จะให้ค่าเป็น Digital คือ 0กับ1 แต่เซนเซอร์แสงจะให้ค่าเป็น Analog ระหว่าง 0-100 ดังน้ันเราจึงสามารถปรับค่าให้ทางานได้ที่ ระดบั ความเข้มแสงตา่ งกันได้ จากตัวอย่างด้านบน จงเขียนโปรแกรมแจ้งเตือนเม่ืออุณหภูมิเกินกาหนด(เง่ือนไข: แจ้งเตือนเมื่อ อุณหภูมิสงู กวา่ 86 องศาฟาเรนไฮต์) และเขียน Flowchart ของโปรแกรมแจ้งเตอื น ตัวอย่างโปรแกรมที่ผ่านมาเป็นการใช้อุปกรณ์ที่อยู่บนบอร์ดท้ังหมด แต่ในส่วนหลังจากนี้จะมีการต่อ อุปกรณภ์ ายนอกเพ่ิมเติม ไมว่ า่ จะเป็นอุปกรณ์หรือเซนเซอร์ตา่ งๆ ดังนั้นหลงั จากนี้ควรใช้ความระมดั ระวังใน การตอ่ วงจรไฟฟา้ อุปกรณ์หรอื เซนเซอร์ เพื่อปอ้ งกันอุปกรณเ์ สยี หาย
16 โปรแกรมที่ 4: โปรแกรมเคานเ์ ตอร์ โปรแกรมเคาน์เตอร์เป็นโปรแกรมท่ีใช้นับ ถ้าเอาแบบท่ีเห็นใกล้ๆตัวมากที่สุดก็น่าจะเป็นตู้ขายของ อตั โนมัติ(นบั เหรยี ญ) หรือ ประตหู า้ งทน่ี ับคนเข้า-ออกได้ Digital Gnd Vcc ถา้ คา่ Input = 1 เป็นจรงิ ใหท้ า(3.1) pin ถา้ คา่ Input = 1 เปน็ เท็จไม่ใหท้ า(3.1) เซต็ x=0 เพ่อื ใชเ้ ปน็ ตัวนับ วนซา้ โปรแกรมท่ี อยภู่ ายในบลอ็ ก (3.1) แสดงคา่ ผา่ น Dot matrix หนว่ งเวลา 0.1 วินาที อธิบายการทางาน ปกติแล้วสัญญาณที่ Digital pin จะเท่ากับ 0 ทาให้IN1เป็น 0 เม่ือเข้าไปเช็คเงื่อนไขในifจะทาให้เป็น เท็จจงึ ไมท่ างานภายในบล็อก แต่เมือ่ มวี ตั ถุผ่านระหวา่ งช่องเซนเซอร์จะทาใหส้ ัญญาณเปลี่ยนเป็น 1 เมื่อเข้าไป เช็คเง่ือนไขในifจะทาให้เป็นจริงจึงทางานต่อภายในบล็อก ให้เพ่ิมค่าตัวแปรข้ึนครั้งละ 1 พร้อมกับBuzzer ทางาน หลังจากออกนอกบลอ็ กifก็ทาการแสดงค่าตัวแปรกับหน่วงเวลาก่อนทจี่ ะวนกลับไปทางานซา้ อกี รอบ
17 มุมมอง Flowchart เทียบกับบลอ็ ก
18 โปรแกรมที่ 5: Motion Sence Motion Sence หมายถึงการตรวจจับความเคลื่อนไหว โปรแกรมน้ีจะเป็นตัวอย่างการใช้งาน Output โดยจะมี Pir Motion sensor เป็นตัวป้อนสัญญาณ Digital input ส่วนอุปกรณ์ท่ีเชื่อมต่อOutput น้นั จะเป็น DC Fan motor เพ่อื ใช้แสดงผลการตรวจจบั Motion Sensor DC Fan motor ด้วยความท่ีเป็นวงจรแบบ Open-Drain ทาให้ต้องใช้ความรู้ด้านไฟฟ้ามาประกอบในการต่อวงจรด้วย เนื่องจากวงจรแบบน้ีจะทาการดึงกระแสจากแหล่งจ่ายโดยโดยไม่มีการจากัดการไหล ดังนั้นอาจจะทาให้ แหล่งจ่ายเกิดความเสียหายได้แนะนาว่าให้ดู Schematic ของวงจรบนบอร์ดเพ่ือประกอบความเข้าใจในการ ต่ออุปกรณภ์ ายนอก(อย่หู น้าสดุ ทา้ ย)
19 วนซา้ โปรแกรมที่ ถา้ ค่า Input = 1 เปน็ จรงิ ใหท้ า(A) อยภู่ ายในบล็อก ถ้าคา่ Input = 1 เปน็ เท็จไมท่ า(B) Flowchart A B
20 ลองสลบั ตาแหนง่ สาย IN A กบั IN B ท่ี Module DC Fan motor แล้วสงั เกตผลทเี่ ปล่ยี นแปลง จากโปรแกรมตัวอยา่ ง จงเขียนโปรแกรมควบคุมทศิ ทางการหมนุ พัดลมโดยใช้ปุ่ม1และ2
21 โปรแกรมท่ี 6: จงทางานหลายงานพร้อมๆกนั ถ้าสังเกต Flowchart ให้ดีๆจะพบว่าในโปรแกรมหนึ่งๆจะมี Flow การไหลไปทิศทางเดียว โดย 1 Flowchart จะเท่ากับ 1 โปรแกรมแต่ถา้ เกิดเหตุการณท์ ่ตี อ้ งให้ทางานสองอย่างพร้อมๆกนั การเขียนโปรแกรม แบบปกติจะไม่สามารถทาได้เพราะต้องทาคาสั่งด้านบนก่อน แต่ด้วยการใช้ Task จะทาให้การทางานหลาย อย่างเกดิ ขึ้นพรอ้ มกันได้ เพื่อความเขา้ ใจลองเขยี นโปรแกรมตามท่ใี ห้ไปแล้วสงั เกตผลเทยี บกัน แบบท่1ี
22 แบบท2่ี
23 ถ้าไดล้ องเขียนแล้วก็จะพบว่าแบบท่(ี 1)จะแสดงคาว่า “HBD!!!” ชา้ กวา่ แบบท(ี่ 2)อยา่ งเห็นได้ชัด เป็นเพราะว่า แบบท่(ี 1)นน้ั จะต้องรอใหเพลงเลน่ จบก่อนจึงจะแสดงข้อความออกมา แตใ่ นแบบท่ี(2)จะเห็นวา่ มีการแสดงผลท้ังคูพ่ ร้อมๆกัน เมื่อสังเกตจาก Flowchart จะพบวา่ มสี องผัง อยใู่ นรูปเดยี ว การทางานในลักษณะนีเ้ รียกว่า Multi-Tasking คอื การประมวลผลหรือทาอะไรพร้อมๆกันโดย ไมต่ ้องรอให้งานอ่ืนเสร็จกอ่ นในแตล่ ะผังจะเรยี กว่าทากส์(Task) สามารถมาทางานของผังตวั เองต่อไดเ้ ลยใน โปรแกรมตัวอย่างนี้จะประกอบไปดว้ ย 2 Taskคือ (1)เล่นเพลงและ(2)แสดงผลDot matrix Task 1 Task 2 Programs
24
Search
Read the Text Version
- 1 - 24
Pages: