มาเล่น Arduino Robot ควบคุมด้วย Android App กัน

เนื่องจากเกิดอาการนึกสนุกทำ Arduino Robot ไปเมื่อปีที่แล้ว ปีนี้ได้มีโอกาสทำหุ่นยนต์แมง 4 ขาก็เลยได้ทำ App ใหม่อยู่ 2 ตัว คือ App Joystick และ App Joypad ที่ได้เขียน App Joystick ใหม่ก็เนื่องจากพยายามหา App Joystick ที่ตรงใจไม่ได้ อยากได้ฟังก์ชั่นการใช้งานเยอะๆ แต่ที่มีใน PlayStore ยังไม่ถูกใจมากนัก ก็เลยเขียน App มาเล่นเอง ซึ่ง App ทั้งสองตัวแตกต่างตามฟังก์ชั่นการใช้งาน ที่เขียนทั้ง 2 แบบ ก็เผื่อจะเอาไปใช้กับโครงการอื่นๆ ด้วย มาดู App Joystick กันก่อน

ที่อยากได้ App Joystick ตอนแรกว่าจะเอาไปคุมหุ่นยนต์ 4 ขา อยากได้การควบคุมหลายทิศทาง หลายฟังก์ชั่น ตั้งค่าปุ่มได้จะได้เอาไปใช้กับโครงการอื่นได้ ต่อกับ Video Streaming ได้ ฯลฯ คิดเยอะบวกกับความต้องการเยอะมากกกกก แต่เอาไปเล่นกับหุ่นยนต์ 4 ขา ไม่สนุกเลย เพราะฟังก์ชั่นหลายอย่างไม่ได้ใช้งาน ใช้อยู่ 4 ปุ่ม ตอนตั้งค่าปุ่มกดจนเมื่อยมือกว่าจะได้เล่น T_T ตอนเขียนก็อยากได้ Joystick แต่ไม่ได้นึกถึงตอนใช้งานเท่าไร ก็เลยเขียน App ใหม่เป็น Joypad แทน T_T
Continue reading

เก็บตกของเล่นใหม่ใน Android M ที่ต้องศึกษาเพิ่มเติม

ครั้งที่แล้วสรุปงาน Google I/O 2015 ไปเรื่องที่น่าสนใจด้านเทคโนโลยี ครั้งนี้มาเก็บรายละเอียดเกี่ยวกับ Developer กันบ้าง จากวิดีโอของคุณเนย ครับ มีหลายเรื่องที่นักพัฒนาต้องปรับตัวในการพัฒนา App เพื่อให้รองรับ feature ใหม่ๆ ที่จะมีใน Android M

  • Direct Share
  • App Links
  • Doze
  • Now on Tab
  • App Indexing
  • Auto Backup for App
  • Android Studio 1.3 กับ Gradle Tools 1.3.0beta1
  • Cloud Test Lab
  • MVVM บน Android
  • Android Design Support Libary (Backward Compatible)
  • Chrome Custom Tabs
  • Android Pay
  • Brillo + Weav

ถ้าได้เล่นตัวไหนแล้วจะมา Blog ให้อ่านกันอีกครั้งนึงครับ :)

Screen Mirroring บน Android

เนื่องจากมีงานที่ต้องการใช้การทำ Screen Mirroring บน Android กับเครื่อง Mac หาโปรแกรมแบบนี้มาเล่นยาก ถ้าจะมีก็จะเป็นในลักษณะผ่าน DLNA หรือใช้ Droid at Screen แต่ความเร็วในตอบสนองมันช้ามากๆ ก็เลยหาเครื่องมือใหม่มาลองเล่น ชื่อ Mirror ใช้เป็นตัวส่งหน้าจอมือถือ ส่วนตัวรับเป็น Chrome Application ชื่อ AllCast Receiver วิธีเล่นง่ายมากๆ

เปิด AllCast Receiver ก่อน

จากนั้นเปิด Mirror เลือกเครื่องที่ต้องการส่งหน้าจอไป

Continue reading

เก็บตก Google Developers Summit Thailand 2015

ผมได้ e-mail invite ให้ไปงาน Google Developers Summit ก็เลยใช้สิทธิ์สักหน่อยเพราะใน e-mail แจ้งว่าให้สิทธิ์จำนวน 150 คนเท่านั้น พอไปงานจริง คนเยอะมากกกกก เหมือนจะไม่ใช่ 150 คนละ แต่ก็ยังดีที่ได้เข้า session ในส่วน codelab ช่วงบ่ายด้วย :) งานเป็นงาน Developer Summit คล้ายๆ งาน Google Play | Playtime Europe – Succeeding on Google Play with Apps & Games ซึ่งงานในไทยเน้น Material Design, Play Store และ UX/UI หัวข้อประมาณนี้

  • Building for the Next Billion Users
  • Material Design in Action
  • Get Discovered & Reach More Users on Google Play
  • Interaction Feedback in UI Design

ส่วนหัวข้อข้างล่าง ไม่ได้เข้าเพราะไป codelab อีกห้องนึง

  • Developing for Android TV & Chromecast
  • Best Practices for Google Play Games
  • Go Global

งานสัมนาในครั้งนี้ ทีม Developer Advocate ให้ความรู้กันแบบเต็มที่เลย รู้สึกประทับใจกับ session เกี่ยวกับ Interaction Feedback เป็นความรู้ใหม่และเป็นอะไรที่อึ้งมาก เพราะไม่เคยอยากจะรู้เรื่องพวกนี้เลย แค่รู้ว่าทำตาม design guide line และ material design spec ก็พอ แต่ก็คิดในใจเวลาออกแบบใน layout design ว่าทำไมต้องแบบนั้นแบบนี้ บ่นอยู่ในใจ วันนี้ได้คำตอบเลยครับ ทุกอย่างมันมีที่มาและมีเหตุผลในการออกแบบ

ช่วง codelab ตอนบ่ายจัดเต็มเลยครับ ความรู้ในช่วงเช้าเรื่อง Material Design, Interaction Feedback เอามาใช้ใน codelab เรียกว่าไม่เกี่ยงที่จะต้องทำเลย ยอมรับเลยว่าเรียน Material Design มาหลายรอบมาก ทั้ง Android และ Polymer ช่วง codelab จัดเต็มที่เลย ตั้งแต่ Material Theme, Keyline, Typography, Touch Feedback, Animation, Floating Action Button เรียกได้ว่าเกือบครบเลย ขาดเรื่อง Card View เท่านั้น

งานนี้ได้ทั้งความรู้ใหม่และได้ของฝากเป็นเสื้อ Developers Summit, หนังสือ ความลับสู้ความสำเร็จของแอปบน Google Play และแผ่นพับ 10Dos & 10 Don’ts for Google Play developers เรียกได้ว่าคุ้มค่ามาก :) สำหรับท่านที่ไม่ได้ไปงานนี้แล้วอยากลอง Material Design ผมแนะนำให้ทำ codelab อันนี้ครับ ทำอยู่บ้านก็ได้ เพราะในเอกสารอธิบายได้ดีและมี link ให้ไปอ่านเพิ่มเติมในส่วนต่างๆ ด้วย แนะนำเลยครับ :)

Lollipop สำหรับ Galaxy Nexus

ผมใช้ Galaxy Nexus มาได้หลายปีละ อัพเดท Android มาจนถึง 4.3 และทนใช้ Kitkat ผ่าน ROM ของ Cyanogen Mod 11 มาได้เกือบปี ทรมานมากเพราะ crash ตลอด จนกระทั่งหา ROM Kitkat ที่ stable มาทดลอง สลับไปมากับ ROM Lollipop ที่พยายามหามาลองเรื่อยๆ เรียกว่ากระเสือกกระสนดิ้นรนมากๆ เพราะยังหามือถือ Nexus ที่ถูกใจไม่ได้ แต่ก็อยากได้ Lollipop มาลองเขียน App สุดท้ายได้ ROM AOSP มาลอง ซึ่งดีกว่า ROM ของ FML ซึ่งอัพเดทช้าไปสักหน่อย แต่บักก็ยังมีอยู่เยอะเหมือนกัน T_T

ขึ้นชื่อว่า AOSP ไม่มีอะไรเลยแม้กระทั่ง Browser ก็ถือว่าเล็กกระทัดรัดดีครับ สำหรับประสิทธิภาพยังไม่ค่อยดีเท่าไรนัก ยังหน่วง กินแรม กินไฟ ฯลฯ อยู่มาก ยิ่ง App ไหนเขียน HTTP Request บน Activity ไม่ได้ใช้ Thread หรือ AsyncTask ก็ยิ่งอาการหนัก ทำให้เครื่องค้างและ Crash ซึ่งยังเป็นปัญหาอยู่ ก็คงต้องรอสักพัก สำหรับผมตอนนี้ได้ Lollipop ทดลอง App แล้วสบายใจขึ้นมาหน่อย

Continue reading

เรียน Material Design

ผมใช้เวลาว่างช่วงกลางคืนเรียน Material Design เพราะตกยุคไป 1 ปีแล้ว ตอนที่กำลังฮิตก็ไม่ได้สนใจไปนั่งเรียนกับปรมาจารย์ ก็เลยต้องมานั่งเรียนเอาเอง จากแหล่งเรียนรู้ที่พอจะหาได้ เช่น Youtube, Website เป็นต้น ครั้งนี้ก็เลยจะมาแนะนำเว็บที่ผมนั่งเรียนมา

Continue reading

มาเล่น Arduino Robot ควบคุมด้วย Android App Bluetooth Joystick กัน

เมื่องาน OSSFestival 2014 ที่ผ่านมา มี workshop เกี่ยวกับ Arduino DIY ได้รับความสนใจมากจากหลายคนที่สนใจด้าน OpenSource Hardware ซึ่งโครงการอย่าง Arduino และ Raspberry Pi เป็นโครงการ OpenSource Hardware ที่ประสบความสำเร็จมาก เรียกได้ว่าใช้เครื่องมือทุกอย่างที่เป็น OpenSource ในการทำงานได้ ตั้งแต่การประกอบแบบ DIY,Arduino Bootloader สำหรับ Burn ลงในชิบ ATMEGA328, IDE ที่ใช้เขียนโปรแกรมและระบบปฏิบัติการที่ใช้งานได้ เรียกได้ว่าใช้งานเครื่องมือแบบ OpenSource ได้ในทุกกระบวนการเลยทีเดียว ดีจัง :) ใน workshop ได้แนวคิดหลายอย่าง ไม่ว่าจะเป็นบอลลูนติด Arduino ควบคุมด้วย Remote Control แบบ Infra Red หรือการใช้งาน Arduino DIY กับ RFID เป็นต้น เรียกได้ว่าทำได้หลายอย่างมากๆ

ในตอนแรกคิดว่าจะลองทำบอลลูนควบคุมด้วย Arduino แต่ต้องถอดใจก่อนเพราะไม่มีลูกโป่งและก๊าซฮีเลียม แนวคิดนี้ก็เลยขอพักไว้ก่อน ลองทำอะไรง่ายๆ ก่อนน่าจะดีกว่า อย่างเช่น Robot เอ่อ…ต้องเรียกรถ 2 ล้อน่าจะถูกกว่าเพราะมี 2 ล้อสำหรับควบคุมทิศทางและล้ออิสระอีก 2 ล้อเอาไว้พยุงตัวรถเท่านั้นเอง อุปกรณ์ที่ต้องใช้มีดังนี้ครับ

  • Robot Chassis Kit (Chassis + Motor + Wheel)
  • Arduino UNO
  • Motor Drive Shield (L298P)
  • Bluetooth Module HC-05
  • Battery ขนาด AA 6 ก้อน
  • Battery Box ขนาด AA 6 ก้อน

Continue reading

มาใช้ Genymotion Android Emulator กัน

Genymotion เป็น Android Emulator ที่มาพร้อมกับ Android System Image และ AVD สำเร็จรูปมากกว่า 10 ตัว ช่วยให้นักพัฒนาไม่ต้องกังวลเรื่องการตั้งค่า AVD อีกต่อไป ที่สำคัญ Genymotion ทำงานเร็วกว่า Emulator ที่มากับ Android SDK มากๆ Genymotion มีเครื่องมือช่วยนักพัฒนาหลายอย่างทั้งการเชื่อมต่อกับ Webcam, GPS, Screencast และอีกมากมาย Genymotion สามารถดาวน์โหลดมาใช้งานได้ฟรี หรือเสียเงินเพื่อใช้งาน feature เสริมอื่นๆ ที่ต้องการได้ อย่าช้าสมัครสมาชิกแล้วดาวน์โหลดได้เลย

Continue reading

เขียนเกม TapTapTap และประสบการณ์ Google Play Game Services

กลับมาเขียน Mobile App อีกรอบ ก่อนหน้านี้โดนลากไปเรียน Cloud Specialist ก็เลยต้องกลับไปดู Cloud เกือบ 1 ปีเหมือนย้อนอดีตเลย เรียน Cloud Specialist จบแล้วก็ได้เวลากลับมาเขียน Mobile App ล่ะครับ ครั้งนี้ตั้งใจว่าจะลองอะไรที่ยังไม่ได้ลอง เพราะหลุดวงโคจรไปเกือบ 2 ปีเลย T_T ถ้ายังจำกันได้ ผมเคยพยายามเขียนเกมส์ง่ายๆ ได้ไอเดียจากคุณธีระเรื่องเกมส์บวกเลข ผ่านไปเกือบ 2 ปีกลับมาเขียนเกมส์ใหม่ ที่อยากเขียนเกมเพราะอยากรู้เรื่อง Google Play Game Service ครับ :)

ผมไม่มีไอเดียเรื่องเกมส์เพราะไม่ค่อยได้เล่นเกมส์ แต่ได้แนวคิดดีๆ จาก Ake Exorcist ที่เอา Micro Controller ควบคุม Mouse ให้เล่นเกมส์ในเว็บไซต์แบบอัตโนมัติ เกมที่เล่นเป็นเกมส์ง่ายๆ กติกาคือให้เลือกสีอ่อนให้ถูกมากที่สุดในเวลาที่กำหนดไว้ ผมว่าเป็นเกมส์ที่ไอเดียดีมาก เล่นได้เรื่อยๆ สนุกดีครับ พอได้แนวคิดแล้วก็ดองเอาไว้ใน Any.Do เกือบ 1 เดือนถึงจะได้มานั่งเขียน T_T Google Play Game Services ถูกผนวกกับ Google Play Service มาเรียบร้อยแล้วไม่ต้องกังวลว่า Android เวอร์ชั่นเก่า/ใหม่จะไม่มี Google Play Service API ครับเพราะมันจะถูกอัพเดทให้อัตโนมัติ ตัดปัญหาเรื่องนี้ไปได้เลย สำหรับแหล่งเรียนรู้ก็คงไม่พ้นเว็บ Android Developer ซึ่งข้อมูลใน Google Play Game Services บนเว็บให้ข้อมูลได้ดีมาก และตามสไตล์ของ Google คือ อยากเรียนรู้แนะนำให้ดาวน์โหลดโค้ดตัวอย่าง อ่านตาม document แล้วลองทำตามไปเรื่อยๆ ก็เข้าใจได้เร็วขึ้น

การใช้งาน Google Play Game Services ต้องไปสร้าง Game Service ในหน้า Developer Console ก่อน เพื่อเป็น Service Endpoint ให้กับ App ของเรา

Continue reading

มาเล่น ADB Over Network กัน

Android 4.3+ มีความสามารถด้าน Debugging เพิ่มขึ้นมาคือ ADB Over Network หรือเรียกง่ายๆ ว่า Wifi Debugging หลักการคือคุณสามารถใช้ ADB ได้ทั้งแบบมีสายและไร้สาย ถ้ามี USB Hub เยอะหน่อยก็จะสะดวก แต่ถ้าไม่มีก็สามารถ Debug ผ่าน Wifi ได้ วิธีการง่ายๆ มีดังนี้

อันดับแรกต้องอยู่ในเครือข่ายเดียวกันเสียก่อน ดู IP Address อยู่ในวงเดียวกัน

เสียบสาย USB ที่มือถือเปิด terminal แล้วสั่ง

adb tcpip 5555

เอาสาย USB ออก ที่มือถือเปิดไปที่ Setting > Developer Options เลือก ADB Over Network ดู IP Address และ Port

สั่ง adb connect มาที่มือถือตาม IP Address และ Port ที่กำหนด

adb connect 192.168.88.248:5555

สั่ง adb devices จะพบมือถือของเรา Debug ผ่าน Network แล้ว ลองใช้ ddms ทดสอบดูได้

ถ้าท่านใดที่ต้องการทดสอบ ​Mobile App ในอุปกรณ์หลายๆ ตัวพร้อมกัน ADB Over Network เป็นเครื่องมือช่วยได้ดีครับ