วันพฤหัสบดีที่ 18 ตุลาคม พ.ศ. 2555

การควบคุมหุ่นยนต์ POP-BOT XT ด้วยแอนดรอยด์ผ่านบลูทูธด้วย BlueStick

เนื้อหาของบทความนี้คัดลอกมาจาก facebook ของบริษัท Innovetive Experiment เห็นว่าน่าสนใจเลยนำมาฝากครับ  ดูรายละเอียดได้ที่ facebook ของ inex นะครับ 
www.inex.co.th

โมดูล BlueStick เป็นโมดูลบลูทูธที่แปลงสัญญาณออกมาเป็นอนุกรม มีขา TxD ส่งข้อมูล ขา RxD รับข้อมูล ซึ่งสามารถนำโมดูลนี้ไปสื่อสารไร้สายกับคอมพิวเตอร์หรือโทรศัพท์สมาร์ทโฟนต่างๆ ที่มีโปรแกรมสื่อสารอนุกรมได้ ในที่นี้จะยกตัวอย่างการเชื่อมต่อกับ Android ครับ

อุปกรณ์ที่ต้องใช้

1. หุ่นยนต์ POP-BOT XT http://goo.gl/avAEE



2. โมดูล Blue stick http://goo.gl/FP017
3. ADX-BTstick http://goo.gl/MUjS9 สำหรับติดตั้งโมดูล BlueStick จุดเชื่อมต่อ TxD และ RxD สามารถเชื่อมต่อกับคอนเน็กเตอร์ JST ของ INEX ได้
3. โทรศัพท์เคลื่อนที่ระบบปฏิบัติการแอนดรอยด์


ติดตั้งโมดูล BlueStick เข้ากับหุ่นยนต์ POP-BOT XT
ให้นำ ADX-BTStick ยึดติดเข้ากับโครงสร้างของหุ่นยนต์ POP-BOT-XT จากนั้นเสียบสัญญาณ จากขั้ว TxD ของ ADX-BTStick เข้ากับขั้ว RxD ของ POP-XT และ ขั้ว RxD ของ ADC-BTStick เข้ากับขั้ว TxD ของ POP-XT




ตัวอย่างโปรแกรม



#include <popxt.h>

char key;
void setup(){
glcdMode(1);
setTextSize(2);
glcd(1,1,"Press OK");
sw_ok_press();
glcdClear();
}
void loop(){ if(uart1_available()) { key=uart1_getkey();
if(key==0x38){
glcd(1,1,"Forward ");
fd(50);
}
else if (key==0x32){
glcd(1,1,"Backward ");
bk(50);
}
else if (key==0x34){
glcd(1,1,"Spin Left ");
sl(50);
}
else if (key==0x36){
glcd(1,1,"Spin Right");
sr(50);
}
}
else {
glcd(1,1,"Motor Stop");ao();
}
}


การทำงานของโปรแกรม

POPBOT-XT มีไลบรารี่สำหรับการสื่อสารอนุกรมไว้ให้ใช้งานเรียบร้อยแล้ว โดยใช้คำสั่ง uart สำหรับการสื่อสารอนุกรมผ่านสาย usb และ uart1 สำหรับการสื่อสารอนุกรมผ่านจุดต่อ JST บนบอร์ด POP-XT ซึ่งเราจะเลือกใช้ uart1 มาใช้งาน
การทำงานในเบื้องต้นจะตรวจสอบว่ามีการส่งข้อมูลจากบลูทูธเข้ามาหรือไม่ ถ้ามีการส่งเข้ามาก็ตรวจสอบว่าตรงกับค่าคีย์สำหรับการ เดินหน้า (0x38) ถอยหลัง (0x32) เลี้ยวซ้าย (0x34) หรือเลี้ยวขวา (0x36) หรือไม่ ถ้าใช่ก็เรียกคำสั่งสำหรับเดินหน้าถอยหลังเหล่านั้น โดยแสดงข้อความที่หน้าจอออกมาด้วย แต่ถ้าไม่มีการส่งข้อมูลออกมา จะมีคำสั่งให้หุ่นยนต์หยุดการเคลื่อนที่
การทดสอบในส่วนนี้สามารถใช้คอมพิวเตอร์โน๊ตบุ๊คที่มีบลูทูธ เขียนเชื่อมต่ออนุกรมกับหุ่นยนต์แล้วกดคีย์ตัวเลขเพื่อควบคุมหุ่นยนต์ได้เลย ผ่านโปรแกรม Terminal ต่างๆ

การเชื่อมต่อหุ่นยนต์กับมือถือ Android
ก่อนอื่นครับให้ไปดาวน์โหลดซอฟต์แวร์ BlueStick Control ใน Google Play กันก่อน โดยเข้าไปที่หน้า Google Play จากนั้นกดค้นหา "Bluestick" ดังรูป

การเชื่อมต่อหุ่นยนต์กับมือถือ Android
ก่อนอื่นครับให้ไปดาวน์โหลดซอฟต์แวร์ BlueStick Control ใน Google Play กันก่อน โดยเข้าไปที่หน้า Google Play จากนั้นกดค้นหา "Bluestick" ดังรูป

เข้าไปที่ BlueStick Control แลัวเลือกติดตั้ง



จะได้เป็น App BlueStick Control ดังรูป



เมื่อเปิดโปรแกรมเข้าไปจะพบหน้าต่างตัวเลือกสำหรับรูปแบบการควบคุม 2 รูปแบบคือ แบบกดที่หน้าจอ (Button Mode) หรือแบบโยกหน้าจอ Tilt โหมด ให้เลือกแบบ Button Mode ก่อนครับ




จะพบกับหน้าจอสีฟ้าดังรูป ให้กดไปที่รูปเฟืองมุมล่างด้านซ้ายเพื่อค้นหาและจับคู่กับโมดูล BlueStick

เมื่อพบโมดูล BlueStick ให้กดเลือกแล้วจะต้องป้อนรหัสผ่านเพื่อจับคู่ โดยปกติจะใช้ค่า 1234



นอกจากการควบคุมแบบ Button Mode แล้ว ยังสามารถเปลี่ยนเป็นโหมด Tilt Mode ได้จากแถวข้อความด้านล่าง


ทดสอบใช้งาน
เป็นไฟล์ YOUTUBE ครับติดตามได้ตามลิงก์เลยครับ
http://youtu.be/gy8bdeXMagA










3 ความคิดเห็น:

  1. ลองเขียนโปรแกรมแล้ว เดินไม่ต่อเนื่องครับ ต้องแก้ตรงไหนครับ

    ตอบลบ
  2. เนื่องจากไม่สามารถเห็นโค๊ดได้ทั้งฝั่งและส่ง คงต้องสอบถามจาก inex ที่เป็นเจ้าของโปรแกรมนะครับ
    https://www.facebook.com/innovativeexperiment

    ตอบลบ
  3. ดูโปรแกรมที่ผมเขียนหน่อยนะครับ ต้องการความช่วยเหลืออย่างมาก ขอบคุณล่วงหน้าครับ

    https://www.facebook.com/photo.php?fbid=359603144137591&set=o.101489329908680&type=1&theater

    ตอบลบ