Untitled Document

RS Components ช่วยให้คุณก้าวทันวิศวกรรม

คุณเป็นลูกค้าใหม่กับทาง RS Components หรือเปล่า?

ลงทะเบียนเพื่อรับข่าวสารล่าสุดเกี่ยวกับผลิตภัณฑ์เทคโนโลยีและโปรโมชั่น

Android Switch Interface

โดย Jos van Kempen

โทรศัพท์มือถือแอนดรอยด์ราคาถูกจะกลายเป็นอินเตอร์เฟสหรือรีโมตคอลโทรลระดับไฮเอนด์ที่เรานำมาใช้ควบคุมอุปกรณ์ควบคุมขนาดเล็ก ในบทความนี้ เราจะบอกให้คุณทราบว่า เราจะนำฟังก์ชั่นการสัมผัสและสวิตช์ไร้สายมาใช้ร่วมกับแผงวงจร Arduino และ Bluetooth Shield ได้อย่างไร

วงจรของอุปกรณ์ควบคุมขนาดเล็กส่วนใหญ่ที่ออกแบบมาเพื่อควบคุมเครื่องมือต่างๆ นั้น จะมีอินเตอร์เฟสไม่แบบใดก็แบบหนึ่ง อินเตอร์เฟสดังกล่าวมักจะประกอบไปด้วยปุ่ม ลูกบิด โมดูล LED และ LCD จำนวนมาก แต่หากคุณต้องการอินเตอร์เฟสที่ดีจริงๆ แล้วล่ะก็ คุณอาจจะเลือกใช้อินเตอร์เฟสแบบทัชสกรีนได้ ในกรณีนี้ รีโมตคอนโทรลอาจเป็นเครื่องมือที่มีประโยชน์ โดยเฉพาะสำหรับคนที่ไม่ต้องการเข้าไปกดปุ่มหรือสัมผัสโดยตรงกับอุปกรณ์ควบคุม อย่างไรก็ตาม อินเตอร์เฟส 'โก้หรู' ประเภทนี้มักจะมีราคาแพงและใช้งานยาก แต่ก็ไม่ได้เป็นเช่นนั้นเสมอไป ในบทความนี้ คุณจะได้พบกับอินเตอร์เฟสผู้ใช้งานที่น่าสนใจ พร้อมรีโมตคอนโทรลราคาไม่แพง และสามารถโปรแกรมได้อย่างง่ายดาย หากคุณมีสมาร์ทโฟนที่สามารถส่ง Bluetooth ได้อยู่ในมือ คุณสามารถนำโทรศัพท์มาดัดแปลงเป็นรีโมตคอนโทรลที่สวยงามได้ แผงวงจรของอุปกรณ์ควบคุมขนาดเล็กบางรุ่นจะติดตั้งเครื่องมือส่งสัญญาณ Bluetooth มาด้วย ในบทความนี้ เราจะใช้แผงวงจร Arduino ที่มี Bluetooth Shield (lTead ราคาประมาณ 15 ปอนด์) ที่มาพร้อมกับแผงขนาดเล็กด้านหลัง (I/O shield) ซึ่งออกแบบมาเพื่อบทความนี้โดยเฉพาะ

ฮาร์ดแวร์และซอฟต์แวร์อุปกรณ์ควบคุมขนาดเล็ก

แผง Bluetooth Shield จะติดตั้งกับแผงวงจร Arduino และสื่อสารผ่านอินเตอร์เฟส UART ใน Bascom คุณสามารถใช้คำสั่ง 'อินพุต' และ 'พิมพ์' เพื่อรับคำสั่งและส่งข้อมูลไปยังแผงวงจร Arduino ได้

เพื่อการนี้ เรายังได้พัฒนาแผงวงจรง่ายๆ ที่ประกอบด้วยรีเลย์หนึ่งคู่ พร้อม LED (เอาท์พุตแบบ ดิจิตัล), เอาท์พุต PWM พร้อม FET (เอาท์พุตแบบ 'อนาล็อก'), สวิตช์ (อินพุตแบบดิจิตัล) และเทอร์มิสเตอร์ NTC สำหรับใช้เป็นเซ็นเซอร์อนาล็อก (อินพุตแบบอนาล็อก) แผนผังวงจรที่แสดงในภาพประกอบ 1 และผังแผ่นวงจรพิมพ์ของวงจรนี้จะแสดงไว้ในภาพประกอบ 2 ซึ่งสามารถนำมาใช้ทดลองกับการสื่อสารทุกรูปแบบระหว่างสมาร์ทโฟนแอนดรอยด์กับแผงวงจร Arduino ที่สื่อสารด้วย Bluetooth ส่วนรีเลย์ สวิตช์ และเซ็นเซอร์ทั้งหมดจะอยู่บนขั้วต่อ K9

รายการชิ้นส่วน
รีซิสเตอร์ หมายเลขสินค้า RS
R1,R2,R3 = 560Ω 707-7644
R4 = 100Ω 707-7587
R5,R6 = 4.7Ω 707-7489
R7 = 10kΩ 707-7745
R8,R9 = 1kΩ 707-7666
สารกึ่งตัวนำ หมายเลขสินค้า RS
D1,D2 = 1N4148 670-8858
LED1 = LED, เขียว, 5mm 255-8472
LED2 = LED, แดง, 5mm 826-802
LED3 = LED, เหลือง, 5mm 255-8450
T1,T2= BC547C 545-2248
T3 = BS170 671-4736
อื่นๆ หมายเลขสินค้า RS
K3,K4 = ขั้วต่อหัวเข็มแบบ 8 เข็ม 668-9533
K5,K6 = เต้าเสียบขั้วต่อหัวเข็มแบบ 6 เข็ม 668-9769
K7,K8 = เต้าเสียบขั้วต่อหัวเข็มแบบ 8 เข็ม 668-9772
K9 = ขั้วต่อหัวเข็มแบบ 10 ทาง 668-9779
RE1,RE2 = รีเลย์ขนาดเล็ก 5V (เช่น MT2-C93401 เชื่อมต่อแบบ TE หรือ G5V-2-H1 ชนิด OMRON) 619-2981
237-5328
S1 = ปุ่มกดที่ทำให้เกิดการสัมผัส (เช่น B3F-1000) 686-6847
PCB # 120075-1 (ดู [1])


ภาพประกอบ 1 แผนผังของแผง I/O Shield ประกอบด้วย LED และรีเลย์จำนวนหนึ่งคู่ เทอร์มิสเตอร์ NTC ปุ่มกด และเอาท์พุต PWM พร้อม FET และสัญญาณ LED


ภาพประกอบ 2 แผนผังออกแบบเพื่อให้ขั้วต่อสามารถต่อเข้ากับแผง Arduino มาตรฐานได้

การทำงานของซอฟต์แวร์อุปกรณ์ควบคุมขนาดเล็ก (ซึ่งเขียนใน Bascom) เป็นดังนี้: ลูป (Loop) จะตรวจสอบว่าได้รับอักขระหรือไม่ หาก Arduino ได้รับอักขระ 'R' เอาท์พุต D11 จะเปิดใช้งาน (LED1 สว่างขึ้น และมีการส่งพลังงานไปที่รีเลย์ RE1 ) แต่หากได้รับอักขระ 'r' LED1 และ RE1 ที่ถูกปิดพลังงาน ทั้งนี้ เอาท์พุต D13 และ LED หลอดที่สอง รวมถึงรีเลย์จะทำงานเหมือนกัน แต่จะตอบสนองต่ออักขระ 'O' และ 'o' แต่หากได้รับอักขระ 'P' (ย่อมาจาก 'PWM') ชุดคำสั่ง 'อินพุต' จะรอค่า (สมาร์ทโฟนจะต้องส่งอักขระ '\r\n' หลังค่านี้) และค่านี้จะใช้ในการขับเอาท์พุต PWM FETT3 จะมีพิกัดสูงสุด 60V/0.5A ส่วน LED3 จะแสดงระดับของ PWM นอกจากนี้ ค่าที่เซ็นเซอร์เทอร์มิสตอร์ R9 วัดได้จะถูกพิมพ์ด้วยรูปแบบ 'T;adc(0);t' ระดับสัญญาณที่อินพุต D7 ซึ่งเชื่อมต่อกับปุ่มกด S1 จะพิมพ์เป็นอักขระ 'G' หากระดับสัญญาณสูง ('1') และเป็นตัว 'g' หากระดับสัญญาณต่ำ('0') อินเตอร์เฟสจะถูกกำหนดค่าอัตราข้อมูลมาตรฐานที่ 9600 บอด ซึ่งหมายความว่า ใช้เวลารอไม่นาน (ประมาณ 30-40 วินาที) หลังจากที่ส่งค่าไปแล้ว

ซอฟต์แวร์ที่จำเป็น

ซอฟต์แวร์ต่อไปนี้จำเป็นต้องใช้ในการโปรแกรม แอพพลิเคชั่นของสมาร์ทโฟนแอนดรอยด์และสามารถดาวน์โหลดได้ฟรี:

  1. ภาษา Java ที่ใช้ในการโปรแกรม ดาวน์โหลด Java Development Kit (JDK) ได้จากเว็บไซต์ของ Oracle [2]
  2. Android Software Development Kit (SDK) สามารถดาวน์โหลดได้ที่ [3]
  3. ดาวน์โหลดปลั๊กอิน ADT สำหรับ Eclipse ได้จากไซต์เดียวกัน และจดบันทึกชื่อโฟลเดอร์ที่เก็บปลั๊กอินเอาไว้
  4. เราใช้ปลั๊กอิน Eclipse Classic 3.6.2 เป็น Integrated Development Environment (IDE) สามารถดาวน์โหลดได้จาก [4] (หมายเหตุ: ปลั๊กอินแอนดรอยด์ล่าสุดขณะที่กำลังเขียนบทความนี้คือ ADT12 ซึ่งใช้งานร่วมกับ Eclipse 3.7 ไม่ได้)
  5. หลังจากติดตั้ง Eclipse แล้ว คุณจะต้องติดตั้งปลั๊กอินแอนดรอยด์ด้วย (คลิก Help l Install new software l Archive) เลือกไฟล์ซิป ADT และป้อนชื่อ 'Android' จากนั้นไปที่ Windows l Android SDK and AVD Manager เลือก New (Virtual Device) จากนั้น เลือก Gingerbread สำหรับเวอร์ชัน 2.3.3 (หรือ Samsumg_GIO หรืออื่นๆ ที่คล้ายคลึงกัน) เพื่อที่คุณจะได้จำลองโปรแกรมบนเครื่องพีซีโดยไม่ต้องใช้สมาร์ทโฟน ถ้าจำเป็นต้องทำเช่นนั้น
  6. ดาวน์โหลดโฟลเดอร์ที่มีตัวอย่างอินเตอร์เฟส Bluetooth จาก [1] แต่อย่าวางไว้ในส่วนทำงานของ Eclipse

อินเตอร์เฟส Bluetooth

ซอฟต์แวร์ที่ช่วยให้อุปกรณ์ Bluetooth ค้นหาอุปกรณ์ Bluetooth อื่น สร้างคอนแท็ค และแลกเปลี่ยนข้อความ มักจะเป็นซอฟต์แวร์ซับซ้อน แต่โชคดีที่เรามีตัวอย่างซอฟต์แวร์มาพร้อมกับ Andriod SDK แต่ที่โชคร้ายก็คือ มันใช้งานกับอุปกรณ์ Bluetooth หลายตัวได้ไม่ดีนัก เราสามารถดาวน์โหลดไฟล์ทดแทนบางไฟล์(BluetoothRfcommClient.java) ได้บนอินเตอร์เน็ต ซึ่งหลังจากที่เราเปลี่ยนไฟล์ดังกล่าวแล้ว ปัญหานี้จะหมดไป (ดู [5] และ [6]) ปัจจุบัน คุณสามารถใช้ซอฟต์แวร์นี้สร้างอินเตอร์เฟสของตัวเองขึ้นมา หลังจากเปิด Eclipse คุณจะเข้าไปเลือก File l New l Android Project l เพื่อสร้างซอฟต์แวร์โครงการใหม่ขึ้นมาได้ (อาจอิงตามตัวอย่าง) แต่ในกรณีที่คุณมีโครงการซอฟต์แวร์ที่ต้องการจะนำเข้าไปยังส่วนพื้นที่ทำงานของ Eclipse ให้เลือก File l Import.. l Existing Projects in Workspace โดยจะต้องทำเครื่องหมายที่ Copy project into workspace มิเช่นนั้นโครงการซอฟต์แวร์เดิมจะถูกเขียนทับลงไป บราซ์เพื่อไปยังโฟลเดอร์ที่คุณวางโครงการซอฟต์แวร์ BluetoothInterface ที่ดาวน์โหลดมา คุณจะเห็นไฟล์ .java และ .xml มากมายในโครงสร้างไฟล์(ภาพประกอบ 3) คุณอาจต้องคลิกโฟลเดอร์ที่เกี่ยวข้องเพื่อดูไฟล์เหล่านั้น แต่ไฟล์ที่เราสนใจคือ BluetoothChat.java (โปรแกรมหลัก), main.xml (อินเตอร์เฟสหน้าจอสมาร์ทโฟน) และ string.xml (ระบุตัวแปรที่ใช้ในอินเตอร์เฟส)


ภาพประกอบ 3 โครงสร้างไฟล์ของบลูทูธอินเตอร์เฟส

การใช้งานอินเตอร์เฟส

ดับเบิลคลิกที่ไฟล์ main.xml เพื่อแสดงอินเตอร์เฟสหน้าจอสมาร์ทโฟน (ดูภาพประกอบ 4) แถบที่อยู่ด้านล่างของหน้าจอสามารถใช้สับเปลี่ยนระหว่างแผนผังกราฟิกและรหัสที่สร้างขึ้นโดยอัตโนมัติได้


ภาพประกอบ 4 แผนผังหน้าจออินเตอร์เฟส วิธีที่ง่ายที่สุดคือวางส่วนควบคุมไว้ในหน้าต่าง Outline

หลังจากที่ดาวน์โหลดและทดสอบแอพพลิเคชั่นแล้ว ให้ทำการเชื่อมต่อด้วยการคลิกที่ปุ่มเมนูด้านล่างซ้ายและเลือกอุปกรณ์ Bluetooth ที่ต้องการ (เลือกเชื่อมต่ออุปกรณ์ - ปลอดภัย) หากทุกอย่างถูกต้อง คุณจะเห็นข้อความ 'connecting' และ 'connected: <ชื่ออุปกรณ์>' หลังจากนั้นไม่นาน

ในขั้นตอนนี้ คุณจะเริ่มปรับแต่งอินเตอร์เฟสตามรสนิยมของตัวเองได้ ไฟล์ที่ดาวน์โหลดจากเว็บไซต์ของ Elektor ได้แก่ ไฟล์แอพพลิเคชั่นที่สมบูรณ์ (.apk) ซึ่งคุณสามารถคัดลอกไปยังสมาร์ทโฟนได้โดยตรง หลังการติดตั้ง คุณก็สามารถใช้คุณสมบัติทั้งหมดที่เราอธิบายไว้ในบทความนี้ได้

[1]www.elektor.com/120075
[2]http://www.oracle.com/technetwork/java/javase/downloads/
[3]http://developer.android.com/sdk/index.html
[4]http://www.eclipse.org/downloads/
[5]http://projectproto.blogspot.com/2010/09/android-bluetooth-oscilloscope.html
[6]http://code.google.com/p/android-bluetooth-oscilloscope/

ดูบทความวิศวกรรมอื่น ๆ กรุณาเข้าชม www.designspark.com, ประตูสู่แหล่งข้อมูลออนไลน์และการสนับสนุนการออกแบบสำหรับวิศวกร โดย RS

กลับสู่ด้านบน