AppInventorOfflineManual_TPA2013-INEX

Page 1

      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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.