การเรียนเขียนโปรแกรมที่ได้ผลมากที่สุด คือการเรียนเขียนโปรแกรมให้สนุก แล้วเรียนเขียนโปรแกรมอย่างไรให้สนุก ? ก็คงเป็นการเขียนโปรแกรมเพื่อสร้างของเล่นขึ้นมา การสร้างของเล่นนอกจากจะได้ความสนุกแล้ว ยังได้เสริมสร้างจิตนาการ สร้างแรงบันดาลใจ ให้ผู้ที่ลงมือทำมีกำลังใจที่จะพัฒนา เรียนรู้การเขียนโปรแกรมในระดับสูงขึ้น รวมทั้งในภาพใหญ่ระดับประเทศ จะช่วยให้ประเทศได้ 'นวัตกร' เพิ่มขึ้น จนที่สุดประเทศก็มีเทคโนโลยีเป็นของตนเอง ทำให้ประเทศชาติมีความมั่นคงทางเศรกิจมั่นคงทางเศรษฐกิจ และเจริญรุ่งเรืองต่อไป
ในบทความนี้จะมาเล่าถึงขั้นตอนการสร้างรถบังคับด้วยบอร์ด OpenKB ว่ามีขั้นตอนอย่างไรบ้าง โดยเริ่มตั้งแต่ 0 จนได้ตัวรถเป็นของตนเองในที่สุด
อุปกรณ์ที่ใช้ในการทำรถบังคับด้วยบอร์ด OpenKB มีดังนี้
เครื่องมือที่ใช้ในการประกอบโครงรถ และต่อวงจรมีดังนี้
เนื่องจากการประกอบโครงรถมีขั้นตอนค่อนข้างมาก ดังนั้นจึงแนะนำให้ดูขั้นตอนการประกอบโครงรถได้จากวีดีโอด้านล่างนี้
ต่อวงจรตามรูปนี้
ผลที่ได้ จะได้รถที่เสร็จสมบูรณ์ดังรูปนี้
หากซื้อโครงรถจากที่ร้าน ตัวมอเตอร์จะต่อสายไปให้แล้ว ปลายสายเป็นหัว IDC เสียบเข้ากับบอร์ด OpenDrive ได้เลย
ในบทความนี้เลือกใช้โปรแกรม KBIDE ในการเขียนโปรแกรมเนื่องจากตัวโปรแกรมมีการพัฒนาอย่างต่อเนื่อง รวมทั้งบุคคลทั่วไปสามารถเข้าถึงนักพัฒนาได้ง่าย สามารถติดต่อสอบถาม รวมทั้งรายงานบัคต่าง ๆ เกี่ยวกับโปรแกรมได้ง่าย
ให้เข้าไปดาวน์โหลดไฟล์ติดตั้งโปรแกรม KBIDE ได้ที่ https://github.com/MakerAsia/KBProIDE/releases โดยเลื่อนไปที่เวอร์ชั่นล่าสุด (ขณะที่เขียนบทความนี้ เวอร์ชั่นล่าสุดคือ 1.2.0) เลือกดาวน์โหลดไฟล์ติดตั้งตาม OS ที่ใช้งาน (ผู้เขียนบทความใช้ Windows 10 เวอร์ชั่น 64 บิต จึงเลือกดาวน์โหลดไฟล์ KB-IDE_Setup_v1.2.0_win64.exe) รอจนดาวน์โหลดไฟล์เสร็จ
เปิดไฟล์ติดตั้งที่ได้ดาวน์โหลดมา แล้วรอหน้าต่างติดตั้งแสดงขึ้นมา (ดังรูป) คลิกที่ปุ่ม Install
รอจนกว่าโปรแกรมจะติดตั้งเสร็จ
เมื่อโปรแกรมติดตั้งเสร็จแล้ว หน้าต่างติดตั้งจะแสดงดังรูป ให้กดในช่องสีเหลี่ยมหน้า Run kbide ให้ขึ้นเครื่องหมายถูก (ดังรูป) เพื่อเลือกให้เปิดโปรแกรมทันทีหลังปิดหน้าต่างการติดตั้งนี้ จากนั้นกดปุ่ม Finish เพื่อปิดหน้าต่างติดตั้ง
โปรแกรม KBIDE จะเปิดขึ้นมา พร้อมมีกล่องข้อความแนะนำการใช้งาน หากต้องการให้โปรแกรมช่วยแนะนำการใช้งาน ให้กดที่ปุ่ม START TOUR หากไม่ต้องการให้แนะนำ กด SKIP IT
ในกล่องข้อความ Time to explorer ให้กดปุ่ม OK
ในการเปิดโปรแกรมครั้งแรก บอร์ดที่ใช้จะเลือกเป็น Kidbright (Arduino API) จำเป็นต้องเปลี่ยนเป็นบอร์ด OpenKB ก่อน (สังเกตชื่อบอร์ดที่เลือกในปัจจุบันจากแถบด้านล่าง) ทำได้โดยคลิกที่ปุ่ม ในแถบด้านบนของโปรแกรม
หน้าต่าง Current board จะแสดงขึ้นมา ให้เลื่อนหาบอร์ด OpenKB โดยสังเกตจากชื่อและรูป คลิกเลือกบอร์ด OpenKB แล้วกดปุ่ม CHANGE BOARD
จากนั้นโปรแกรมจะแจ้งเตือนว่าโค้ดโปรแกรมที่เขียนไว้จะถูกลบทิ้งเมื่อเปลี่ยนบอร์ด ให้กดปุ่ม CONFIRM เพื่อยืนยันการเปลี่ยนบอร์ด
สังเกตแถบด้านล่าง บอร์ดจะเปลี่ยนเป็น OpenKB แล้ว
การทำให้ KBIDE มีบล็อกเพิ่ม ทำได้โดยการติดตั้งปลั๊กอิน โดยปลั๊กอินที่จะติดตั้งผู้พัฒนาจำเป็นต้องรู้ก่อนว่าวัตถุประสงค์ของการติดตั้งปลั๊กอินนั้น เพื่ออะไร สำหรับบทความนี้การควบคุมรถให้วิ่งไปข้างหน้า เลี้ยวซ้าย เลี้ยวขวา จะใช้การควบคุมผ่านบอร์ด OpenKB อีกตัว ซึ่งการสื่อสารระหว่างบอร์ด OpenKB 2 ตัว สามารถทำได้โดยใช้ช่องทางเฉพาะที่ชื่อว่า ESP-NOW เพื่อให้โปรแกรม KBIDE มีบล็อกสำหรับการสื่อสารระหว่างบอร์ด OpenKB จึงจำเป็นต้องติดตั้งปลั๊กอินเกี่ยวกับ ESP-NOW เพิ่มเติม โดยปลั๊กอินที่ทำให้มีบล็อกเกี่ยวกับการสื่อสารระหว่างบอร์ด ชื่อ ESP-NOW มีขั้นตอนการติดตั้งดังนี้
คลิกที่ปุ่ม เพื่อเปิดหน้าต่าง Plugin Manager ขึ้นมา
พิมพ์ชื่อปลั๊กอิน ESP-NOW ลงในช่องค้นหา แล้วกดปุ่ม Enter บนคีย์บอร์ด จากนั้นกดปุ่ม เพื่อติดตั้ง
เมื่อติดตั้งเสร็จ ชื่อปลั๊กอินจะขึ้นมาอยู่ในรายการ Installed กดปุ่ม CLOSE เพื่อปิดหน้าต่าง Plugin Manager
ในแถบด้านขวา กดที่ Plugins กด ESP-NOW จะแสดงบล็อกที่เกี่ยวกับ ESP-NOW ขึ้นมา
จากนั้นให้ติดตั้งปลั๊กอิน OpenDrive เพิ่มเติม เพื่อให้มีบล็อกสำหรับควบคุมมอเตอร์ โดยใช้ขั้นตอนเดียวกับการติดตั้งปลั๊กอิน ESP-NOW หลังติดตั้งเสร็จแล้ว กดที่ Plugins จะมีทั้งหมวด ESP-NOW และ OpenKB ให้เลือก
การเขียนโปรแกรมที่ตัวรถใช้การเขียนโปรแกรมแบบบล็อก โดยใช้ KBIDE เมื่อเปิดโปรแกรม KBIDE และเลือกบอร์ด OpenKB มีวิธีใช้โปรแกรม KBIDE เบื้องต้นดังนี้
หลักการเขียนโปรแกรม บล็อกที่มีมาให้เป็นค่าเริ่มต้นและลบไม่ได้ มี 2 บล็อก ดังนี้
การย้ายบล็อก ทำได้โดยคลิกเมาส์ซ้ายค้างที่บล็อก แล้วลากไปไว้ในส่วนที่ต้องการ จากนั้นปล่อยเมาส์ซ้าย
การเพิ่มบล็อก ทำได้โดยคลิกเลือกหมวดที่เก็บบล็อก คลิกเมาส์ซ้ายค้างบล็อกที่ต้องการ แล้วลากไปต่อในบล็อกที่ต้องการ ตัวอย่าง ต้องการเพิ่มบล็อก LED 16x8 ไปใส่ในบล็อก Setup ทำได้โดยเลือกหมวด Display คลิกเมาส์ค้างที่ LED 16x2 แล้วลากมาใส่ในบล็อก Setup
การลบบล็อก ทำได้โดยคลิกที่บล็อก แล้วกดปุ่ม Delete บนคีย์บอร์ด หรือบล็อกบล็อกไปใส่ในถังขยะ
การเขียนโปรแกรมที่ตัวรถ ให้นำบล็อกมาต่อกันดังนี้
จากโปรแกรมด้านบน สามารถอธิบายได้ดังนี้
ในบล็อก Setup
ในบล็อก Loop
เสียบบอร์ด OpenKB เข้ากับเครื่องคอมพิวเตอร์ กดปุ่ม
เลือกพอร์ตโดยกดที่ Select COM port (หากเสียบบอร์ด OpenKB บอร์ดเดียวเข้ากับคอมพิวเตอร์ จะมีให้เลือกอันเดียว) แล้วเลือก Serial upload bandrate เป็นค่าที่มากที่สุด เพื่อให้อัพโหลดโค้ดโปรแกรมได้เร็วที่สุด แล้วกดปุ่ม CLOSE
อัพโหลดโปรแกรมลงบอร์ดโดยกดที่ปุ่ม
แล้วรออัพโหลดโปรแกรมตามลำดับที่ 1 2 และ 3
หากอัพโหลดโปรแกรมสำเร็จ จะขึ้นเครื่องหมายถูก (ดังรูป)
นอกจากบอร์ด OpenKB จะถูกใช้อยู่ที่ตัวรถแล้ว ในบทความนี้ยังเลือกใช้บอร์ด OpenKB ในการควบคุมตัวรถด้วย โดยการควบตุมจะใช้สวิตช์ SW1 และ SW2 ในการควบคุม โดย
จากหลักการดังกล่าว สามารถเขียนโปรแกรมฝั่งรีโมทได้ดังนี้
หลักการทำงานของโปรแกรมฝั่งรีโมท มีดังนี้
ในบล็อก Setup
ในบล็อก Loop
อัพโหลดโปรแกรมลงบอร์ด OpenKB ที่ใช้เป็นรีโมท โดยถอดสาย USB ที่ต่อกับบอร์ดของรถออก แล้วเสียบเข้ากับบอร์ดที่ใช้เป็นรีโมท เลือกพอร์ต และเลือกความเร็วในการอัพโหลด แล้วกดอัพโหลดโปรแกรมลงบอร์ด
หากบอร์ด OpenKB ทั้ง 2 บอร์ด (ตัวที่เป็นรีโมท และตัวที่เป็นรถ) สามารถสื่อสารกันได้ ฝั่งที่ตัวรถ จะแสดงเลข 0 ในหน้าจอ LED 16x8 เมื่อกดปุ่มใด ๆ บนบอร์ด OpenKB ที่เป็นรีโมท ตัวเลขที่แสดงที่รถจะเปลี่ยนไปด้วย เมื่อเปิดสวิตช์บนบอร์ด OpenDrive ให้มอเตอร์ทำงาน รถควรจะวิ่งตามสวิตช์ที่กด
กดปุ่มบนบอร์ด OpenKB ฝั่งรีโมท แต่รถไม่วิ่ง LED 16x8 ไม่ติด
ตรวจสอบแหล่งจ่ายไฟที่ต่อเข้ากับบอร์ด OpenDrive ว่าต่อวงจรถูกต้องหรือไม่ หากต่อวงจรถูกต้อง ถ่านมีกระแสไฟฟ้าเหลือมากพอ ไฟ ON บนบอร์ด OpenDrive ต้องติดสว่าง
กดให้รถวิ่งไปข้างหน้า แต่รถกลับวิ่งถอยหลัง
ต่อสายมอเตอร์ทั้งตัวที่ 1 และตัวที่ 2 ผิดขั้ว ให้สลับสายที่ต่อเข้ามอเตอร์ทั้ง 2 ตัว
กดให้รถวิ่งไปข้างหน้า แต่รถกลับวิ่งวนทางซ้าย
ต่อสายมอเตอร์ตัวทางซ้ายผิดขั้ว ให้สลับสายต่อมอเตอร์ตัวซ้าย
กดให้รถวิ่งไปข้างหน้า แต่รถกลับวิ่งวนทางขวา
ต่อสายมอเตอร์ตัวทางขวาผิดขั้ว ให้สลับสายต่อมอเตอร์ตัวขวา
กดให้รถเลี้ยวซ้าย แต่รถเลี้ยวขวา กดให้รถเลี้ยวขวา แต่รถกลับเลี้ยวซ้าย
ต่อสายมอเตอร์ตัวซ้ายและขวาสลับกัน ให้สลับสายต่อมอเตอร์ซ้าย-ขวา
กดให้วิ่งตรงแล้วปล่อย แต่รถวิ่งตรงต่อไปโดยไม่หยุด
เกิดจากไฟจากถ่านไม่พอเลี้ยงบอร์ด OpenKB และจ่ายให้มอเตอร์ไปพร้อม ๆ กัน ทำให้บอร์ด OpenKB ค้าง ไม่ทำงาน แก้ไขโดยเปลี่ยนถ่านใหม่ หรือเพิ่มถ่านจาก 4 ก้อน เป็น 6 ก้อน หรือเปลี่ยนจากใช้ถ่านเป็นแบตเตอร์รี่ Li-Po แบบ 2 เซลล์ 7.2V จะแก้ไขปัญหานี้ได้
รถวิ่งช้า
โปรแกรมฝั่งรถ ให้แก้ไขความเร็วมอเตอร์ของทุกบล็อกจากวิ่งด้วยความเร็ว 50% เป็น 100% หรือแก้ไขทางฮาร์ดแวร์โดยเปลี่ยนเป็นมอเตอร์ที่เร็วขึ้น เปลี่ยนแหล่งจ่ายไฟให้จ่ายแรงดันมากขึ้น