สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
- ขั้นตอนที่ 2: เอกสาร
- ขั้นตอนที่ 3: เตรียมการรองรับ Ultrasonic Sensor
- ขั้นตอนที่ 4: ติดตั้งทุกอย่างลงในบอร์ดสร้างต้นแบบ
- ขั้นตอนที่ 5: การสร้างการเชื่อมต่อขั้นสุดท้าย
- ขั้นตอนที่ 6: การบูตโปรแกรม
- ขั้นตอนที่ 7: ทำความเข้าใจรหัส C
- ขั้นตอนที่ 8: ทำความเข้าใจกับโค้ด Java
- ขั้นตอนที่ 9: สรุป
วีดีโอ: โครงการ 3: SonarDuino: 9 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
เพื่อนงานอดิเรกที่รัก
ในโครงการนี้ เราจะสำรวจความเป็นไปได้ของการมีระบบเรดาร์ 360 องศาสำหรับการตรวจจับวัตถุ การมีโมดูลนี้แยกจากกันจะช่วยให้หุ่นยนต์เคลื่อนที่ของคุณสามารถตรวจจับขอบเขตของสภาพแวดล้อมได้ นอกจากนี้ยังสามารถใช้เป็นเครื่องมือนำทางในที่มืดได้ แต่เมื่อคุณเดินช้าพอเท่านั้น;p
ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
ในการสร้างงานสร้างนี้ คุณจะต้องซื้อสิ่งต่อไปนี้:
Arduino นาโน: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwvYZZpOl0:rk:2:pf:0
บอร์ดต้นแบบ: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70ef4:g:cQ4AAOSwN ~Zbl232:rk:13:pf:0
เซอร์โวมอเตอร์: https://www.ebay.com/itm/5pcs-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter-Airplane-Control-Car-Boat/142931003420?hash=item21475a081c:rk:16:pf:0&var
อัลตราโซนิกเซนเซอร์: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5fd:g:w ~IAAOSw--xbD5Fp:rk:2:pf:0
ขั้นตอนที่ 2: เอกสาร
อย่างที่พวกคุณบางคนอาจทราบแล้ว โครงการนี้ได้รับแรงบันดาลใจจากโครงการโอเพนซอร์ซอื่นที่เรียกว่า “Arduino Radar Project” ซึ่งสร้างโดย Dejan จาก “How to Mechatronics” @ ลิงก์ต่อไปนี้: https://howtomechatronics.com/projects/arduino -radar-โครงการ/
อีกจุดหนึ่งที่ต้องมีเอกสารประกอบคือการดาวน์โหลดไลบรารีสองไลบรารีต่อไปนี้ในสภาพแวดล้อมการพัฒนาของคุณ:
Adafruit-GFX-Library:
Adafruit_SSD1306:
ดังที่กล่าวไปแล้ว เพื่อให้เข้าใจโค้ด C อย่างแท้จริง คุณจะต้องจัดทำเอกสารของไลบรารีทั้งสองข้างต้น นอกจากนั้น ฟังก์ชันที่ฉันใช้ในโค้ดของฉันมีชื่อที่บ่งบอกว่าพวกเขาทำอะไรได้บ้าง
ขั้นตอนที่ 3: เตรียมการรองรับ Ultrasonic Sensor
นำกระดาษแข็งชิ้นใดก็ได้มาตัดตามขนาดของสายต่อที่ต่อกับเซ็นเซอร์ดังแสดงในภาพแรก หลังจากนั้น พับชิ้นสุดท้ายแล้วติดเข้ากับส่วนรองรับเซอร์โวมอเตอร์ เมื่อเสร็จแล้วให้กาวเซ็นเซอร์อัลตราโซนิกสองตัวตามภาพสุดท้าย โปรดทราบว่าควรบัดกรีส่วนหัวของเซ็นเซอร์เพื่อให้สายเคเบิลออกไปด้านหน้าเซ็นเซอร์ วิธีนี้จะช่วยให้สายเซ็นเซอร์ไม่รบกวนกันเมื่อใช้การหมุน 360 องศา
ขั้นตอนที่ 4: ติดตั้งทุกอย่างลงในบอร์ดสร้างต้นแบบ
ในขั้นตอนนี้ คุณจะเริ่มต้นด้วยการติดตั้งส่วนหัวที่เตรียมไว้ในขั้นตอนก่อนหน้าในเซอร์โวมอเตอร์ที่เกี่ยวข้อง เมื่อเซอร์โวมอเตอร์คุ้นเคยดีแล้ว คุณจะประกอบทุกอย่างเข้าด้วยกันเป็นบอร์ดต้นแบบ คุณจะเริ่มต้นด้วยการบัดกรี Arduino Nano จากนั้นติดกาวเซอร์โวที่อยู่ข้างๆ ในที่สุด คุณจะประสานจอแสดงผล OLED ขนาดเล็กที่ขอบอีกด้านของบอร์ด
ขั้นตอนที่ 5: การสร้างการเชื่อมต่อขั้นสุดท้าย
ขั้นตอนนี้จะสรุปด้านฮาร์ดแวร์ของโครงการนี้ คุณจะต้องปฏิบัติตามแผนผังที่ให้มาเพื่อสร้างการเชื่อมต่อที่จำเป็นทั้งหมด
ขั้นตอนที่ 6: การบูตโปรแกรม
มีสองรหัสที่คุณจะต้องบูต
Arduino (C):https://github.com/ReconaissantL/RadarDuino/blob/master/radarduino.ino
กำลังประมวลผล (java):https://github.com/ReconaissantL/RadarDuino/blob/master/radarduino_java.pde
เมื่อรันโค้ด คุณจะมีสองตัวเลือกให้เลือก:
ตัวเลือกที่ 1: การใช้จอแสดงผล OLED เพื่อที่คุณจะต้องตั้งค่าตัวแปร MODE ในโค้ด C เป็น 0
ตัวเลือกที่ 2: การใช้ Your Monitor เพื่อที่คุณจะต้องตั้งค่าตัวแปร MODE ในรหัส C เป็น 1 นอกจากนี้ คุณจะต้องดาวน์โหลดและติดตั้งสภาพแวดล้อมการพัฒนาการประมวลผล และดาวน์โหลดแบบอักษรเรดาร์จากลิงก์นี้: https:// github.com/lastralab/ArduinoRadar/blob/ma…
และเพิ่มไฟล์นั้นลงในไฟล์โค้ดประมวลผลของคุณ เพื่อให้โค้ดจาวาของคุณรู้จักฟอนต์เมื่อถูกเรียก
ขั้นตอนที่ 7: ทำความเข้าใจรหัส C
รหัสประกอบด้วยส่วนใหญ่สอง 'for' ลูป หนึ่งมีความสัมพันธ์กับการส่งต่อในขณะที่อีกคนหนึ่งมีความสัมพันธ์กับการส่งต่อ ภายในทั้งคู่ ฟังก์ชันหลัก draw_scanner() ซึ่งจะลากเส้นของเรดาร์ลงบนหน้าจอ ถูกเรียกหลายครั้ง หลังจากทดสอบการกำหนดค่าหลายแบบ ฉันได้ข้อสรุปว่าเราจำเป็นต้องเขียนทับเส้นเรดาร์สีขาว ณ เวลา t ด้วยเส้นเรดาร์เดียวกันนั้นเป็นสีดำ ณ เวลา t+1 เพื่อลบออก มิฉะนั้น การกะพริบจะเกิดขึ้นทุกครั้งที่คุณทำความสะอาดจอแสดงผลโดยใช้ฟังก์ชัน “clearDisplay()” ก่อนที่จะกดกริดพิกเซลใหม่ ขณะที่ฉันกำลังจัดการกับ 7 บรรทัด – เพื่อจุดประสงค์ในการออกแบบ ฉันต้องบันทึกและส่งอาร์เรย์จำนวนเต็มของ 7 องค์ประกอบ โดยที่แต่ละองค์ประกอบยืนสำหรับรัศมีระหว่างจุดศูนย์กลางของเรดาร์ไปยังวัตถุที่ตรวจพบ หากมี เมื่อคำนึงถึงสิ่งนี้ โค้ดที่เหลือควรตรงไปตรงมาเพื่อทำความเข้าใจ
ขั้นตอนที่ 8: ทำความเข้าใจกับโค้ด Java
ในการประมวลผล ฉันต้องเลี่ยงการเรียกใช้ฟังก์ชันสำหรับ serialEvent() ซึ่งใช้งานได้กับพอร์ตอนุกรมที่ชื่อ COM เท่านั้น ขณะที่ฉันทำงานบน Mac พอร์ตอนุกรมของฉันก็ใช้ชื่ออื่น ดังที่กล่าวไปแล้ว ฉันคลายแพ็กฟังก์ชันนั้นลงในฟังก์ชันหลักในการประมวลผล "draw()" ฉันได้อัปเดตแอปพลิเคชันเพื่อให้ตรงกับการออกแบบปฏิวัติเต็มรูปแบบ สุดท้าย ฉันได้อัปเดตรูปร่างและข้อความที่วาดทั้งหมดตามความกว้างของหน้าจอ เพื่อให้ผลิตภัณฑ์ขั้นสุดท้ายพอดีกับความละเอียดหน้าจอที่แตกต่างกัน ฉันได้ทดสอบทั้งความละเอียด 1000X1000 และ 500X500 แล้วและใช้งานได้ดี:)
ขั้นตอนที่ 9: สรุป
งานนี้สามารถอัพเกรดให้มีเซ็นเซอร์อัลตราโซนิก 3 ตัว แต่ละตัวครอบคลุมมุมมอง 120 หรือแม้กระทั่ง 4 เซ็นเซอร์ (90 องศา*4) -> เร็วขึ้น 360 องศา สแกน
คุณยังสามารถขยายช่วงของเรดาร์จาก 40 ซม. เป็น 60 ซม. หรือแม้แต่ 80 ซม. ฉันได้ทดสอบฟังก์ชัน pulseIn เป็นการส่วนตัวและปรับตัวแปร TIMEOUT ด้วยความเคารพ 40 ซม. ตัวแปรนี้ขึ้นอยู่กับหลายปัจจัย รวมถึงความยาวของการส่งพัลส์และพื้นผิวของวัตถุที่สะท้อนพัลส์
สุดท้ายตามที่ระบุไว้ก่อนหน้านี้ ขั้นตอนต่อไปคือการรวมเรดาร์ดูอิโนกับหุ่นยนต์เคลื่อนที่เพื่อสแกนปริมณฑลโดยรอบ
แนะนำ:
โครงการ Gimbal Stabilizer: 9 ขั้นตอน (พร้อมรูปภาพ)
โครงการ Gimbal Stabilizer: วิธีสร้าง Gimbal เรียนรู้วิธีสร้าง gimbal แบบ 2 แกนสำหรับกล้องแอคชั่นของคุณ ในวัฒนธรรมปัจจุบันเราทุกคนชอบบันทึกวิดีโอและจับภาพช่วงเวลาต่างๆ โดยเฉพาะอย่างยิ่งเมื่อคุณเป็นผู้สร้างเนื้อหาเช่นฉัน คุณคงประสบปัญหา วิดีโอสั่นคลอนดังกล่าว
(โครงการ IOT) รับข้อมูลสภาพอากาศโดยใช้ ESP8266 และ Openweather API: 5 ขั้นตอน
(โครงการ IOT) รับข้อมูลสภาพอากาศโดยใช้ ESP8266 และ Openweather API: ในคำแนะนำนี้ เราจะสร้างโครงการ IOT อย่างง่าย ซึ่งดึงข้อมูลสภาพอากาศของเมืองของเราจาก openweather.com/api และแสดงโดยใช้ซอฟต์แวร์การประมวลผล
โครงการ Spin Art Turbine Remix: 4 ขั้นตอน
โครงการ Spin Art Turbine Remix: หากคุณสนใจศิลปะการหมุน มีปัญหาและปัญหานั้นคือ คุณต้องถือสว่านด้วยมือข้างหนึ่งขณะที่คุณวาดภาพด้วยอีกมือหนึ่ง ซึ่งบางครั้งอาจดูน่ารำคาญ แต่ผมรู้สึกว่าผมเจอแล้ว โซลูชันด้วยเทอร์ไบน์ที่เรียบง่ายนี้ คุณสามารถสร้าง
Bluetooth50g - โครงการ Upcycle สำหรับเครื่องคิดเลข HP50G ที่ใช้งานไม่ได้: 7 ขั้นตอน
Bluetooth50g - โปรเจ็กต์ Upcycle สำหรับเครื่องคิดเลข HP50G ที่ใช้งานไม่ได้: เส้นทางนำไปยังจอแสดงผลใช้งานไม่ได้เนื่องจากแบตเตอรี่รั่วไหล แบตเตอรี่รั่วและทำให้เส้นทางสึกกร่อน เครื่องคิดเลขสำหรับตัวเองใช้งานได้ แต่ผลลัพธ์ไม่ปรากฏบนหน้าจอ (เฉพาะเส้นแนวตั้ง) ระบบจำลองแป้นพิมพ์บลูทูธและ
โครงการ Lightshowpi: 4 ขั้นตอน
โครงการ Lightshowpi: สวัสดีทุกคน! นี่คือคำแนะนำอย่างเป็นทางการของฉันเกี่ยวกับวิธีการสร้างการแสดงแสงสีโดยใช้ lightshowpi ณ เดือนตุลาคม 2020