การควบคุมรีเลย์ Arduino: แบบร่าง ควบคุมผ่านบลูทูธ ควบคุมซ็อกเก็ตผ่านบลูทูธและ Arduino

1 คำอธิบายโมดูลบลูทูธ HC-06

มีการใช้งานโมดูล Bluetooth จำนวนมาก แต่ละคนมีลักษณะเฉพาะของตัวเอง แต่โดยทั่วไปแล้วพวกมันทั้งหมดคล้ายกันมาก พิจารณาตัวแทนของตระกูลโมดูลบลูทูธ HC-06ซึ่งสามารถซื้อได้ในราคาสุดคุ้มบนเว็บไซต์นี้

โมดูลนี้ทำงานที่ความถี่ตั้งแต่ 2.40 GHz ถึง 2.48 GHz และรองรับข้อกำหนด Bluetooth เวอร์ชัน 2.1+EDR: ลดการใช้พลังงาน เพิ่มระดับการปกป้องข้อมูล และเชื่อมต่ออุปกรณ์ Bluetooth ได้ง่าย รับประกันการรับสัญญาณที่เสถียรด้วยโมดูลภายในระยะ 10 เมตร

วัตถุประสงค์ของพินโมดูลบลูทูธมีดังนี้:

ไม่สามารถใช้หมุดสองตัวสุดท้ายได้ คุณมักจะพบโมดูลที่ไม่มีพินเหล่านี้เลย

2 แผนภาพการเชื่อมต่อโมดูลบลูทูธสำหรับ Arduino

มาเชื่อมต่อโมดูลบลูทูธกับ Arduino ตามแผนภาพด้านล่าง โปรดทราบว่าตัวส่งสัญญาณ (Tx) ของ Arduino เชื่อมต่อกับตัวรับ (Rx) ของโมดูล และในทางกลับกัน


เมื่อเอาท์พุท สถานะระดับสูงจะปรากฏขึ้นเมื่อโมดูลจับคู่กับอุปกรณ์ Bluetooth อื่น และระดับต่ำเมื่อไม่ได้จับคู่ คุณสามารถอ่านค่าของมันได้โดยเชื่อมต่อกับพิน Arduino และกำหนดโหมดการทำงานให้กับมัน pinMode (พินสถานะ, อินพุต)และค้นหาสถานะของโมดูล แต่ตัวบ่งชี้สถานะทำงานไม่ถูกต้องในทุกโมดูล ดังนั้นเราจะไม่ใช้ในตัวอย่างนี้

ผลลัพธ์ควรมีลักษณะคล้ายกับภาพถ่าย


3 ร่างสำหรับ Arduinoเพื่อการทำงานผ่านบลูทูธ

มาเขียนแบบร่างต่อไปนี้แล้วโหลดลงในหน่วยความจำ Arduino:

ค่าคงที่ ledPin = 13; // เอาต์พุตของไบต์ขาเข้า LED ถ่านในตัว; // ตัวแปรสำหรับข้อมูล Bluetooth การตั้งค่าเป็นโมฆะ () ( pinMode(ledPin, เอาท์พุต); อนุกรมเริ่มต้น(9600); ) วนเป็นโมฆะ() ( if (Serial.available() > 0) ( // ถ้าพอร์ตว่าง incomingbyte = Serial.read(); // อ่านข้อมูลจากสวิตช์พอร์ต(incomingbyte) ( case "1": // ถ้า "1" มาถึง digitalWrite(ledPin , HIGH); // ตัวพิมพ์ "0": // ถ้า "0" มาถึง digitalWrite(ledPin, LOW); }

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

4 กำลังจับคู่ด้วยอุปกรณ์บลูทูธ

ตอนนี้คุณต้องเพิ่มอุปกรณ์ Bluetooth ลงในรายการอุปกรณ์ที่เชื่อถือได้ เปิด Bluetooth บนคอมพิวเตอร์ไปที่ การตั้งค่าอุปกรณ์บลูทูธ.

หากไอคอนบลูทูธปรากฏขึ้นในพื้นที่แจ้งเตือนเมื่อคุณเปิดบลูทูธบนคอมพิวเตอร์ คุณสามารถคลิกขวาที่ไอคอนนั้นแล้วเลือก:

เราตรวจสอบให้แน่ใจว่าคอมพิวเตอร์มองเห็นโมดูลบลูทู ธ ของเรา เลือกจากรายการแล้วกดปุ่ม ผูก- ป้อนรหัสผ่านเริ่มต้นในกล่องโต้ตอบ 1234 - หากเพิ่มสำเร็จอุปกรณ์จะปรากฏในรายการพร้อมเครื่องหมาย จับคู่แล้ว.


รหัสผ่านเริ่มต้นสำหรับโมดูลเฉพาะอาจแตกต่างจาก "1234" ข้อมูลนี้จะต้องจัดทำโดยผู้ผลิต (ผู้ขาย) ของโมดูล

หากคุณต้องการเชื่อมต่อกับโมดูลบลูทูธจากสมาร์ทโฟน ขั้นตอนจะคล้ายกัน: เปิดบลูทูธบนสมาร์ทโฟนของคุณ ตรวจจับโมดูลที่เชื่อมต่อกับ Arduino แล้วจับคู่กับโมดูลดังกล่าว

5 กำลังเชื่อมต่อกับโมดูลบลูทูธผ่านบลูทูธจากคอมพิวเตอร์

หากต้องการเชื่อมต่อกับโมดูลบลูทูธ คุณสามารถใช้โปรแกรมต่างๆ ที่สามารถเชื่อมต่อกับพอร์ต COM ได้ ตัวอย่างเช่น เช่น HyperTerminal, PuTTY, Tera Term, ปลวก และอื่นๆ ทั้งหมดนี้ฟรีและเผยแพร่อย่างเสรีบนอินเทอร์เน็ต

ความสะดวกสบายของโปรแกรม TeraTermคือแสดงรายการพอร์ต COM ที่กำหนดให้กับโมดูลบลูทูธของคอมพิวเตอร์ของคุณโดยอัตโนมัติ เราเปิดโปรแกรมเลือกการเชื่อมต่อแบบอนุกรมเลือกพอร์ต Bluetooth COM ที่เกี่ยวข้องจากรายการแล้วคลิกตกลง


โปรแกรม สีโป๊วเมื่อเริ่มต้นระบบจะถามหมายเลขพอร์ต (COM4 คุณจะมีของคุณเอง) ความเร็วการเชื่อมต่อ (9600) ประเภทการเชื่อมต่อ (อนุกรม) จากนั้นกดปุ่ม เชื่อมต่อ.


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

6 การเชื่อมต่อจากสมาร์ทโฟนผ่านเทอร์มินัลบลูทูธ

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

ดังนั้นเราจึงได้เรียนรู้วิธีเชื่อมต่อผ่านบลูทู ธ กับ Arduino และถ่ายโอนข้อมูลไป

บทความนี้จะมีอักขระ "สุดท้าย" นั่นคือจะสรุปความสำเร็จของฉันในการทำงานกับไมโครคอนโทรลเลอร์ Arduino ซึ่งต่ำมาก เพื่อว่าในภายหลังเมื่อจำเป็น คุณสามารถกลับมาที่แพลตฟอร์มนี้และดำเนินการเปิดและปิดอุปกรณ์ใดๆ บนแพลตฟอร์มได้
อย่างที่ฉันเห็น ด้วยความช่วยเหลือของโมดูลบลูทูธ คุณสามารถควบคุมอุปกรณ์สำหรับบ้านอัจฉริยะ หรือแม้แต่ทำการเปิดและปิดประตูตามปกติในบ้านหรือโรงรถ นั่นคือเขาขับรถขึ้นไปเปิดมัน ถ้าคุณจะไปก็ปิดแล้ว โดยหลักการแล้วฉันยังไม่มีบ้านส่วนตัวหรือประตู แต่ฉันรู้วิธีใช้งานแล้ว :)

ตอนนี้ให้ฉันบอกคุณเกี่ยวกับเรื่องนี้ด้วย

หลักการเปิดและปิดโหลดผ่าน Bluetooth โดยใช้ Arduino

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

แผนภาพการเชื่อมต่อสำหรับ Arduino พร้อมโมดูล Bluetooth

แน่นอน ในกรณีของเรา ขั้นตอนแรกคือการเชื่อมต่อทางกายภาพ จากนั้นจึงไปที่ซอฟต์แวร์ เรามาเริ่มกันที่การเชื่อมต่อกันก่อน หากคุณมี Arduino UNO และโมดูล Bluetooth HC-06 หรือ 05 คุณจะต้องเชื่อมต่อดังนี้ อย่างไรก็ตามแผนภาพไม่แสดงการเชื่อมต่อของวงจรควบคุมแต่อย่างใด นั่นคือการเชื่อมต่อโดยตรงระหว่างโมดูล Bluetooth HC-06 และ Arduino จะปรากฏขึ้น

แน่นอนหากคุณมีเอาต์พุตควบคุม 11 และ 13 เช่นเดียวกับในกรณีของเราโปรดดูบทความด้านล่างหน่วยจ่ายไฟหรือเพียงแค่ LED จะเชื่อมต่อกับพวกมัน สิ่งสำคัญคือเมื่อคุณเชื่อมต่อโมดูล RX บนอุปกรณ์เครื่องหนึ่งจะไปที่ TX อีกเครื่องหนึ่งและในทางกลับกัน คำนึงถึงเรื่องนี้ด้วย!

ร่างสำหรับ Arduino เพื่อให้ทำงานร่วมกับโมดูล Bluetooth

ทีนี้มาพูดถึงแบบร่างกัน นั่นคือเกี่ยวกับซอฟต์แวร์ที่ทำให้แพลตฟอร์มฮาร์ดแวร์ของเราทำงานได้ ทุกอย่างง่ายมาก มาดูกัน.

อินท์วาล; ไฟ LED ภายใน = 13; อินท์ LED1 = 11; การตั้งค่าเป็นโมฆะ () ( Serial.begin (9600); pinMode (LED, OUTPUT); digitalWrite (LED, HIGH); ) void loop () ( ถ้า (Serial.available ()) ( val = Serial.read (); / / ที่สัญลักษณ์ “1” ให้เปิด LED 13 ถ้า (val == “1”) ( digitalWrite(LED, HIGH); ) // ที่สัญลักษณ์ “0” ให้ปิด LED 13 ถ้า (val == “0” ) ( digitalWrite(LED , LOW); ) // เมื่อสัญลักษณ์เป็น "2" ให้ปิด LED 11 ถ้า (val == "2") ( digitalWrite(LED1, HIGH); ) // เมื่ออักขระเป็น "0 ", ให้ปิด LED 11 ถ้า (val == "3 ") ( digitalWrite(LED1, LOW); ) ) )

จริงๆ แล้ว นี่คือการกำหนดตัวแปร LED สองตัวสำหรับขาที่ 11 และ 13 ในกรณีของเรา จากนั้นใช้ Serial.begin(9600) เพื่อเชื่อมต่อบลูทูธของเรา สิ่งที่เหลืออยู่คือหาโปรแกรมควบคุมบลูทูธ

โปรแกรมสำหรับแท็บเล็ตหรือโทรศัพท์ (Android) ควบคุมโหลดผ่านบลูทูธ

คุณเองสามารถค้นหาโปรแกรมที่รองรับการควบคุมโมดูล Bluetooth จากโทรศัพท์ของคุณได้ ขึ้นอยู่กับคุณ ฉันยังพบและจัดระเบียบ (ดาวน์โหลด ArduinoRC) โปรแกรมติดตั้งสำหรับตัวฉันเอง นั่นคือสิ่งที่ฉันใส่ไว้ในโทรศัพท์ของฉัน

ที่จริงแล้วด้วยความช่วยเหลือของโปรแกรมนี้คุณจะสามารถกำหนดเงื่อนไขเกณฑ์สำหรับร่างได้ซึ่งหมายถึงการรับสัญญาณบนพินเอาท์พุต 11 และ 13 ในกรณีของเราจะใช้ปุ่ม 0,1,2,3 พวกเขาคือผู้ที่เปิดและปิดไฟ LED ชมภาพร่าง
ครั้งแรกที่คุณเชื่อมต่ออุปกรณ์ อาจต้องใช้รหัสผ่าน เช่น 000 หรือ 1234

ปัญหาในการอัพโหลดโปรแกรมไปยัง Arduino

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

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

ตอนนี้สิ่งเดียวกันอยู่ในวิดีโอ ...

คุณจำเป็นต้องควบคุมบอร์ด Arduino ของคุณจากระยะไกลและแลกเปลี่ยนข้อมูลกับอุปกรณ์บลูทูธอื่นๆ หรือไม่? โมดูล Bluetooth HC-05, HC06 จะช่วยคุณรับมือกับงานนี้

ในส่วนแรกของบทความเราจะพูดถึงวิธีสร้างการเชื่อมต่อไร้สายระหว่าง Arduino และคอมพิวเตอร์และในส่วนที่สองวิธีสร้างการเชื่อมต่อระหว่าง Arduino และโทรศัพท์ Android -

บทความนี้จะเป็นส่วนสำคัญในการประกอบรถยนต์ควบคุมระยะไกลเพิ่มเติม

ส่วนประกอบสำหรับการทำซ้ำ (ซื้อในประเทศจีน):

โมดูล HC-05/06 เป็นบลูทูธเปล่าพร้อมสายไฟเพิ่มเติม

กล่าวคือ: ติดตั้งบนพื้นผิวซึ่งมีตัวกันโคลงตั้งแต่ 5 ถึง 3.3 โวลต์, ไฟ LED แสดงสถานะของโมดูล (ไม่ว่าจะมีการเชื่อมต่อเกิดขึ้นหรือไม่ก็ตาม) และตัวเก็บประจุบนสายไฟ นอกจากนี้ยังมีทรานซิสเตอร์ mosfet (Q1) ติดตั้งอยู่บนบอร์ดซึ่งหากจำเป็นอาจทำให้วงจรจ่ายไฟของ Bluetooth พังและปิดเครื่องได้ แต่จะไม่มีการใช้ในการตรวจสอบของเรา

จากด้านหน้าโมดูลจะมีลักษณะเช่นนี้

การเชื่อมต่อกับ Arduino

บลูทูธ HC-05/06 อาร์ดูโน่
วีซีซี +5V
จีเอ็นดี จีเอ็นดี
เท็กซัส รับ
รับ เท็กซัส

เมื่อจ่ายไฟให้กับโมดูล ไฟ LED ในตัวจะเริ่มกะพริบ

1) ด้วยคอมพิวเตอร์ (ระบบปฏิบัติการ WIN7)

2) ด้วยโทรศัพท์ (ระบบปฏิบัติการ ANDROID)

ในทั้งสองกรณีเราจะต้องดำเนินการ 2 การกระทำ: จับคู่โมดูลและอุปกรณ์ ควบคุมผ่านเทอร์มินัลบางตัว

ส่วนที่ 1. การเชื่อมต่อกับคอมพิวเตอร์ (WIN7)

หากคอมพิวเตอร์ของคุณไม่มีบลูทูธในตัว คุณสามารถใช้งานได้ การค้นหาตามร้านสื่อสารหรือในตลาดวิทยุไม่ใช่เรื่องยาก

หลังจากติดตั้งไดรเวอร์สำหรับ Bluetooth แล้ว คุณก็สามารถเริ่มทำงานได้

. การดำเนินการ 1

ไปที่แผงควบคุม คลิกที่ไอคอน Bluetooth และเลือก "แสดงอุปกรณ์ Bluetooth"

หลังจากนั้นสักครู่ คอมพิวเตอร์จะค้นหาและคุณจะเห็นโมดูลของคุณ (โมดูลของคุณอาจมีชื่ออื่น)

เลือกตัวเลือกที่สอง - “ป้อนรหัสการจับคู่อุปกรณ์”

สำหรับ HC-06 รหัสนี้คือ 1234

ทุกอย่างจบลงด้วยภาพนี้

และหลังจากนั้นก็มีอีกอันหนึ่ง

ขั้นตอนแรกของการตั้งค่าเสร็จสมบูรณ์

ในกรณีที่คุณลืมพอร์ต COM ใดที่คุณระบุว่าเป็นบลูทูธ คุณสามารถค้นหาได้โดยทำตามขั้นตอนเหล่านี้:

การดำเนินการ

ป.ล. หรือดูในตัวจัดการอุปกรณ์

- พระราชบัญญัติ 2

สามารถใช้เทอร์มินัลใดก็ได้เพื่อถ่ายโอนข้อมูล ฉันใช้ "ปลวก" ที่เรียบง่ายและฟรี

ตัวอย่างเช่นเราจะเปลี่ยนสถานะของ LED "LED 13" ที่สร้างไว้ในบอร์ด Arduino โดยจะเปิดเมื่อได้รับสัญลักษณ์ “W” และจะปิดเมื่อได้รับสัญลักษณ์ “S” จำเป็นต้องอัปโหลดภาพร่างด้านล่างไปยังบอร์ด Arduino เมื่อเทลงในบอร์ด คุณต้องถอดปลั๊กไฟออกจากโมดูล Bluetoothหลังจากเติมแล้วให้เชื่อมต่อใหม่

ตัวอย่างโค้ดโปรแกรม:

อินท์วาล; ไฟ LED ภายใน = 13; เป็นโมฆะ ติดตั้ง () { อนุกรม.เริ่มต้น(9600); pinMode(LED, เอาท์พุต); ) เป็นโมฆะ วนซ้ำ() ( ถ้า ( อนุกรม.available()) (วาล= อนุกรม.อ่าน(); // เมื่อสัญลักษณ์ "W" เปิดขึ้น LEDถ้า (val == "W" ) ( digitalWrite (LED, สูง ); ) // เมื่อสัญลักษณ์ "S" ปิดไฟ LEDถ้า (val == "S" ) ( digitalWrite (LED, LOW ); ) ) ) เปิดโปรแกรม " ปลวก"

ในการตั้งค่า เลือกพอร์ตของเรา ความเร็ว (9600)

คุณยังสามารถตรวจสอบโมดูลที่ไม่มี Arduino ได้โดยเพียงแค่ลัดวงจรพิน TX และ RX เครื่องหมายปลวกส่งตัวอักษรสีน้ำเงิน และได้รับตัวอักษรสีเขียว เหล่านั้น. ถ้าเราส่งไปโดยที่พินลัดวงจรและได้รับสิ่งเดียวกัน แสดงว่าโมดูลทำงานปกติ นี่แสดงให้เห็นในภาพด้านล่าง

ส่วนที่ 2 การเชื่อมต่อกับโทรศัพท์ของคุณ (Android)

ผู้ทดสอบจะเป็นโทรศัพท์ Samsung Galaxy Ace 2 ที่ใช้ระบบปฏิบัติการ Android

- การดำเนินการ 1

กำลังเชื่อมต่อกับโทรศัพท์

- พระราชบัญญัติ 2

ในฐานะเทอร์มินัล เราจะเลือกอันที่เรียบง่ายและฟรีอีกครั้ง แต่คราวนี้ "เทอร์มินัล Bluetooth"

ป.ล. หากคุณไม่สามารถเชื่อมต่อได้ ให้ถอดปลั๊ก Bluetooth ออกแล้วเชื่อมต่อใหม่

บลูทู ธ- นี่อาจเป็นการสื่อสารประเภทหนึ่งที่พบบ่อยที่สุดสำหรับระยะทางสั้น ๆ ซึ่งอุปกรณ์อิเล็กทรอนิกส์สมัยใหม่ส่วนใหญ่ใช้ ชุดหูฟังโทรศัพท์ หูฟัง คีย์บอร์ดและเมาส์ เครื่องพิมพ์ และพระเจ้าทรงทราบอุปกรณ์อื่นๆ เมื่อไม่นานมานี้ บลูทูธได้รับความนิยมในฐานะวิธีการถ่ายโอนไฟล์ระหว่างโทรศัพท์ ข้อได้เปรียบหลักของ BT ได้แก่ ความต้านทานที่ดีต่อสัญญาณรบกวนบรอดแบนด์และความสะดวกในการใช้งาน ประการแรกหมายความว่าอุปกรณ์จำนวนมากที่อยู่ในที่เดียวสามารถสื่อสารระหว่างกันพร้อมกันได้โดยไม่รบกวนซึ่งกันและกัน ประการที่สองช่วยให้มีการนำ Bluetooth มาใช้อย่างกว้างขวางในสภาพแวดล้อม DIY และโดยทั่วไปในทุกสภาพแวดล้อม โดยส่วนตัวแล้ว ฉันใช้ BT เพื่อควบคุมหุ่นยนต์จากสมาร์ทโฟนของฉัน Google Play มีแอปพลิเคชันหลายตัวที่มีอินเทอร์เฟซที่ใช้งานง่ายสำหรับวัตถุประสงค์เหล่านี้โดยเฉพาะ ผู้เข้าร่วมแฮ็กสเปซ MakeItLab ของเราใช้บลูทูธเพื่อควบคุมแสงจากระยะไกลและรวบรวมการวัดและส่งข้อมูลทางไกลจากควอดคอปเตอร์ โมดูล Bluetooth ที่ราคาไม่แพงที่สุดในปัจจุบันสามารถเรียกว่า HC-05 และ HC-06 มีวางจำหน่ายทั่วไปในร้านค้าออนไลน์ของจีนและบนอีเบย์ ข้อแตกต่างระหว่างกันคืออันแรกสามารถทำงานได้ทั้งในโหมดทาสและโหมดมาสเตอร์ อันที่สองเป็นอุปกรณ์ทาสล้วนๆ (แต่สามารถแก้ไขได้!) กล่าวอีกนัยหนึ่ง HC-06 ไม่สามารถตรวจจับอุปกรณ์ที่จับคู่และสร้างการสื่อสารกับอุปกรณ์นั้นได้ มันสามารถเชื่อฟังได้เฉพาะกับอุปกรณ์หลักเท่านั้น อุปกรณ์ทั้งสองใช้ชิป CSR BC417 ซึ่งรองรับ Bluetooth เวอร์ชัน 2.0 ที่ความเร็วสูงสุด 3 Mbit/s เป็นโมดูลเหล่านี้ที่จะกล่าวถึงต่อไป

1. ตัวเลือกการดำเนินการ

โดยปกติแล้ว โมดูลจะขายโดยมีสองบอร์ดที่บัดกรีเข้าด้วยกัน อันที่เล็กกว่านั้นเป็นโมดูลจากโรงงานซึ่งใช้กันอย่างแพร่หลายในอุปกรณ์อิเล็กทรอนิกส์ต่างๆ ใหญ่ - ผ้าพันคอดีไซน์พิเศษสำหรับ DIY นี่คือลักษณะของบอร์ดขนาดเล็กที่มีชิป BC417:
และนี่คือโมดูล DIY HC-05 และ HC-06:
เพื่อจุดประสงค์อันชาญฉลาดของฉัน ฉันมักจะใช้ HC-05 เนื่องจากมีราคาไม่แตกต่างจาก HC-06 มากนัก และช่วยให้คุณสามารถเชื่อมโยงอุปกรณ์ทั้งสองเข้าด้วยกันได้โดยไม่มีปัญหาใดๆ ตัวอย่างเช่น คุณสามารถสร้างหุ่นยนต์และรีโมทคอนโทรลสำหรับมันได้ ฉันมักจะได้รับโมดูลจากประเทศจีนเหมือนกับในภาพด้านซ้ายทุกประการ แต่บางครั้งก็ไม่มีปุ่ม ผ้าพันคอจำลองอีกรุ่นหนึ่งก็เป็นเรื่องธรรมดาเช่นกัน ต่างจากที่แสดงไว้ด้านบน พวกเขาไม่มีขา EN แต่มีขา KEY ซึ่งสบายกว่าเล็กน้อย
พินเอาท์แล้วขามีหน้าที่รับผิดชอบอะไรในตัวเลือกโมดูลทั้งหมด?
  • TH—เปิด/ปิดโมดูล
  • VCC - แหล่งจ่ายไฟ +5V;
  • GND - กราวด์;
  • TXD, RXD - อินเทอร์เฟซ UART สำหรับการสื่อสารกับคอนโทรลเลอร์
  • รัฐ - ตัวบ่งชี้สถานะ;
  • KEY - เท้าสำหรับเข้าสู่โหมดคำสั่ง AT
โมดูลได้รับการกำหนดค่าในโหมดคำสั่ง AT ซึ่งเปิดใช้งานโดยใช้ขา KEY ดังนั้น เจ้าของโมดูลที่มีความสุขหลายคนอาจมีคำถาม: ฉันควรทำอย่างไรหากพบโมดูลที่ไม่มี KEY? ที่จริงแล้ว แน่นอนว่ามีขานี้อยู่บนกระดานเล็ก เพียงแต่ไม่ได้วางอยู่บนกระดานขนาดใหญ่เท่านั้น พระเจ้ารู้ดีว่าทำไมคนจีนถึงทำเช่นนี้ แต่ปัญหาก็คลี่คลายได้อย่างง่ายดาย ขาสำคัญเติบโตจากที่นี่:

2. การเชื่อมต่อกับ Arduino Uno

มีขาไม่มากจึงไม่สับสน เราเชื่อมต่อบลูทู ธ กับ Arduino Uno ตามรูปแบบต่อไปนี้:
บลูทู ธ จีเอ็นดี วีซีซี เท็กซัส RXD สำคัญ
อาร์ดูโน่ อูโน่ จีเอ็นดี +5V 10 11
เราเชื่อมต่อ TX และ RX กับ GPIO ขา 10 และ 11 เนื่องจากฮาร์ดแวร์ UART ที่ขา 0 และ 1 จะยุ่งอยู่กับการสื่อสารกับคอมพิวเตอร์ ในโหมดการทำงาน KEY ไม่ได้เชื่อมต่ออยู่ที่ใดเลย ดังนั้นในตารางฉันไม่ได้เชื่อมต่อกับ GPIO ด้วยขา Arduino

3. การจับคู่ระดับแรงดันไฟฟ้า

บอร์ดโมดูล Bluetooth ขนาดเล็กมีแรงดันไฟฟ้าลอจิก 3.3 โวลต์ ซึ่งหมายความว่า Arduino Uno สามารถเบิร์นพอร์ตหรือส่งสัญญาณไม่ถูกต้องได้ โชคดีในกรณีส่วนใหญ่ กระดานขนาดใหญ่มีทุกสิ่งไว้บนกระดานเพื่อหลีกเลี่ยงปัญหานี้ โมดูลข้างต้นสามารถเชื่อมต่อกับ Arduino ได้อย่างง่ายดายโดยไม่ต้องยุ่งยากโดยไม่จำเป็น แม้ว่าผู้ผลิตเองจะเขียนคำเตือนบนผ้าพันคอเกี่ยวกับระดับสัญญาณ 3.3 โวลต์ก็ตาม อย่างไรก็ตาม ในบางสถานการณ์อาจจำเป็นต้องติดตั้งตัวแบ่งแรงดันไฟฟ้าบนสาย Arduino TX - BT RX เพื่อลดระดับลอจิก ในความเป็นจริงแม้ว่าทุกอย่างจะทำงานโดยไม่มีตัวแบ่ง แต่ก็เป็นการดีกว่าถ้าใส่เข้าไปเพื่อประโยชน์ในการสั่งซื้อ วงจรแบ่งอยู่ด้านล่าง:

4. การเตรียม Arduino

เพื่อเริ่มการตั้งค่า เราต้องอัปโหลดภาพร่างเสริมลงใน Arduino โดยพื้นฐานแล้วมันคือโปรแกรมทวนสัญญาณที่จะแลกเปลี่ยนข้อมูลระหว่างเทอร์มินัลบนคอมพิวเตอร์และโมดูล Bluetooth โปรแกรมนั้นง่ายมาก: #include #รวม int gLedPin = 13; int gRxPin = 10; int gTxPin = 11; ซอฟต์แวร์อนุกรม BTSerial(gRxPin, gTxPin); การตั้งค่าเป็นโมฆะ() ( # 38400 - สำหรับวิธีที่ 1, 9600 - สำหรับวิธีที่ 2 BTSerial.begin(38400); Serial.begin(9600); ล่าช้า (500); ) void loop() ( if (BTSerial. available( )) ( Serial.write(BTSerial.read()); ) if (Serial.available()) ( BTSerial.write(Serial.read()); ) ) อัปโหลดภาพร่างไปยัง Arduino และไปยังขั้นตอนถัดไป ขั้นตอน

5. การเตรียมเครื่องเทอร์มินัล

คุณสามารถใช้มอนิเตอร์พอร์ตที่ติดตั้งใน Arduino IDE เป็นเทอร์มินัล หรือคุณสามารถใช้อันอื่นก็ได้ ฉันใช้เทอร์มินัลบุคคลที่สาม TeraTerm ก่อนเชื่อมต่อ คุณต้องทำการตั้งค่าที่สำคัญสองรายการ:
  • อัตรารับส่งข้อมูล: 9600;
  • อักขระป้อนบรรทัด: CR+LF
การตั้งค่าใน TeraTerm มีลักษณะดังนี้:
เมื่อทุกอย่างได้รับการกำหนดค่าอย่างถูกต้องแล้ว ให้เชื่อมต่อกับพอร์ต COM และตรวจสอบการเชื่อมต่อ มีเหตุผลที่จะแบ่งการจัดการเพิ่มเติมทั้งหมดออกเป็นสองส่วน: สำหรับโมดูลทาส HC-06 และสำหรับมาสเตอร์ HC-05

6. การตั้งค่า HC-06

กำลังตรวจสอบการเชื่อมต่อ

หลังจากจ่ายไฟให้กับโมดูลแล้ว LED จะเริ่มกระพริบแรงๆ:
ตอนนี้ไปที่เทอร์มินัลแล้วเขียนคำสั่ง: ที่ ในการตอบสนอง โมดูลควรบอกเราว่า: ตกลง คำสั่งถัดไปของเราจะถามโมดูลเกี่ยวกับเวอร์ชัน: AT+เวอร์ชั่น? เราได้รับสิ่งนี้: โอเคลินวอร์1.5 เกิดขึ้น? ถ้าไม่เช่นนั้น ให้ตรวจสอบ:
  1. ความเร็วในการเชื่อมต่อกับโมดูลที่ตั้งค่าไว้ในโปรแกรมแปล: สำหรับการสื่อสารกับทาสความเร็วต้องเป็น 9600
  2. การตั้งค่าอักขระการป้อนบรรทัด: อย่าลืม CR+LF!
  3. เรากด Enter หลังจากแต่ละคำสั่งหรือไม่? คุณไม่เคยรู้...

คำสั่งที่เป็นประโยชน์

โมดูล Bluetooth Slave มีเพียงสามพารามิเตอร์ในการกำหนดค่า:
  • คำสั่งเปลี่ยนรหัสผ่านบนอุปกรณ์: AT+PIN<пароль>
  • การเปลี่ยนแปลงความเร็ว: AT+โบ๊ด<скорость>
  • เปลี่ยนชื่ออุปกรณ์: AT+ชื่อ<имя>
ตัวอย่างเช่นหากต้องการเปลี่ยนรหัสผ่านให้เขียน: AT+PIN4321 โดยรวมก็พร้อม! ตอนนี้คุณสามารถเชื่อมต่อกับโมดูลได้ เช่น จากสมาร์ทโฟน เราจะกล่าวถึงเรื่องนี้ในส่วนที่สองของเรื่องราวของฉัน

7. การตั้งค่า HC-05

เปลี่ยนเป็นโหมดคำสั่ง AT

ในการเข้าถึงการตั้งค่าโมดูลหลัก จะต้องสลับไปที่โหมดคำสั่ง AT มีสองวิธีที่คุณสามารถใช้เพื่อเข้าสู่โหมดนี้ (ฉันใช้วิธีแรกเสมอ) วิธีแรก:
  1. ถอดโมดูลออกจากแหล่งจ่ายไฟ
  2. เราใช้สัญญาณ +3.3V ไปที่ขา KEY
  3. เราเปิดโมดูล
ในตัวเลือกนี้ อัตราแลกเปลี่ยนของโมดูลถูกตั้งค่าเป็น 38400 วิธีที่สอง
  1. เราเปิดโมดูล
  2. เราใช้สัญญาณ +3.3V KEY ที่ขา
ในกรณีนี้อัตราแลกเปลี่ยนของโมดูลจะเท่ากับอัตราแลกเปลี่ยนมาตรฐานที่กำหนดโดยการตั้งค่า ค่าเริ่มต้นคือ 9600 หลังจากสลับไปที่โหมดคำสั่ง AT สำเร็จแล้ว ไฟ LED บนโมดูลจะเริ่มกะพริบทุกๆ สองวินาที

ตรวจสอบการเชื่อมต่อ HC

ลองตรวจสอบโหมดคำสั่งของ HC-05 ในลักษณะเดียวกับในกรณีของโมดูลทาส: >>: ที่ <<: ตกลง >>: AT+เวอร์ชั่น? <<: +เวอร์ชัน:2.0-20100601

การตั้งค่า HC-05 ให้เป็นทาส

หากต้องการเปลี่ยนโมดูลให้เป็นทาส คุณจะต้องรันหลายคำสั่ง: รีเซ็ตการตั้งค่าก่อนหน้า: AT+ORGL การรีเซ็ตอุปกรณ์ที่จับคู่: AT+RMAAD การตั้งรหัสผ่าน: AT+PSWD=1234 การเปิดใช้งานโหมดทาส: AT+บทบาท=0 นอกจากนี้ คุณสามารถค้นหาที่อยู่อุปกรณ์ (จำเป็นในการกำหนดค่าโมดูลที่จับคู่): AT+ADDR? เพื่อเป็นการตอบสนองเราได้รับที่อยู่: อดีอาร์=12:6:143117 หลังการตั้งค่า ให้ถอดขา KEY ออกจาก +3.3V แล้วรีสตาร์ทโมดูล พร้อม!

การตั้งค่า HC-05 เป็นต้นแบบ

โมดูลมาจากโรงงานในฐานะทาส และเพื่อให้เป็นโมดูลหลัก คุณจะต้องรันคำสั่งต่อไปนี้ รีเซ็ตการตั้งค่าก่อนหน้า: AT+ORGL การรีเซ็ตอุปกรณ์ที่จับคู่: AT+RMAAD การเปิดใช้งานโหมดหลัก: AT+บทบาท=1 รีสตาร์ทหลังจากเปลี่ยนบทบาท: AT+รีเซ็ต หากเราต้องการเชื่อมต่อทาสและมาสเตอร์เราจะเขียนคำสั่งต่อไปนี้: การตั้งรหัสผ่านทาส: AT+PSWD=1234 ระบุอุปกรณ์ที่จับคู่: AT+PAIR=<адрес>,<таймаут> (ตัวอย่าง: AT+คู่=12,6,143117,5) เราเชื่อมโยงกับที่อยู่เฉพาะ: AT+ผูก=<адрес> (ตัวอย่าง: AT+ผูก=12,6,143117) เราห้ามการเชื่อมต่อกับที่อยู่อื่น: AT+CMOD=0 พร้อม! ตอนนี้โมดูลเชื่อมต่อกับทาสแล้ว และทุกครั้งที่เปิดโมดูลจะพยายามเชื่อมต่อกับมัน

และทำงานร่วมกับเขา

การอัพเกรดโล่มอเตอร์

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

ความแตกต่างนี้ไม่เหมาะกับฉันเลย นั่นคือเหตุผลที่ฉันตัดสินใจหยิบหัวแร้งขึ้นมาและนำ Motor Shield มาในรูปแบบที่สะดวกสำหรับฉัน


ฉันดึงซ็อกเก็ตหน้าสัมผัสเดิมออกอย่างระมัดระวังแล้วโยนทิ้งไป


ฉันติดตั้งอันปกติแทน


ในรูปแบบนี้โมดูลมีความสะดวกในการใช้งานมากขึ้น ตอนนี้ฉันสามารถเชื่อมต่อสาย Bluetooth เข้ากับขั้วต่อได้อย่างเหมาะสม และไม่บัดกรีเข้ากับหน้าสัมผัสบน Motor Shield อย่างแน่นหนา

โมดูลบลูทูธ JY-MCU สำหรับ Arduino


โมดูล Bluetooth ของ JY-MCU นั้นมีขนาดค่อนข้างเล็ก ชุดส่งมอบประกอบด้วยสายเชื่อมต่อ การกำหนดพินจะแสดงที่ด้านหลัง


สามารถจ่ายไฟจากแหล่งพลังงาน 3.6-6V สิ่งนี้ทำให้เรามีโอกาสเชื่อมต่อโดยตรงกับ Arduino โดยไม่ต้องใช้ตัวควบคุมหรือตัวแบ่งแรงดันไฟฟ้า

รหัสที่ใช้เมื่อเชื่อมต่อกับอุปกรณ์: 1234

การเชื่อมต่อ Bluetooth JY-MCU กับ Arduino Mega 2560

การเชื่อมต่อค่อนข้างง่าย

แผนภาพการเชื่อมต่ออย่างเป็นทางการ:

  • TXT บน JY-MCU เชื่อมต่อกับ RX (0) บน Arduino
  • เชื่อมต่อ RXD บน JY-MCU กับ TX (1) บน Arduino

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

ฉันไม่พอใจกับตัวเลือกนี้ ดังนั้นฉันจึงตัดสินใจใช้พอร์ตแยกที่รองรับซีเรียล

แผนภาพการเชื่อมต่ออย่างไม่เป็นทางการ:

  • VCC บน JY-MCU เชื่อมต่อกับ +5V Arduino
  • เชื่อมต่อ GND บน JY-MCU กับ GND Arduino
  • TXT บน JY-MCU เชื่อมต่อกับ PIN 50 แบบแยกบน Arduino
  • เชื่อมต่อ RXD บน JY-MCU เข้ากับ PIN 51 แบบแยกบน Arduino

ตอนนี้คุณสามารถอัปโหลดภาพร่างได้โดยไม่ต้องปิดเครื่องไปยังโมดูล Bluetooth

เพื่อรักษาความปลอดภัยให้กับ Bluetooth ฉันจึงตัดสินใจใช้บอร์ด Proto Shield และเขียงหั่นขนมขนาดเล็กแบบไร้บัดกรี ในอนาคต ฉันจะเชื่อมต่ออุปกรณ์ การควบคุม และจอแสดงผลอื่นๆ เข้ากับอุปกรณ์ดังกล่าว




ร่างสำหรับควบคุมหุ่นยนต์บน Arduino ผ่าน Bluetooth ผ่านสมาร์ทโฟน Android

ในภาพร่างของฉัน ฉันใช้ฟังก์ชันต่อไปนี้:

  • การเคลื่อนไหวไปข้างหน้า
  • กำลังเคลื่อนตัวถอยหลัง
  • เลี้ยวซ้าย
  • เลี้ยวขวา
  • เลี้ยวซ้ายอย่างนุ่มนวลเมื่อก้าวไปข้างหน้า
  • เลี้ยวขวาอย่างนุ่มนวลเมื่อก้าวไปข้างหน้า
  • เลี้ยวซ้ายอย่างนุ่มนวลเมื่อถอยหลัง
  • เลี้ยวขวาได้อย่างราบรื่นเมื่อถอยหลัง
  • หยุด
  • การตั้งค่าความเร็ว 0%

    การตั้งค่าความเร็ว 10%

    การตั้งค่าความเร็ว 20%

    การตั้งค่าความเร็ว 30%

    การตั้งค่าความเร็ว 40%

    การตั้งค่าความเร็ว 50%

    การตั้งค่าความเร็ว 60%

    การตั้งค่าความเร็ว 70%

    การตั้งค่าความเร็ว 80%

    การตั้งค่าความเร็ว 90%

    ตั้งค่าความเร็วได้ 100%

ฉันใช้ฟังก์ชันในแบบร่างเพื่อไม่ให้โค้ดซ้ำสำหรับเหตุการณ์ที่คล้ายกัน

#รวม // เชื่อมต่อไลบรารีควบคุมเครื่องยนต์
#รวม // เชื่อมต่อไลบรารีสำหรับเซอร์โว
#รวม // เชื่อมต่อไลบรารีเพื่อทำงานกับ Serial ผ่านพอร์ตแยก

//สร้างวัตถุสำหรับเครื่องยนต์
AF_DCมอเตอร์มอเตอร์1(1); //ช่อง M1 บน Motor Shield - ด้านหลังซ้าย
AF_DCมอเตอร์มอเตอร์2(2); //ช่อง M2 บน Motor Shield - ด้านหลังขวา
AF_DCมอเตอร์มอเตอร์3(3); //ช่อง M3 บน Motor Shield - ด้านหน้าซ้าย
AF_DCมอเตอร์มอเตอร์4(4); //ช่อง M4 บน Motor Shield - ด้านหน้าขวา

// สร้างวัตถุสำหรับเซอร์โว
เซอร์โวกับเซอร์โว;

ซอฟต์แวร์อนุกรม BTSซีเรียล (50, 51); // รับ เท็กซัส

// สร้างตัวแปรสำหรับคำสั่ง Bluetooth
ถ่าน vcmd;
// สร้างตัวแปรเพื่อจดจำความเร็วของมอเตอร์
int vspdL, vspdR;
/* สร้างตัวแปรที่มีค่าจะลดความเร็วระหว่างการเลี้ยวที่ราบรื่น
ความเร็วปัจจุบันต้องมากกว่าค่านี้ มิฉะนั้นมอเตอร์ในทิศทางการหมุนก็จะไม่หมุน */
int vspd = 200;

การตั้งค่าเป็นโมฆะ () (
// ตั้งค่าอัตราการถ่ายโอนข้อมูล Bluetooth
BTSerial.begin(9600);
// ตั้งค่าความเร็วในการถ่ายโอนข้อมูลผ่านสายเคเบิล
อนุกรมเริ่มต้น(9600);
// เลือกพินที่เซอร์โวเชื่อมต่ออยู่
vsservo.แนบ(9); // หรือ 10 หากเสียบเข้ากับขั้วต่อด้านนอกสุด
// หมุนเซอร์โวไปที่ 90 องศาทุกครั้งที่เปิดเครื่อง
vsservo.write(90);
// กำหนดความเร็วการหมุนสูงสุดของเครื่องยนต์
ความเร็ว(255,255);
}

เป็นโมฆะวน() (
// ถ้ามีข้อมูล
ถ้า (BTSerial.available())
{
// อ่านคำสั่งแล้วนำไปใส่ในตัวแปร char แปลงโค้ดอักขระคำสั่งเป็นอักขระ
vcmd = (ถ่าน) BTSerial.read();
// ส่งคำสั่งไปยังพอร์ตเพื่อให้สามารถตรวจสอบได้ใน "Port Monitor"
Serial.println(vcmd);

// ซึ่งไปข้างหน้า
ถ้า (vcmd == "F") (
ไปข้างหน้า();
}
// กลับ
ถ้า (vcmd == "B")
{
vย้อนกลับ();
}
// ซ้าย
ถ้า (vcmd == "L")
{
vleft();
}
// ขวา
ถ้า (vcmd == "R")
{
ไรท์();
}
// ตรงและซ้าย
ถ้า (vcmd == "G")
{
vไปข้างหน้าซ้าย();
}
//ตรงและขวา
ถ้า (vcmd == "ฉัน")
{
vไปข้างหน้าขวา();
}
//หันหลังไปทางซ้าย
ถ้า (vcmd == "H")
{
vย้อนกลับซ้าย();
}
// หันหลังไปทางขวา
ถ้า (vcmd == "J")
{
vbackwardright();
}
// หยุด
ถ้า (vcmd == "S")
{
วีรีลีส();
}
// ความเร็ว 0%
ถ้า (vcmd == "0")
{
วีสปีด(0,0);
}
// ความเร็ว 10%
ถ้า (vcmd == "1")
{
ความเร็ว(25,25);
}
// ความเร็ว 20%
ถ้า (vcmd == "2")
{
วีสปีด(50,50);
}
// ความเร็ว 30%
ถ้า (vcmd == "3")
{
ความเร็ว(75,75);
}
// ความเร็ว 40%
ถ้า (vcmd == "4")
{
วีสปีด(100,100);
}
// ความเร็ว 50%
ถ้า (vcmd == "5")
{
ความเร็ว(125,125);
}
// ความเร็ว 60%
ถ้า (vcmd == "6")
{
ความเร็ว(150,150);
}
// ความเร็ว 70%
ถ้า (vcmd == "7")
{
ความเร็ว(175,175);
}
// ความเร็ว 80%
ถ้า (vcmd == "8")
{
วีสปีด(200,200);
}
// ความเร็ว 90%
ถ้า (vcmd == "9")
{
ความเร็ว(225,225);
}
// ความเร็ว 100%
ถ้า (vcmd == "q")
{
ความเร็ว(255,255);
}
}
}

// ซึ่งไปข้างหน้า
เป็นโมฆะไปข้างหน้า() (
vspeed(vspdL,vspdR);
vforwardRL();
}

// ส่งต่อสำหรับ RL
เป็นโมฆะ vforwardRL() (
motor1.run (ไปข้างหน้า);
motor2.run (ไปข้างหน้า);
motor3.run(ไปข้างหน้า);
motor4.run (ไปข้างหน้า);
}

// กลับ
เป็นโมฆะ vbackward() (
vspeed(vspdL,vspdR);
vbackwardRL();
}

// กลับไปที่ RL
เป็นโมฆะ vbackwardRL() (
motor1.run (ย้อนกลับ);
motor2.run (ย้อนกลับ);
motor3.run(ย้อนกลับ);
motor4.run(ย้อนกลับ);
}

// ซ้าย
เป็นโมฆะ vleft() (
vspeed(vspdL,vspdR);
motor1.run (ย้อนกลับ);
motor2.run (ไปข้างหน้า);
motor3.run(ย้อนกลับ);
motor4.run (ไปข้างหน้า);
}

// ขวา
เป็นโมฆะ vright() (
vspeed(vspdL,vspdR);
motor1.run (ไปข้างหน้า);
motor2.run (ย้อนกลับ);
motor3.run(ไปข้างหน้า);
motor4.run(ย้อนกลับ);
}

// ไปข้างหน้าและซ้าย
เป็นโมฆะ vforwardleft() (
ถ้า (vspdL > vspd) (
vspeed(vspdL-vspd,vspdR);
}
อื่น
{
vspeed(0,vspdR);
}
vforwardRL();
}

// ไปข้างหน้าและขวา
เป็นโมฆะ vforwardright() (
ถ้า (vspdR > vspd) (
vspeed(vspdL,vspdR-vspd);
}
อื่น
{
vspeed(vspdL,0);
}
vforwardRL();
}

//หันหลังไปทางซ้าย
เป็นโมฆะ vbackwardleft() (
ถ้า (vspdL > vspd) (
vspeed(vspdL-vspd,vspdR);
}
อื่น
{
vspeed(0,vspdR);
}
vbackwardRL();
}

// หันหลังไปทางขวา
เป็นโมฆะ vbackwardright() (
ถ้า (vspdR > vspd) (
vspeed(vspdL,vspdR-vspd);
}
อื่น
{
vspeed(vspdL,0);
}
vbackwardRL();
}

// หยุด
เป็นโมฆะ vrelease())(
motor1.run (ปล่อย);
motor2.run (ปล่อย);
motor3.run(ปล่อย);
motor4.run (ปล่อย);
}

//เปลี่ยนความเร็ว
เป็นโมฆะ vspeed (int spdL, int spdR) (
ถ้า (spdL == spdR) (
vspdL=spdL;
เทียบกับspdR=spdR;
}
motor1.setSpeed(spdL);
motor2.setSpeed(spdR);
motor3.setSpeed(spdL);
motor4.setSpeed(spdR);
}

โปรแกรม Bluetooth RC Car - ควบคุมรถหุ่นยนต์จากสมาร์ทโฟน Android

ฉันติดตั้งโปรแกรม Bluetooth RC Car บนสมาร์ทโฟนของฉัน ในความคิดของฉัน นี่เป็นซอฟต์แวร์ที่ดีที่สุดในการควบคุมรถหุ่นยนต์


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




โปรแกรมต้องใช้ Android เวอร์ชัน 2.3.3 หรือสูงกว่า ขนาดของโปรแกรมคือ 3 เมกะไบต์

รายการคำสั่ง:

  • F – ไปข้างหน้า
  • บี-กลับ
  • ล – ซ้าย
  • ร-ถูกต้อง
  • G - ตรงและซ้าย
  • ฉัน - ตรงและไปทางขวา
  • H - ถอยหลังและซ้าย
  • เจ - กลับไปกลับมา
  • ส-หยุด
  • W - เปิดไฟหน้า
  • w - ไฟหน้าดับอยู่
  • U - เปิดไฟท้าย
  • คุณ - ไฟท้ายดับอยู่
  • V - สัญญาณเสียงเปิดอยู่
  • v - สัญญาณเสียงถูกปิด
  • X - สัญญาณฉุกเฉินเปิดอยู่
  • x - สัญญาณฉุกเฉินปิดอยู่
  • 0 – ความเร็วในการเคลื่อนที่ 0%
  • 1 – ความเร็วในการเคลื่อนที่ 10%
  • 2 – ความเร็วในการเคลื่อนที่ 20%
  • 3 – ความเร็วในการเคลื่อนที่ 30%
  • 4 – ความเร็วในการเคลื่อนที่ 40%
  • 5 – ความเร็วในการเคลื่อนที่ 50%
  • 6 – ความเร็วในการเคลื่อนที่ 60%
  • 7 – ความเร็วในการเคลื่อนที่ 70%
  • 8 – ความเร็วในการเคลื่อนที่ 80%
  • 9 – ความเร็วในการเคลื่อนที่ 90%
  • q – ความเร็วในการเคลื่อนที่ 100%

อย่างที่คุณเห็น พื้นที่ทดสอบความคิดสร้างสรรค์ค่อนข้างดี ฉันยังจะเพิ่มความสามารถในการเปิดไฟซ้ายและขวาแยกกันสำหรับไฟหน้าและหลัง

ฉันได้เน้นด้วยตัวหนาคำสั่งที่ได้รับการสนับสนุนอยู่แล้วในแบบร่าง ฉันจะใช้ส่วนที่เหลือเพื่อจุดประสงค์อื่น

หลักการส่งคำสั่ง: เมื่อกดปุ่มในโปรแกรมคำสั่งจะถูกส่งผ่าน Bluetooth หนึ่งครั้ง และเมื่อปล่อยปุ่ม คำสั่ง S-stop จะถูกส่งทันที

การสาธิตการทำงาน

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