Mục lục:
- Bước 1: Thu thập phần cứng bạn cần
- Bước 2: Cài đặt Ubuntu trên Joule và các thư viện cần thiết cần thiết để chạy nó
- Bước 3: Phát trực tuyến Camera RealSense
- Bước 4: Thiết lập Walabot
- Bước 5: Tạo điểm phát sóng Wifi từ Joule
- Bước 6: Xây dựng Android dưới dạng màn hình hiển thị
- Bước 7: Kiểm tra mọi thứ
- Bước 8: Thử nghiệm trên một chiếc xe thực tế
- Bước 9: Sử dụng nó trên thế giới
Video: Tầm nhìn phía sau của xe: 9 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Tại sao chúng tôi xây dựng Tầm nhìn phía sau của Xe?
Trung tâm Kiểm soát Dịch bệnh Hoa Kỳ báo cáo rằng từ năm 2001-2003, ước tính có khoảng 7, 475 trẻ em (2, 492 trẻ em mỗi năm) dưới 15 tuổi đã được điều trị vì các sự cố ô tô lùi xe. Khoảng 300 trường hợp tử vong mỗi năm do va chạm dự phòng. Đến năm 2018, tất cả các xe ô tô được bán tại Hoa Kỳ sẽ yêu cầu bắt buộc phải có camera dự phòng.
Làm thế nào để chúng tôi giải quyết vấn đề?
Hầu hết ô tô trên thị trường hiện nay vẫn không có camera dự phòng, bao gồm khoảng một nửa số ô tô đang được bán ở Mỹ hiện nay và hơn một nửa trên toàn cầu. Chúng ta có thể giải quyết vấn đề này bằng cách lắp camera sau xe, sử dụng khoảng trống của biển số xe.
Walabot sẽ có thể phát hiện khoảng cách của mục tiêu gần xe nhất.
Máy ảnh Intel RealSense R200 sẽ cung cấp cho chúng ta chi tiết hơn về những gì đang được nhìn thấy, bao gồm cả tình huống ánh sáng yếu.
Bộ công cụ dành cho nhà phát triển Intel Joule đủ mạnh để chạy camera RealSense cùng với Walabot. Raspberry Pi không đủ mạnh để chạy một máy ảnh RealSense 3D, trong đó chúng tôi có thể bổ sung thêm nhiều tính năng trong tương lai có thể cải thiện các chức năng của ô tô. Phiên bản tương tự có thể được sử dụng với Pi với máy ảnh USB thông thường, nhưng nó sẽ không tốt cho thời gian ban đêm.
Điện thoại / máy tính bảng Android đang được sử dụng để hiển thị Camera dự phòng, điều này nhằm giảm chi phí của một màn hình bổ sung. Phiên bản iOS có thể được xây dựng theo yêu cầu.
Thông qua các thành phần đó, chúng tôi sẽ có thể tạo ra một Tầm nhìn phía sau cho người dùng thấy phía sau của xe.
Bước 1: Thu thập phần cứng bạn cần
- Intel Joule
- Walabot Pro
- Máy ảnh RealSense Intel R200
- Điện thoại / máy tính bảng Android chạy 5.0 trở lên
- Bộ chuyển đổi của ô tô cho đầu ra phích cắm và Bộ chuyển đổi AC 12VDC (đây là để demo để cấp nguồn cho Joule, phiên bản sản xuất sẽ có cơ chế nguồn khác nhau)
- Hub USB để kết nối máy ảnh và Walabot (USB3 cho Máy ảnh và USB2 cho Walabot)
- Biến tần nguồn cắm trực tiếp DC sang AC
- Máy in 3D chung để in ra khung biển số được xây dựng tùy chỉnh
Bước 2: Cài đặt Ubuntu trên Joule và các thư viện cần thiết cần thiết để chạy nó
Vì chúng tôi đã quyết định sử dụng con đường Linux, hãy làm theo hướng dẫn https://developer.ubuntu.com/core/get-started/intel-joule để cài đặt Ubuntu trên Joule. Ubuntu cung cấp cho chúng tôi sự linh hoạt tuyệt vời để chạy một hệ điều hành thực tế trên chip dựa trên IoT.
Bước 3: Phát trực tuyến Camera RealSense
Bởi vì chúng tôi đang sử dụng điện thoại / máy tính bảng Android để tiết kiệm chi phí vật liệu, cũng dễ tiếp cận hơn với người dùng, chúng tôi sẽ sử dụng thư viện chuyển động để lưu trữ camera tương tự như camera an ninh. Sau khi Ubuntu được cài đặt và kết nối với wifi, chúng ta có thể mở terminal và sử dụng lệnh sau. Đầu tiên chúng ta kết nối camera với Joule qua cổng USB3 sau đó thực hiện các bước sau.
Một. Cài đặt chuyển động trên ubuntu:
sudo apt-get updateudo apt-get install chuyển động
NS. Sao chép các tệp cấu hình:
mkdir.motion sudo cp /etc/motion/motion.conf ~ /.motion / motion.conf
NS. Cấu hình file, đối với những ai rành về ubuntu có thể cài thêm Sublime để soạn thảo văn bản dễ dàng hơn, nếu không chúng ta có thể chỉnh sửa bên trong dòng lệnh.
sudo nano ~ /.motion / motion.conf
NS. Sau khi cắm camera R200, chúng ta có thể thay đổi các dòng sau trong motion.conf
Điều này là để đặt nó ở chế độ nền:
# Bắt đầu ở chế độ daemon (nền) và phát hành thiết bị đầu cuối (mặc định: tắt) daemon bật
Điều này là để sử dụng chế độ xem camera của RealSense Camera.
# Videodevice được sử dụng để chụp (mặc định / dev / video0) # cho FreeBSD mặc định là / dev / bktr0 videodevice / dev / video2
Thay đổi chiều rộng và chiều cao, 1280 x 720 rất hiệu quả đối với tôi, nhưng bạn có thể xem xét các kích thước để xem những gì phù hợp với nhu cầu của bạn.
# Chiều rộng hình ảnh (pixel). Phạm vi hợp lệ: Phụ thuộc vào máy ảnh, mặc định: 352 chiều rộng 1280 # Chiều cao hình ảnh (pixel). Phạm vi hợp lệ: Phụ thuộc vào máy ảnh, mặc định: 288 chiều cao 720
Tôi đặt giá trị này là 30, bạn đặt số càng cao thì khả năng tính toán càng cao. Bạn có thể thử xem điểm chuẩn cho nó là bao nhiêu, nhưng 30 đã làm việc rất tốt đối với tôi.
# Số khung hình tối đa được chụp mỗi giây. # Phạm vi hợp lệ: 2-100. Mặc định: 100 (gần như không có giới hạn). tốc độ khung hình 30
Vì chúng tôi luôn phát trực tiếp xe hơi, chúng tôi có thể thiết lập một cổng chuyên dụng, chúng tôi sử dụng 5001
##################################################### ######### # Máy chủ phát trực tiếp ######################################## ######################## # Máy chủ mini-http lắng nghe cổng này đối với các yêu cầu (mặc định: 0 = bị tắt) stream_port 5001 # Chất lượng của jpeg (tính bằng phần trăm) hình ảnh được tạo ra (mặc định: 50) stream_quality 50 # Xuất khung hình ở tốc độ 1 khung hình / giây khi không phát hiện chuyển động và tăng lên # tốc độ do stream_maxrate đưa ra khi phát hiện chuyển động (mặc định: tắt) stream_motion off # Tốc độ khung hình tối đa cho luồng luồng (default: 1) stream_maxrate 60 # Chỉ hạn chế kết nối luồng đối với máy chủ cục bộ (mặc định: bật) tắt stream_localhost
Sau đó, bạn có thể chạy ifconfig và tìm ra địa chỉ ip và chạy trong thiết bị đầu cuối, cổng sẽ là 5001.
cử động
Nếu không có lỗi, bạn rất dễ dàng kiểm tra camera từ máy tính bằng ip, sửa các lỗi như sự cố về quyền nếu có.
Khi điều này chạy, chúng ta có thể thêm nó vào ứng dụng khởi động trong Ubuntu.
Khởi động chuyển động cho máy ảnh
motion.conf đang được đính kèm trong phần mã, bạn có thể xem thêm cài đặt ở đó.
Bước 4: Thiết lập Walabot
Với camera tại chỗ, chúng ta vẫn cần thiết lập walabot, điều này có thể phát hiện khoảng cách giữa xe với vật thể phía sau, cho tầm nhìn rõ ràng về cách chúng ta nên
a, tải xuống tệp deb từ
Làm theo hướng dẫn từ https://api.walabot.com/_install.html#_linuxInstall để cài đặt API Walabot để nó có thể được nhập vào các dự án python.
Đã xảy ra lỗi trên trang web ở phần cài đặt API Walabot https://walabot.com/api/_pythonapi.html#_installingwalabotapi nơi nó nêu
python -m pip “/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz”
Điều đó nên được
python -m pip cài đặt "/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz"
NS. kết nối Walabot Pro qua USB 2, tôi không thể nhận được usb3 hoạt động nhưng usb2 hoạt động tốt khi kết nối với linux. Vì Joule chỉ có một cổng USB3, hãy kết nối thêm một cổng USB2 để chứa Walabot Pro tại đây
NS. Kiểm tra dự án Walabot chẳng hạn như https://github.com/Walabot-Projects/Walabot-Senso… bằng cách chạy lệnh sau trong thư mục
python SensorTargets.py
Điều này sẽ cung cấp cho bạn một bài kiểm tra tốt để xem liệu Walabot có đang chạy chính xác hay không, cũng như cách đo khoảng cách đối với những thứ bạn muốn. Ví dụ về DistanceMeasure không quá nhất quán trên phép đo và zPosCm có vẻ cực kỳ chính xác, vì vậy tôi đã quyết định sử dụng zPosCM cho bản demo.
NS. Chúng tôi vẫn cần chuyển dữ liệu đến thiết bị hiển thị, vì chúng tôi đang chạy điều này trên Android để giảm chi phí vật liệu, chúng tôi có thể sử dụng ổ cắm. Chúng tôi sử dụng mã sau để thiết lập socket và udp trong python.
MYPORT = 5002 hệ thống nhập, thời gian từ khi nhập ổ cắm * s = socket (AF_INET, SOCK_DGRAM) s.bind (('', 0)) s.setsockopt (SOL_SOCKET, SO_REUSEADDR, 1) s.setsockopt (SOL_SOCKET, SO_BROADCAST, 1)
Lệnh sau sẽ truyền dữ liệu khi cập nhật
s.sendto (str (target [0].zPosCm), ('255.255.255.255', MYPORT))
e. Khi điều này hoàn tất, chúng ta có thể thiết lập nó trong Ứng dụng khởi động
NS. Walabot hiện đã được thiết lập và chuyển dữ liệu qua UDP, toàn bộ mã python có thể được nhìn thấy trong vùng đính kèm mã. Ảnh chụp màn hình bên dưới là bản in của nó trông như thế nào khi không có khu vực. Mã được đính kèm trong phần mã.
Bước 5: Tạo điểm phát sóng Wifi từ Joule
Chúng tôi đang tạo điểm phát sóng wifi của riêng mình cho thiết bị Android để truyền dữ liệu qua. Sử dụng lệnh sau khi bắt đầu sẽ tự động thiết lập nó. Điều này đang được sử dụng cho Ubuntu 16.04 trở lên, vì điều này đang được sử dụng. Chúng tôi sẽ tự động kết nối điều này thông qua ứng dụng Android trong bước tiếp theo. Sử dụng lệnh này tại Ứng dụng Khởi động.
thiết bị nmcli điểm phát sóng wifi tên xe-tầm nhìn phía sau ssid xe-tầm nhìn phía sau băng tần bg mật khẩu bảo mật
Bên trong tệp python của walabot, chúng tôi cũng sẽ cập nhật tệp nơi chúng tôi sẽ gửi tin nhắn udp đến các thiết bị được kết nối qua điểm phát sóng riêng. Điều này là để đảm bảo không có gói nào bị mất.
out = os.popen ('ip ne'). read (). splitlines () for i, line in enumerate (out, start = 1): ip = line.split ('') [0] s.sendto (str (mục tiêu [0].zPosCm), (ip, MYPORT))
Bước 6: Xây dựng Android dưới dạng màn hình hiển thị
Ứng dụng Android được xây dựng để hiển thị thiết bị, chủ yếu là vì nó giảm chi phí vật liệu vì nếu không, một màn hình riêng biệt có thể vừa tốn kém vừa khó cài đặt. Đối với dự án này, chúng tôi có thể sử dụng điện thoại / máy tính bảng Android.
Android tập trung vào 3 phần mà chúng tôi đã thực hiện trước đó,
- Kết nối với điểm phát sóng wifi được tạo thông qua thiết bị IoT (Intel Joule)
- Truyền trực tuyến Camera RealSense qua chuyển động qua Wi-Fi
- Đo khoảng cách từ mục tiêu Walabot thông qua udp
Sau khi thiết lập mọi thứ và cài đặt ứng dụng Android (nguồn mở tại đây), bạn sẽ có thể thấy camera hoạt động cùng với walabot
Bước 7: Kiểm tra mọi thứ
Bây giờ chúng ta đã có mọi thứ đang chạy, chúng ta sẽ có một thiết lập cơ bản của tất cả các thành phần được đính kèm. Khi chúng tôi khởi động bảng Joule, điểm phát sóng sẽ được tự động thiết lập, ứng dụng chuyển động và walabot sẽ khởi động cùng với nó và khi chúng tôi bật ứng dụng Android, chúng tôi sẽ có thể phát trực tuyến từ máy ảnh. Điều này có nghĩa là bàn phím / chuột và màn hình không còn cần thiết để thiết bị IoT hoạt động. Nếu bất kỳ sự cố nào xảy ra tại thời điểm này, chẳng hạn như thư viện không được cài đặt đúng, chúng tôi nên khắc phục nó trước khi tiếp tục bước tiếp theo.
In 3D vỏ có thể giữ máy ảnh là rất quan trọng.
Khi xây dựng Phần cứng, chúng ta nên chuẩn bị sẵn vỏ in 3D tùy chỉnh cho máy ảnh. Vì đây là nguyên mẫu nên nó có thể hơi lỏng lẻo, nhưng khi chúng tôi tạo ra chủ sở hữu biển số xe tùy chỉnh, chúng tôi mong đợi tất cả các thành phần nằm bên trong chủ sở hữu.
Bước 8: Thử nghiệm trên một chiếc xe thực tế
Bây giờ chúng tôi đã làm cho mọi thứ hoạt động, chúng tôi sẽ có thể thử nghiệm nó trên một chiếc xe thực tế. Vì đây là một nguyên mẫu nên mọi thứ có thể hơi thô, chúng tôi sử dụng băng keo cho một số thành phần.
Để cấp nguồn cho Joule IoT Kit, chúng tôi đã sử dụng Biến tần nguồn trực tiếp từ DC sang AC, sau đó chỉ cần chạy một ổ cắm điện dài đến thân cây.
Chúng ta sẽ có phần trước và phần sau. Đây chỉ là một mẫu thử nghiệm ngay bây giờ, phiên bản tiếp theo sẽ tích hợp các chip bên trong giá đỡ biển số.
Và đối với phần mặt trước, chúng ta có thể sử dụng giá đỡ điện thoại hoặc chỉ sử dụng băng keo cho Máy tính bảng Android.
Bước 9: Sử dụng nó trên thế giới
Sử dụng công cụ này, chúng ta có thể lùi xe một cách an toàn với các xe khác và có thể giám sát người đi bộ. Bạn có thể xem video demo ở phần đầu. Mục tiêu của dự án là khuyến khích thực hành lái xe an toàn hơn.
Bạn có thể kiểm tra dự án từ
Đề xuất:
MIDI Handpan với 19 trường âm ở phía trên và phía dưới : 15 bước (có hình ảnh)
MIDI Handpan với 19 trường âm ở phía trên và phía dưới …: Giới thiệu Đây là hướng dẫn về bàn điều chỉnh MIDI tùy chỉnh của tôi với 19 trường âm nhạy với âm lượng, khả năng Plug'n Play USB và rất nhiều thông số dễ sử dụng để điều chỉnh các tấm đệm cho nhu cầu cá nhân của bạn. Nó không phải là một mod đoạt giải thưởng thiết kế
Tự làm sự bền bỉ của tầm nhìn: 6 bước (có hình ảnh)
DIY Persistence of Vision: Trong dự án này, tôi sẽ giới thiệu cho bạn phối cảnh của màn hình Vision hoặc POV với một vài nguồn cung cấp như Arduino và cảm biến Hall để tạo màn hình xoay hiển thị bất cứ thứ gì bạn thích như văn bản, thời gian và các ký tự đặc biệt khác
Google Glass của Poor Man / Viện trợ cho những người có tầm nhìn đường hầm: 5 bước (có hình ảnh)
Google Glass của Poor Man / Viện trợ cho những người có tầm nhìn đường hầm: Tóm tắt: Dự án này phát video trực tiếp từ camera mắt cá lên màn hình hiển thị có thể đeo được. Kết quả là trường xem rộng hơn trong một khu vực nhỏ hơn (màn hình có thể so sánh với màn hình 4 " 12 " cách xa mắt bạn và xuất ở 720
Màn hình 7 đoạn kép được điều khiển bằng chiết áp trong CircuitPython - Thể hiện sự bền bỉ của tầm nhìn: 9 bước (có hình ảnh)
Màn hình 7 đoạn kép được điều khiển bằng chiết áp trong CircuitPython - Thể hiện sự bền bỉ của tầm nhìn: Dự án này sử dụng chiết áp để điều khiển màn hình hiển thị trên một vài màn hình LED 7 đoạn (F5161AH). Khi xoay núm chiết áp, số hiển thị thay đổi trong phạm vi từ 0 đến 99. Chỉ một đèn LED sáng bất kỳ lúc nào, rất nhanh, nhưng
Máy quét 3D tự làm dựa trên ánh sáng có cấu trúc và tầm nhìn âm thanh nổi bằng ngôn ngữ Python: 6 bước (có hình ảnh)
Máy quét 3D tự làm dựa trên ánh sáng có cấu trúc và tầm nhìn âm thanh nổi bằng ngôn ngữ Python: Máy quét 3D này được chế tạo bằng các vật dụng thông thường giá rẻ như máy chiếu video và webcam. Máy quét 3D ánh sáng có cấu trúc là một thiết bị quét 3D để đo hình dạng ba chiều của một vật thể bằng cách sử dụng các mẫu ánh sáng chiếu và hệ thống máy ảnh