- ข้อกำหนด:
- การดาวน์โหลดและติดตั้งโปรแกรม:
- ชิ้นส่วนฮาร์ดแวร์ Arduino และแผนภาพวงจร:
- ส่วนซอฟต์แวร์ Arduino:
- แอปพลิเคชั่นมือถือ Android สำหรับอัลตราโซนิกเรดาร์:
- คำอธิบายการทำงาน:
นี้เป็นโครงการที่น่าสนใจในการที่เราสำรวจพลังของ Arduino และ Android เพื่อสร้างอุปกรณ์เฝ้าระวังซึ่งใช้ Arduino และอัลตร้าโซนิคเซนเซอร์ในการถ่ายทอดข้อมูลไปยังโปรแกรมมือถือ (Android) โดยใช้บลูทู ธ
ความปลอดภัยและความปลอดภัยเป็นสิ่งสำคัญอันดับแรกของเรา การติดตั้งกล้องรักษาความปลอดภัยที่มีโหมดกลางคืนพร้อมตัวเลือกการเอียงและแพนจะทำให้เกิดรูขนาดใหญ่บนกระเป๋าของเรา ดังนั้นให้เราสร้างอุปกรณ์ทางเศรษฐกิจซึ่งเกือบจะเหมือนกัน แต่ไม่มีคุณสมบัติวิดีโอใด ๆ
อุปกรณ์นี้รู้สึกวัตถุด้วยความช่วยเหลือของอัลตราโซนิคเซนเซอร์และด้วยเหตุนี้สามารถทำงานได้แม้ในช่วงเวลากลางคืนนอกจากนี้เรากำลังติดตั้งเซ็นเซอร์ US (Ultra Sonic) บนเซอร์โวมอเตอร์เซอร์โวมอเตอร์นี้สามารถตั้งค่าให้หมุนโดยอัตโนมัติเพื่อสแกนพื้นที่หรือสามารถหมุนด้วยตนเองโดยใช้แอพมือถือของเราเพื่อให้เราสามารถโฟกัสเซ็นเซอร์อัลตราโซนิกได้ ทิศทางที่ต้องการของเราและรับรู้ถึงวัตถุที่อยู่ตรงนั้น ข้อมูลทั้งหมดที่เซ็นเซอร์ของสหรัฐอเมริกาตรวจจับได้จะถูกถ่ายทอดไปยังสมาร์ทโฟนของเราโดยใช้โมดูลบลูทู ธ (HC-05) ดังนั้นมันจะทำงานเหมือนโซนาร์หรือเรดาร์
น่าสนใจใช่ไหม ??…. ให้เราดูว่าเราต้องการอะไรในการทำโครงการนี้
ข้อกำหนด:
ฮาร์ดแวร์:
- แหล่งจ่ายไฟ A + 5V (ฉันใช้บอร์ด Arduino (อีกอัน) เป็นแหล่งจ่ายไฟ)
- Arduino Mega (คุณสามารถใช้อะไรก็ได้ตั้งแต่ pro mini ไปจนถึง Yun)
- เซอร์โวมอเตอร์ (ระดับใดก็ได้)
- โมดูลบลูทู ธ (HC-05)
- อัลตร้าโซนิคเซนเซอร์ (HC-SR04)
- Breadboard (ไม่บังคับ)
- การเชื่อมต่อสายไฟ
- มือถือ Android
- คอมพิวเตอร์สำหรับการเขียนโปรแกรม
ซอฟต์แวร์:
- ซอฟต์แวร์ Arduino
- Android SDK
- กำลังประมวลผล Android (เพื่อสร้างแอปพลิเคชันมือถือ)
เมื่อเราพร้อมกับวัสดุของเราแล้วให้เราเริ่มสร้างฮาร์ดแวร์ ฉันได้แยกบทช่วยสอนนี้ออกเป็น Arduino Part และส่วนการประมวลผลเพื่อให้เข้าใจง่าย ผู้ที่ยังใหม่กับการประมวลผลไม่จำเป็นต้องกลัวอะไรมากเพราะโค้ดที่สมบูรณ์จะได้รับในตอนท้ายของบทช่วยสอนซึ่งสามารถใช้ได้เช่นนี้
การดาวน์โหลดและติดตั้งโปรแกรม:
Arduino IDEสามารถติดตั้งได้จากที่นี่ ดาวน์โหลดซอฟต์แวร์ตามระบบปฏิบัติการของคุณและติดตั้ง Arduino IDE จะต้องมีไดรเวอร์เพื่อสื่อสารกับฮาร์ดแวร์ Arduino ของคุณ ไดรเวอร์นี้ควรได้รับการติดตั้งโดยอัตโนมัติเมื่อคุณเชื่อมต่อบอร์ดกับคอมพิวเตอร์ของคุณ ลองอัปโหลดโปรแกรมกะพริบจากตัวอย่างเพื่อให้แน่ใจว่า Arduino พร้อมใช้งานแล้ว
ประมวลผล IDEสามารถติดตั้งได้จากที่นี่ การประมวลผลเป็นแอปพลิเคชั่นโอเพ่นซอร์สที่ยอดเยี่ยมซึ่งสามารถใช้งานได้หลายอย่างมีโหมดต่างๆ ใน“ โหมด Java” เราสามารถสร้างแอปพลิเคชันคอมพิวเตอร์ที่ใช้ Windows (ไฟล์. EXE) และใน“ โหมด Android” เราสามารถสร้างแอปพลิเคชันมือถือ Android (ไฟล์. APK) ได้นอกจากนี้ยังมีโหมดอื่น ๆ เช่น“ โหมด Python” ซึ่งคุณสามารถเขียนโปรแกรมหลามได้. บทแนะนำนี้จะไม่ครอบคลุมถึงพื้นฐานของการประมวลผลดังนั้นหากคุณต้องการเรียนรู้การเขียนโปรแกรม Java หรือการประมวลผลไปที่ช่อง YouTube ที่ยอดเยี่ยมนี้ที่นี่
ชิ้นส่วนฮาร์ดแวร์ Arduino และแผนภาพวงจร:
โครงการนี้เกี่ยวข้องกับส่วนประกอบจำนวนมากเช่นServo Motor, Bluetooth Module, Ultrasonic Sensorเป็นต้นดังนั้นหากคุณเป็นมือใหม่ขอแนะนำให้เริ่มต้นด้วยบทช่วยสอนพื้นฐานบางอย่างที่เกี่ยวข้องกับส่วนประกอบเหล่านี้แล้วกลับมาที่นี่ ตรวจสอบโครงการต่างๆของเราเกี่ยวกับ Servo Motor, Bluetooth Module และ Ultrasonic Sensor ที่นี่
ส่วนประกอบทั้งหมดไม่ได้ใช้พลังงานจาก Arduino เองเนื่องจากเซอร์โวมอเตอร์โมดูลบลูทู ธ และเซ็นเซอร์ของสหรัฐอเมริกาดึงกระแสจำนวนมากซึ่ง Arduino จะไม่สามารถจ่ายกระแสได้ ดังนั้นก็จะแนะนำอย่างเคร่งครัดเพื่อใช้ภายนอกอุปทานใด ๆ + 5V หากคุณไม่มีแหล่งจ่ายภายนอก + 5V ที่เอื้อมถึงคุณสามารถแบ่งปันส่วนประกอบระหว่างบอร์ด Arduino สองตัวได้ตามที่ฉันเคยทำ ฉันได้เชื่อมต่อรางจ่ายไฟเซอร์โวเข้ากับบอร์ด Arduino อื่น (สีแดง) และเชื่อมต่อโมดูลบลูทู ธ HC-05 และเซ็นเซอร์อัลตราโซนิก HC-SR04 กับ Arduino mega ข้อควรระวัง: การเปิดโมดูลเหล่านี้ทั้งหมดโดยใช้บอร์ด Arduino หนึ่งตัวจะทำให้ตัวควบคุมแรงดันไฟฟ้าของ Arduino ขึ้น
แผนภาพการเชื่อมต่อสำหรับโครงการ Sonar ที่ใช้ Arduinoนี้ได้รับด้านล่าง:
เมื่อทำการเชื่อมต่อแล้วให้ติดเซ็นเซอร์ US เข้ากับเซอร์โวมอเตอร์ของคุณดังที่แสดงด้านล่าง:
ฉันใช้พลาสติกชิ้นเล็ก ๆ ที่อยู่ในขยะของฉันและเทปสองด้านเพื่อติดเซนเซอร์ คุณสามารถคิดขึ้นมาเองเพื่อทำเช่นเดียวกัน นอกจากนี้ยังมีตัวยึดเซอร์โวในตลาดซึ่งสามารถใช้เพื่อวัตถุประสงค์เดียวกันได้
เมื่อติดตั้ง Servo และได้รับ Connections แล้วควรมีลักษณะดังนี้
ทำตามแผนผังด้านบนหากมีการเชื่อมต่อผิดพลาด ตอนนี้ให้เราเริ่มเขียนโปรแกรม Arduino Mega โดยใช้ Arduino IDE
ส่วนซอฟต์แวร์ Arduino:
เราต้องเขียนโค้ดของเราเพื่อที่เราจะได้คำนวณระยะห่างระหว่างวัตถุกับเซ็นเซอร์ Ultra Sonic และส่งไปยังแอปพลิเคชันมือถือของเรา นอกจากนี้เรายังต้องเขียนโค้ดสำหรับเซอร์โวมอเตอร์ของเราเพื่อกวาดและควบคุมจากข้อมูลที่ได้รับจากโมดูลบลูทู ธ แต่ไม่ต้องกังวลว่าโปรแกรมจะง่ายกว่าที่คุณสามารถทำได้ด้วย Arduino และไลบรารี รหัสที่สมบูรณ์จะได้รับด้านล่างในส่วนรหัส
ฟังก์ชันด้านล่างนี้ใช้เพื่อทำให้เซอร์โวมอเตอร์กวาดจากซ้ายไปขวาโดยอัตโนมัติ (170 ถึง 10) และอีกครั้งจากขวาไปซ้าย (10 ถึง170) สอง สำหรับ ลูปใช้เพื่อให้ได้สิ่งเดียวกัน ฟังก์ชัน us () ถูกเรียกภายในฟังก์ชันทั้งสองเพื่อคำนวณระยะห่างระหว่างเซ็นเซอร์และวัตถุและถ่ายทอดไปยังบลูทู ธ มีการหน่วงเวลา 50 ms เพื่อให้เซอร์โวหมุนช้า ยิ่งมอเตอร์หมุนช้าลงเท่าไหร่การอ่านค่าของคุณก็จะแม่นยำขึ้นเท่านั้น
// ** ฟังก์ชันให้เซอร์โวกวาด ** // โมฆะ servofun () {Serial.println ("Sweeping"); // สำหรับการดีบักสำหรับ (posc = 10; posc <= 170; posc ++) // การใช้ 10 ถึง 170 องศานั้นปลอดภัยกว่า 0 ถึง 180 เนื่องจากเซอร์โวบางตัวอาจไม่สามารถใช้งานได้ที่แองเจิลสุดขีด {servo.write (posc); // กำหนดตำแหน่งของเซอร์โวมอเตอร์ดีเลย์ (50); เรา(); // วัดระยะห่างของวัตถุร้องเพลง US sensor} สำหรับ (posc = 170; posc> = 10; posc--) {servo.write (posc); ล่าช้า (50); เรา(); // วัดระยะของวัตถุร้องเพลง US sensor} Serial.println ("Scan Complete"); // สำหรับการดีบักแฟล็ก = 0; } // ** สิ้นสุดฟังก์ชันการกวาดเซอร์โว ** //
ที่กล่าวก่อนหน้านี้เซอร์โวมอเตอร์ที่สามารถควบคุมด้วยตนเองจากมาร์ทโฟนคุณเพียงแค่ปัดไปทางขวาเพื่อให้มอเตอร์เคลื่อนที่ไปทางขวาและปัดไปทางซ้ายเพื่อให้มอเตอร์เคลื่อนที่ไปทางซ้าย ฟังก์ชันข้างต้นใช้เพื่อให้ได้สิ่งเดียวกัน แองเจิลของเซอร์โวมอเตอร์จะได้รับโดยตรงจากโมดูลบลูทู ธ และเก็บไว้ในตัวแปร BluetoothData จากนั้นเซอร์โวจะอยู่ในตำแหน่งในแองเจิลนั้นโดยใช้ line servo.write (BluetoothData)
// ** ฟังก์ชั่นควบคุม Servo ด้วยตนเอง ** // void manualservo () {us (); // รับค่าจากผู้ใช้และควบคุมเซอร์โวถ้า (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println (BluetoothData); เซอร์โวเขียน (BluetoothData); Serial.println ("เขียน"); ถ้า (BluetoothData == 'p') {flag = 0; }}} // __ สิ้นสุดฟังก์ชั่นการควบคุมด้วยตนเอง __ //
ปัจจุบันระยะก่อนที่วัตถุจะถูกคำนวณได้จากฟังก์ชั่นดังต่อไปนี้ใช้งานได้กับสูตรง่ายๆที่ Speed = Distance / time เนื่องจากเราทราบความเร็วของคลื่นสหรัฐและเวลาที่ใช้ระยะทางสามารถคำนวณได้โดยใช้สูตรข้างต้น
// ** ฟังก์ชั่นวัดระยะ ** // โมฆะ us () {int ระยะเวลาระยะทาง; digitalWrite (trigPin, สูง); ล่าช้าไมโครวินาที (1,000); digitalWrite (trigPin, LOW); ระยะเวลา = pulseIn (echoPin, HIGH); ระยะทาง = (ระยะเวลา / 2) / 29.1; // คำนวณระยะทางจากเซ็นเซอร์ if (ระยะทาง <200 && ระยะทาง> 0) Blueboy.write (ระยะทาง); } // __ สิ้นสุดฟังก์ชันการวัดระยะทาง __ //
หากคุณมีข้อสงสัยในโปรแกรมอย่าลังเลที่จะใช้ส่วนความคิดเห็นสำหรับคำถามของคุณ ดังนั้นเมื่อเราพร้อมกับรหัสของเราแล้วเราก็สามารถทิ้งโค้ดลงในฮาร์ดแวร์ของเราได้ทันที แต่อุปกรณ์เฝ้าระวังจะไม่เริ่มทำงานจนกว่าจะเชื่อมต่อกับแอปพลิเคชัน Android ตรวจสอบวิดีโอในตอนท้ายด้วยเพื่อการทำงานที่สมบูรณ์
แอปพลิเคชั่นมือถือ Android สำหรับอัลตราโซนิกเรดาร์:
หากคุณไม่ต้องการสร้างแอปพลิเคชันของคุณเองและเพียงต้องการติดตั้งแอปพลิเคชันเดียวกับที่ใช้ในบทช่วยสอนนี้คุณสามารถทำตามขั้นตอนด้านล่าง
1. คุณสามารถดาวน์โหลดไฟล์ APKได้โดยตรงจากลิงค์ด้านล่าง ไฟล์ APK นี้สร้างขึ้นสำหรับ Android เวอร์ชัน 4.4.2 ขึ้นไป (Kitkat ด้านบน) แตกไฟล์ APK จากไฟล์ zip
แอปพลิเคชัน Android สำหรับอัลตราโซนิกเรดาร์
2. โอนไฟล์. apk จากคอมพิวเตอร์ไปยังโทรศัพท์มือถือของคุณ
3. เปิดใช้งานการติดตั้งแอปพลิเคชันจากแหล่งที่ไม่รู้จักในการตั้งค่า Android ของคุณ
4. ติดตั้งแอปพลิเคชัน
หากติดตั้งสำเร็จคุณจะพบแอปพลิเคชันชื่อ“ Zelobt”ติดตั้งบนโทรศัพท์ของคุณดังที่แสดงด้านล่าง:
หากคุณติดตั้ง APK นี้คุณสามารถข้ามส่วนด้านล่างและข้ามไปยังส่วนถัดไป
การเขียนโปรแกรมแอปพลิเคชันของคุณเองโดยใช้การประมวลผล:
คุณสามารถใช้ไฟล์. APK ที่ให้ไว้ด้านบนหรือคุณสามารถสร้างแอปของคุณเองโดยใช้การประมวลผลตามที่อธิบายไว้ที่นี่ ด้วยความรู้เพียงเล็กน้อยเกี่ยวกับการเขียนโปรแกรมการเขียนโค้ดของคุณเองสำหรับแอปพลิเคชัน Android ของคุณก็ทำได้ง่ายมาก อย่างไรก็ตามหากคุณเพิ่งเริ่มต้นก็ไม่แนะนำให้เริ่มต้นด้วยรหัสนี้เนื่องจากรหัสนั้นสูงกว่าระดับเริ่มต้นเล็กน้อย
โปรแกรมนี้ใช้สองห้องสมุด ได้แก่ “Ketai ห้องสมุด” และ “ControlP5 ห้องสมุด” ห้องสมุด ketai ใช้เพื่อควบคุมฮาร์ดแวร์ทั้งหมดที่มีอยู่ในโทรศัพท์มือถือของเรา สิ่งต่างๆเช่นระดับแบตเตอรี่ของโทรศัพท์คุณค่าพร็อกซิมิตีเซ็นเซอร์ค่าเซ็นเซอร์มาตรความเร่งตัวเลือกการควบคุมบลูทู ธ ฯลฯ สามารถเข้าถึงได้ง่ายโดยไลบรารีนี้ ในโปรแกรมนี้เราใช้ไลบรารีนี้เพื่อสร้างการสื่อสารระหว่างโทรศัพท์ Bluetooth และ Arduino Bluetooth (HC-05) “ControlP5 ห้องสมุด” จะใช้ในการพล็อตกราฟระบบเรดาร์ของเรา
โปรแกรมหุ่นยนต์ที่สมบูรณ์แบบที่แนบมา, คุณสามารถดาวน์โหลดได้จากที่นี่
ข้อควรระวัง:อย่าลืมติดตั้งไลบรารีที่กล่าวถึงข้างต้นและอย่าคัดลอกและวางส่วนของโค้ดเพียงอย่างเดียวเนื่องจากโค้ดจะนำเข้ารูปภาพจากโฟลเดอร์ข้อมูลซึ่งจะได้รับในไฟล์แนบด้านบน ดังนั้นดาวน์โหลดและใช้เพียงแค่นั้น
เมื่อคุณดำเนินการกับส่วนการเข้ารหัสและรวบรวมเรียบร้อยแล้วคุณสามารถเชื่อมต่อโทรศัพท์มือถือของคุณกับคอมพิวเตอร์ได้โดยตรงผ่านสายเคเบิลข้อมูลและคลิกที่ปุ่มเล่นเพื่อปิดแอปพลิเคชันลงในโทรศัพท์มือถือ ตรวจสอบโครงการประมวลผลอื่น ๆ ของเรา: เกมปิงปองโดยใช้ Arduino และวิทยุ FM ที่ควบคุมด้วยโทรศัพท์สมาร์ทโฟนโดยใช้การประมวลผล
คำอธิบายการทำงาน:
ตอนนี้เราพร้อมทั้งฮาร์ดแวร์และซอฟต์แวร์ เพาเวอร์ฮาร์ดแวร์ของคุณและจับคู่มือถือของคุณไปยังโมดูลบลูทู ธเมื่อจับคู่เปิด“Zelobt ของคุณ” โปรแกรมที่เราเพิ่งติดตั้งและตอนนี้รอเป็นครั้งที่สองและคุณควรแจ้งให้ทราบของคุณโมดูลบลูทู ธ (HC-05) โดยอัตโนมัติการเชื่อมต่อกับโทรศัพท์มือถือสมาร์ทของคุณเมื่อสร้างการเชื่อมต่อแล้วคุณจะได้รับหน้าจอต่อไปนี้:
คุณสามารถสังเกตได้ว่ามีข้อความว่าเชื่อมต่อกับ: ชื่ออุปกรณ์ (ที่อยู่ฮาร์ดแวร์) ที่ด้านบนของหน้าจอนอกจากนี้ยังแสดงทูตสวรรค์องค์ปัจจุบันของเซอร์โวมอเตอร์และระยะห่างระหว่างเซ็นเซอร์สหรัฐอเมริกากราฟสีน้ำเงินจะถูกพล็อตบนพื้นหลังสีแดงตามระยะทางที่วัดได้ ยิ่งวัตถุเข้าใกล้พื้นที่สีน้ำเงินก็จะยิ่งสูงขึ้น กราฟที่วัดเมื่อวัตถุบางอย่างถูกวางไว้ใกล้จะแสดงในรูปที่สองด้านบน
ที่กล่าวก่อนหน้านี้คุณยังสามารถควบคุมเซอร์โวมอเตอร์จากแอปมือถือของคุณทำได้โดยคลิกที่ปุ่มหยุด สิ่งนี้จะหยุดเซอร์โวของคุณจากการกวาดโดยอัตโนมัติ คุณยังสามารถพบวงล้อวงกลมที่ด้านล่างของหน้าจอซึ่งเมื่อปัดจะหมุนตามเข็มนาฬิกาหรือทิศทางที่ชาญฉลาด การปัดล้อนี้จะทำให้เซอร์โวมอเตอร์ของคุณหมุนไปในทิศทางนั้นได้ วงล้อและกราฟที่อัปเดตเมื่อปัดจะแสดงในภาพด้านล่าง
รหัส Arduinoได้รับด้านล่างและไฟล์ APK สำหรับแอปพลิเคชัน Android อยู่ที่นี่ การทำงานของโครงการที่สมบูรณ์แสดงอยู่ในวิดีโอด้านล่าง หวังว่าคุณจะเข้าใจโครงการ หากคุณมีข้อสงสัยกรุณาใช้ส่วนความคิดเห็นด้านล่าง