หน้าเว็บ

วันจันทร์ที่ 25 สิงหาคม พ.ศ. 2557

Bluetooth Control with AppInventor2 EP.2

สร้างโปรแกรมควบคุม IPST-SE แบบไร้สายผ่าน Android ด้วยโมดูลบลูทูธและซอฟต์แวร์ AppInventor2 ตอน 2

การต่อโมดูล BlueStick เข้ากับบอร์ด IPST-SE




โมดูล BlueStick ควรใช้ร่วมกับ ADX-BTSTICK จะได้ไม่ต้องกังวลเรื่องการต่อกลับขั้ว สำหรับการต่อสายเพื่อสื่อสารอนุกรม ขาส่ง(TxD) จะต้องต่อขารับ (RxD) ถึงจะรับส่งข้อมูลกันได้ ดังรูป

การเขียนโปรแกรมรับค่าจาก BlueStick

   สำหรับบอร์ด IPST-SE , POP-XT และ Robo-Creator จะมีฟังก์ชั่นสำหรับการสื่อสารอนุกรม ใช้ชื่อว่า UART โดยมีคำสั่งใช้งานบ่อยๆ ดังนี้
1. uart1()  สำหรับส่งข้อความออกไป
2. uart1_available() สำหรับดูผลว่ามีข้อมูลถูกส่งเข้ามาหรือไม่
3. uart1_getkey() สำหรับอ่านค่าข้อมูลที่ถูกส่งมา

ตัวอย่างโปรแกรม รับค่าและแสดงผลที่ GLCD

#include <ipst.h>
byte x;
void setup(){
  setTextSize(2);
  glcd(0,0,"You Press:");
  setTextSize(3);
}
void loop(){
  if(uart1_available()){
    x=uart1_getkey();
    if(x==1){
      glcd(1,0,"ON ");
    }
    else if(x==0){
      glcd(1,0,"OFF");
    }
  }
}

การทำงานของโปรแกรม
  ส่วน void setup() แสดงข้อความ "You Press"
  ส่วน void loop() จะวนตรวจสอบว่ามีข้อมูลถูกส่งมาหรือไม่ ถ้ามีให้เก็บค่าข้อมูลไว้ที่ตัวแปร x จากนั้นเอามาตรวจสอบว่าตัวแปร x มีค่าเท่ากับ 1 หรือไม่ ถ้าใช่แสดงข้อความ ON ที่หน้าจอ GLCD   ถ้าตรวจสอบแล้วมีค่าเท่ากับ 0 ให้แสดงข้อความ OFF ที่หน้าจอ GLCD
สำหรับการควบคุมกรณีที่เป็นหุ่นยนต์ สามารถปรับปลี่ยนชุดคำสั่งจาก GLCD เป็นการขับเคลื่อนมอเตอร์ได้


การทดสอบผลการทำงานของ App ที่เขียนขึ้น

หลังจากที่ฝั่ง IPST-SE ดาวน์โหลดโปรแกรมและพร้อมทำงานแล้ว จะเห็นโมดูล BlueStick มีไฟติดกะพริบสีแดง ซึ่งหมายถึงพร้อมรอรับการจับคู่

ถ้าเป็นการจับคู่ครั้งแรกจะต้อง ไปที่ ตั้งค่า > บลูทูธ ของแอนดรอยด์ก่อน จากนั้นกดค้นหา เพื่อหาโมดูล BlueStick ซึ่งอาจจะตั้งชื่อเป็น Linvor หรือชื่ออื่นๆ (สามารถปรับตั้งชื่อได้ด้วยบอร์ด UCON-2200)


ให้คลิกเลือก อย่างในตัวอย่างผู้เขียนตั้งชื่อว่า BlueRover0002 ให้เลือกเพื่อจับคู่จากนั้น ใส่ PIN ซึ่งในที่นี้เลือกใช้ 1234 เป็นค่ามาตรฐาน



อุปกรณ์ BlueStick จะอยู่ในรายชื่อของอุปกรณ์ที่จับคู่แล้ว


ที่หน้าจอหลักของโปรแกรม ซึ่งตอนนี้มีปุ่ม วางอยู่ 3 ปุ่ม ให้เลือกปุ่ม Connect เพื่อเปิดหน้าต่างเชื่อมต่อ จากนั้นเลือกอุปกรณ์ที่ต้องการเชื่อมต่อดังรูป


เมื่อเลือกแล้ว LED สีแดงที่ BlueStick จะติดค้าง เมื่อกดสวิตช์ ON ที่หน้าจอ ข้อความที่ GLCD จะแสดงข้อความ "ON" ส่วนเมื่อกดสวิตช์ OFF ที่หน้าจอ ข้อความที่ GLCD จะแสดงข้อความ "OFF"





การติดตั้ง App ไปที่แอนดรอยด์


เมื่อทดสอบโค้ดเป็นที่พอใจแล้ว ต้องการติดตั้ง App ไปยังแอนดรอยด์ให้ไปที่เมนู Build เลือกทำได้ 2 ทาง


วิธีที่ 1  App (provide QR code for .apk) วิธีนี้จะมีหน้าต่างแสดง QR code สำหรับลิงก์ที่จะดาวน์โหลดไฟล์ .apk สำหรับการติดตั้งซึ่งจะมีอายุให้ใช้ได้ 2 ชั่วโมงเท่านั้น 

ถ้าใช้วิธีนี้ให้เปิดโปรแกรม MIT AI2 Companion เพื่อ scan QR code นี้เพื่อติดตั้งไฟล์ลงเครื่องได้ทันที


วิธีที่ 2 เลือกบันทึกไฟล์ลงคอมพิวเตอร์ แล้วค่อยคัดลอกใส่เครื่องไปติดตั้ง ซึ่งอาจจะไปติดตั้งเครื่องอื่นๆก็ได้


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




วันเสาร์ที่ 23 สิงหาคม พ.ศ. 2557

Bluetooth Control with App Inventor 2 EP.1

สร้างโปรแกรมควบคุม IPST-SE แบบไร้สายผ่าน Android ด้วยโมดูลบลูทูธและซอฟต์แวร์ App Inventor 2 ตอน 1


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


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

เปิดใช้งานโปรแกรม App Inventor 2


1.  เข้าไปที่ http://appinventor.mit.edu/  จากนั้นกด Create เพื่อเข้าสู่หน้าต่างการสร้าง Application

2. ถ้ายังไม่ได้ Login บัญชี Google ก็ต้อง Login ก่อน


3. จะมีหน้าต่างแสดงคำแนะนำวิธีการเชื่อมต่อกับแอนดรอยด์ ให้กด Continue ข้ามไปก่อน

4. มีหน้าต่างแสดงข้อความต้อนรับ ก็ให้กดที่ว่างๆ เข้าสู่หน้าหลักของการสร้าง Project


5. กดเลือก New Project เพื่อสร้าง Application ใหม่ขึ้นมา

6. กำหนดชื่อในที่นี้ใช้ชื่อว่า BlueStick  แล้วกดปุ่ม OK 

7. จะปรากฏหน้าต่างสำหรับการวางหน้าจอที่เรียกว่า Designer เป็นที่สำหรับวางปุ่มหรือข้อความสำหรับติดต่อผู้ใช้

8. และหน้าจอสำหรับการเขียนโค้ดที่เรียกว่า Blocks

เชื่อมต่อ App Inventor กับแอนดรอยด์ มี 3 แบบให้เลือก

  แบบที่ 1 เชื่อมต่อด้วย WIFI (เราจะเลือกใช้วิธีนี้)
  แบบที่ 2 เชื่อมต่อผ่านซอฟต์แวร์อีมูเลเตอร์
  แบบที่ 3 เชื่อมต่อตรงผ่านสาย USB


ขั้นตอนการเชื่อมต่อผ่าน WIFI


1. ดาวน์โหลดและติดตั้งโปรแกรม MIT AI2 Companion จาก Play Store ลงบนอุปกรณ์แอนดรอยด์  
2. ให้คอมพิวเตอร์และแอนดรอยด์ใช้ WIFI ชุดเดียวกัน

3. ที่คอมพิวเตอร์หน้าต่างของ App Inventor 2 ให้เลือกเชื่อมต่อแบบ AI Companion 



4. จะมีหน้าต่างแสดง QRCODE และเลขรหัสดังรูป


5. ที่แอนดรอยด์ให้เปิดแอพ MIT AI2 Companion  เลือกแสกน QRCODE หรือป้อนรหัสที่ปรากฏก็ได้


6. จากนั้นกด Connect หน้าจอแอนดรอยด์จะมีลักษณะเหมือนกับหน้าจอออกแบบของ App Inventor แล้ว


การเขียนโปรแกรมเพื่อติดต่อกับโมดูลบลูทูธ

ขั้นตอนออกแบบ


1. ลากบล็อก ListPicker มาวาง

2. ในส่วน Properties หัวข้อ Text เปลี่ยนชื่อเป็น Connect

3. ลากปุ่ม Button มาวางอีกสองปุ่ม เปลี่ยนชื่อเป็น ON และ OFF


4. ไปที่หัวข้อ Connectivity เลือก BluetoothClient1 มาวาง

ขั้นตอนการเขียนโค้ด

1. เลือกเปลี่ยนหน้าต่างไปที่หน้า Blocks


2.ลากบล็อกชุดแรกสำหรับเรียกรายการของอุปกรณ์บลูทูธมาแสดง


3.ลากบล็อกชุดที่ 2 หลังจากเลือกรายการจาก List แล้ว ให้ Connect บลูทูธจากแอดเดรสที่เลือก

4. ชุดบล็อกชุดที่ 3 เมื่อกดปุ่ม ON ให้ส่งค่าเลข 1 ออกไปยังบลูทูธ

5. ชุดบล็อกชุดที่ 4 เมื่อกดปุ่ม OFF ให้ส่งค่าเลข 0 ออกไปยังบลูทูธ

6. รวมโค้ดทั้งหมดก็จะเป็นดังนี้

ติดตามอ่านตอน 2 ได้เลยครับ


วันจันทร์ที่ 4 สิงหาคม พ.ศ. 2557

SSO-1 :Solid State AC Outlet

เต้ารับแบบโซลิดสเตตรีเลย์ควบคุมได้

 

SSO-1 :Solid State AC Outlet เป็นปลั๊กไฟที่ทำหน้าที่เปิดปิดอุปกรณ์ไฟฟ้าด้วยการควบคุมจากสัญญาญลอจิก อาจจะมาจากบอร์ดไมโครคอนโทรลเลอร์หรือวงจรอิเล็กทรอนิกส์ตัวใดก็ได้  โดยอุปกรณ์ที่เป็นหัวใจหลักก็คือ Solid State Relay หน้าตาดังแสดงในรูปที่ 1 และนำมาติดตั้งเข้ากับชุดปลั๊กไฟและสวิตช์เพื่อให้ใช้งานได้สะดวกและปลอดภัยกับการต่ออุปกรณ์ไฟฟ้าที่มีแรงดัน 220V

 
รูปที่ 1 หน้าตาของโซลิดสเตตรีเลย์เบอร์ S202S02
รูปที่ 2 โครงสร้างภายในของโซลิดสเตตรีเลย์

เบื้องต้นเกี่ยวกับโซลิดสเตตรีเลย์

โซลิดสเตตรีเลย์ คือรีเลย์ที่ไม่มีกลไกเคลื่อนไหว ภายในจะเป็นอุปกรณ์สารกึ่งตัวนำทั้งหมด ประกอบด้วย LED อินฟราเรดและออปโต้ไตรแอก ดังแสดงโครงสร้างภายในตามรูปที่ 2 สัญญาณควบคุมแรงดันตํ่าจะถูกส่งมายัง LED อินฟราเรด เมื่อ LED ทำงานจะขับแสงไปยังออปโต้ไตรแอกเพื่อให้นำกระแสให้วงจรส่วนไฟสูงครบวงจร  ซึ่งการทำงานเช่นนี้แรงดันฝั่งไฟสูงและไฟต่ำจะแยกออกจากกันอย่างเด็ดขาด จะพบอุปกรณ์แบบนี้ ในเครื่องจักรอุตสาหกรรม แต่ปัจจุบันมีการนำมาใช้ในเครื่องใช้ไฟฟ้าในบ้าน อาทิเครื่องซักผ้าอัตโนมัติ เป็นต้น  สำหรับโซลิดสเตตรีเลย์ที่เห็นในรูปสามารถสั่งซื้อได้จาก บริษัทอินโนเวตีฟ เอ็กเพอริเมนต์ จำกัด (inex.co.th)

คุณสมบัติของ Solid State AC Outlet

  • ควบคุมอุปกรณ์ไฟฟ้า 220V กำลังสูงสุด 600W
  • มีสวิตช์สำหรับเปิดปิดโดยตรงได้ ในกรณีไม่ต้องการการควบคุม
  • ใช้สัญญาณการเปิด/ปิดด้วยลอจิก 0V และ 5V
  • มี LED แสดงสถานะการทำงานของรีเลย์
  • ความยาวสายควบคุม 50 เซนติเมตร 
  • ความยาวปลั๊กไฟ 100 เซนติเมตร

รูปที่ 3 วงจรแสดงการเชื่อมต่อปลั๊กไฟ Solid StateAC Outlet

 

การทำงานของ Solid State AC Outlet

  จากรูปที่ 3  จะเห็นอุปกรณ์ที่ต่อเป็นวงจรไม่ซับซ้อนมากนัก เริ่มจากสายสัญญาณควบคุม 5V จะถูกต่อผ่านตัวต้านทาน 1k เพื่อให้ LED ภายในของ Solid State Relay ทำงานส่งแสงไปกระตุ้นให้ต่อขาเอาต์พุตเข้าด้วยกัน ทำให้กระแสไหล 220V ไปที่ปลั๊กไฟได้  โดยในวงจรนี้ได้ต่อสวิตช์เปิด/ปิดตรง เพื่อใช้เปิด/ปิดในกรณีที่ไม่ต้องการควบคุมจากไมโครคอนโทรลเลอร์ได้ด้วย ขณะที่สั่งให้ ปลั๊กไฟทำงาน จะมี LED1 ต่อไว้เพื่อแสดงการทำงานด้วย โดยวงจรเมื่อประกอบลงกล่องเรียบร้อยแล้วจะเป็นดังรูปที่ 4

รูปที่ 4 รูปร่างหน้าตาของ Solid State AC Outlet เมื่อประกอบเสร็จ

 

การต่อใช้งาน Solid State Plug กับ IPST-SE

    การควบคุม Solid State Plug ทำได้ง่ายมาก โดยถ้าส่งสถานะลอจิก “1” จาก IPST-SE อุปกรณ์ไฟฟ้าที่ต่อพ่วงด้วยจะทำงาน ถ้าส่งสถานะลอจิก “0” อุปกรณ์ที่ต่อพ่วงด้วยจะไม่ทำงาน สำหรับอุปกรณ์ไฟฟ้าที่ต่อพ่วงด้วยจะต้องมีกระแสไม่เกิน 600W จะเป็นหลอดไฟ พัดลมหม้อหุงข้าวหรือคอมพิวเตอร์ก็ได้

รูปที่ 5 ตัวอย่างการเชื่อมต่อเพื่อควบคุมจากบอร์ด IPST-SE

 

ตัวอย่าง พัดลมทำงานเมื่ออุณหภูมิสูงกว่าที่ตั้งไว้

    ตัวอย่างนี้จะดัดแปลงตัวอย่าง MCP9701 Thermometer ในตัวอย่างของ IPST-SE ซึ่งนอกจากจะแสดงค่าอุณหภูมิที่หน้าจอแล้ว ให้เปิดพัดลมเมื่ออุณหภูมิสูงกว่า 25 องศาด้วย และจะปิดพัดลมเมื่ออุณหภูมิต่ำกว่า 25 องศาโดยตัวอย่างโค้ดแสดงในโปรแกรมที่ 1 สำหรับการต่ออุปกรณ์แสดงในรูปที่ 5 โดยจะต่อโมดูลวัดอุณหภมิ MCP9701 ไว้ที่ขา 24/A0 ส่วน Solid State Plug ต่อไว้ที่ขา 17

#include <ipst.h>         
int val,i;                
float Temp;               
void setup(){
  glcdClear();            
  setTextSize(2);         
  out(17,0);
}
void loop(){
  glcd(1,0,"FAN CONTROL");
  val=0;                  
  for (i=0;i<20;i++){
    val = val+analog(0);  
  }
  val = val/20;
  if(val>182){
    out(17,1);
    glcd(5,1,"FAN ON ");
  }
  else{
    out(17,0);
    glcd(5,1,"FAN OFF");
  }
  Temp = (float(val)*0.25) - 20.51 ; 
  glcd(3,1,"%f C",Temp);        
}

โปรแกรมที่ 1 สำหรับพัดลมทำงานเมื่ออุณหภูมิสูงกว่าค่าที่ตั้งไว้