Mục lục:

Hệ thống lưu trữ thành phần: 10 bước (có hình ảnh)
Hệ thống lưu trữ thành phần: 10 bước (có hình ảnh)

Video: Hệ thống lưu trữ thành phần: 10 bước (có hình ảnh)

Video: Hệ thống lưu trữ thành phần: 10 bước (có hình ảnh)
Video: Xây dần ước mơ "Bảo Tàng Tiền Tệ" 🏛 2024, Tháng mười một
Anonim
Hệ thống lưu trữ thành phần
Hệ thống lưu trữ thành phần

Hệ thống Lưu trữ Thành phần Cuối cùng là một giải pháp độc đáo để tổ chức và lưu trữ các thành phần điện tử. Phần mềm tùy chỉnh cho phép lập danh mục các thành phần với chức năng tìm kiếm tích hợp để truy cập nhanh vào các thành phần cụ thể. Đèn LED phía trên mỗi ngăn kéo được sử dụng để chỉ ra vị trí và trạng thái của từng thành phần hoặc một nhóm.

Quân nhu

Cảm ơn DFRobot đã cung cấp các phần sau cho dự án này!

Nguồn điện 2 x 5V @ 3A USB

Có sẵn tại đây (liên kết liên kết):

1 x Raspberry Pi 4 Model B

Có sẵn tại đây (liên kết liên kết):

Màn hình cảm ứng IPS 1 x 8,9 "1920x1200

Có sẵn tại đây (liên kết liên kết):

1 x Dải LED WS2812b, 30LED / m

Có sẵn trên Ebay

Tất cả các tệp cho dự án này có thể được tìm thấy trên GitHub của tôi:

Bước 1: Ý tưởng

Ý tưởng!
Ý tưởng!

Tiểu sử

Tôi luôn gặp khó khăn khi tổ chức và lưu trữ các thành phần của mình. Ảnh trên cho thấy trạng thái của giải pháp lưu trữ thành phần hiện tại của tôi. Mặc dù có các thành phần trong nhiều hộp trên khắp xưởng có thể hoạt động đối với một số người, nhưng nó luôn là một sự kém hiệu quả trong quy trình làm việc của riêng tôi. Vì vậy, tôi đã đưa ra một dự án để giải quyết vấn đề này.

Ý tưởng

Ý tưởng là lưu trữ tất cả các thành phần trong cùng một hệ thống lưu trữ. Hệ thống lưu trữ sẽ bao gồm nhiều ngăn kéo và mỗi ngăn kéo sẽ có một đèn LED gắn trên nó.

Người dùng sẽ sử dụng một phần mềm tùy chỉnh để tương tác với hệ thống lưu trữ. Khi người dùng tiến hành tìm kiếm thành phần, hệ thống sẽ hiển thị các kết quả tìm kiếm hàng đầu trên màn hình. Đồng thời, các đèn LED tương ứng với tìm kiếm bật sáng, do đó cho biết vị trí của thành phần trong hệ thống lưu trữ.

Bên cạnh việc hiển thị vị trí, màu sắc của đèn LED cũng sẽ cho biết trạng thái (tức là số lượng) của từng thành phần.

Các yêu cầu

Ý tưởng được chia thành các yêu cầu sau mà dự án này nhằm mục đích đáp ứng:

Tạo một hệ thống lưu trữ và truy xuất đơn giản cho các thành phần vừa và nhỏ

Tạo một giao diện phần mềm để lập danh mục và tìm kiếm thông qua các thành phần

Sử dụng đèn LED RGB để chỉ ra vị trí và trạng thái của từng thành phần

Bước 2: Thiết kế - Hệ thống lưu trữ

Thiết kế - Hệ thống lưu trữ
Thiết kế - Hệ thống lưu trữ
Thiết kế - Hệ thống lưu trữ
Thiết kế - Hệ thống lưu trữ
Thiết kế - Hệ thống lưu trữ
Thiết kế - Hệ thống lưu trữ

Tôi đã bắt đầu bằng cách lập mô hình 3D cho chính hệ thống lưu trữ.

Tôi đã thiết kế hệ thống lưu trữ dưới dạng ma trận các ngăn kéo in 3D với nhiều kích cỡ khác nhau. Các ngăn kéo được định vị trong một lưới 35 × 12 với tổng số 310 ngăn kéo. Đó là không gian đủ để lưu trữ tất cả các thành phần hiện tại của tôi và để lại không gian cho việc mở rộng trong tương lai.

Khoảng cách giữa các ngăn kéo theo chiều dọc được thiết kế để bố trí dải đèn LED rộng 10mm phía trên mỗi dãy ngăn kéo. Khoảng cách theo hướng ngang được thiết kế để bằng với khoảng cách LED trên dải LED. Tôi nhận ra rằng việc sử dụng dải LED 30LED / mét sẽ tạo ra kích thước phù hợp cho mỗi ngăn kéo.

Tất cả các ngăn kéo và ngăn kéo được thiết kế để in riêng và lắp ráp thành cấu hình mong muốn. Các ngăn kéo có sẵn với các kích thước khác nhau và bất kỳ cấu hình nào của ngăn kéo sẽ hoạt động với phần mềm sau một số thay đổi mã.

Để giảm thiểu tiêu thụ dây tóc và thời gian in, độ dày của thành trên tất cả các bộ phận được in 3D đã được giữ ở mức tối thiểu. Sau khi được lắp ráp, bộ lưu trữ tổng thể đủ chắc chắn để chứa hầu hết các thành phần nhẹ và trọng lượng trung bình.

Bước 3: Thiết kế - Cánh tay hiển thị

Thiết kế - Cánh tay hiển thị
Thiết kế - Cánh tay hiển thị
Thiết kế - Cánh tay hiển thị
Thiết kế - Cánh tay hiển thị
Thiết kế - Cánh tay hiển thị
Thiết kế - Cánh tay hiển thị

Vì hệ thống lưu trữ yêu cầu màn hình HDMI cho giao diện người dùng, tôi quyết định thiết kế một cánh tay có thể điều chỉnh để gắn màn hình và thiết bị điện tử vào.

Tất cả các bộ phận của cánh tay hiển thị được thiết kế để in 3D và lắp ráp bằng bu lông và đai ốc M8. Cánh tay hiển thị được thiết kế để giữ màn hình HDMI, Raspberry Pi và tất cả hệ thống dây điện.

Các bộ phận của cánh tay hiển thị dựa trên thiết kế này của Thingiverse.

Bước 4: In & Tranh 3D

In & Tranh 3D
In & Tranh 3D
In & Tranh 3D
In & Tranh 3D
In & Tranh 3D
In & Tranh 3D

Sau khi tạo mô hình 3D tất cả các bộ phận, đã đến lúc bắt đầu in hàng trăm ngăn kéo.

Tôi đã sử dụng Prusa MK2S của mình cho tất cả các phần được in 3D của dự án này. Tôi đã sử dụng dây tóc PLA với chiều cao lớp 0,2mm và chèn thêm 0%.

Vật liệu hỗ trợ chỉ cần thiết trên ngăn kéo cỡ trung bình và ngăn kéo cỡ lớn. Tôi đã xác định dung sai hoàn hảo giữa ngăn kéo và ngăn kéo là 0,2mm. Số dặm của bạn có thể rất phụ thuộc vào máy in 3D của bạn.

Sau khi in tất cả các phần riêng biệt, tôi sử dụng superglue để lắp ráp tất cả các ngăn kéo lại với nhau thành lưới 35 × 12.

Tôi không có đủ dây tóc cùng màu, vì vậy tôi quyết định phủ thêm một lớp sơn đen để hệ thống lưu trữ trông đồng đều.

Để tham khảo, toàn bộ hệ thống lưu trữ 35 × 12 của tôi với 310 ngăn kéo cần khoảng 5kg dây tóc để in.

Bước 5: Điện tử

Điện tử
Điện tử
Điện tử
Điện tử

Đối với thiết bị điện tử, việc lựa chọn phần cứng khá đơn giản.

Tôi đã chọn Raspberry Pi 4 Model B được kết nối với màn hình HDMI làm giao diện người dùng. Bạn cũng có thể sử dụng Raspberry Pi không đầu và giao diện với hệ thống thông qua SSH. Các phiên bản cũ hơn của Raspberry Pi cũng có thể hoạt động nếu chúng có thể chạy Python 3. Thư viện Neopixel được sử dụng trong dự án này không được hỗ trợ trên Python 2.

Đối với đèn LED, tôi đã chọn dải LED 30LED / m, WS2812b, không vì lý do cụ thể nào. Các dải LED khác cũng sẽ hoạt động nếu chúng được hỗ trợ bởi thư viện Neopixel.

Đối với hệ thống dây điện, ba cáp USB-C được sử dụng để cung cấp điện cho Raspberry Pi, màn hình và đèn LED. Cáp HDMI được sử dụng để kết nối màn hình và Raspberry Pi.

Arduino Uno và cáp USB hiển thị trong ảnh là tùy chọn. Bạn có thể gửi dữ liệu đến Arduino qua Serial và sử dụng nó làm bộ điều khiển LED. Để đơn giản, tôi đã chọn không sử dụng Arduino trong dự án này.

Một thực tiễn thiết kế tốt là bao gồm một bộ chuyển đổi mức trên đường dữ liệu cho các đèn LED vì Raspberry Pi GPIO chỉ là 3V3. Tôi đã không gặp bất kỳ vấn đề nào cho đến nay nhưng nếu có, tôi sẽ thực hiện một cái gì đó như "74AHCT125 Quad Level-Shifter".

Hướng dẫn sử dụng Neopixel với Python và Raspberry Pi có ở đây.

Bước 6: Tổng quan về phần mềm

Tổng quan về phần mềm
Tổng quan về phần mềm

Trong khi tất cả các bộ phận được in 3D, tôi đã làm việc trên phần mềm điều khiển toàn bộ hệ thống.

Phần mềm được viết bằng Python 3 và có nghĩa là chạy như một ứng dụng bảng điều khiển trên Raspberry Pi. Chức năng của phần mềm có thể được chia thành các phần sau:

  • Đọc đầu vào của người dùng
  • Đọc từ tệp / ghi vào tệp
  • Xuất kết quả ra bảng điều khiển và đèn LED

Tôi sẽ đưa ra một mô tả đơn giản của từng bước dưới đây.

Đọc đầu vào của người dùng

Khi nhận được đầu vào của người dùng, một loạt biểu thức Regex được sử dụng để xác định yêu cầu của người dùng. Người dùng có các chức năng sau để lựa chọn:

Hàm số Ví dụ về cuộc gọi
Liệt kê tất cả các thành phần: tất cả các
Tìm kiếm một thành phần theo ID: ID22
Tìm kiếm một thành phần theo các tham số: R, 22, SMD
Thay đổi số lượng của một thành phần: ID35 + 10
Thêm một thành phần mới: PI89: PI90, 100 chiếc, C, 470u, SMD: thêm
Xóa một thành phần hiện có: ID10: rm
Trợ giúp về cú pháp: Cứu giúp

Đọc từ tệp / ghi vào tệp

Dữ liệu thành phần được lưu trữ trong tệp.txt. Tùy thuộc vào dữ liệu đầu vào, phần mềm sẽ tìm kiếm dữ liệu trong tệp hoặc ghi dữ liệu mới vào tệp. Dữ liệu mới được ghi khi loại bỏ, thêm hoặc sửa đổi các thành phần.

Đưa ra kết quả

Phần mềm xuất kết quả từ hoạt động đến bàn điều khiển. Nếu một tìm kiếm đã được thực hiện, nó cũng tạo và xuất dữ liệu LED cùng một lúc.

Bước 7: Cấu trúc dữ liệu

Cấu trúc dữ liệu
Cấu trúc dữ liệu

Dữ liệu thành phần trong tệp.txt tuân theo một cấu trúc cụ thể. Mỗi hàng của tệp chứa thông tin về một thành phần duy nhất được lưu trữ trong hệ thống. Mỗi thành phần bao gồm một số tham số được phân tách bằng dấu phẩy.

Một số thông số là bắt buộc và được phần mềm sử dụng để theo dõi vị trí thành phần và màu sắc của đèn LED. Do đó, chúng phải tuân theo một định dạng cụ thể.

Các thông số bắt buộc và định dạng của chúng là:

  • ID (ở định dạng IDX trong đó X là một hoặc nhiều chữ số)

    ID hoạt động như một định danh duy nhất cho mỗi thành phần. Nó được sử dụng khi tìm kiếm và xóa các thành phần

  • PI (ở định dạng PIX: X trong đó X là một hoặc nhiều chữ số)

    PI mô tả đèn LED nào tương ứng với thành phần nào

  • Số lượng (ở định dạng Xpcs trong đó X là một hoặc nhiều chữ số)

    Số lượng được sử dụng để xác định màu LED cho từng thành phần

Các thông số khác chỉ đơn giản là dành cho người dùng. Phần mềm không cần phải can thiệp vào những thứ đó và do đó định dạng của chúng là tùy chọn.

Bước 8: Lắp ráp - Điện tử

Lắp ráp - Điện tử
Lắp ráp - Điện tử
Lắp ráp - Điện tử
Lắp ráp - Điện tử

Việc lắp ráp có thể được chia thành hai phần, phần đầu tiên là cánh tay hiển thị và phần điện tử.

Tôi đã lắp ráp các bộ phận in 3D bằng cách sử dụng các bu lông và đai ốc cần thiết. Sau đó, tôi gắn cánh tay in 3D vào màn hình HDMI bằng vít 4mm. Raspberry Pi được gắn ở một vị trí thuận tiện và dây được kết nối theo sơ đồ trong "Bước 5: Điện tử".

Một nỗ lực đã được thực hiện để quản lý cáp bằng cách cuộn nó xung quanh khung màn hình. Tôi đã sử dụng dây buộc cáp để dẫn cáp nguồn và cáp dữ liệu dọc theo tay màn hình để kết nối với phần còn lại của hệ thống lưu trữ.

Bước 9: Lắp ráp - Hệ thống lưu trữ

Assembly - Hệ thống lưu trữ
Assembly - Hệ thống lưu trữ
Assembly - Hệ thống lưu trữ
Assembly - Hệ thống lưu trữ
Assembly - Hệ thống lưu trữ
Assembly - Hệ thống lưu trữ
Assembly - Hệ thống lưu trữ
Assembly - Hệ thống lưu trữ

Phần thứ hai của lắp ráp là chính hệ thống lưu trữ.

Sử dụng các lỗ vít đi kèm, tôi gắn tất cả các cụm ngăn kéo riêng biệt vào một miếng ván ép sơn đóng vai trò như một tấm ván phía sau.

Sau đó, tôi gắn các dải LED trên mỗi hàng và kết nối tất cả các hàng với nhau thành một dải LED duy nhất. Cấu hình của từng hàng và hướng của dải đèn LED không quan trọng vì nó có thể được cấu hình lại trong phần mềm.

Để hoàn thành việc lắp ráp, tôi đã gắn cánh tay hiển thị với các thiết bị điện tử ở mặt bên của tấm ván ép.

Tôi đã sắp xếp tất cả các thành phần vào ngôi nhà mới của chúng và thêm chúng vào cơ sở dữ liệu tệp.txt.

Bước 10: Bao gồm

Bao gồm
Bao gồm
Bao gồm
Bao gồm
Bao gồm
Bao gồm

Dự án hiện đã hoàn thành và tôi thực sự hài lòng với cách nó diễn ra!

Tôi chỉ có thời gian để sử dụng hệ thống lưu trữ mới của mình trong vài ngày và nó đã hoạt động rất tốt. Tôi rất vui khi thấy hệ thống này thay đổi quy trình làm việc của tôi như thế nào trong tương lai vì đó là mục đích của toàn bộ dự án này.

Tôi hy vọng bạn thích dự án này và nếu bạn có bất kỳ suy nghĩ, nhận xét hoặc câu hỏi nào, vui lòng để lại bên dưới.

Đề xuất: