เคย blog เรื่อง สั่งงาน Arduino ผ่าน Bluetooth ไปบ้างแล้ว จำได้ว่าใช้ตัวอย่างจาก ArduDroid ซึ่งน่าจะเข้าใจง่าย แต่ก็พบว่ามันไม่ง่ายเท่าไร T_T ก็เลยมาอัพเดทเพิ่มเติม Arduino มี Library ที่น่าสนใจอยู่ตัวนึงชื่อ SerialCommand Library นี้ทำหน้าที่เป็น Token Parser ให้ เรียกว่าไม่ได้เขียน Parse ข้อมูลเอง เพียงแค่กำหนดคำสั่งและให้ไปทำหน้าที่อะไรผ่าน call back ยกตัวอย่างเช่น สั่ง ON ให้เรียก function เปิดไฟ สั่ง OFF ให้เรียก function ปิดไฟ เป็นต้น นอกจากนี้ยังสามารถ parse argument ที่ต่อจากคำสั่งได้ด้วย มาลองเล่นกัน

ต่อ Bluetooth Module ให้เรียบร้อย แล้ว flash โค้ดตัวอย่างดังนี้

Continue reading

เนื่องจากเกิดอาการนึกสนุกทำ 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

เมื่องาน 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

ครั้งที่แล้ว blog เรื่องตั้งค่า HC-05 แต่ไม่ได้บอกว่าเอามาทำอะไร โปรเจคที่ใช้ Bluetooth ส่วนใหญ่จะใช้งานด้านการสื่อสารหรือส่งข้อมูลเป็นหลัก เพราะ HC-05 สามารถทำงานได้ 2 โหมด เป็น Server หรือ Client ได้ เราสามารถประยุกต์ใช้ Bluetooth Module มาเป็นช่องทางในควบคุมอุปกรณ์ระหว่างมือถือกับ Arduino โดยหลักการง่ายๆ ของการใช้ Bluetooth คือต้องมีการ pair อุปกรณ์เข้าหากัน หาก Arduino ของคุณต่อกับ Relay Board คุณก็สามารถสั่งงานผ่าน Mobile App ได้ ก่อนจะถึงการควบคุม Relay มาดูวิธีการสื่อสารแบบง่ายๆ กันก่อน ต่อ Bluetooth Module กับ Arduino ดังภาพ


Continue reading

มีหลายท่านถามเรื่อง Bluetooth เข้ามาไม่ได้เกี่ยวข้องกับการใช้งานเลย แต่เป็นเรื่องของชื่อ Bluetooth HC-05 เพราะค่ามาตรฐานใช้ชื่อว่า HC-05 ถ้ามีโปรเจคที่ใช้ Bluetooth มาก เวลาจะ pair อุปกรณ์ คุณก็จะเห็นชื่อ HC-05 เต็มไปหมด และไม่รู้ว่าจะต้อง pair HC-05 ตัวไหนกันแน่ วิธีการเปลี่ยนชื่อของ Bluetooth Module นี้ง่ายมาก เพียงแค่ส่งค่า HIGH ไปยังขา Key เพื่อบอกอุปกรณ์ให้เข้าสู่ Setting Mode จากนั้นก็สั่งงานผ่าน Serial Monitor เท่านั้น สำหรับคำสั่งต้องใช้คำสั่ง AT Command เท่านั้น ถ้าใครสนใจก็สามารถหาข้อมูลเพิ่มเติมได้ มาลงมือกัน Bluetooth Module กับ Arduino ตามรูป


Continue reading

คราวที่แล้วเขียนเรื่อง ใช้มือถือต่อเน็ตผ่าน Bluetooth บน Ubuntu ด้วย Blueman ไปแล้วคราวนี้มาถึงการใช้งาน Blueman บน Fedora กันบ้าง เอ้าสำหรับใครที่มาใหม่ ขอแนะนำ Bluman กันอีกรอบ Blueman เป็นโปรแกรมจัดการ Bluetooth ที่ใช้งานง่ายและมีเครื่องไม้เครื่องมือในการจัดการเชื่อมต่อกับ services ต่างๆ ได้ง่ายเพียงแค่ คลิก…คลิก… เท่านั้น! นอกจากนี้ยังสนับสนุนการทำงานมาตรฐานต่างๆ เช่น การรับไฟล์ ส่งไฟล์ ดูไฟล์ในโทรศัพท์มือถือ และการเชื่อมต่อ servcies Dial Up อย่างง่ายๆ เอ้า มาติดตั้ง Blueman กัน สาวก Fedora ใช้ YUM นะครับ

$ su -c 'yum install blueman'

มาเริ่ม Bind อุปกรณ์กันเลย ผมมี LG KP500 รุ่นโต๋ คลิกไปที่รูปเครื่องหมาย Bluetooth ตรง notification area ครับ แล้วลอง Search ดู ของผมเจอ โต๋ แล้ว

LG KP500

จากนั้นให้คุณ Bind อุปกรณ์ครับ จะได้หน้าตาแบบนี้

ทีนี้เรามาเชื่อมต่อ Internet กัน ให้คลิกขวาที่ชื่ออุปกรณ์ ของผมคือ LG KP500 รุ่นโต๋ ครับ :) แล้วเลือก Serial Ports > Dialup Service โปรแกรมจะทำการเชื่อมต่อ services พร้อมสร้าง device rfcomm ให้เราอัตโนมัติ เจ๋งมั๊ย ทีนี้ก็มาเชื่อมต่อกันจริงๆ ละ คลิกไปที่ Network Manager ครับ จะมีข้อมูลบอกเราว่ามีเครือข่าย BroadBand ให้เราใช้ดังภาพ ให้คลิก New Mobile Broadband (GSM) Connection…

จากนั้นมาคลิกตั้งค่า Broadband Connection กันต่อ โปรแกรมจะเริ่มหน้าจอ Wizard ให้เราแบบนี้

คลิก Forward ไปตั้งค่า ประเทศต่อได้เลยครับ

เลือกประเทศไทย แล้วคลิก Forward โปรแกรมจะให้เราตั้งค่า Operator ดังภาพ

ผมใช้ AIS ครับ :) ผมเลือก AIS คลิก Forward เลือก Plan ต่อได้เลย

หากคิดไม่ออก ให้เลือก Default Plan ครับ คลิก Forward ต่อ โปรแกรมจะสรุปข้อมูลดังภาพ

จากนั้นคลิก Apply ได้เลย

เจ้าตัว Wizard ก็จะสร้างการเชื่อมต่อให้ใหม่ และเชื่อมต่อ Internet ผ่านมือถือ ให้เราได้แล้ว เย้….

มีผู้รู้แนะนำว่าการใช้งาน Bluetooth ต้องหาเครื่องมือดีๆ มาใช้ในการจัดการ ซึ่งผมเองไม่ค่อยสนใจเท่าไร เพราะเป็นคนหัวดื้อ ชอบลุยๆ ปรากฏว่าก็ยังหนีห่างจาก command line ในการต่อ Internet ผ่าน Bluetooth ไม่ได้สักทีเอาเป็นว่า คราวนี้ต่อได้แล้วครับ :) แบบคลิกอย่างเดียว! ก่อนจะเข้าถึงขั้นตอนขอเล่าก่อนว่าการเชื่อมต่อ Bluetooth เพื่อเชื่อมต่อ Internet ผ่าน 3G/CDMA/EDGE/GPRS สามารถทำได้โดยการเรียก service ผ่าน Bluetooth เท่านั้น! แต่การเชื่อมต่อจะต้องผ่าน device ที่ชื่อ rfcomm หากเราใช้ command line ตั้งแต่การเชื่อมอุปกรณ์มือถือเข้ากับเครื่องคอมพิวเตอร์ และสร้าง device rfcomm เขียน config ของ wvdial มันก็หลายขั้นตอนไปหน่อยและส่วนใหญ่จะท้อใจซะมากกว่า เอาเป็นว่าวันนี้มีทางแก้ครับ ทางแก้ที่ว่านี้คือใช้ Bluetooth manager ตัวใหม่ครับ ;) ชื่อ Blueman

Blueman เป็นโปรแกรมจัดการ Bluetooth ที่ใช้งานง่ายและมีเครื่องไม้เครื่องมือในการจัดการเชื่อมต่อกับ services ต่างๆ ได้ง่ายเพียงแค่ คลิก…คลิก… เท่านั้น! นอกจากนี้ยังสนับสนุนการทำงานมาตรฐานต่างๆ เช่น การรับไฟล์ ส่งไฟล์ ดูไฟล์ในโทรศัพท์มือถือ และการเชื่อมต่อ servcies Dial Up อย่างง่ายๆ เอ้า มาติดตั้ง Blueman กัน สำหรับท่านที่ใช้ Ubuntu 9.10 Karmic Koala, Suriyan 52.10 Internal Warm ติดตั้ง Blueman ได้ตามวิธีข้างล่างครับ

$ sudo add-apt-repository ppa:blueman/ppa
$ sudo apt-get update
$ sudo apt-get install blueman

สำหรับท่านที่ใช้ Ubuntu 9.12 Karmic Koala PE มี Blueman มาให้แล้วครับ :) มาเริ่ม Bind อุปกรณ์กันเลย ผมมี LG KP500 รุ่นโต๋ คลิกไปที่รูปเครื่องหมาย Bluetooth ตรง notification area ครับ แล้วลอง Search ดู ของผมเจอ โต๋ แล้ว

KP500

จากนั้นให้คุณ Bind อุปกร์ครับ จะได้หน้าตาแบบนี้

AfterBind

ทีนี้เรามาเชื่อมต่อ Internet กัน ให้คลิกขวาที่ชื่ออุปกรณ์ ของผมคือ LG KP500 รุ่นโต๋ ครับ :) แล้วเลือก Serial Ports > Dialup Service

โปรแกรมจะทำการเชื่อมต่อ services พร้อมสร้าง device rfcomm ให้เราอัตโนมัติ เจ๋งมั๊ย ทีนี้ก็มาเชื่อมต่อกันจริงๆ ละ คลิกไปที่ Network Manager ครับ จะมีข้อมูลบอกเราว่ามีเครือข่าย BroadBand ให้เราใช้ดังภาพ ให้คลิก New Mobile Broadband (GSM) Connection…

จากนั้นมาคลิกตั้งค่า Broadband Connection กันต่อ โปรแกรมจะเริ่มหน้าจอ Wizard ให้เราแบบนี้

คลิก Forward ไปตั้งค่า ประเทศต่อได้เลยครับ

เลือกประเทศไทย แล้วคลิก Forward โปรแกรมจะให้เราตั้งค่า Operator ดังภาพ

ผมใช้ AIS ครับ :) ผมเลือก AIS คลิก Forward เลือก Plan ต่อได้เลย

หากคิดไม่ออก ให้เลือก Default Plan ครับ คลิก Forward ต่อ โปรแกรมจะสรุปข้อมูลดังภาพ

จากนั้นคลิก Apply ได้เลย

เจ้าตัว Wizard ก็จะสร้างการเชื่อมต่อให้ใหม่ และเชื่อมต่อ Internet ผ่านมือถือ ให้เราได้แล้ว เย้…. หวังว่าการเชื่อมต่อ Internet ผ่าน Bluetooth ของคุณกับ Ubuntu หรือ Suriyan จะใช้งานได้ง่ายขึ้นนะครับ :)