If you are a radio amateur and have dozens, maybe hundreds of different electronic component, then check out this project. With it, you can organize the storage of parts. The automated storage and accounting system for electronic components is a unique solution for organizing and storing electronic components. Dedicated software enables component cataloging with built-in search functionality for quick access to specific components. LEDs above each drawer are used to indicate the location and status of individual parts or a group of components.
However, the idea behind this device can be applied not only in radio amateurs, but also in the accounting and storage system of other things or goods.
Tools and materials: -Power adapter 5V 3A; -Raspberry Pi 4 Model B; -Touch IPS-display compatible with Raspberry Pi 4B/3B; -LED strip WS2812b, 30 LEDs per meter;
-Black spray paint;
-Computer with software;
Step one : idea
photos above, the previous place of storage of components at the master. In principle, it is neat and sorted, but it takes a lot of time to find the right part.
To solve the problem, the master decided to automate everything.
The idea is to store all the components in one system. The storage system will consist of many drawers, and an LED will be installed above each drawer.
The user will use special software to interact with the storage system. When the user searches for components, the system displays the first search results on the screen. At the same time, the LEDs corresponding to the search light up, which indicates the location of the component in the storage system.
In addition to displaying the location, the color of the LEDs will also indicate the state (i.e. quantity) of each component.
So, to implement the project you need:
Create a simple storage and retrieval system for small to medium sized components.
Create a programming interface for cataloging and searching by component.
Use RGB LEDs to indicate the location and status of each component.
All files, print, code and etc. available here.
Step two: design
The master began the work with 3D-modeling of the storage system itself.
He developed a storage system in the form of blocks of boxes, of different sizes, printed on a 3D printer. The drawers are arranged in a 35 × 12 grid, 310 drawers in total. This space is sufficient to store all current components and there is room for future expansion.
The vertical distance between the drawers is designed to accommodate a 10mm wide LED strip above each row of drawers. The horizontal distance is equal to the distance between the LEDs on the LED strip. The master decided that using a 30 LED strip/meter would provide an ideal distance.
All parts, drawers and drawer holders are printed separately and assembled in the desired configuration. The boxes are available in a variety of sizes and any box configuration will work with the software after some code changes.
To minimize filament consumption and print time, the wall thickness of all 3D printed parts is minimized. Once assembled, the overall storage unit is strong enough to accommodate most light to medium components.
Since the storage system requires a display, the master designed an adjustable bracket for mounting the display and electronics.
All parts of the display bracket were designed for 3D printing and assembled with M8 bolts and nuts. The display bracket is designed to accommodate the HDMI display, Raspberry Pi and all wiring.
The bracket was developed based on a project at Thhingiverse.
< a href = "https://usamodelkina.ru/uploads/posts/2020-12/1606821159_1-8.jpg" rel = "prettyPhoto"> Step Three: 3D Printing
After 3D modeling all parts, hundreds of parts need to be printed.
Master used Prusa MK2S 3D printer for all 3D printed parts of this project. He used 0.2mm PLA filament with 0% infill.
Support material was only required for the medium-sized drawer holder and the large-sized drawer holder. The ideal tolerance between drawers and drawer holders is 0.2 mm.
After printing out all the individual pieces, he used superglue to put all the drawer holders together in a 35 × 12 grid.
The painting is due to the fact that the master did not have enough thread of the same color. He simply dyed the parts printed with a thread of a different color.
It took about 5 kg of thread to print all the parts.
Step Four: Electronics
On the electronics side, the hardware selection was pretty straightforward.
For the user interface, he chose a Raspberry Pi 4 Model B connected to a display via HDMI. You can also use the Raspberry Pi without a display and control the system from another device via the SSH network protocol. Older versions of Raspberry Pi can also work if they can run Python 3. The Neopixel library used in this project is not supported by Python 2.
For the display, he chose 30LED/m, WS2812b. Other LED strips will also work if supported by the Neopixel library.
In terms of wiring, three USB-C cables are used to supply power to the Raspberry Pi, display, and LEDs. The HDMI cable is used to connect the display and the Raspberry Pi.
Arduino Uno shown in the photo are optional. It is possible to transfer data to the Arduino via the serial port and use it as an LED controller, but for the sake of simplicity, the master decided not to use the Arduino in this project.
Since the Raspberry Pi GPIO only has 3V3, a four-level switch type could be included in the data line for the LEDs 74AHCT125. But so far he has had no problems.
A tutorial on using Neopixel with Python and Raspberry Pi can be found here.
< a href = "https://usamodelkina.ru/uploads/posts/2020-12/1606821180_1-13.jpg" rel = "prettyPhoto"> Step Five: Software Review
While all the parts were being 3D printed, the wizard began to develop software that controls the entire system.
The software is written in Python 3 and is designed to work as a console application for the Raspberry Pi. The functionality of the software can be divided into three parts:
Read from file/Write to file
Output of results to console and LEDs
The following functions are available to the user:
List all components: all
Search component by ID: ID22
Search component by parameters: R, 22, SMD
Change the quantity of component: ID35 + 10
Add new component: PI89: PI90, 100pcs, C, 470u, SMD: add
Delete existing component: ID10: rm
Read from file/write to file
Component data is stored in a .txt file. Depending on the input, the software either looks for data in the file or writes new data to the file. New data is recorded when components are removed, added or changed.
The program outputs the operation results to the console. If a search has been made, it also displays data on LEDs.
Step Six: Data Structure
Component data in a .txt file has a specific structure. Each line of the file contains information about one component that is stored in the system. Each component consists of several parameters, separated by a comma.
Some parameters are required and are used by the software to track component locations and LED colors. Therefore, they must conform to a specific format.
Required parameters and their formats:
ID (in IDX format, where X is one or more digits)
An identifier acts as a unique identifier for each component. Used when finding and removing components.
PI (in PIX format: where X is one or more digits)
PI describes which LEDs correspond to which component.
Quantity (in format Xpcs, where X is one or more digits)
Quantity is used to determine the LED color for each component.
The rest of the parameters are just for the user. The software doesn't need to interact with them, so their format is optional.
Step Seven: Build
The assembly can be divided into two parts, the first part is the display and the electronics.
The craftsman assembled the bracket and fixed the display on it. Then he fixed the display on it and Rusbury. Made a connection.
Second part is the organizer itself. The organizer is attached to the plywood through specially designed mounting holes.
Then LED strips are glued to each row and connected together. The configuration of each row and direction of the LED strip does not matter as it can be changed by software.
To complete the assembly, the wizard attached a display bracket with electronics to the side of the plywood panel.
Then sorted all the components by cell and added them to the file database.
< a href = "https://usamodelkina.ru/uploads/posts/2020-12/1606821248_1-23.jpg" rel = "prettyPhoto"> All ready. According to the master, he is very pleased with the new organizer.
Thanks to the master, and if you want to establish accounting and storage in a similar way, I advise you to read the comments at the source. There are a few ideas out there that can greatly improve and simplify the system.