สารบัญ:
- ขั้นตอนที่ 1: เรื่องราว
- ขั้นตอนที่ 2: ทฤษฎีและระเบียบวิธี
- ขั้นตอนที่ 3: การตั้งค่าฮาร์ดแวร์
- ขั้นตอนที่ 4: การติดตั้งซอฟต์แวร์
- ขั้นตอนที่ 5: การแก้ไขปัญหา
- ขั้นตอนที่ 6: รหัส Arduino
วีดีโอ: ระบบเรดาร์อย่างง่ายจาก Magicbit: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
บทช่วยสอนนี้แสดงวิธีสร้างระบบเรดาร์อย่างง่ายโดยใช้เซ็นเซอร์ HC-SR04 และบอร์ด Microbit dev พร้อมการประมวลผลและ Arduino IDE
เสบียง:
- SG90 ไมโครเซอร์โวมอเตอร์
- สายจัมเปอร์ (ทั่วไป)
- เขียงหั่นขนม (ทั่วไป)
- Magicbit
- สาย USB-A เป็น Micro-USB
- อัลตราโซนิกเซนเซอร์ - HC-SR04 (ทั่วไป)
ขั้นตอนที่ 1: เรื่องราว
ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับวิธีสร้างระบบเรดาร์อย่างง่ายโดยใช้บอร์ดพัฒนาหลักของ Magicbit เพื่อจุดประสงค์นี้ เราใช้เซ็นเซอร์อัลตราโซนิก HC-SR04 และเพื่อแสดงข้อมูล เราใช้สภาพแวดล้อมการประมวลผล มาเริ่มกันเลย
ขั้นตอนที่ 2: ทฤษฎีและระเบียบวิธี
ขั้นแรก มาพูดคุยกันว่ามันทำงานอย่างไร หลักการนั้นง่ายมาก ขั้นแรก เราหมุนเซ็นเซอร์ของเรารอบแกนแนวตั้งในช่วง 180 องศาอย่างต่อเนื่อง ระหว่างการเคลื่อนไหวนั้น เราจะนำข้อมูลเกี่ยวกับระยะทางไปยังวัตถุที่ใกล้ที่สุดจากเซ็นเซอร์อัลตราโซนิกทุกมุม สำหรับกระบวนการนี้ เราใช้บอร์ดหลักของ Magicbit หลังจากนั้น เราต้องสร้างการเชื่อมต่อกับสภาพแวดล้อมการประมวลผลเพื่อแสดงข้อมูลของเรา ดังนั้นเราจึงใช้โปรโตคอลการสื่อสารแบบอนุกรมที่มีอัตรารับส่งข้อมูลที่เหมาะสม จากนั้นเราออกแบบอินเทอร์เฟซระบบเรดาร์ของเราโดยใช้การประมวลผล IDE ใน IDE นั้น เรากำหนดค่าการสื่อสารซีเรียลเพื่อรับข้อมูลแบบเรียลไทม์ผ่านซีเรียล ดังนั้นเราจึงทำการสื่อสารแบบเรียลไทม์กับ Magicbit และแสดงข้อมูลที่ส่งจาก Magicbit ไปยัง IDE การประมวลผล
ขั้นตอนที่ 3: การตั้งค่าฮาร์ดแวร์
สำหรับโครงการนี้ เราใช้ส่วนประกอบฮาร์ดแวร์สามส่วนเป็นหลัก ได้แก่ Magicbit, เซอร์โวมอเตอร์และเซ็นเซอร์อัลตราโซนิก การเชื่อมต่อระหว่างส่วนเหล่านี้ทั้งหมดแสดงในรูปด้านบน
เซ็นเซอร์อัลตราโซนิกใช้ 3.3 v สำหรับเปิดเครื่อง ดังนั้นเราจึงใช้พอร์ตด้านล่างขวาของบอร์ด Magicbit เพื่อเชื่อมต่อเซ็นเซอร์อัลตราโซนิกกับ Magicbit แต่เซอร์โวมอเตอร์ใช้ 5V เพื่อการทำงานที่เหมาะสม ดังนั้นเราจึงใช้พอร์ตล่างซ้ายเพื่อเชื่อมต่อเซอร์โวมอเตอร์กับ Magicbit ในกรณีนี้ เราใช้โมดูลตัวเชื่อมต่อเซอร์โวเมจิกบิต แต่ถ้าคุณไม่มีโมดูลนั้น คุณสามารถใช้สายจัมเปอร์สามเส้นเพื่อเชื่อมต่อ 5V ถึง 5V, Gnd ถึง Gnd และพินสัญญาณเป็น 26 พินบน magicbit
หลังจากสร้างวงจรแล้ว เราก็มีชิ้นส่วนเครื่องจักรกลเล็กๆ ที่จะสร้าง ตั้งค่าคอนเน็กเตอร์เซอร์โวด้านเดียวเข้ากับเซอร์โวมอเตอร์โดยใช้น็อตขนาดเล็ก จากนั้นยึดเซ็นเซอร์บนขั้วต่อนั้นโดยใช้ขายึดรูปตัว L หรือวิธีที่เหมาะสม หลังจากที่ทั้งระบบเราแก้ไขบนเขียงหั่นขนม แต่คุณสามารถใช้พื้นผิวอื่นเพื่อติดตั้งเซอร์โวและ Magicbit
ขั้นตอนที่ 4: การติดตั้งซอฟต์แวร์
ด้านซอฟต์แวร์มีความซับซ้อนเล็กน้อย เพื่อความเข้าใจที่ถูกต้อง คุณสามารถอ้างอิงลิงก์ต่อไปนี้ก่อนที่จะไปต่อในส่วนถัดไป
magicbit-arduino.readthedocs.io/en/latest/
hello.processing.org/editor/
มาดูโค้ด Arduino IDE กัน และโค้ดนั้นทำงานอย่างไร
สำหรับการขับเซอร์โวเราใช้ไลบรารีเซอร์โว ESP32 ไลบรารีนี้เกือบจะรวมอยู่ในตัวจัดการบอร์ดบิตวิเศษใน Arduino IDE เพื่อจัดการกับเซ็นเซอร์อัลตราโซนิกเราใช้ไลบรารี newPing สามารถดาวน์โหลดได้จากลิงค์ต่อไปนี้
bitbucket.org/teckel12/arduino-new-ping/do…
ดาวน์โหลดไฟล์ zip และไปที่เครื่องมือ > รวมไลบรารี > เพิ่มไลบรารี Zip ใน Arduino ตอนนี้เลือกไฟล์ zip ที่คุณดาวน์โหลดของไลบรารีพินใหม่ สำหรับการสื่อสารกับการประมวลผล เราใช้การสื่อสารแบบอนุกรมที่มีอัตรารับส่งข้อมูล 115200 นี่เป็นความถี่ที่เหมาะสมที่สุดสำหรับ ESP32 ในทุกมุม เราส่งข้อมูลของเราไปยังคอมพิวเตอร์โดยใช้โปรโตคอลนี้ ข้อมูลนี้รวมระยะทางไปยังวัตถุด้านหน้าที่ใกล้ที่สุดจากเซ็นเซอร์ ทิศทางการหมุน และมุมการหมุน การใช้ two for loops เราหมุนเซอร์โวของเราในสองทิศทาง ในขณะที่การหมุนหนึ่งองศา เราส่งข้อมูลอนุกรมที่ 4 ครั้ง เหตุผลที่คุณสามารถเข้าใจในการประมวลผลคำอธิบายส่วน
ตอนนี้ได้เวลาดูสภาพแวดล้อมการประมวลผลแล้ว นี่คือซอฟต์แวร์การเขียนโปรแกรมที่ใช้จาวา เราสามารถเขียนแบบสเก็ตช์ของโปรแกรมของเราในแบบสเก็ตช์นี้ในการประมวลผล IDE นอกจากนี้เรายังสามารถสร้างการแสดงผลจากการรันโปรแกรมของเราได้อีกด้วย นอกจากนี้คุณยังสามารถส่งออกเป็นวัตถุ 2D และ 3d ไม่เพียงเท่านั้น ยังสามารถใช้สำหรับการประมวลผลภาพและอื่นๆ อีกมากมาย
ในร่างการประมวลผลขั้นแรก เราออกแบบอินเทอร์เฟซการแสดงข้อมูลของเราโดยใช้ฟังก์ชันกราฟิกอย่างง่าย ในตอนเริ่มต้นของรหัส เราจะสร้างการสื่อสารแบบอนุกรมของเราโดยรวมไลบรารีซีเรียล ในฟังก์ชันการตั้งค่า คุณต้องทำการเปลี่ยนแปลงบางอย่างตามพอร์ต USB ที่คุณใช้เชื่อมต่อ Magicbit กับคอมพิวเตอร์ คุณสามารถตรวจสอบพอร์ตของคุณโดยใช้ Arduino IDE เมื่อคุณตั้งค่า Arduino IDE เพื่ออัปโหลดโค้ด จากนั้นเปลี่ยนชื่อพอร์ต com ในส่วนการตั้งค่าในการประมวลผลแบบร่าง เมื่อข้อมูลซีเรียลพร้อมใช้งาน ฟังก์ชัน Serialevent จะทริกเกอร์โดยอัตโนมัติ ด้วยเหตุนี้ ตรรกะหลักของรหัสจึงรวมอยู่ในเหตุการณ์แบบอนุกรมเพื่อป้องกันมุมและข้อมูลขาดหายไป เมื่อมีข้อมูลใหม่ เราจะวาดเส้นในหน้าจอตามมุมของเรา ในขณะนั้นหากไม่มีการตรวจจับวัตถุ เส้นเต็มจะเป็นสีเขียว หากไม่เป็นเช่นนั้น บางส่วนของเส้นจะเป็นสีแดงตามระยะห่างจากเซ็นเซอร์ไปยังวัตถุ นอกจากนี้ ทิศทางการหมุนตามนั้น เราวาดอีก 200 เส้นใกล้กับเส้นนั้นโดยลดระดับสีเขียวลง ระหว่างแต่ละ Main เรามีความแตกต่าง 0.25 องศา ดังนั้นเราจึงได้รับการอ่าน 4 ครั้งจาก Magicbit ในแต่ละการหมุนองศา ด้วยเหตุนี้เราจึงสามารถสร้างการค้นหาที่สวยงามด้วยมือในหน้าจอ
หลังจากอัปโหลดโค้ดสำเร็จจนเต็มเป็นเวทย์มนตร์และตั้งค่าส่วนฮาร์ดแวร์สำเร็จแล้ว ให้เปิด IDE การประมวลผลและเรียกใช้โค้ดโดยคลิกปุ่มเรียกใช้ ตอนนี้คุณมีระบบเรดาร์ที่ง่ายมาก
คุณสามารถปรับแต่งรหัสตามที่คุณต้องการให้แสดง
ขั้นตอนที่ 5: การแก้ไขปัญหา
กำลังประมวลผลสเก็ตช์ไม่ทำงาน
- รอสักครู่ เนื่องจากเวลาเริ่มต้นขึ้นอยู่กับประสิทธิภาพของพีซีและ GPU ของคุณ
- ตรวจสอบว่าหมายเลขพอร์ตอนุกรมถูกต้องในการประมวลผลแบบร่าง
- ตรวจสอบว่าการเชื่อมต่อ USB ได้รับการแก้ไขอย่างถูกต้อง
- ตรวจสอบการเชื่อมต่อระหว่างเซ็นเซอร์อัลตราโซนิกกับ Magicbit
- เปิดมอนิเตอร์แบบอนุกรมและตรวจสอบว่าข้อมูลมาจาก Arduino ถ้าไม่เช่นนั้น ปัญหาคือรหัส Arduino หรือการเชื่อมต่อ USB ของคุณ
เซอร์โวไม่ทำงาน
- ตรวจสอบว่าการเชื่อมต่อ USB ได้รับการแก้ไขอย่างถูกต้อง
- ตรวจสอบสายไฟ
- ตรวจสอบว่าเซอร์โวอยู่ในสภาพดี
ขั้นตอนที่ 6: รหัส Arduino
#รวม
#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 โซนาร์ Ping ใหม่ (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // รวมระยะทาง int ของไลบรารีเซอร์โว เรดาร์เซอร์โวเซอร์โว; การตั้งค่าเป็นโมฆะ () { Serial.begin (115200); RadarServo.attach (26); // กำหนดว่าขาใดเป็นความล่าช้าของเซอร์โวมอเตอร์ที่แนบมา (3000); } void loop() {// หมุนเซอร์โวมอเตอร์จาก 15 ถึง 165 องศาสำหรับ (int i=0;i<=180;i++){ RadarServo.write(i); ล่าช้า (50); distance = sonar.ping_cm();// เรียกใช้ฟังก์ชันสำหรับคำนวณระยะทางที่วัดโดยเซ็นเซอร์อัลตราโซนิกสำหรับแต่ละองศาสำหรับ (int j=0;j0){ break; } Serial.print(i); // ส่งค่าดีกรีปัจจุบันไปที่ Serial Port Serial.print(", "); // ส่งอักขระเพิ่มเติมถัดจากค่าก่อนหน้าที่จำเป็นในการประมวลผล IDE สำหรับการจัดทำดัชนี Serial.print(j); // ส่งค่าดีกรีปัจจุบันไปที่ Serial Port Serial.print("*"); Serial.print(1); // ส่งค่าระยะทางไปยัง Serial Port Serial.print("/"); // ส่งอักขระเพิ่มเติมถัดจากค่าก่อนหน้าที่จำเป็นในการประมวลผล IDE สำหรับการจัดทำดัชนี Serial.print(ระยะทาง); // ส่งค่าระยะทางไปยัง Serial Port Serial.print("."); // ส่งอักขระเพิ่มเติมถัดจากค่าก่อนหน้าที่จำเป็นในการประมวลผล IDE สำหรับการจัดทำดัชนี } } // ทำซ้ำบรรทัดก่อนหน้าจาก 165 ถึง 15 องศาสำหรับ (int i=180;i>=0;i--){ RadarServo.write(i); ล่าช้า (50); ระยะทาง = sonar.ping_cm(); สำหรับ(int j=75;j>=0;j-=25){ if(i==180 && (j==75 ||j==50 ||j==25)){ ดำเนินการต่อ; } Serial.print(i); // ส่งค่าดีกรีปัจจุบันไปที่ Serial Port Serial.print(", "); // ส่งอักขระเพิ่มเติมถัดจากค่าก่อนหน้าที่จำเป็นในการประมวลผล IDE สำหรับการจัดทำดัชนี Serial.print(j); // ส่งค่าดีกรีปัจจุบันไปที่ Serial Port Serial.print("*"); Serial.print(-1); // ส่งค่าระยะทางไปยัง Serial Port Serial.print("/"); // ส่งอักขระเพิ่มเติมถัดจากค่าก่อนหน้าที่จำเป็นในการประมวลผล IDE สำหรับการจัดทำดัชนี Serial.print(ระยะทาง); // ส่งค่าระยะทางไปยัง Serial Port Serial.print("."); // ส่งอักขระเพิ่มเติมถัดจากค่าก่อนหน้าที่จำเป็นในการประมวลผล IDE สำหรับการจัดทำดัชนี } }
}
แนะนำ:
เชื่อมต่อ Magicbit ของคุณกับ Thingsboard: 3 ขั้นตอน
เชื่อมต่อ Magicbit ของคุณกับ Thingsboard: ในโครงการนี้ เราจะส่งข้อมูลจากเซ็นเซอร์ที่เชื่อมต่อกับ magicbit ซึ่งเราสามารถแสดงเป็นภาพบนกระดาน
หุ่นยนต์ปรับสมดุลตนเองจาก Magicbit: 6 ขั้นตอน
หุ่นยนต์ปรับสมดุลตนเองจาก Magicbit: บทช่วยสอนนี้แสดงวิธีสร้างหุ่นยนต์ทรงตัวโดยใช้บอร์ด Magicbit dev เราใช้ magicbit เป็นบอร์ดพัฒนาในโปรเจ็กต์นี้ ซึ่งใช้ ESP32 ดังนั้นสามารถใช้บอร์ดพัฒนา ESP32 ในโครงการนี้ได้
การแสดงข้อมูลจาก Magicbit ใน AWS: 5 ขั้นตอน
การแสดงข้อมูลจาก Magicbit ใน AWS: ข้อมูลที่รวบรวมจากเซ็นเซอร์ที่เชื่อมต่อกับ Magicbit จะถูกเผยแพร่ไปยังแกน AWS IOT ผ่าน MQTT เพื่อให้แสดงผลแบบกราฟิกแบบเรียลไทม์ เราใช้ magicbit เป็นบอร์ดพัฒนาในโปรเจ็กต์นี้ ซึ่งใช้ ESP32 ดังนั้น ESP32 d
ใช้ปุ่มกดบน Magicbit ของคุณ [Magicblocks]: 5 ขั้นตอน
ใช้ Push Buttons บน Magicbit ของคุณ [Magicblocks]: บทช่วยสอนนี้จะสอนให้คุณใช้ Push Buttons บน Magicbit ของคุณโดยใช้ Magicblocks เราใช้ magicbit เป็นบอร์ดพัฒนาในโปรเจ็กต์นี้ ซึ่งใช้ ESP32 ดังนั้นสามารถใช้บอร์ดพัฒนา ESP32 ในโครงการนี้ได้
สร้าง Proximity Sensor ด้วย Magicbit [Magicblocks]: 6 ขั้นตอน
สร้าง Proximity Sensor ด้วย Magicbit [Magicblocks]: บทช่วยสอนนี้จะสอนให้คุณใช้ Proximity Sensor กับ Magicbit โดยใช้ Magicblocks เราใช้ magicbit เป็นบอร์ดพัฒนาในโปรเจ็กต์นี้ ซึ่งใช้ ESP32 ดังนั้นสามารถใช้บอร์ดพัฒนา ESP32 ในโครงการนี้ได้