สารบัญ:
- ขั้นตอนที่ 1: รวบรวมฮาร์ดแวร์ที่คุณต้องการ
- ขั้นตอนที่ 2: ติดตั้ง Ubuntu บน Joule และไลบรารีที่จำเป็นซึ่งจำเป็นต่อการเรียกใช้
- ขั้นตอนที่ 3: สตรีมกล้อง RealSense
- ขั้นตอนที่ 4: ตั้งค่า Walabot
- ขั้นตอนที่ 5: การสร้าง Wifi Hotspot จาก Joule
- ขั้นตอนที่ 6: สร้าง Android เป็นหน้าจอแสดงผล
- ขั้นตอนที่ 7: ทดสอบทุกอย่าง
- ขั้นตอนที่ 8: ทดสอบรถยนต์จริง
- ขั้นตอนที่ 9: ใช้มันในโลก
วีดีโอ: วิสัยทัศน์ด้านท้ายรถ: 9 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ทำไมเราถึงสร้าง Vision Rear Vision ของยานพาหนะ?
ศูนย์ควบคุมโรคแห่งสหรัฐอเมริการายงานว่าระหว่างปี 2544-2546 เด็กประมาณ 7, 475 คน (2, 492 ต่อปี) ที่อายุต่ำกว่า 15 ปีได้รับการรักษาจากอุบัติเหตุรถกลับ การเสียชีวิตประมาณ 300 รายต่อปีเป็นผลมาจากการชนกันของข้อมูลสำรอง ภายในปี 2018 รถยนต์ทุกคันที่จำหน่ายในสหรัฐอเมริกาจะต้องใช้กล้องสำรองที่จำเป็น
เราจะแก้ปัญหาอย่างไร?
รถยนต์ส่วนใหญ่ในตลาดปัจจุบันยังไม่มีกล้องสำรอง ซึ่งรวมถึงรถยนต์ประมาณครึ่งหนึ่งที่จำหน่ายในสหรัฐอเมริกาในปัจจุบัน และมากกว่าครึ่งทั่วโลก เราสามารถแก้ปัญหานี้ได้โดยการติดตั้งกล้องที่ท้ายรถโดยใช้พื้นที่ป้ายทะเบียน
Walabot จะสามารถตรวจจับระยะทางของเป้าหมายที่ใกล้กับรถมากที่สุด
กล้อง Intel RealSense R200 จะให้รายละเอียดมากขึ้นเกี่ยวกับสิ่งที่มองเห็น รวมถึงสถานการณ์ในที่แสงน้อย
ชุดพัฒนา Intel Joule นั้นทรงพลังพอที่จะใช้งานกล้อง RealSense ร่วมกับ Walabot Raspberry Pi ไม่ทรงพลังพอที่จะใช้งานกล้อง RealSense 3D ซึ่งเราสามารถเพิ่มคุณสมบัติอีกมากมายในอนาคตที่สามารถปรับปรุงฟังก์ชันการทำงานของรถยนต์ได้ รุ่นเดียวกันสามารถใช้กับ Pi กับกล้อง USB ปกติได้ แต่จะไม่ดีสำหรับเวลากลางคืน
โทรศัพท์/แท็บเล็ต Android ที่ใช้แสดงกล้องสำรอง ซึ่งเป็นการลดต้นทุนของหน้าจอเพิ่มเติม สามารถสร้างเวอร์ชัน iOS ได้ตามคำขอ
ด้วยส่วนประกอบเหล่านี้ เราจะสามารถสร้าง Rear End Vision ที่แสดงให้ผู้ใช้เห็นด้านหลังของรถได้
ขั้นตอนที่ 1: รวบรวมฮาร์ดแวร์ที่คุณต้องการ
- Intel Joule
- Walabot Pro
- กล้อง Intel R200 RealSense
- โทรศัพท์/แท็บเล็ต Android ที่ใช้ 5.0 หรือสูงกว่า
- อะแดปเตอร์สำหรับเสียบปลั๊กและอะแดปเตอร์ AC 12VDC ของรถยนต์ (สำหรับการสาธิตเพื่อเพิ่มพลังให้กับ Joule รุ่นการผลิตจะมีกลไกพลังงานที่แตกต่างกัน)
- USB Hub สำหรับเชื่อมต่อกล้องกับ Walabot (USB3 สำหรับกล้องและ USB2 สำหรับ Walabot)
- DC เป็น AC Direct Plug-in Power Inverter
- เครื่องพิมพ์ 3D ทั่วไปเพื่อพิมพ์กรอบป้ายทะเบียนที่สร้างขึ้นเอง
ขั้นตอนที่ 2: ติดตั้ง Ubuntu บน Joule และไลบรารีที่จำเป็นซึ่งจำเป็นต่อการเรียกใช้
เนื่องจากเราตัดสินใจเลือกใช้เส้นทาง Linux ให้ทำตามคำแนะนำ https://developer.ubuntu.com/core/get-started/intel-joule เพื่อติดตั้ง Ubuntu บน Joule อูบุนตูให้ความยืดหยุ่นอย่างมากแก่เราในการรันระบบปฏิบัติการจริงบนชิปที่ใช้ IoT
ขั้นตอนที่ 3: สตรีมกล้อง RealSense
เนื่องจากเราใช้โทรศัพท์/แท็บเล็ต Android เพื่อประหยัดค่าใช้จ่ายในรายการวัสดุ และผู้ใช้สามารถเข้าถึงได้มากขึ้น เราจะใช้ไลบรารีการเคลื่อนไหวเพื่อโฮสต์กล้องที่คล้ายกับกล้องรักษาความปลอดภัย เมื่อติดตั้ง Ubuntu และเชื่อมต่อกับ wifi แล้ว เราสามารถเปิดเทอร์มินัลแล้วใช้คำสั่งต่อไปนี้ ก่อนอื่นเราเชื่อมต่อกล้องกับ Joule ผ่านพอร์ต USB3 จากนั้นทำตามขั้นตอนต่อไปนี้
NS. การติดตั้งการเคลื่อนไหวบน Ubuntu:
sudo apt-get updatessudo apt-get ติดตั้งการเคลื่อนไหว
NS. คัดลอกไฟล์กำหนดค่า:
mkdir.motion sudo cp /etc/motion/motion.conf ~/.motion/motion.conf
ค. การกำหนดค่าไฟล์ สำหรับผู้ที่คุ้นเคยกับ Ubuntu สามารถติดตั้ง Sublime เพื่อให้แก้ไขข้อความได้ง่ายขึ้น ไม่เช่นนั้นเราจะแก้ไขภายในบรรทัดคำสั่งได้
sudo nano ~/.motion/motion.conf
NS. หลังจากเสียบกล้อง R200 เราสามารถเปลี่ยนบรรทัดต่อไปนี้ใน motion.conf
นี่คือการวางในโหมดพื้นหลัง:
# เริ่มในโหมด daemon (พื้นหลัง) และปล่อยเทอร์มินัล (ค่าเริ่มต้น: ปิด) daemon on
นี่คือการใช้มุมมองกล้องของ RealSense Camera
# Videodevice ที่จะใช้สำหรับการจับภาพ (ค่าเริ่มต้น /dev/video0) # สำหรับค่าเริ่มต้นของ FreeBSD คือ /dev/bktr0 videodevice /dev/video2
การเปลี่ยนความกว้างและความสูง 1280 x 720 ใช้งานได้ดีสำหรับฉัน แต่คุณสามารถลองใช้ขนาดต่างๆ เพื่อดูว่าอะไรเหมาะกับความต้องการของคุณ
# ความกว้างของภาพ (พิกเซล) ช่วงที่ถูกต้อง: ขึ้นอยู่กับกล้อง ค่าเริ่มต้น: 352 ความกว้าง 1280 # ความสูงของภาพ (พิกเซล) ช่วงที่ถูกต้อง: ขึ้นอยู่กับกล้อง ค่าเริ่มต้น: 288 ความสูง 720
ฉันตั้งค่านี้เป็น 30 ยิ่งคุณตั้งค่าตัวเลขมากเท่าไหร่ก็ยิ่งต้องใช้พลังในการคำนวณมากขึ้นเท่านั้น คุณสามารถลองเล่นเพื่อดูว่าเกณฑ์มาตรฐานสำหรับมันเป็นอย่างไร แต่ 30 ใช้งานได้ดีสำหรับฉัน
# จำนวนเฟรมสูงสุดที่จะจับภาพต่อวินาที # ช่วงที่ถูกต้อง: 2-100 ค่าเริ่มต้น: 100 (แทบไม่มีขีดจำกัด) อัตราเฟรม 30
เนื่องจากเรามักจะสตรีมหลังรถ เราจึงสามารถตั้งค่าพอร์ตเฉพาะได้ เราใช้5001
####################################################### ########## เซิร์ฟเวอร์สตรีมสด ######################################## ######################### # เซิร์ฟเวอร์ mini-http ฟังพอร์ตนี้สำหรับคำขอ (ค่าเริ่มต้น: 0 = ปิดใช้งาน) stream_port 5001 # คุณภาพของ jpeg (เป็นเปอร์เซ็นต์) ภาพที่สร้าง (ค่าเริ่มต้น: 50) stream_quality 50 # เฟรมเอาต์พุตที่ 1 fps เมื่อตรวจไม่พบการเคลื่อนไหวและเพิ่มเป็น # อัตราที่กำหนดโดย stream_maxrate เมื่อตรวจพบการเคลื่อนไหว (ค่าเริ่มต้น: ปิด) stream_motion ปิด # อัตราเฟรมสูงสุดสำหรับสตรีมสตรีม (ค่าเริ่มต้น: 1) stream_maxrate 60 # จำกัด การเชื่อมต่อสตรีมไปยัง localhost เท่านั้น (ค่าเริ่มต้น: เปิด) stream_localhost ปิด
จากนั้นคุณสามารถเรียกใช้ ifconfig และหาที่อยู่ IP และเรียกใช้ในเทอร์มินัล พอร์ตจะเป็น 5001
การเคลื่อนไหว
หากไม่มีข้อผิดพลาด ง่ายต่อการตรวจสอบกล้องจากคอมพิวเตอร์ของคุณโดยใช้ IP แก้ไขข้อผิดพลาด เช่น ปัญหาการอนุญาต หากมี
เมื่อดำเนินการแล้ว เราสามารถเพิ่มสิ่งนี้ลงในแอปพลิเคชันเริ่มต้นใน Ubuntu ได้
การเริ่มต้นการเคลื่อนไหวสำหรับกล้อง
กำลังแนบ motion.conf ในส่วนโค้ด คุณสามารถตรวจสอบการตั้งค่าเพิ่มเติมได้ที่นั่น
ขั้นตอนที่ 4: ตั้งค่า Walabot
เมื่อติดกล้องแล้ว เรายังต้องตั้งค่า walabot ซึ่งสามารถตรวจจับระยะห่างระหว่างรถกับวัตถุที่อยู่ด้านหลังได้ ทำให้มองเห็นได้ชัดเจนว่าเราควรทำอย่างไร
a ดาวน์โหลดไฟล์ deb จาก
ทำตามคำแนะนำจาก https://api.walabot.com/_install.html#_linuxInstall เพื่อติดตั้ง Walabot API เพื่อให้สามารถนำเข้าโครงการ python ได้
มีข้อผิดพลาดในเว็บไซต์ในส่วนที่ติดตั้ง Walabot API https://walabot.com/api/_pythonapi.html#_installingwalabotapi ที่ระบุ
หลาม -m pip “/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz”
ที่ควรจะเป็น
python -m pip ติดตั้ง "/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz"
NS. เชื่อมต่อ Walabot Pro ผ่าน USB 2 ฉันไม่สามารถใช้งาน usb3 ได้ แต่ usb2 ทำงานได้ดีในการเชื่อมต่อกับ linux เนื่องจาก Joule มีพอร์ต USB3 เพียงพอร์ตเดียว ให้เชื่อมต่อพอร์ต USB2 เพิ่มเติมเพื่อรองรับ Walabot Pro ที่นี่
ค. ทดสอบโครงการ Walabot เช่น https://github.com/Walabot-Projects/Walabot-Senso… โดยเรียกใช้คำสั่งต่อไปนี้ในโฟลเดอร์
หลาม SensorTargets.py
สิ่งนี้ควรให้การทดสอบที่ดีแก่คุณเพื่อดูว่า Walabot ทำงานอย่างถูกต้องหรือไม่ รวมถึงวิธีวัดระยะทางกับสิ่งที่คุณต้องการ ตัวอย่าง DistanceMeasure ไม่สอดคล้องกับการวัดมากเกินไป และ zPosCm ดูเหมือนจะแม่นยำอย่างยิ่ง ดังนั้นฉันจึงตัดสินใจใช้ zPosCM สำหรับการสาธิต
NS. เรายังคงต้องส่งข้อมูลไปยังอุปกรณ์แสดงผล เนื่องจากเรากำลังใช้งานสิ่งนี้บน Android เพื่อลดต้นทุนวัสดุ เราจึงสามารถใช้ซ็อกเก็ตได้ เราใช้รหัสต่อไปนี้เพื่อตั้งค่าซ็อกเก็ตและ udp ใน python
MYPORT = 5002 นำเข้า sys เวลาจากการนำเข้าซ็อกเก็ต * s = socket(AF_INET, SOCK_DGRAM) s.bind(('', 0)) s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
คำสั่งต่อไปนี้จะออกอากาศข้อมูลในการอัปเดต
s.sendto(str(targets[0].zPosCm), ('255.255.255.255', MYPORT))
อี เมื่อเสร็จแล้วเราสามารถตั้งค่าได้ใน Startup Application
NS. ขณะนี้ Walabot ได้รับการตั้งค่าและถ่ายโอนข้อมูลผ่าน UDP โค้ดหลามแบบเต็มสามารถดูได้ในพื้นที่แนบโค้ด ภาพหน้าจอด้านล่างเป็นภาพพิมพ์ของสิ่งที่ควรปรากฏเมื่อไม่มีพื้นที่ รหัสที่แนบมาในส่วนรหัส
ขั้นตอนที่ 5: การสร้าง Wifi Hotspot จาก Joule
เรากำลังสร้างฮอตสปอต wifi ของเราเองสำหรับอุปกรณ์ Android เพื่อถ่ายโอนข้อมูล การใช้คำสั่งต่อไปนี้เมื่อเริ่มต้นจะเป็นการตั้งค่าโดยอัตโนมัติ ใช้สำหรับ Ubuntu 16.04 หรือใหม่กว่า เนื่องจากมีการใช้งานอยู่ เราจะเชื่อมต่อสิ่งนี้โดยอัตโนมัติผ่านแอพ Android ในขั้นตอนต่อไป ใช้คำสั่งนี้ที่ Startup Applications
อุปกรณ์ nmcli ฮอตสปอต wifi con-name vehicle-rear-vision ssid vehicle-rear-vision band bg รหัสผ่าน safedriving
ภายในไฟล์ python ของ walabot เราจะอัปเดตด้วย โดยเราจะส่งข้อความ udp ไปยังอุปกรณ์ที่เชื่อมต่อผ่านฮอตสปอตส่วนตัว เพื่อให้แน่ใจว่าไม่มีแพ็กเก็ตสูญหาย
out = os.popen('ip neigh').read().splitlines()for i, line in enumerate(out, start=1): ip = line.split(' ')[0] s.sendto(str) (เป้าหมาย[0].zPosCm), (ip, MYPORT))
ขั้นตอนที่ 6: สร้าง Android เป็นหน้าจอแสดงผล
แอพ Android สร้างขึ้นสำหรับการแสดงอุปกรณ์ ส่วนใหญ่เป็นเพราะลดค่าใช้จ่ายของวัสดุ มิฉะนั้นหน้าจอแยกต่างหากอาจมีทั้งราคาแพงและติดตั้งยาก สำหรับโครงการนี้ เราสามารถใช้โทรศัพท์/แท็บเล็ต Android
Android เน้นที่ 3 ส่วนที่เราทำก่อนหน้านี้
- เชื่อมต่อกับ wifi hotspot ที่สร้างผ่านอุปกรณ์ IoT (Intel Joule)
- สตรีมกล้อง RealSense ผ่านการเคลื่อนไหวผ่าน wifi
- การวัดระยะทางจากเป้าหมาย Walabot ถึง udp
หลังจากตั้งค่าทุกอย่างและติดตั้งแอป Android (เปิดแหล่งที่มาที่นี่) คุณจะเห็นกล้องทำงานร่วมกับ walabot
ขั้นตอนที่ 7: ทดสอบทุกอย่าง
ตอนนี้เรามีทุกอย่างทำงานแล้ว เราควรจะมีการตั้งค่าพื้นฐานสำหรับส่วนประกอบทั้งหมดที่แนบมาด้วย เมื่อเราเริ่มบอร์ด Joule ฮอตสปอตควรได้รับการตั้งค่าโดยอัตโนมัติ แอปการเคลื่อนไหวและแอป walabot จะเริ่มทำงานพร้อมกัน และเมื่อเราเปิดแอป Android ของเรา เราจะสามารถสตรีมจากกล้องได้ ซึ่งหมายความว่าไม่จำเป็นต้องใช้แป้นพิมพ์/เมาส์และจอภาพสำหรับอุปกรณ์ IoT อีกต่อไป หากเกิดปัญหาขึ้นในขณะนี้ เช่น ห้องสมุดติดตั้งไม่ถูกต้อง เราควรแก้ไขก่อนที่จะดำเนินการในขั้นตอนต่อไป
การพิมพ์ 3D ตัวเคสที่สามารถถือกล้องได้นั้นสำคัญมาก
ในการสร้างฮาร์ดแวร์ เราควรเตรียมเคสที่พิมพ์ 3 มิติแบบกำหนดเองของเราให้พร้อมสำหรับกล้อง เนื่องจากนี่คือต้นแบบ มันอาจจะหลวมเล็กน้อย แต่เมื่อเราสร้างที่ยึดป้ายทะเบียนแบบกำหนดเอง เราคาดว่าส่วนประกอบทั้งหมดจะอยู่ภายในที่ยึด
ขั้นตอนที่ 8: ทดสอบรถยนต์จริง
ตอนนี้เราได้ทำทุกอย่างแล้ว เราจะสามารถทดสอบกับรถจริงได้ เนื่องจากนี่เป็นผลิตภัณฑ์ต้นแบบที่อาจหยาบเล็กน้อย เราจึงใช้เทปพันสายไฟสำหรับส่วนประกอบบางอย่าง
ในการเพิ่มพลังให้กับ Joule IoT Kit เราใช้อินเวอร์เตอร์ไฟฟ้ากระแสตรงเป็นไฟฟ้ากระแสสลับเป็นไฟฟ้ากระแสสลับ จากนั้นเพียงแค่เสียบปลั๊กไฟขนาดยาวไปที่ลำตัว
เราจะได้ส่วนหน้าและส่วนหลัง นี่เป็นเพียงต้นแบบในขณะนี้ เวอร์ชันถัดไปจะรวมชิปไว้ในที่ยึดป้ายทะเบียน
และสำหรับส่วนหน้านั้น เราสามารถใช้ที่วางโทรศัพท์หรือเพียงแค่เทปพันท่อ Android Tablet ก็ได้
ขั้นตอนที่ 9: ใช้มันในโลก
การใช้เครื่องมือนี้ช่วยให้เราสามารถสำรองรถกับรถคันอื่นได้อย่างปลอดภัยและสามารถตรวจสอบคนเดินถนนได้ คุณสามารถดูวิดีโอสาธิตได้ที่จุดเริ่มต้น เป้าหมายของโครงการคือการส่งเสริมให้มีการขับขี่ที่ปลอดภัยยิ่งขึ้น
สามารถตรวจสอบโครงการได้จาก
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-