ในการอบรมครั้งนี้มีจำนวนทีมทั้งหมดกว่า 120 ทีม ซึ่งแบ่งออกเป็น 3 รอบละกว่า 40 ทีม แต่ละรอบจะใช้เวลาในการอบรมและแข่งขันทั้งสิ้น 3 วัน วันแรกเต็มวันกับวันที่สองช่วงเช้าจะเป็นการอบรม ส่วนก่อนพักเที่ยงวันที่สองจะเป็นการแถลงกติกาการแข่งขัน เพื่อที่บ่ายวันที่สองและเช้าวันที่สามเด็กๆจะได้ซ้อมหุ่นยนต์ และแข่งขันกันในบ่ายของวันที่สาม ส่วนผมอบรมทั้งสามรอบอยู่ 10 วัน อิอิ เหนื่อยเหมือนกันครับ เจอคนเยอะๆแบบนี้ ปัญหาก็เยอะเหมือนกัน แต่ต้องยกเครดิตให้ผู้ช่วยคนเก่ง อย่างคุณเอก วิศวกรจาก INEX ครับ ที่ช่วยดูแลเด็กและแก้ปัญหาตั้งแต่วันแรกจนจบการอบรม จริงๆแล้วเขาเก่งกว่าผมเยอะครับ 55 แต่ผมอายุมากกว่า
สำหรับผู้ที่สนใจสามารถดาวน์โหลดไฟล์ที่เกี่ยวข้องได้ที่นี่ครับ
Jdk-7u17-windows-i586 , Jdk-7u17-windows-x64
https://www.rapidshare.com/files/4193952109/notepad.jnlp ไฟล์สำหรับทดสอบการทำงานจาวา
https://www.rapidshare.com/files/852089513/FileOffline.zip ไฟล์หลักของ app inventor ทำงานแบบ offline
https://www.rapidshare.com/files/531581519/MyTest.zip ไฟล์โค๊ดควบคุมหุ่นยต์
https://www.rapidshare.com/files/949260022/HelloCat.zip ทดสอบการใช้งาน กับ hello cat
https://www.rapidshare.com/files/522042869/appinventor_setup_installer_v_1_2.exe ไฟล์ติดตั้ง app inventor
https://www.rapidshare.com/files/1916207488/App%20Inventor%20Devices%20Support.pdf รายชื่ออุปกรณ์แอนดรอยด์รุ่นต่างๆ ที่รองรับการใช้งาน app inventor
http://issuu.com/innovativeexperiment/docs/bluetoothandroidchecking คู่มือทดสอบการทำงานบลูทูธ
http://issuu.com/innovativeexperiment/docs/appinventorofflinemanual_tpa2013-in คู่มือใช้งานเบื้องต้น
สรุปสาระสำคัญของการอบรมดังนี้ครับ
1. ติดตั้ง java jdk ให้เรียบร้อย โดยให้ตรงกับระบบปฏิบัติการที่เราใช้ เพราะโปรแกรม app inventor มันจะเรียก java jre ขึ้นมาทำงาน
2. ติดตั้งโปรแกรม app inventor ให้เรียบร้อย ตัวโปรแกรมจะมีเครื่องมือต่างๆให้ใช้เช่น Block Editor และ Emulator
3 . ตั้งค่าตำแหน่งที่ติดตั้ง java ใน environent Variables ให้เรียบร้อย JAVA_HOME ถ้าไม่เซต จะไม่สามารถสร้างไฟล์ apk ได้
4 . รันไฟล์ buildserver และ start AI ที่อยู่ในโฟลเดอร์ AppInventor
5. เข้าใช้งานผ่านเว็บบราวเซอร์ โดยพิมพ์ localhost:8888 จากนั้นก็เข้าใช้งานโปรแกรม
คร่าวก็ประมาณนี้น่ะครับ
ปัญหาที่เจอในการอบรมวันแรกของทุกๆรอบ
- สายสัญญาณ ไม่ได้เตรียมมา งานนี้ใหญ่สุด แต่มีให้ยืม เป็น micro usb แก้ปัญหาเรื่องสายได้หลายเครื่องเหมือนกัน
- ไดรเวอร์ของแอนดรอยด์ หลายรุ่น หลายยี่ห้อหาไดรเวอร์ไม่ได้ ไดรเวอร์ที่เตรียมไม่เพียงพอ
- ความรู้ความเข้าใจในระบบปฏิบัติการ 32 bit 64 bit java jdk , java jre เรื่องนี้ต้องฝากให้ครูสอนคอมช่วยสอนเด็กๆต่อด้วย อิอิ
- เซต javahome part ที่ติดตั้ง jdk ผิด build sever ไม่ได้ ขึ้นมาแล้วก็แว๊บหายไป เป็นปัญหาที่ตัว jre
- แอนดรอยด์บางตัว เช่น ยี่ห้อ acer ติด permission bluetooth ทำให้ใช้คำสั่ง bluetooth ของ app inventorไม่ได้ ตอนนี้ยังหาทางแก้ไขอยู่
บรรยากาศการอบรม AppInentor
วิทยากรสุดหล่อ เจ้าของบล็อกเอง อิอิ
- appinventor ถูกออกแบบให้ใช้งานแบบ online การใช้งาน offline ได้นั้นจึงต้องมีขั้นตอนกระบวนการดังที่กล่าวมา เพราะฉะนั้นถ้าใครเห็นว่ายุ่งยากก็ให้ไปใช้แบบ online นะครับ เข้าไปที่ appinventor.mit.edu นะครับ ทุกอย่างอยู่ที่นั้นแล้ว
- การศึกษาหาข้อมูลเรื่องราวเกี่ยวกับ app inventor นั้น ทำได้ไม่ง่ายเลยครับ เพราะโดยส่วนตัวแล้วผมไม่เก่งภาษาอังกฤษ ทำให้เรียนรู้ได้ช้า ส่วนเนื้อหาที่เป็นภาษาไทย ยังไม่มีหนังสือ หรือคู่มือออกมาครับ อยากให้ทุกคนเข้าใจว่า ไม่ต้องรอผมน่ะครับ งานนี้ต้องร่วมด้วยช่วยกัน ใครก็ได้ช่วยแปลหนังสือภาษาอังกฤษเป็นไทยสักเล่มนะครับ แล้วผมจะอุดหนุน
- ผมไม่สามารถตอบคำถามได้ทุกคำถาม หรือแก้ไขปัญหาทุกปัญหาได้ครับ เพราะว่าผมไม่ใช่เทพครับ 555 ไม่ใช่ว่าทำไม่ได้ แต่ต้องใช้เวลาในการศึกษาหาคำตอบครับ
- จุดมุ่งหมายในการอบรม ทุกคนต้องสามารถสร้างแอพพลิเคชั่นของตัวเอง เพื่อควบคุมหุ่นยนต์ได้ครับ เพราะฉะนั้นระหว่างการอบรมอาจเจอปัญหาอุปสรรคบ้าง บางคนไม่เข้าใจบ้าง บางเรื่องผมก็ไม่อธิบายบ้าง มันคือเรื่องธรรมดาของการอบรมครับ เพราะสุดท้าย ท้ายสุดแล้วหวังว่าคนที่เข้าอบรม จะลอง เล่น และรู้จักแก้ปัญหาให้เป็นนะครับ เชื่อว่าสุดท้ายแล้วทุกๆคน ก็จะทำได้ด้วยตัวเอง
- หลายๆเรื่องที่สอนไป ต้องการให้พัฒนาต่อยอดเองครับ เพราะฉนั้นผมว่า ไม่มีความสำเร็จใดได้มาโดยไม่พยายาม
ผมต้องขออภัยสำหรับการบรรยายในบางเรื่องไม่สามารถจะบรรยายให้เข้าใจได้ เนื่องจากระยะเวลาที่ใช้ในการอบรมที่มีจำกัด คอมพิวเตอร์ และ อุปกรณ์แอนดรอยด์ ที่ใช้ทรัพยากรที่แตกต่างกัน ทำให้การแก้ปัญหาต้องว่ากันไปตามอาการของแต่ละเครื่อง
เอกสารคู่มือประกอบการอบรม เนื้อหาอาจจะแตกต่างจากที่สอนไปบ้าง แต่ที่สอนไป อัพเดทให้แล้วครับ อบรมเสร็จแล้วก็ไปอัพเดทข้อมูลกันบ้างนะครับ เพราะเนื้อหาจะมีการอัพเดทตลอดเวลา ไม่แน่ตอนที่ผมกำลังเขียนบทความอยู่นี่ อาจจะมีอะไรเปลี่ย่นแปลงแล้วก็ได้
สังเกตุดูน้องๆแต่ละคนท่าทางเคร่งเครียดเชียว ส่วนใหญ่เครียดเพราะว่าจะออกแบบหน้าตาอย่างไรให้สวยงาม ผมสอนแค่ใช้รูปภาพแทนปุ่มกดครับ ใครอยากได้สวยงามแค่ไหน คงต้องใช้จินตนาการเพิ่มเติมเอาครับ หาโหลดภาพ เสียง หรือเนื้อหาเพิ่มเติมจากอินเตอร์เนตได้ครับ
blue rover หุ่นยนต์สำหรับทดสอบการเชื่อมต่อบลูทูธ กับ robo creator ล้อรถถังขับเคลื่อนด้วยสายพาน หุ่นยนต์สำหรับอบรม
เรียนไป เล่นไป แก้ปัญหาไป ก่อนจะประสบผลสำเร็จก็อย่างนี้แหละครับ สู้ๆ
ภาพบรรยากาศโดยรวมของหุ่นยนต์บังคับมือ
ใช้อุปกรณ์แอนดรอยด์ในการควบคุมหุ่นยนต์แบบไร้สายครับ ถึงแม้จะบทบาทในการแข่งขันน้อยไปนิด แต่ผมเชื่อว่าเด็กทุกคนภูมิใจในสิ่งที่ตัวเองได้พยายามทำ จนสำเร็จครับ ถึงต่อไปไม่มีหุ่นเราก็ยังเขียนแอพได้ 55
ผมชอบแจ็คเก็ตของหลายๆทีมน่ะครับ ออกแบบสวยๆ เท่ห์ดีครับ
หน้าจอขนาดใหญ่กดง่ายดี
ถึงปุ่มจะเล็กแต่ก็ทำงานได้ไม่แพ้แอนดรอยด์เครื่องใหญ่น่ะ
ตัวอย่างการออกแบบโปรแกรมในมุมมองของการออกแบบ
ปรับแต่งเติมสีสันนิดหน่อย
ตัวอย่างโค๊ดบล็อก คำสั่งที่ใช้ในการส่งค่าข้อมูลผ่านบลูทูธ
ตัวอย่างคำสั่งที่ใช้กับหุ่นยนต์ในการรับค่าข้อมูลที่ถูกส่งมายังตัวหุ่นยนต์ผ่านบลูทูธ
#include <atx.h> #define POW 70 void forward(unsigned int time) { motor(0, POW); motor(1, POW); motor(2, POW); motor(3, POW); sleep(time); } void backward(unsigned int time) { motor(0, -POW); motor(1, -POW); motor(2, -POW); motor(3, -POW); sleep(time); } void turn_left(unsigned int time) { motor(0, -POW + 20); motor(1, -POW + 20); motor(2, POW - 20); motor(3, POW - 20); sleep(time); } void turn_right(unsigned int time) { motor(0, POW - 20); motor(1, POW - 20); motor(2, -POW + 20); motor(3, -POW + 20); sleep(time); } void setup() { } void loop() { if(uart1_available()) { char x = uart1_getkey(); lcd("%c",x); if(x == '8') { forward(10); } else if(x == '2' ) { backward(10); } else if(x == '4') { turn_left(10); } else if(x == '6') { turn_right(10); } else { ao(); } } }
ชื่อทีม ชื่อสถาบัน และตราประจำโรงเรียน คือสิ่งที่เด็กๆภูมิใจเสนอครับ น่าเอาแบบอย่าง
คนหนึ่งเขียนโปรแกรมหุ่นยนต์อัตโนมัติ อีกคนก็เขียนอัตโนมือ อิอิ สามัคคีคือพลังครับ
ปุ่มนี้ท่านได้แต่ใดมา เด็กๆเขาสรรหามาใส่เพิ่มครับ เวลากดคงไม่ต้องกลัวกดไม่ถูก ดูสวยดี
มาดูน้องๆผู้หญิงกันบ้างครับ ถ้าตั้งใจก็ไม่แพ้ผู้ชายเหมือนกัน สู้ๆเขาน่ะ
กำลังออกแบบหน้าตาโปรแกรมกันครับ
ปุ่มอะไรเยอะแยะมากมายนี่
หลายๆคนมีคำถาม อันเนื่องมาจากยังไม่เข้าใจหลักการทำงานที่แท้จริง เช่น สามารถเขียนโปรแกรมควบคุมเซอร์โวมอเตอร์ได้หรือไม่ ตอบตอนนี้ได้เลยครับ ว่าได้ แต่การเขียนโปรแกรมต้องเขียนที่ตัวหุ่นยนต์ และเขียนคำสั่งเพิ่มเติมนอกเหนือจากปุ่มกดที่สอนด้วยครับ จะสร้างก็ปุ่มก็ได้ ปุ่มนั้นจะให้ทำอะไรก็ได้ ขึ้นอยู่กับตัวหุ่นยนต์แหละครับ เพราะฉะนั้นต้องเรียนรู้การเขียนโปรแกรมเพื่อควบคุมหุ่นยนต์ด้วย
"ไม่มีความสำเร็จใด ได้มาโดยไม่พยายามนะครับ"
*** ความถูกต้องของเนื้อหา การใช้คำพูด คำบรรยายต่างๆ ในบล็อกนี้ เป็นการแสดงความคิดเห็นส่วนตัวของผู้เขียนเอง มิได้มีเจตนาในการทำให้ผู้อื่น เสียหาย ปัญหาใดๆที่เกิดขึ้นจากบทความนี้ ผู้เขียนขอรับผิดชอบแต่เพียงผู้เดียว