1
INNOVATIVE EXPERIMENT
เอกสารนีจั้ ดทําขึ้นเพื่อเปนสวนหนึงในการอบรมนั ่ กเรียนในการแขงขันหุนยนต สสท. ยุวชน ประเภท หุนยนต กูภั ย ประจําป 2556 โดย ธวัชชัย สีลาดเลา และคณะวิทยากรอิสระของศูนยการศึกษา INEX (INEX Education Center : IEC) รวมกับวิศวกรของบริษัท อินโนเวตีฟ เอ็กเพอริเมนต จํากัด (INEX)
2
เริมต ่ นพัฒนาแอปพลิเคชั่นสําหรับอุปกรณแอนดรอยด เพือควบคุ ่ มหุนยนต ISBN 974 - 92023 - 0 -9
สงวนลิขสิทธิ์ตาม พ.ร.บ. ลิขสิทธิ์ พ.ศ. 2521 หามการลอกเลียนไมวาสวนหนึงส ่ วนใดของหนังสือเลมนี้ นอกจากจะไดรับอนุญาต
ใครควรใชหนังสือเลมนี้ 1. นักเรียน นิสิต นักศึกษา และบุคคลทัวไปที ่ ่มีความสนใจในการพัฒนาแอปพลิเคชันบนอุ ่ ปกรณแอนดรอยด เพือ่ ประยุกตงานกับหุนยนต อัตโนมัติขนาดเล็ก 2. สถาบันการศึกษา โรงเรียน วิทยาลัย มหาวิทยาลัย ทีมี่ การเปดการเรียนการสอนวิชาอิเล็กทรอนิกสหรือภาควิชา วิศวกรรมอิเล็กทรอนิกสและคอมพิวเตอร
ดําเนินการจัดพิมพและเผยแพรโดย บริษัท อินโนเวตีฟ เอ็กเพอริเมนต จํากัด 108 ซ.สุขุมวิท 101/2 ถ.สุขุมวิท แขวงบางนา เขตบางนา กรุงเทพฯ 10260 โทรศัพท 0-2747-7001-4 โทรสาร 0-2747-7005 รายละเอียดทีปรากฏในเอกสารนี ่ ผ้ านการตรวจทานอยางละเอียดและถวนถี่ เพือให ่ มีความสมบูรณและถูกตอง มากทีสุ่ ดภายใตเงือนไขและเวลาที ่ พึ่ งมีกอนการจัดพิมพเผยแพร ความเสียหายอันอาจเกิดจาก การนําขอมูลใน หนังสือเลมนี้ไปใช ทางบริษัท อินโนเวตีฟ เอ็กเพอริเมนต จํากัด มิไดมีภาระในการรับผิดชอบแตประการใด ความผิดพลาดคลาดเคลือนที ่ อาจมี ่ และไดรับการจัดพิมพเผยแพรออกไปนัน้ ทางบริษัทฯ จะพยายามชีแจงและ ้ แกไขในการจัดพิมพครังต ้ อไป
3
ในป จจุบ นั โทรศั พท เคลื อ่ นที แ่ ละแท็ บเลตระบบปฏิ บ ตั กิ รแอนดรอย น นั้ มี จาํ นวนมาก หลายหลายรุ น หลาย ยี่ ห อ ใหเ ลือ กใช งาน และคาดวา ในอนาคตจะมี การใช งานกั นมากขึน้ เรื่ อยๆ ซึ ง่ เป นผลให นกั พั ฒนาแอพพลิเ คชั น่ จํ า เป นต องพั ฒนาแอพพลิ เคชั น่ เพื อ่ ให สามารถตอบสนองความต องการของผู ใ ช ได แต เนื อ่ งจากแอพพลิ เคชั น่ บนระบบ ปฏิ บ ตั กิ ารแอนดรอย น นั้ ถู กพั ฒนาขึ น้ ด วยโปรแกรมภาษาจาวา ซึ ง่ เป นเรื อ่ งยากสํ าหรั บนั กพั ฒนาแอพพลิ เคชั น่ มื อใหม ที อ่ ยากจะเรี ยนรู เ กี ย่ วกั บเรื อ่ งของการเขี ยนโปรแกรม App Inventor เป นเครื อ่ งมื อตั วหนึ ง่ ที ใ่ ช ในการพั ฒนาแอพพลิ เคชั น่ บนมื อถื อระบบปฏิ บ ตั กิ ารแอนดรอย ซึ ง่ ถู กออกแบบและพั ฒนาโดยเริ่ มตน จากที มงานของกู กเกิ ล และป จจุ บั นอยูใ นการควบคุ มดู แลของสถาบั น MIT (Massachusetts Institute of Technology) AppInventor ออกแบบมาเพื่ อใหง ายตอ การใช งาน อาศั ยการทํ างานผา น ระบบเครื อข ายอิ นเทอร เน็ ตเป นหลั ก โดยใช เว็ บบราวเซอร ทํ างานร วมกั บเว็ บเซิ ร ฟเวอร แอปพลิ เคชั น่ ที พ่ ฒ ั นาจะถู ก จัด เก็บ ไวใ นเซิร ฟเวอร เมื อ่ ตอ งการเรี ยกใช งาน จะตอ งเข าไปที่ เว็ บไซด appinventor.mit.edu/ เพื่ อที น่ าํ แอปพลิ เค ชั่ นทีส่ ร างไวข นึ้ มาแก ไข และพั ฒนาตอ ได ถือ เป นอีก หนึง่ แนวทางในการพั ฒนาแอปพลิ เคชัน่ บนอุป กรณส อื่ สาร สมั ยใหม ที่ นา สนใจ และใช เป นพื้ นฐานในการพั ฒนาแอปพลิ เคชั น่ ขั้ นสูง ตอ ไป การพั ฒนาแอปพลิ เคชั น่ บนอุ ปกรณ แอนดรอยดด ว ยเครื อ่ งมื อที่ ช อื่ ว า App Inventor นั น้ ปกติ ต อ งเชื อ่ มต อ กับ เว็ บไซต http://Appinventor.mit.edu เพื อ่ ทํ าการล็อ กอิ นเข าสู ก ารสร างแอปพลิ เคชั น่ นั น่ หมายความวา หากไม มี การเชื อ่ มต อกั บเครื อข ายอิ นเทอร เน็ ต ก ห็ มดโอกาสสร างแอปพลิ เคชั น่ ด วยเครื อ่ งมื อนี ้ อย างไรก็ ตาม ในป จจุ บ นั ข อจํ ากั ดดั งกล าวได ร บั การผ อนคลายลง เนื อ่ งจากมี การสร าง App Inventor ในแบบ ที ท่ ํ างานได โดยไม ตอ งเชื่ อมตอ กั บเว็บ ไซตข องผู พ ั ฒนา App Inventor ที ่ http://Appinventor.mit.edu หรื ออาจกล าว ไดว า มี App Inventor เวอร ชั นที ส่ ามารถใช งานในแบบออฟไลน (offline) ออกมาให ใช งานกัน
1. ความตอ งการของระบบ คอมพิ วเตอร ท ใี่ ช งานร วมกับ App Inventor เวอร ช นั Offline ต องติ ดตั ง้ ระบบปฏิบ ตั กิ ารวิ นโดวส 7 ขึ น้ ไป หรื อติ ดตั ง้ ระบบปฎิ บ ตั กิ าร MAC OS X 10.5 ขึ น้ ไป (ต องเป นเครื อ่ งที ใ่ ช อ นิ เทลโปรเซสเซอร ) หรื อติ ดตั ง้ ระบบปฏิ บ ตั ิ การ Linux Ubuntu 8+ หรื อ Debian 5+
อุ ปกรณ แอนดรอยด ท ตี่ ดิ ตั ง้ ระบบปฏิ บ ตั กิ ารแอนดรอยด ต งั้ แต เวอร ช นั 1.5 ขึ น้ ไป และต องรองรั บ SD การ ด ด วย ควรมี วงจรเชื อ่ มต อบลู ท ธู ในตั ว และรองรั บโปรไฟล SPP (Serial Port Profile - ปกติ อ ปุ กรณ แอนดรอยด แทบทุ กรุ น รองรั บโปรไฟล แบบนี )้ เพื อ่ ใช ในการติ ดต อสื อ่ สารข อมู ลแบบไร สายกั บหุ น ยนต อ ตั โนมั ต หิ รื ออุ ปกรณ ภายนอกอื น่ ๆ
4
2 . เตรี ยมความพร อมและติ ดตัง้ โปรแกรม (2.1) นํา แผ นซีด ที จี่ ดั ให ในการอบรมใส ลงในซีด รี อมไดรฟของคอมพิ วเตอร แล วคั ดลอกไฟล ทั้ งหมดจาก โฟลเดอร AppInventorOffline130313 ลงในคอมพิ วเตอร (2.2) เตรี ย มสภาพแวดล อมสํา หรั บการทํ างานกั บโปรแกรมภาษาจาวา ด วยการติ ดตั้ ง Java runtime Environment (JRE) โดยดับ เบิ้ ลคลิก ที่ ไฟล jre-7u1x-windows-i586.exe สํ าหรับ เครือ่ งคอมพิ วเตอร 32 บิต หรือ jre7u1x-windows-x64.exe สํ าหรับ เครือ่ งคอมพิ วเตอร 64 บิ ต (jre7u1x ตัว อัก ษร x เป นเลขเวอร ชั นทีเ่ ปลี่ ยนแปลงตาม การปรั บปรุ งล าสุ ด) เพื อ่ ติ ดตั ง้ จาวารั นไทม เมื อ่ ดั บเบิ ล้ คลิ กจะปรากฏหน าต างดั งนี ้ คลิ กปุ ม Next
(2.3) เขา สูห นา ต างเลือ กคุณ สมบั ตใิ นการติ ดตั ง้ ใหค ลิก เลือ ก Development Tools ตามด วยปุ ม Next
5
(2.4) เลื อกโฟลเดอร สาํ หรั บการติ ดตั ง้ แนะนํ าให ใช ตามที ร่ ะบบแนะนํา แลว คลิ กปุ ม Next
(2.5) ต ดิ ตั ง้ โปรแกรมอี ม เู ลเตอร ของ App Inventor ดั บเบิ ลคลิ กที ไ่ ฟล appinventor_s etup_installer_v_1_2.exe แล วคลิ กตอบรั บการติ ดตั ง้ ในแต ละขั น้ ตอน จนกระทั ง่ การติ ดตั ง้ โปรแกรมเสร็ จสิ น้
(2.6) รี สตาร ตคอมพิ วเตอร
6
3. การเริ่ มต นใช งาน App Inventor แบบ Offline การใช งาน App Inventor แบบ Offline ไดน นั้ ต องจํา ลองเครือ่ งคอมพิ วเตอรข องผู ใช งานเปน เซิร ฟ เวอร แทนเซิ ร ฟ เวอรห ลั กของ MIT โดยการสัง่ งานให จาํ ลองคอมพิ วเตอร เป นเซิ ร ฟเวอร มี ขนั้ ตอนต อไปนี้ (3.1) เป ดโฟลเดอร AppInventorOffline ที ค่ ดั ลอกไว จากขั น้ ตอนที ่ (2.1) จะพบโฟลเดอร หลั ก 4 โฟลเดอร
(3.2) เขา ไปในโฟลเดอร BuildServer ดับ เบิ้ ลคลิก ที่ ไฟล launch-buildserver.cmd จะปรากฏหนา ตา งดั ง รู ป ใหร อจนกวา ไฟลส คริ ปตท ํ างานเสร็จ ขึ้ นข อความว า INFO : Server running ให เป ดหนา ต าง command line นีไ้ ว ตลอดเวลาทีใ่ ช งาน App Inventor หา มปด อย างเด็ด ขาด
(3.3) ถา มี หนา ตา ง Windows Security Alert แสดงขึน้ มา ใหค ลิก ทํ าเครื่ องหมายถูก เพื่ อเลือ กทั้ งสองชอ ง แล วกดปุ ม Allow access
7
(3.4) จากนัน้ เข าไปในโฟลเดอร AppInventor ดับ เบิ้ ลคลิก ไฟล startAI.cmd จะปรากฏหนา ต างดั งรู ป ให รอจนกวา ไฟลส คริ ปทํ างานเสร็จ แสดงขอ ความ INFO: The admin console is running at http://localhost:8888/ _ah/admin หา มปด หนา ต างนีต้ ลอดการใช งาน App Inventor อย างเด็ด ขาด
(3.5) จากนั น้ เป ดเว็ บบราวเซอร อาทิ Google Chrome, Firefox หรื อ Internet Explorer พิ มพ Addess : http://localhost:8888 จะได หนา จอให ใสอ เี มล เพื อ่ ล็ อกอิน ดัง รู ป
ควรใชอีเมลทีจํ่ าไดงาย เนืองจากเมื ่ อกลั ่ บมาเปดใชงานในภายหลังจะไดล็อกอินดวยอีเมลเดิม เพือ่ เปดไฟลโปรเจ็กตเดิมทีมี่ อยูได เพราะถาใสอีเมลคนละชือจะเป ่ นการล็อกอินดวยอีกอีเมลหนึงแทน ่ ทําใหมองไมเห็น ไฟลโปรเจ็กตเดิมทีได ่ สรางไว (3.6) จากนั น้ เข าสู ห น าการยอมรั บเงื อ่ นไข ให คลิ กตอบรั บ
8
(3.7) เขา สู ห นา ในการสร างแอปพลิเ คชัน่ ดว ย App Inventor ในแบบ Offline
4. ตัว อย างการสร างแอปพลิเ คชั่ น Robot Control ดว ย App Inventor การสร างแอปพลิ เคชั น่ Robot Control มี จ ดุ ประสงค เพื อ่ ควบคุ มหุ น ยนต ด ว ยอุ ปกรณ แอนดรอยด แบบไร สาย ผ านบลู ท ธู ในการสร างแอปพลิ เคชั น่ สิ ง่ แรกที ผ่ พู ฒั นาควรทํ าคื อ ออกแบบหน าจอ เพื อ่ สํ ารวจความต องการใช อ ปุ กรณ ต าง ๆ เช น ต องการใช ป มุ กี ป่ มุ ตอ งการเชื อ่ มต อด วยอุป กรณ ใด หรื อแม แตก ารเลือ กสี ของหน าต างแอปพลิเ คชั น่ ในการสร างแอปพลิ เคชั น่ Robot Control มี ความต องการคื อ สร างปุ ม เคลื อ่ นที ไ่ ปข างหน า ถอยหลั ง เลี ย้ วซ าย และเลีย้ วขวา เพื่ อควบคุม การเคลือ่ นที่ ของหุ นยนต AT-BOT ในชุ ด Robo-Creator เมื่ อทราบความตอ งการแล ว ก็เ ริ่ ม ตน สร างแอปพลิเ คชั่ นด วย App Inventor ได เลย
4.1 ตั้ งชื่ อโปรเจ็ กต (4.1) ดํ าเนิ นการต อจากขั น้ ตอนที ่ (3.7) เข าสู ห น าจอของ App Inventor กดปุ ม New ที อ่ ยู ซ า ยบนของโปรแกรม เพื อ่ สร างโปรเจ็ กต ใหม
9
(4.2) ตั ง้ ชื อ่ โปรเจ็ กตท ตี่ อ งการสร าง (ไม ควรมี เว นวรรคหรื อใช ภาษาไทย) แล วกดปุ ม OK
(4.3) เมื อ่ ตั ง้ ชื อ่ โปรเจ็ กต แล ว ก็ จะเข าสู ก ารสร างแอปพลิเ คชั น่
10
ส วนประกอบต างๆ ของโปรแกรมจะแบ งออกเป น 5 ส วนหลั กๆ ดั งนี ้
เมนู Control : เป นกลุ ม คํ าสัง่ ในการจัด การกั บโปรเจ็ กต
Palette : เป นส วนของอุป กรณ ตา งๆ ที ส่ ามารถนํา มาสร างเป น หน าตา งแอปพลิเ คชั น่ โดยคลิ กเลื อกอุ ปกรณ ท ตี่ อ งการแล วลากมาวางใน ส วนของ Viewer
Viewer : สว นในการออกแบบหนา ตา งแอปพลิเ คชั น่ สามารถ ลากอุ ปกรณจ าก Palette มาวางบนพื น้ นี ไ้ ด
11
Component : เป นสว นแสดงการเรี ยกใช อปุ กรณ ตา งๆ ที่ ลากจาก Palette มาไว บน Viewer
Properties : เป นสว นกํา หนดคุณ สมบั ต ขิ องอุป กรณ ท เี่ รี ยกใช
4.2 เลื อกอุ ปกรณ และจั ดการหนา ตาของแอปพลิ เคชั่ น (4.4) เริ ม่ ตน การสร างแอปพลิ เคชั น่ ดว ยการเลื อกอุ ปกรณ ต า งๆ ดั งนี ้ Button : ปุ ม เคลื อ่ นที ไ่ ปข างหน า, ถอยหลั ง, เลี ย้ วซ าย, เลี ย้ วขวา และหยุ ดการเชื อ่ มต อบลู ท ธู List Picker : สํ าหรั บแสดงรายชื อ่ อุ ปกรณ ท จี่ ะเชื อ่ มต อผ านบลู ท ธู Bluetooth Client : อุ ปกรณ สาํ หรั บควบคุ มการเชื อ่ มต อบลู ท ธู Horizontal Arrangement : เพื่ อเป นพื้ นทีส่ าํ หรั บวางอุ ปกรณใ หเ รี ยงกัน ในแนวนอน Table Arrangement : เพื่ อเป นพื้ นทีส่ าํ หรั บวางอุ ปกรณใ ห เรี ยงกัน เปน ช องตาราง สํา หรั บ Button, List Picker และ Bluetooth Client เป นอุป กรณ สาํ หรั บควบคุม การทํ างานของ หุ น ยนต ส วน Horizontal Arrangement และ Table Arrangement จะเป นเลย เอาต หรื อแบบร างสํ าหรั บจั ดวางอุ ปกรณ ให อยู ใ นตํ าแหน งที เ่ หมาะสม
12
(4.5) ลาก Horizontal Arrangement มาไว บนหนา ตา งแอปพลิ เคชั น่
(4.6) ลาก Button และ List Picker ไปวางบน Horizontal Arrangement จะเห็ นว าอุ ปกรณท ั้ งสองจะวางอยู ภายในพื น้ ทีข่ อง Horizontal Arrangement
13
(4.7) เปลี่ ยนชื่ ออุ ปกรณจ ากหน าตา ง Component เพื่ อใหจ าํ ชื่ ออุก รณ แต ละตัว ไดง า ยขึน้ เพราะจะมี การใช Button ถึ ง 5 ตั ว เพื อ่ สั ง่ งานแตกต างกัน โดยเริ ม่ จากปุ ม Connect สาํ หรั บเชื อ่ มต อบลูท ธู
14
(4.8) เปลี ย่ นภาพของปุ ม โดยใช ภาพที ไ่ ด สร างขึ น้ มาเตรี ยมไว แล ว โดยเปลี ย่ นเป นภาพได จาก Properties แล ว ให ลบข อความในช อง Text ออก ไม เช นนั น้ จะมี ข อ ความแสดงอยู บ นรู ปปุ ม ด วย (ถ าต องการให เป นตั วหนั งสื อบนปุ ม ก็ ได เช นกั น) สํ าหรั บภาพของปุ ม กดแบบต างๆ เตรี ยมไว ให แล วในแผ นซี ด รี อมของการอบรมชื อ่ โฟลเดอร IconButton
15
(4.9) ขั น้ ตอนต อไปเป นการวาง Button รวม 4 ตั ว สํา หรั บสร างปุ ม ควบคุ มทิ ศทางการเคลื อ่ นที ข่ องหุน ยนต เริ ม่ จากลาก Table Arrangement มาวางขา งล างของ Horizontal Arrangement เพื อ่ เป นพื น้ ที ส่ าํ หรั บวางปุ ม ควบคุม ทิ ศ ทาง โดยทํ าการกํา หนดใหต ารางมี ขนาด 3 X 3 ช อง
(4.10) ลาก Button ทั ง้ สี ป่ ุ มมาวางบนพื น้ ที่ ของ Table Arrangement โดยวางใหต าํ แหน งของแต ละปุ ม อยู ใน ทิ ศทางที ส่ อดคลอ งต อการใช งาน ดั งรู ป
16
(4.11) เปลี ย่ นรู ปของปุ ม ควบคุ มทิ ศทางให เป นรู ปปุ ม ที ไ่ ด เตรี ยมไว และตั ง้ ชื อ่ ของแต ละปุ ม เพื อ่ ให จาํ ได งา ย
(4.12) ลากอุป กรณ Bluetooth Client มาไวบ น Viewer เพื่ อใช สาํ หรั บควบคุม การทํ างานของบลูท ู ธ (ลาก ไปวางบนพื น้ ที ข่ องแอปพลิเ คชั น่ แลว ตัว อุป กรณ จะไปแสดงอยู ท ขี่ า งลา งโดยอั ตโนมั ต )ิ เพี ยงเท านี ก้ จ็ ดั การหนา ตา ง แอปพลิ เคชั น่ เสร็จ เรี ยบร อยแล ว
17
4.3 เขี ยนโปรแกรม (4.13) ตอ ไปจะเริ่ มเขีย นโปรแกรมควบคุ ม โดยการเขีย นโปรแกรมนัน้ จะตอ งเขีย นผา นหนา ตา งที่ เรี ยกวา Blocks Editor โดยให กดที่ ปุ ม Open the Blocks Editor ที่ อยู ใ นเมนู Control
(4.14) รอสั กครู จ ะมี ไฟล ท ชี่ อื่ ว า AppInventorForAndroidCodeblocks.jnlp แสดงขึ น้ มาให ดาวน โหลด ให ทํ าการดาวน โหลดแล วเป ดไฟล น นั้ ขึ น้ มา
(4.15) จากนั้ นหน าตา ง Security Warning แสดงขึน้ มา ใหก ดทํ าเครื่ องหมายถูก ที่ ช อง I accept the risk and want to run this application. แล วกดปุม Run
(4.16) ในกรณี ที่ เป ดใช งาน Blocks Editor เป นครั้ งแรก จะมี หนา ตา ง Windows Security Alert แสดงขึน้ มา ให กดเลื อกทํ าครื อ่ งหมายถู กทั ง้ สองช องแล วกดปุ ม Allow access
18
(4.17) เมื อ่ หนา ตา ง Blocks Editor แสดงขึ น้ มา พื น้ ที ใ่ หญ ๆ ฝ ง ขวามื อคือ พื น้ ที ส่ าํ หรั บวางบล็ อกคํา สั ง่ ตา งๆ โดยเลื อกบล็ อกจากแถบเลื อกบล็ อกที อ่ ยู ฝ ง ซ ายมื อ
(4.18) ให วางบล็อ กสํา หรั บควบคุ มการทํ างานของ List Picker ตามรู ป โดยกําหนดใหเมือเลื ่ อก ListPicker1 จะแสดงรายชืออุ ่ ปกรณบลูทูธทีเคยจั ่ บคู และเมือเลื ่ อกอุปกรณนันๆ ้ จะเปนการเชือมต ่ อบลูทูธกับอุปกรณทีเลื ่ อก (ดู ร ปู เพื อ่ วางบล็ อกคํา สั ง่ ตามลํ าดั บ)
1
19
2
3
4
20
(4.19)วางบล็ อกคํา สั่ งสํ าหรั บควบคุม การทํ างานของปุ ม buttonConnect ดั งรู ป โดยกําหนดใหเมือกดปุ ่ ม buttonConnect ก็จะหยุดการเชื่อมตอบลูทูธ
1
2
21
(4.20) วางบล็ อกคํ าสั ง่ สํ าหรั บควบคุ มการทํ างานของปุ ม buttonUp ดั งรู ป โดยกําหนดใหเมือกดปุ ่ ม buttonUp ใหสงขอมูลตัวอักษรของเลข 8 (0x38 สําหรับเลขฐานสิบหก หรือ 56 สําหรับเลขฐานสิบ)
1
2
3
4
22
(4.21) วางบล็ อกคํา สั่ งสํ าหรั บควบคุ มการทํ างานของปุ ม buttonDown ดั งรู ป โดยกําหนดใหเมื่อกดปุม buttonDown ใหสงขอมูลตัวอักษรของเลข 2 (0x32 สําหรับเลขฐานสิบหก หรือ 50 สําหรับเลขฐานสิบ)
1
2
3
23
(4.22) วางบล็อ กคํา สั่ งสํ าหรั บควบคุ มการทํ างานของปุ ม buttonRight ดั งรู ป โดยกําหนดใหเมือกดปุ ่ ม buttonRight ใหสงขอมูลตัวอักษรของเลข 6 (0x36 สําหรับเลขฐานสิบหก หรือ 54 สําหรับเลขฐานสิบ)
1
2
3
24
(4.23) วางบล็ อกคํา สั่ งสํา หรั บควบคุ มการทํ างานของปุ ม buttonLeft ดั ง รู ป โดยกําหนดใหเมื่ อกดปุม buttonLeft แลวใหสงขอมูลตัวอักษรของเลข 4 (0x34 สําหรับเลขฐานสิบหก หรือ 52 สําหรับเลขฐานสิบ)
1
2
3
25
(4.24) เมื อ่ วางบล็ อกคํา สั ง่ ครบเรี ยบร อยทั ง้ หมดแล ว จะได บล็ อกของโค ดทั ง้ หมดดั งนี ้
4.4 ทดสอบแอปพลิ เคชั่ นบนอี มู เลเตอร ขัน้ ตอนตอ ไปเป นการทดสอบแอปพลิเ คชั น่ ทีส่ ร างขึ้ นบนอีม ู เลเตอร หรื อโปรแกรมจํา ลองการทํ างานของ อุ ปกรณ แอนดรอยด ก อนจะทํ าการติ ดตั ง้ จริ งลงในตั วอุ ปกรณ (4.25) ดํา เนิน การตอ จากขั น้ ตอนที ่ (4.24) กดปุ ม New emulator ที อ่ ยู ในเมนู Control
(4.26) จะมี หนา ตา งแจง เตือ นขึ้ นมาวา ใหร อประมาณ 2 ถึง 3 นาที อีม ู เลเตอร ถงึ จะพร อมทํ างาน โดยดูไ ดจ าก AVD แสดงหนา จอ Lock Screen ผู พ ั ฒนาสามารถปลดล็ อกหน าจอเพื่ อเข าหน า Home Screen ได จากนั น้ กดปุ ม OK
26
(4.27) จากนัน้ จะมี หนา ตา ง Command Line แสดงขึน้ มาหนึง่ หน าตา ง และหนา ตา งที่ เป นของอี มู เลเตอร อี กหนึ ง่ หนา ต าง ให รอจนกว าอี ม เู ลเตอร จะพร อมทํ างาน
(4.28) กลั บมาที ่ Blocks Editor ที ช่ อ ง Connect to device ที อ่ ยู ข า งๆ ปุ ม New emulator ในแถบเมนู Control จะมี รายชื อ่ อุ ปกรณ แสดง ใหเลือก Emulator-5554 แลว จะเห็ นวา ไอคอนรูปโทรศัพทเคลือนที ่ เป ่ นสีเหลืองอยู ซึงเป ่ น การแสดงสถานะวากําลังเชือมต ่ อกับอีมูเลเตอรอยู
27
(4.29) รอจนกวาไอคอนรูปโทรศัพทเคลือนที ่ เป ่ นสีเขียว ตั วอี ม เู ลเตอร จะเป ดแอปพลิ เคชั น่ ที ไ่ ด สร างไว ข นึ้ มา แสดงให เห็ น เป นอัน เสร็จ เรี ยบร อย
28
5. แปลงโค ดเป นไฟล apk สํา หรั บติด ตัง้ ลงในอุ ปกรณแ อนดรอยด หรื อ Package for Phone การนํ าโคด ของแอปพลิ เคชัน่ ที่ พั ฒนาขึน้ ไปติด ตั ง้ ลงในอุ ปกรณแ อนดรอยด จะต องมี ขนั้ ตอนหนึ ง่ ที่ สาํ คัญ มากต องกระทํา กอ นคื อ การแปลงโค ดของแอปพลิ เคชั น่ ให เป นไฟล .apk เพื อ่ นํ าไปติ ดตั ง้ ลงในอุ ปกรณ แอนดรอยด (5.1) ดํา เนิน การตอ จากขั้ นตอนที ่ (4.29) ใหก บั ไปยั งหน าออกแบบ เลือ กเมนู Package for phone ซึง่ มี ให เลื อก 3 แบบ คื อ
1. Show Barcode โปรแกรมจะประมวลผลโคด เพือ่ แสดงในรู ปของบาร โค ดให สแกนเพื่ อติด ตั้ ง โปรแกรม
2. Download to this Computer โปรแกรมจะประมวลผลโคด แล วแปลงเป นไฟล นามสกุล .apk เพื อ่ ติ ดตั้ งลงในอุป กรณ แอนดรอยดใ นภายหลัง 3. Download to Connected Phone โปรแกรมจะประมวลผลโค ดแล วเชื อ่ มต อกั บอุ ปกรณ แอนดรอยด เพื อ่ ดํ าเนิ นการติ ดตั ง้ แอปพลิ เคชั น่ ไปยั งอุ ปกรณ แอนดรอยด หากเลื อกใช ว ธิ นี ี้จะต องมี การติ ดตั ง้ ไดรเวอร USB ของอุ ปกรณ แอนดรอยด ต วั นั น้ ๆ ให ก บั คอมพิ วเตอร ก อ น ซึ ง่ ไฟล ไดรเวอร ของอุ ปกรณ แต ละตั วสามารถดาวน โหลดได จากเว็ บไซต ของ ผู ผ ลิ ตอุ ปกรณ แอนดรอยด ต วั นั น้ ๆ
29
(5.2) ทํ าการสร างไฟล .apk โดยเลื อกเมนู Package for phone > Download to this Computer
จะได ไฟล RobotControl.apk พร อมสํ าหรั บการติ ดตั ง้ ลงในอุป กรณ แอนดรอยด
30
6. การนํ าไฟลต ดิ ตัง้ แอปพลิเ คชั่ น (ไฟล .apk) ลงในอุป กรณแ อนดรอยด มี 2 วิ ธ คี อ ื 1. ติ ดตั้ งแอปพลิ เคชั่ นจาก Google Play Store ผา นเครื อข ายอิน เทอร เน็ ต ซึง่ ขัน้ ตอนนี้ ม คี วามปลอดภั ยสู ง เนื อ่ งจากผ านการคั ดกรองมาแล วเป นอย างดี จาก Google 2. ติ ดตั้ งแอปพลิ เคชั่ นจากแหล งข อมู ลภายนอกโดยผ านช องทางต างๆ เชน USB, SD การด หรื อแฟลชได ร ฟ โดยใช ไฟล .apk วิ ธ กี ารนี เ้ ป นการติ ดตั ง้ ได โดยไม ต อ งผ าน Play Store และไม ต อ งเชื อ่ มต อกั บเครื อข ายอิ นเทอร เน็ ต
ดังนันในการพั ้ ฒนาและติดตั้งแอปพลิเคชันแบบ ่ Offline จึงตองเลือกวิธีที่ 2
6.1 เตรี ยมการอุ ปกรณแ อนดรอยดเ พื่ อรองรั บการติ ดตั้ งแอปพลิ เคชั่ นจากภายนอก การเตรี ยมการแนะนํ าต อไปนี ้ มี จ ดุ มุ ง หมายเพื อ่ คั ดลอกไฟล .apk จากคอมพิ วเตอร มายั งอุ ปกรณ แอนดรอยด ผ านทางพอร ต USB (6.1) เป ดความสามารถในการส งผ านข อมู ลผ านพอร ต USB ของอุ ปกรณ แอนดรอยด โดย (ก) หากเป นอุป กรณแ อนดรอยดท ี่ ใช ระบบปฏิ บั ตกิ ารแอนดรอยด เวอรช ั น 2.3.7 ลงมา เลือ กไปที่ Settings > Application > Development (ข) หากเป นอุป กรณแ อนดรอยดท ี่ ใช ระบบปฏิ บั ตกิ ารแอนดรอยดเ วอรช ั น 3.0 ขึน้ ไป เลือ กไปที่ Settings > Developer Options
31
(6.2) เลื อกที แ่ อปพลิ เคชั น่ Setting > Security ไปที ร่ ายการ Device Administration แตะเพื อ่ ทํ าเครื อ่ งหมาย เลื อก Unknown sources ถ าเป นภาษาไทย เลื อกไปที แ่ อปพลิ เคชั น่ การตั ง้ ค า > ความปลอดภั ย ไปที ร่ ายการ โปรแกรม ควบคุ มอุ ปกรณ แตะเพื อ่ ทํ าเครื อ่ งหมายเลื อก ไม ร จู กั ที ม่ า เพื อ่ อนุ ญาตให ต ดิ ตั ง้ แอปพลิ เคชั น่ ที ไ่ ม ได มาจาก Play store หลั งจากที ต่ งั้ ค าในหน านี เ้ สร็ จเรี ยบร อยแล ว อุ ปกรณ แอนดรอยด ก พ็ ร อมที จ่ ะรั บการติ ดตั ง้ ไฟล .apk ที ม่ าจากแหล งข อมู ล อื น่ ๆ ลงในเครื อ่ งไดต ลอด
(6.3) เชื อ่ มต อสาย USB ระหว างอุ ปกรณ แอนดรอยด ก บั คอมพิ วเตอร (6.4) ที ค่ อมพิ วเตอร จะมองเห็ นอุป กรณ แอนดรอยด เป นเสมื อนแฟลชไดรฟ เลื อกไฟล .apk ที ต่ อ งการ แล ว คลิ กเมาส ป มุ ขวาเพื อ่ เป ดรายการส งไฟล โดยเลื อกไปที ่ Send to แล วเลื อกไดรฟที เ่ ป นของอุ ปกรณ แอนดรอยด ด งั รู ป
เพี ยงเท านีไ้ ฟล ตดิ ตั ง้ ของแอปพลิ เคชั่ น RobotControl ก็ พร อมสํ าหรั บการติ ดตั ง้ ลงในอุ ปกรณ แอนดรอยด
32
7. การติ ดตัง้ แอปพลิเ คชั่ นของอุ ปกรณแ อนดรอยด 7.1 ตรวจสอบและเตรีย มการ ในการติ ดตั ง้ ไฟล apk ของแอปพลิ เคชั น่ ที ต่ อ งการใช งานสํา หรั บอุ ปกรณ แอนดรอยด มี ส งิ่ ที ผ่ พู ฒ ั นาต องตรวจ สอบและเตรี ยมการดั งนี ้ (7.1) ตรวจสอบว าในอุ ปกรณ แอนดรอยด ที่ ใชง านสามารถรั นไฟล apk ได ทั นที หรื อไม ทดสอบ ได ด ว ยการรั นไฟล .apk ที ต่ ดิ ตั ง้ ลงไปจากขั น้ ตอนก อนหน านี ้ หากไม ม กี ารติ ดตั ง้ เกิ ดขึ น้ แสดงวา อุ ปกรณ แอนดรอยด เครื อ่ งนั น้ ๆ ต องการแอปพลิ เคชั น่ อื น่ ในการรั นและติด ตั ง้ ไฟล .apk กรณี น ใี้ นป จจุบ นั พบได น อ ยมาก เนื อ่ งจากผู ผ ลิ ต อุ ปกรณ แอนดรอยด สมั ยใหม โดยส วนใหญ จะบรรจุ ความสามารถนี ม้ าจากโรงงานแล ว (7.2) หากพบว า อุ ปกรณ แอนดรอยด ท มี่ ไี ม สามารถรั นไฟล .apk ได จะต องดาวน โหลดแอปพลิ เคชั น่ จาก Play Store มาชว ย นัน่ หมายถึง ตอ งเชื่ อมตอ อุป กรณแ อนดรอยดเ ขา กั บเครื อขา ยอิน เทอร เน็ต แล วเข าไปที่ Play Store เพื อ่ ดาวนโ หลดแอปพลิ เคชั น่ ที ท่ ํ าหนา ที ด่ งั กล าว (7.3) แอปพลิ เคชั น่ ที แ่ นะนํ าคือ appInstaller โดย appInstaller จะช วยในการติ ดตั ง้ (install), ถอนการติ ดตั ง้ (unstaller หรื อ remove), และสํ ารองขอ มู ล (backup) ในตัว เดี ยว นอกจากนี ย้ ั งช วยเคลือ่ นยา ย (move) แอปพลิเ คชัน่ ตา งๆ ไปเก็บ ไวใ น SD การ ดได คน หาแอปพลิเ คชัน่ นี้ ใน google play store ดว ยคํา วา appinstaller แล วเลื อกดาวน โหลดตามรู ป
33
7.2 ขัน้ ตอนการติ ดตั้ งไฟล .apk ในอุป กรณ แอนดรอยด (7.4) เริ ม่ ตน จากหน าหลั ก (Home) เลือ กที่ Apps (7.5) เลื อกที ่ AppInstaller เข าสู ห นา จอ Install App เลือ กเข าไปที โ่ ฟลเดอร Download หรื อโฟลเดอร อ นื่ ที ่ เก็ บไฟล .apk ที ต่ อ งการติ ดตั ง้ ไว (ปกติ แล ว จะอยู ท โี่ ฟลเดอร Download)
(7.6) จากนั้ นคลิก ที่ ไฟล .apk ที่ ตอ งการติด ตั้ ง จะปรากฏหนา ตา งเพื่ อยื นยั นการติด ตั้ ง ใหค ลิก ปุ ม Install จากนั น้ กระบวนการรั นและติ ดตั ง้ แอปพลิ เคชั น่ ลงบนอุ ปกรณ แอนดรอยด จะเริ ม่ ต นขึ น้ รอจนเสร็ จ แอปพลิ เคชั น่ นั น้ ๆ ก็ พร อมสํ าหรับ การใช งานได ท นั ที
34
8. การใช งานแอปพลิเ คชั่ น Robot Control เพื่ อควบคุ มการเคลื่ อนทีข่ องหุน ยนต AT-BOT อย างงา ย AT-BOT เป นหุ นยนต อตั โนมั ตริ ู ปแบบหนึง่ ในชุ ด Robo-Creator ที เ่ คลื อ่ นทีด่ ว ยชุ ดมอเตอร เฟ องทดและล อ 4 ชุ ด รองรั บโปรแกรมควบคุ มที พ่ ฒ ั นาด วยภาษา C/C++ ในแบบโอเพ นซอร สที เ่ ข ากั นได ก บั โครงการพั ฒนาระบบ ควบคุ มขนาดเล็ กเพื อ่ ประยุ กต ใช งานด านซอฟต แวร และฮาร ดแวร ท ชี่ อื่ Wiring นอกจากจะกํา หนดให ทํ างานในแบบอัต โนมั ตไิ ดแ ล ว AT-BOT ยั งสามารถเชื่ อมต อกับ โมดูล สือ่ สารข อมู ล อนุ กรมแบบไร สายได หลายแบบ ไม วา จะเป นโมดู ล RF มาตรฐานที ใ่ ช ความถี ใ่ นย าน UHF, โมดูล XBee/XBee Pro ที ใ่ ช ความถี ใ่ นย าน 2.4GHz และโมดู ลบลู ท ธู เพื อ่ ทํ าให เกิ ดการควบคุ มหรื อสั ง่ งานจากระยะไกลในแบบไร สายได รวม ถึ งหุ น ยนต ย งั สามารถอ านค าจากตั วตรวจจั บแล วส งค ากลั บไปยั งส วนควบคุ มการเคลื อ่ นที ไ่ ด อ กี ด วย สํ าหรั บการทํ างานร วมกั บอุ ปกรณ แอนดรอยด และแอปพลิ เคชั น่ Robot Control จะเลื อกใช โมดู ลบลู ท ธู ที ช่ อื่ ว า BlueStick เพื อ่ ใชใ นการควบคุ มการเคลื อ่ นที แ่ บบไร สายได
35
8.1 การเชื่ อมต อทางฮาร ดแวร (8.1) ติ ตตั ง้ โมดู ล BlueStick เขา กั บแผงวงจรเชื อ่ มต อ ADX-BTstick (8.2) ต อสายสั ญญาณระหว างแผงวงจร ADX-BTstick กั บบอร ดควบคุ ม ATX ในหุ น ยนต AT-BOT ดั งนี ้ (8.2.1) ต อ สายจากจุ ดต อ RxD ของแผงวงจร ADX-BTstick เข ากั บจุ ดต อ TxD ของบอร ดควบคุ ม ATX (8.2.2) ต อ สายจากจุ ดต อ TxD ของแผงวงจร ADX-BTstick เข ากั บจุ ดต อ RxD ของบอร ดควบคุ ม ATX
36
8.2 โปรแกรมควบคุ มของหุ น ยนต AT-BOT เพื อ่ ติ ดต อกั บอุ ปกรณ แอนดรอยด ผ า นระบบบลู ท ธู มี ต วั อย างโค ดของโปรแกรมควบคุ มที ต่ อ งอั ปโหลดไปยั งหุ น ยนต AT-BOT ดั งนี ้ (พั ฒนาด วย Wiring IDE1.0) #include <robot.h> void forward() // Move forward { motor(0,100); motor(1,100); motor(2,100); motor(3,100); } void backward() // Move backward { motor(0,-100); motor(1,-100); motor(2,-100); motor(3,-100); } void turnleft() // Turn left { motor(0,-100); motor(1,-100); motor(2,100); motor(3,100); } void turnright() // Turn right { motor(0,100); motor(1,100); motor(2,-100); motor(3,-100); } void setup() {} void loop() { if(uart1_available()) { char c = uart1_getkey(); if(c==’8') // Get number { forward(); } else if(c==’2') // Get number { backward(); } else if(c==’4') // Get number { turnleft(); } else if(c==’6') // Get number { turnright(); } else { motor_stop(ALL); } } }
8
2
4
6
อั ปโหลดโปรแกรมลงตั วหุ น ยนต AT-BOT จากนั น้ เป ดแอปพลิ เคชั น่ ที อ่ ปุ กรณ แอนดรอยด จั บคู บ ลู ท ธู ของอุ ปกรณ แอนดรอยด ให ตรงกั บโมดู ล BlueStick ที ต่ ดิ ตั ง้ บนตั วหุ น ยนต AT-BOT รอจน กระทั ง่ ไฟสี แดงที ่BlueStick จะติ ดค าง น นั่ หมายความว า ขณะนี ้ AT-BOT และอุ ปกรณ แอนดรอยด เชื อ่ ม ต อกั นผ านบลู ทธได แล ว ผ ใู ช งานสามารถควบคุ มการเคลื อ่ นที ข่ องหุ น ยนต AT-BOT ได ตามต องการ
INNOVATIVE EXPERIMENT