Mục lục:
- Bước 1: Đồng hồ kéo giãn là gì?
- Bước 2: Một chút giúp đỡ từ những con lợn bay
- Bước 3: Phiên bản TL; DR
- Bước 4: Cài đặt
- Bước 5: Cài đặt Pigpio
- Bước 6: Tùy chọn: Thiết lập hệ thống Dev
- Bước 7: Thiết lập WinSCP
- Bước 8: (w) lấy mã
- Bước 9: Lưu ý cho các hacker sắp xuất hiện
Video: TinyLiDAR trên Pi ?: 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
Xin chào lần nữa!
Giờ thì bạn đã dành một khoảng thời gian chất lượng với tinyLiDAR và Arduino - Raspberry Pi của bạn có thể cảm thấy hơi cô đơn;)
Pi có một cổng I2C phải không? Vậy tại sao không nối nó lên và thử nó ở đó?! Kế hoạch tốt, nhưng nếu bạn đã thử - bạn có thể nhận thấy dữ liệu trông hơi lạ.
Có, pi đã tích hợp sẵn các thanh kéo 1,8K nên bạn sẽ phải cắt các miếng đệm I2C trên tinyLiDAR để lấy các thanh kéo 4,7K ra khỏi mạch - xem hướng dẫn tham khảo để biết chi tiết. Nhưng đây không phải là lý do cho dữ liệu kỳ lạ.
Đó là bởi vì bus I2C của pi không chính xác theo thông số kỹ thuật. Nó đã như vậy kể từ khi pi lần đầu tiên được giới thiệu do bộ chip Broadcom. Ngay từ đầu họ đã không hỗ trợ thích hợp một tính năng I2C được gọi là "kéo dài đồng hồ".
Bạn có thể đọc thêm về lỗi h / w này tại đây.
Bước 1: Đồng hồ kéo giãn là gì?
Như bạn có thể biết, bus I2C bao gồm 3 dây. Chúng dành cho xung nhịp (SCL), dữ liệu (SDA) và điểm chung. Đồng hồ và các đường dữ liệu thuộc loại bộ thu mở / bộ thoát hở có nghĩa là chúng cần các điện trở kéo lên được kết nối với đường ray cung cấp tích cực để cung cấp cho chúng mức logic cao. Để mức logic thấp, bất kỳ thiết bị nào trên bus đều có thể kéo đường dây xuống mức chung.
Theo tiêu chuẩn I2C, thiết bị Master là thiết bị cung cấp tín hiệu đồng hồ trên đường SCL nhưng nếu tốc độ này quá nhanh thì thiết bị Slave được phép làm chậm nó bằng cách chỉ cần giữ dòng đồng hồ cho đến khi nó sẵn sàng xử lý với thông tin. Đây là những gì chúng tôi gọi là "đồng hồ kéo dài".
Chính thức, giãn đồng hồ được liệt kê là một tính năng tùy chọn trong tiêu chuẩn I2C nhưng đây là một tính năng rất phổ biến cần thiết cho hầu hết các nô lệ "thông minh" cần thêm thời gian để cung cấp dữ liệu cảm biến, v.v.
Bước 2: Một chút giúp đỡ từ những con lợn bay
Để đối phó với lỗi I2C h / w này, chúng tôi đã tìm thấy một thư viện miễn phí nhỏ xinh có tên "pigpio". Đây là một thư viện rất phổ biến, nhanh và nhẹ được viết bằng C. Nó chạy như một daemon nền cho Raspberry Pi và cho phép chúng tôi điều khiển I2C cũng như bất kỳ GPIO nào một cách dễ dàng từ python. Thư viện xử lý các cổng I2C giống GPIO hơn và do đó đã vượt qua lỗi kéo giãn đồng hồ I2C. Giống như tất cả các phần mềm trên pi, thư viện pigpio chỉ là một "bao gồm" đơn giản, vì vậy hãy bắt đầu!
Bước 3: Phiên bản TL; DR
Thiết lập PiEnable SSH để đăng nhập với thư viện PuttyInstall pigpio Nhận tệp zip tinyLiDARUnzip và chạy từ Putty
Không bắt buộc:
Thiết lập SublimeText với WinSCP
Bước 4: Cài đặt
Đối với Raspberry Pi 3 của chúng tôi, chúng tôi đã sử dụng hệ điều hành New Out Of the Box Software (NOOBS Lite v2.4) tiêu chuẩn. Nó chứa một phiên bản Python mặc định đã được cài đặt sẵn để chúng tôi sẵn sàng viết mã. Bạn có thể tải xuống hệ điều hành từ đây.
Sau khi được cài đặt trên thẻ micro SD, bạn phải kết nối bàn phím và màn hình để có thể đăng nhập vào pi lần đầu tiên:
Tên người dùng: pi Mật khẩu: mâm xôi
Sau đó, bạn có thể khởi động một máy chủ shell an toàn (SSH) bằng các lệnh sau:
sudo systemctl kích hoạt sshsudo systemctl start ssh
Tiếp theo, chúng tôi sẽ cần địa chỉ IP của số pi trên mạng của bạn để chúng tôi có thể đăng nhập bằng PuTTY. Để có được điều này, chỉ cần nhập:
tên máy tôi
Và tìm kiếm địa chỉ định dạng IPv4 (Đối với thiết lập của chúng tôi, đó là: 192.168.0.27)
Các bước trên sẽ cho phép pi chạy "không đầu", nghĩa là bạn sẽ không cần gõ lại bàn phím này và cũng không cần màn hình video nữa. Chúng tôi sẽ đăng nhập qua mạng thông qua kết nối SSH an toàn trong tương lai. Lệnh trên khiến máy chủ SSH tự động khởi chạy mỗi khi pi được bật nguồn. Điều này thuận tiện cho chúng tôi khi chúng tôi viết mã nhưng nó có thể là một rủi ro bảo mật sau này (hoang tưởng là tốt) vì vậy khi bạn đã sẵn sàng, bạn có thể tắt tính năng SSH tự động khởi động này bằng lệnh sau:
sudo systemctl vô hiệu hóa ssh
Tất nhiên, lệnh này phải được gõ trên bàn phím kết nối với số pi.
PuTTY là một chương trình đầu cuối được yêu cầu để đưa ra các lệnh từ PC tới pi, vì vậy bạn nên lấy bản sao mới nhất từ đây.
Cài đặt và khởi động PuTTY. Bạn sẽ cần nhập địa chỉ IP từ trên vào mục Tên máy chủ lưu trữ và sử dụng cài đặt SSH mặc định. Đặt cho phiên bất kỳ tên nào bạn muốn và nhấn lưu. Sau đó nhấn tải và nhấp vào MỞ để bắt đầu phiên.
Nó sẽ đưa bạn đến màn hình đăng nhập cho số pi. Sử dụng cùng tên người dùng và mật khẩu mà bạn đã sử dụng trước đó.
Bước 5: Cài đặt Pigpio
Bây giờ, thứ duy nhất chúng ta cần cài đặt sau đó sẽ là thư viện pigpio và chúng ta có thể thực hiện việc này bằng cách sử dụng các lệnh sau.
Mẹo: Bạn có thể chỉ cần sao chép [ctrl + c] và dán [nhấp chuột phải vào chuột] các lệnh này và bất kỳ lệnh nào khác vào thiết bị đầu cuối PuTTY
sudo apt-get cập nhật
sudo apt-get install pigpio python-pigpio python3-pigpio
Bước 6: Tùy chọn: Thiết lập hệ thống Dev
Vì vậy, đây là một mẹo có thể giúp tiết kiệm thời gian trong thế giới phát triển mã của bạn. Chúng tôi thực sự ghét các trình soạn thảo văn bản dựa trên unix. Giao diện người dùng thường vụng về và phông chữ tệ. GNU nano gần như có thể chịu được nhưng không có gì được tinh chế như SublimeText mà bạn có thể tải xuống từ đây
Chúng tôi có một môi trường phát triển dựa trên windows và thích sử dụng trình soạn thảo văn bản này bất cứ khi nào có thể. Vì vậy, mẹo ở đây là thiết lập hệ thống của bạn để có thể sử dụng trình soạn thảo văn bản chuyên nghiệp này ngay trên màn hình nền windows của bạn để viết mã trực tiếp trên số pi không đầu của bạn.
Thế nào? Sử dụng một ứng dụng miễn phí có tên WinSCP mà bạn có thể tải xuống từ đây
Bước 7: Thiết lập WinSCP
WinSCP là một chương trình truyền tệp an toàn cung cấp một biểu diễn đồ họa của các tệp hiện diện trên rpi của bạn giống như những gì bạn thấy trong trình quản lý tệp trên máy tính chạy windows của bạn.
Vì vậy, hãy tiếp tục và cài đặt hai chương trình trên ngay bây giờ.
Tiếp theo, bạn sẽ phải thực hiện một vài điều chỉnh để làm cho tất cả chúng hoạt động bình thường.
Đối với WinSCP, bạn có thể nhấp vào Trang web MỚI. Chúng tôi sẽ sử dụng cài đặt SFTP mặc định và bạn chỉ cần nhập địa chỉ IP (đối với tên Máy chủ) của số pi và tên đăng nhập (đối với Tên người dùng). Bạn có thể chọn để trống mật khẩu nếu muốn - nó sẽ nhắc bạn nhập mật khẩu mỗi khi bạn đăng nhập.
Tiếp theo, nhấp vào nút Nâng cao và sau đó nhấp vào bên trái để cài đặt Vỏ môi trường. Ở phía bên phải thay đổi "Mặc định" kéo xuống tùy chọn "sudo su -". Điều này sẽ cho phép các thay đổi được ghi vào pi của bạn mà không bị lỗi quyền khi bạn nhấn lưu từ SublimeText.
Đặt SublimeText làm Trình chỉnh sửa mặc định trong WinSCP
Để thực hiện việc này, hãy nhấp vào nút Công cụ trên màn hình cài đặt Đăng nhập WinSCP nơi bạn bắt đầu hộp thoại Trang web mới của mình. Hai ảnh chụp màn hình cho thấy cách này được định cấu hình, nhưng về cơ bản bạn sẽ nhấp vào để định cấu hình tùy chọn Trình chỉnh sửa và Thêm Trình chỉnh sửa sẽ là Trình chỉnh sửa bên ngoài. Sau đó, bạn có thể duyệt tìm tệp.exe của nơi đặt trình chỉnh sửa này trên máy tính của bạn.
Bước 8: (w) lấy mã
Sau khi hoàn tất, hãy tiếp tục và đăng nhập bằng WinSCP và bằng PuTTY.
Bây giờ chúng ta đã sẵn sàng, chúng ta có thể bắt đầu mã LIDAR nhỏ của chúng ta.
Tạo một thư mục có tên tinyLiDAR trong thư mục home / pi của bạn.
Bạn có thể thực hiện việc này bằng cách nhấp chuột phải vào phía bên phải của màn hình WinSCP và chọn New / Directory.
Bây giờ tại thiết bị đầu cuối PuTTY, bạn có thể nhập
cd t
và nhấn tab để nó tự động hoàn thành lệnh của bạn để truy cập thư mục tinyLiDAR.
Khi ở đây, hãy nhập như sau:
wget
để lấy các tệp trực tiếp từ máy chủ của chúng tôi. Sau đó, chúng tôi có thể giải nén chúng bằng cách gõ
giải nén r
và nhấn tab để tự động điền lại tên
Để chạy nó, chỉ cần nhập
python tlgui.py
Và tinyLiDAR của bạn sẽ phản hồi mọi lệnh của bạn trên pi:)
Bước 9: Lưu ý cho các hacker sắp xuất hiện
Hãy tiếp tục và xem xét kỹ lưỡng bằng cách nhấp đúp vào bất kỳ tệp mã nào từ WinSCP. Chúng là những người có phần mở rộng.py. Các tệp sẽ được mở trong SublimeText trực tiếp trên PC của bạn. Thay đổi bất cứ điều gì bạn thích và sau đó nhấn lưu. Các thay đổi của bạn sẽ được lưu trực tiếp vào số pi của bạn.
Khi đã sẵn sàng, bạn chạy lại bằng cách sử dụng phím mũi tên lên cho lệnh đã nhập cuối cùng hoặc chỉ cần nhập lại và nhấn enter:
python tlgui.py
Bạn có thể nhận thấy bố cục Terminal GUI trông đẹp hơn một chút so với phiên bản Arduino. Đó là vì PuTTY hỗ trợ các ký tự unicode, vì vậy chúng tôi có thể sử dụng thêm một số ký tự điều khiển con trỏ để làm cho nó trông tinh tế hơn.
Ngoài ra còn có một lệnh được bổ sung ở đây (so với phiên bản Arduino) là "dc" cho chức năng Đọc liên tục. Hãy thử nó ra và xem những gì bạn nghĩ.
Đó là tất cả!
Cảm ơn vì đã đọc và tận hưởng hack trên pi:)
Đề xuất:
Lập mô hình dựa trên hình ảnh / Chân dung bằng phép đo ảnh: 4 bước
Mô hình dựa trên hình ảnh / Chân dung phép đo ảnh: Xin chào mọi người, Trong bài viết có thể hướng dẫn này, tôi sẽ chỉ cho các bạn quy trình tạo mô hình 3D bằng hình ảnh kỹ thuật số. Quá trình này được gọi là Photogrammetry, còn được gọi là Lập mô hình dựa trên hình ảnh (IBM). Cụ thể, loại quy trình này được sử dụng để tái
Diều hâu: Robot điều khiển bằng cử chỉ bằng tay sử dụng giao diện dựa trên xử lý hình ảnh: 13 bước (có hình ảnh)
Gesture Hawk: Robot điều khiển bằng cử chỉ bằng tay sử dụng giao diện dựa trên xử lý hình ảnh: Gesture Hawk đã được giới thiệu trong TechEvince 4.0 như một giao diện người-máy xử lý hình ảnh đơn giản. Tiện ích của nó nằm ở chỗ không cần thiết bị cảm biến hoặc thiết bị đeo bổ sung nào ngoại trừ một chiếc găng tay để điều khiển chiếc xe robot chạy trên
Arduino Uno: Hình ảnh động bitmap trên Tấm chắn hiển thị màn hình cảm ứng TFT ILI9341 Với Visuino: 12 bước (có Hình ảnh)
Arduino Uno: Ảnh động bitmap trên Tấm chắn hiển thị màn hình cảm ứng TFT ILI9341 Với Tấm chắn màn hình cảm ứng TFT dựa trên Visuino: ILI9341 là Tấm chắn hiển thị chi phí thấp rất phổ biến cho Arduino. Visuino đã hỗ trợ chúng trong một thời gian khá dài, nhưng tôi chưa bao giờ có cơ hội viết Hướng dẫn về cách sử dụng chúng. Tuy nhiên, gần đây có rất ít người hỏi
Màn hình cảm ứng Đồng bộ hóa gia đình & Bảng điều khiển gia đình gắn trên màn hình: 7 bước (có Hình ảnh)
Bảng điều khiển Home & Family Sync & Home trên màn hình cảm ứng: Chúng tôi có lịch được cập nhật hàng tháng với các sự kiện nhưng lịch được thực hiện theo cách thủ công. Chúng ta cũng có xu hướng quên những việc đã làm hết hoặc những việc vặt khác. Ở thời đại này, tôi nghĩ sẽ dễ dàng hơn nhiều nếu có một hệ thống đồng bộ lịch và sổ ghi chú mà c
Khắc phục điểm ảnh bị kẹt trên màn hình LCD: 5 bước (với Hình ảnh)
Khắc phục điểm ảnh bị kẹt trên màn hình LCD: Nếu bạn thích hướng dẫn này, thì có thể bạn sẽ thích những thứ khác trên trang web của tôi ở đây … Voiding Warranties http://www.engadget.com/2007/12/24/how-to-guide-details-fix-for-stuck-pixels/Tôi sẽ