ทดลองใช้ App Inventor กับ ทำไฟดาวตก ควบคุมผ่าน Bluetooth

Posted by | September 10, 2011 | Smart Phone | 7 Comments

สวัสดีครับ ช่วงนี้ไม่ค่อยมีแรงทำโปรเจคใหญ่ๆ โตๆเลย ไหนก็มาแล้ว วันนี้ถือโอกาสเอางานอดิเรกเล็กๆน้อยๆ มาโชว์ให้ดูกันสักหน่อยครับ สำหรับผมตอนนี้กำลังลอง android เป็น remote ควบคุมหลอดไฟดาวตก ผ่าน Bluetooth อีกที่ (อะไรจะอลังการณ์ขนาดนั้น)

ไฟดาวตก” หรือ “meteor light” อาจจะไม่คุ้นหู แต่ผมว่าคุ้นตาแน่ๆ เพราะว่าตอนนี้ไปไหน มาไหนก้อจะเจอ ไฟดาวตก กับลานเบียน ร้านอาหารกลางคืน ซึ่งไฟดาวตกนี้โด่งดังมาจาก เดี่ยว 7 ของพี่โน็ต พ่อค้าเห็นเป็นโอกาสเลยขุดมาขายเต็มบ้านเราเลย ไฟดาวตก ที่เราเห็นจะมีทั้งวิ่งจากบนลงล่างบ้าง หรือ วิ่งจากล่างขึ้นบนบ้าง เรียกได้ว่า ประยุกต์กันได้ทุกรูปแบบ

สำหรับไฟที่ทำดู ไม่ได้ทำขายหรอกนะครับ เพราะมันน่าจะแพงกว่าซื้ออีก แต่ถ้าสนใจจะทำขายก็ไม่ว่ากันครับ แต่ที่เราทำเพื่อศึกษา android สักมากกว่า คือมีโปรแกรมบน android แต่ไม่รู้จะเอาควบคุมอะไร เผื่อว่าเราจะเอาไปประยุกต์ใช้กับงานอื่นๆได้บ้าง

สำหรับไฟดาวตก หลักการมันก็เหมือนทำไฟวิ่งครับ แต่เป็นไฟวิ่งที่มีปรับระดับความสว่างของ LED ได้ด้วย คือแต่ล่ะดวงจะต่อกับ PWM ของไมโคร โดย LED ดวงที่มันวิ่งผ่านมาแล้ว ระดับความสว่างของไฟของมันจะลดลง เราเลยเห็นไฟวิ่ง fade แบบนี้ยาวเหมือน หางดาวตก ซึ่งหลักการและตัวอย่างโค๊ดเข้าไปดูได้จาก 123microcontroller.com เวปเพื่อนบ้านเรานี้เอง เขาลองทำไฟดาวตกไว้แล้ว ในบทความ Arduino ไฟวิ่งฝนดาวตก ซึ่งเขาพูดไว้แล้ว ผมคงไม่เอามาพูดอีก ซึ่งเดี่ยวถ้าผมมีหลักการ หรือ ปรับปรุงเวอร์ชั่นใหม่ จะเอามากล่าวอีกที่

โดย Software ที่ผมใช้เขียนโค๊ดสำหรับ Android ตอนนี้ผมมาลองกับ App Inventor กันบบ้าง ซึ่งหน้าตาของมันก้อเหมือนในรูปนี้ล่ะครับ สามารถออกแบบ GUI ง่ายๆได้ โดยการแค่จับวางๆ ซึ่งผมว่ามันเหมาะกับจะสร้างโปรแกรมต้องการใช้ GUI ง่ายๆ หรือ เหมาะกับผู้ที่อยากทำ app แต่ยังเขียนโปรแกรมไม่เก่งนัก ตัวนี้ App Inventor ช่วยท่านได้แน่ๆครับ แต่เจ้า App Inventor มันรันผ่านเวปนะครับ ก็อยู่ในพื้นที่ ที่ internet แรงๆ และ เข้าถึงหน่อยนะครับ

สำหรับโปรแกรมแรกที่ลองเขียนโดย App Inventor เป็นโปรแกรมควบคุมทิศทาง การวิ่งของไฟดาวตกครับ (จริงทำไฟวิ่งก็ได้ แต่กลัวไม่เท่) คือจะมีปุ่มอยู่สองปุ่ม กดให้ไฟวิ่งจากบนลงล่าง กับไฟวิ่งจากล่างขึ้นบนได้ครับ สำหรับหลักการของโปรแกรมนี้ จะใช้โทรศัพทเชื่อมต่อกับบอร์ดไมโครผ่าน Bluetooth และการกดปุ่มแล้วมันจะส่งค่า Serial ผ่าน Bluetooth ไปเข้าบอร์ด ไมโครคอนโทรลเลอร์ Arduino อีกที่ครับ (ผมถึงเรียกมันว่า เป็นแค่ Remote)

หน้าตา app ที่ออกแบบไว้ครับ จะมีโมดุล Bluetooth และ ใช้ Notifier ด้วย

หลังจากออกแบบหน้าตาแล้ว ต่อไปถึงคราวใส่ Event กับ State ที่ให้มันทำงาน ว่ากดปุ่มไหนใช้ทำอะไร สำหรับขั้นตอนนี้ให้กด Open the Blocks Editor ก็จะเข้าถึงพื้นที่สำหรับต่อ Blocks แล้วครับ สำหรับการเขียนโปรแกรมของ App Inventor เป็นแบบรูปภาพครับ Jigsaw ประกอบโปรแกรมครับ ผมอธิบาย concept มันไม่ถูกครับ แต่ถ้าไม่ใช้ส่วนของมันจะประกอบไม่ได้ เอาเป็นว่า ผมว่าใช้ไม่ยากครับ ดู Block ผมเป็นตัวอย่างก็ได้ครับ

ซึ่งเจ้าโปรแกรมนี้ สามารถติดต่อกับ emulotor ได้ด้วย และยังติดต่อกับโทรศัพท์จริงได้ เราสามารถโหลดเข้าเครื่องได้เลยครับ แต่มือถือของผมมัน set ยากครับ ผมจึงใช้วิธี download ไฟล์ apk แล้วเอาไปลงเครื่องอีกที่ครับ มาชมการทำงานกันเลย

จะเห็นว่าเราสามารถทำ App ได้แค่ไม่ชั่วโมง คือบอกตามตรง ไม่รู้มันง่ายไปไหมนิ แต่ App Inventor ยังมีข้อจำกัดอยู่อีกเยอะนะครับ อย่างแรกขนาดไฟล์ที่ได้มา ขนาดโปรแกรมง่ายๆ ไฟล์ยังมีขนาด 2.5MB ซึ่งเทียบกับเขียนด้วยวิธีปกติที่ใช้ Android-SDK ได้ไฟล์ขนาดเล็กกว่าเยอะ (น่าจะ 50-100KB) กับ อุปกรณ์เพิ่มเติมยังมีไม่เยอะมากครับ

เอาล่ะครับ คงเห็นวิธีการทำ app ง่ายๆนะครับ ช่วงไหนอยากทำอะไรเล่นๆ เร็วๆ หรือสอนเด็กเขียน app ก็ลองดู App Inventor เป็นอีกตัวเลือกแล้วกันครับ เพราะว่า มันเอามาต่อ Hardware ได้ด้วย เท่จริงๆ

About chang

ชื่อ “ช้าง” ส่วนมากเขาจะเรียกว่า “พี่ช้าง” แล้ว มีความสนใจทางเทคโนโลยีทางคอมพิวเตอร์ อิเล็กทรอนิกส์ และ หุ่นยนต์ เป็นทั้งนักคิด นักประดิษฐ์ ชอบทดลองเล่น จนเดี่ยวนี้รู้สึกว่าจะเล่นมากกว่ามืออาชีพไปสักแล้ว

  • Title Anny

    ขอบคุณ สำหรับการแชร์ความรู้ดี ๆ

  • พี่ค่ะ สนใจโปรเจ็คนี้ พี่จดลิขสิทธิ์ รึป่าวค่ะ พอดีว่ากำลังจะเสนอหัวข้อโปรเจ็คจบปริญญาค่ะ ^^ ช่วยให้คำแนะนำหน่อยนะค่ะ สนใจเรื่องเอรนดรอยมาก แต่ไม่รุ้จะทำอะไรดี 🙂

    •  ไม่ได้จดนะครับ ลองทำดูสนุกๆครับ

      • Kik88zaa_

        ขอบคุณค่ะ ^^ พี่พอจะมีโค้ดรึป่าวค่ะ 

  • Nattapong Timtus

    รบกวนสอบถามครับผม

    ผมจะเขียน app ให้เป็นเหมือน Remote Control รถอะครับ คำถามคือ
    ผมจะรู้ได้ไงว่า กดปุ่มนี้ แล้วมันส่งข้อความอะไรมา อะครับ

  • GO Kuzen

    อุปกรณ์ที่ใช้ทำมีอะไรบ้างคะ

  • tomkah

    ซื้อ LED แบบนี้จากบ้านเราได้ทีไหนบ้างครับพี่ช้าง