เริ่มต้นการเขียนโปรแกรม ไปที่เว็บ appinventor.mit.edu
คลิกเลือกที่ Invent สำหรับเริ่มต้นเข้าใช้งาน AppInventor
ทำการ Login เข้าสู่ระบบ โดยใส่ชื่อที่อยู่อีเมลล์และรหัสผ่าน ที่เราได้สมัครไว้แล้ว
สำหรับผู้เริ่มต้นใช้งานซึ่งยังไม่มี google account นั้น สามารถใช้ที่อยู่ของ gmail ในการเข้าใช้งานได้
***วิธีการสมัครเข้าใช้งาน AppInventor ดูได้จากเนื้อหาในบทความตอนต้นได้
สำหรับผู้เริ่มต้นใช้งานซึ่งยังไม่มี google account นั้น สามารถใช้ที่อยู่ของ gmail ในการเข้าใช้งานได้
***วิธีการสมัครเข้าใช้งาน AppInventor ดูได้จากเนื้อหาในบทความตอนต้นได้
การขออนุญาตในการเข้าถึงที่อยู่อีเมลล์ของเรา ให้เราคลิกเลือกที่อนุญาต
เริ่มต้นสร้างโปรเจ็คขึ้นมาใหม่ คลิกที่ New ตั้งชื่องานที่ต้องการ
ในที่นี้ผมตั้งชื่อโปรเจ็คผมว่า bluetooth_popxt
เริ่มต้นเข้าสู่หน้าต่างการออกแบบ ดังภาพ
เริ่มต้นออกแบบหน้าตาโปรแกรม
โดยจะเพิ่มเครื่องมือตัวแรก คือ ListPicker
หลังจากนั้นเพิ่มเครื่องมือ Button เข้ามาอีก
5 ตัว ปรับแต่งแก้ไขหน้าตาตามใจชอบ ตัวอย่าง
เลือกเครื่องมือที่ต้องการปรับแต่ง
ที่เมนู Properties เลือกที่คุณสมบัติ FontSize เพื่อปรับขนาดตัวอักษรเลือกที่
Text เพื่อปรับเปลี่ยนข้อความใหม่ เลือกที่ TextAlignment เพื่อปรับตำแหน่งของข้อความ
ปรับเปลี่ยนชื่อของเครื่องมือต่างๆเพื่อให้ง่ายต่อการจดจำและสะดวกในการเขียนโปรแกรมคำสั่ง ทำได้ดังนี้คือ เลือกเครื่องมือที่ต้องการเปลี่ยนชื่อ คลิกที่ Rename แก้ไขชื่อใหม่ที่ต้องการให้สอดคล้องกับชนิดและการทำงานของเครื่องมือนั้นๆ
แล้วคลิกที่ OK
ทำการเปลี่ยนชื่อเครื่องมือที่เหลือทั้งหมด
เครื่องมือที่สำคัญที่ทำหน้าที่เชื่อมต่อสื่อสารข้อมูลผ่านบลูทูธคือ
BluetoothClient
เปิดหน้าต่างโปรแกรม Blocks
Editor ขึ้นมา เพื่อทำการเขียนคำสั่งให้กับโปรแกรม
หน้าตาของ Blocks Editor ก่อนเริ่มต้นเขียนคำสั่งโปรแกรม
เริ่มต้นเขียนโค้ดคำสั่งสำหรับทำหน้าที่เชื่อมต่อบลูทูธ
ชุดคำสั่งที่คอยทำหน้าที่เชื่อมต่อบลูทูธ ของโทรศัพท์มือถือกับอุปกรณ์บลูทูธอื่นๆ
เขียนโค้ดโปรแกรมดังนี้
คำอธิบายโปรแกรม
หลังจากที่ปุ่มกดแต่ละปุ่มทำงาน จะมีการส่งค่าข้อมูล ตามที่ได้กำหนดไว้ออกไป ด้วยคำสั่ง BTClient.Sent1ByteNumber > ตามด้วยข้อมูลที่มีชนิดของข้อมูลเป็น Byte ส่งออกไปในที่นี้คือ 1
หน้าตาโปรแกรมบนมือถือที่ได้ออกแบบไว้สำหรับควบคุมการทำงานของหุ่นยนต์
popbot xt
คำอธิบาย
โปรแกรมออกแบบมาเพื่อใช้เป็นตัวอย่างในการส่งข้อมูแบบง่าย โดยจะประกอบไปด้วย
- ปุ่ม Connect สำหรับเชื่อมต่อกับอุปกรณ์บูลทูธ ในที่นี้ก็คือหุ่นยนต์ popbot xt ที่ได้ติดตั้งโมดูลสื่อสารไร้สายบลูทูธ ชื่อว่า BlueSticks
- ปุ่ม Disconnect สำหรับยกเลิกการเชื่อมต่อ
- ปุ่ม Motor 1 ON สำหรับส่งข้อมูลค่า 1 ออกไป เพื่อให้มอเตอร์ตัวที่ 1 ของหุ่นยนต์ popxt ทำงาน
- ปุ่ม Motor 1 OFF สำหรับส่งข้อมูลค่า 2 ออกไป เพื่อให้มอเตอร์ตัวที่ 1 ของหุ่นยนต์ popxt หยุดทำงาน
- ปุ่ม Motor 2 ON สำหรับส่งข้อมูลค่า 3 ออกไป เพื่อให้มอเตอร์ตัวที่ 2 ของหุ่นยนต์ popxt ทำงาน
- ปุ่ม Motor 2 OFF สำหรับส่งข้อมูลค่า 4 ออกไป เพื่อให้มอเตอร์ตัวที่ 2 ของหุ่นยนต์ popxt หยุดทำงาน
ติดตั้ง BlueSticks
โมดูลสำหรับการเชื่่อมต่อบลูทูธ เข้ากับบอร์ดหุ่นยนต์ POPXT
RX ที่ตัวโมดูล BlueSticks ต่อกับ TX ของบอร์ดหุ่นยนต์ POPXT
TX ที่ตัวโมดูล BlueSticks ต่อกับ RX ของบอร์ดหุ่นยนต์ POPXT
Source Code โปรแกรมสำหรับ POPBOT-XT
โดยเริ่มต้นทำการดึงไฟล์ไลบารี่ popxt.h เข้ามาใช้งาน ประกาศค่าบอดเรด ที่จะใช้ในการเชื่อมต่อ ในที่นี้ตั้งเป็น 9600 ซึ่งโดยปกติจะเป็นค่าดีฟอล ซึ่งอาจจะไม่ต้องใส่ก็ได้
Code POPBOT XT
#include <popxt.h> void setup() { glcdClear(); Serial.begin(9600); Serial1.begin(9600); } void loop() { if (Serial1.available()) { int inByte = Serial1.read(); Serial.println(inByte, DEC); if(inByte==1) { motor(1,50); sleep(100); } else if(inByte==2) { motor(1,0); sleep(100); } else if(inByte==3) { motor(2,50); sleep(100); } else if(inByte==4) { motor(2,0); sleep(100); } } }
- คำสั่ง Serial.begin(9600) เป็นการสั่งให้มีการส่งข้อมูลผ่านทาง Serial Port ด้วยอัตราความเร็ว 9600 bit /sec *** การสื่่อสารระหว่างบอร์ดไมโครคอนโทรลเลอร์กับคอมพิวเตอร์
- คำสั่ง Serial1.begin(9600) เป็นการสั่งให้มีการส่งข้อมูลผ่านทาง Serial Port ที่ 1 ด้วยอัตราความเร็ว 9600 bit /sec ***การสื่อสารระหว่างบอร์ดไมโครคอนโทรลเลอร์กับโทรศัพท์มือถือ
- Serial1.available() ชุดคำสั่งใช้ตรวจสอบข้อมูลว่ามีข้อมูลถูกส่งเข้ามาหรือไม่
- Int inByte ประกาศตัวแปรชื่อ inByte มีชนิดข้อมูลเป็น integer
- Serial.read() อ่านค่าข้อมูลที่ถูกส่งเข้ามาแล้วไปเก็บไว้ที่ตัวแปร inByte
- Serial.Println() แสดงผลข้อมูลที่รับเข้ามาผ่านทางซีเรียลพอร์ต ซึ่งสามารถดูได้จากการเปิดหน้าต่าง Terminal ที่อยู่บริเวณมุมด้านขวาของโปรแกรม Arduino
- If(inByte==1) ตรวจสอบข้อมูลที่เข้ามาว่าเป็น 1 ใช่หรือไม่ ถ้าใช่ให้ทำงานชุดคำสั่งในเครื่องหมายปีกกา ในที่นี่เราจะสั่งให้มอเตอร์ตัวที่หนึ่งของหุ่นยนต์หมุน แต่ถ้าข้อมูลที่ส่งเข้ามาไม่ตรงกับเงื่อนไขที่ได้ทำการประกาศไว้นั้น โปรแกรมจะทำการตรวจสอบเงื่อนไขต่อไปด้วยคำสั่ง else if
**** บทความในตอนนี้เป็นตัวอย่างการเขียนโปรแกรมบนมือถือแอนดรอย์แบบง่ายๆ เพื่อใช้เชื่อมต่อกับอุปกรณ์ฮาร์ดแวร์ภายนอกได้ ซึ่งจะช่วยทำให้ผู้เริ่มต้นที่สนใจในการเขียนโปรแกรมบนมือถือ นำไปประยุกต์ใช้งานต่อไป
ไม่มีความคิดเห็น:
แสดงความคิดเห็น