Inhoudsopgave:

Het componentenopslagsysteem: 10 stappen (met afbeeldingen)
Het componentenopslagsysteem: 10 stappen (met afbeeldingen)

Video: Het componentenopslagsysteem: 10 stappen (met afbeeldingen)

Video: Het componentenopslagsysteem: 10 stappen (met afbeeldingen)
Video: BETER WORDEN #14 AFVALLEN 2024, November
Anonim
Het componentenopslagsysteem
Het componentenopslagsysteem

Het Ultimate Component Storage System is een unieke oplossing voor het organiseren en opslaan van elektronische componenten. De aangepaste software maakt het catalogiseren van componenten mogelijk met een ingebouwde zoekfunctie om snel toegang te krijgen tot specifieke componenten. LED's boven elke lade worden gebruikt om de locatie en status van individuele of een groep componenten aan te geven.

Benodigdheden

Bedankt aan DFRobot voor het leveren van de volgende onderdelen voor dit project!

2 x 5V @ 3A USB-voeding

Beschikbaar hier (affiliate link):

1 x Raspberry Pi 4 Model B

Beschikbaar hier (affiliate link):

1 x 8,9" 1920x1200 IPS-aanraakscherm

Beschikbaar hier (affiliate link):

1 x WS2812b LED-Strip, 30LED/m

Beschikbaar op Ebay

Alle bestanden voor dit project zijn te vinden op mijn GitHub:

Stap 1: Het idee

Het idee!
Het idee!

Achtergrond

Ik heb altijd problemen gehad met het organiseren en opbergen van mijn componenten. De bovenstaande foto toont de staat van mijn huidige oplossing voor het opslaan van componenten. Hoewel het voor sommigen misschien werkt om componenten in meerdere dozen in de werkplaats te hebben, is het altijd een inefficiëntie geweest in mijn eigen workflow. Dus bedacht ik een project om dit probleem op te lossen.

Het idee

Het idee was om alle componenten in hetzelfde opslagsysteem op te slaan. Het opbergsysteem zou uit veel lades bestaan en op elke lade zou een LED zijn gemonteerd.

De gebruiker zou aangepaste software gebruiken om te communiceren met het opslagsysteem. Wanneer de gebruiker een componentzoekopdracht uitvoert, geeft het systeem de beste zoekresultaten op het scherm weer. Tegelijkertijd gaan de LED's die overeenkomen met de zoekopdracht branden, waardoor de locatie van het onderdeel in het opslagsysteem wordt aangegeven.

Naast het weergeven van de locatie, geeft de kleur van de LED's ook de status (d.w.z. hoeveelheid) van elk onderdeel aan.

De vereisten

Het idee is opgesplitst in de volgende eisen waaraan dit project wil voldoen:

Creëer een eenvoudig opslag- en ophaalsysteem voor kleine en middelgrote componenten

Maak een software-interface voor het catalogiseren en doorzoeken van de componenten

Gebruik RGB-leds om de locatie en status van elk onderdeel aan te geven

Stap 2: Ontwerp - Opbergsysteem

Ontwerp - Opbergsysteem
Ontwerp - Opbergsysteem
Ontwerp - Opbergsysteem
Ontwerp - Opbergsysteem
Ontwerp - Opbergsysteem
Ontwerp - Opbergsysteem

Ik begon met het 3D-modelleren van het opslagsysteem zelf.

Ik ontwierp het opbergsysteem in de vorm van een matrix van 3D-geprinte lades in verschillende formaten. De lades zijn geplaatst in een 35×12 raster voor in totaal 310 lades. Dat is genoeg ruimte om al mijn huidige componenten op te slaan en ruimte te laten voor toekomstige uitbreidingen.

De afstand tussen lades in verticale richting is ontworpen om een 10 mm brede LED-strip boven elke rij lades te plaatsen. De afstand in horizontale richting is ontworpen om gelijk te zijn aan de LED-afstand op de LED-strip. Ik dacht dat het gebruik van een 30LED / meter LED-strip zou zorgen voor een voldoende grootte van elke lade.

Alle laden en ladehouders zijn ontworpen om afzonderlijk te worden bedrukt en in de gewenste configuratie te worden gemonteerd. De laden zijn verkrijgbaar in verschillende maten en elke configuratie van laden zal na enkele codewijzigingen met de software werken.

Om het filamentverbruik en de printtijd te minimaliseren, is de wanddikte op alle 3D-geprinte onderdelen tot een minimum beperkt. Eenmaal gemonteerd, is de totale opslageenheid stevig genoeg om de meeste lichtgewicht en middelzware componenten te huisvesten.

Stap 3: Ontwerp - Display-arm

Ontwerp - Displayarm
Ontwerp - Displayarm
Ontwerp - Displayarm
Ontwerp - Displayarm
Ontwerp - Displayarm
Ontwerp - Displayarm

Omdat het opslagsysteem een HDMI-scherm nodig heeft voor de gebruikersinterface, heb ik besloten een verstelbare arm te ontwerpen om het scherm en de elektronica op te monteren.

Alle onderdelen van de display-arm zijn ontworpen om 3D-geprint te worden en te worden geassembleerd met M8-bouten en -moeren. De display-arm is ontworpen om het HDMI-display, de Raspberry Pi en alle bedrading vast te houden.

Delen van de display-arm waren gebaseerd op dit ontwerp van Thingiverse.

Stap 4: 3D-printen en schilderen

3D-printen en schilderen
3D-printen en schilderen
3D-printen en schilderen
3D-printen en schilderen
3D-printen en schilderen
3D-printen en schilderen

Nadat alle onderdelen in 3D waren gemodelleerd, was het tijd om de honderden laden te gaan printen.

Ik heb mijn Prusa MK2S gebruikt voor alle 3D-geprinte onderdelen van dit project. Ik gebruikte PLA-filament met een laaghoogte van 0,2 mm en een vulling van 0%.

Alleen op de middelgrote ladehouder en de grote ladehouder was ondersteunend materiaal nodig. Ik heb bepaald dat de perfecte tolerantie tussen lades en ladehouders 0,2 mm is. Uw kilometerstand kan erg afhankelijk zijn van uw 3D-printer.

Nadat ik alle afzonderlijke onderdelen had afgedrukt, gebruikte ik superlijm om alle ladehouders in het 35×12-raster samen te voegen.

Ik had niet genoeg filament van dezelfde kleur, dus besloot ik een laag zwarte verf toe te voegen om het opbergsysteem een egaal uiterlijk te geven.

Ter referentie, mijn hele 35×12 opslagsysteem met 310 laden had ongeveer 5 kg filament nodig om te printen.

Stap 5: De elektronica

De elektronica
De elektronica
De elektronica
De elektronica

Wat de elektronica betreft, was de keuze van de hardware vrij eenvoudig.

Ik koos een Raspberry Pi 4 Model B aangesloten op een HDMI-scherm als gebruikersinterface. Je zou ook een headless Raspberry Pi kunnen gebruiken en via SSH met het systeem kunnen communiceren. Oudere versies van de Raspberry Pi werken mogelijk ook als ze Python 3 kunnen uitvoeren. De Neopixel-bibliotheek die in dit project wordt gebruikt, wordt niet ondersteund op Python 2.

Voor de LED's heb ik niet voor niets gekozen voor de 30LED/m, WS2812b, LED-strip. Andere LED-strips zullen ook werken als ze worden ondersteund door de Neopixel-bibliotheek.

Wat de bedrading betreft, worden drie USB-C-kabels gebruikt om de Raspberry Pi, het display en de LED's van stroom te voorzien. Een HDMI-kabel wordt gebruikt om het display en de Raspberry Pi met elkaar te verbinden.

De Arduino Uno en USB-kabel op de foto zijn optioneel. U kunt via serieel gegevens naar de Arduino sturen en deze als LED-controller gebruiken. Voor de eenvoud heb ik ervoor gekozen om de Arduino niet in dit project te gebruiken.

Een goede ontwerppraktijk zou zijn om een niveauverschuiver op de datalijn voor de LED's op te nemen, aangezien de Raspberry Pi GPIO slechts 3V3 is. Ik heb tot nu toe geen problemen gehad, maar als ik dat doe, zal ik iets als de "74AHCT125 Quad Level-Shifter" implementeren.

Een handleiding over het gebruik van Neopixel met Python en de Raspberry Pi bestaat hier.

Stap 6: Het softwareoverzicht

Het softwareoverzicht
Het softwareoverzicht

Terwijl alle onderdelen 3D-geprint werden, werkte ik aan de software die het hele systeem aanstuurt.

De software is geschreven in Python 3 en is bedoeld om als consoletoepassing op de Raspberry Pi te draaien. De functionaliteit van de software kan worden onderverdeeld in de volgende onderdelen:

  • Gebruikersinvoer lezen
  • Lezen van bestand / schrijven naar bestand
  • Voer de resultaten uit naar de console en de LED's

Ik zal hieronder een vereenvoudigde beschrijving van elke stap geven.

Gebruikersinvoer lezen

Wanneer een gebruikersinvoer wordt ontvangen, wordt een reeks Regex-expressies gebruikt om het gebruikersverzoek te bepalen. De gebruiker heeft de keuze uit de volgende functies:

Functie Bel voorbeeld
Lijst alle componenten: alle
Zoek een component op ID: ID22
Zoek een component op parameters: R, 22, SMD
Wijzig de hoeveelheid van een component: ID35+10
Voeg een nieuw onderdeel toe: PI89:PI90, 100st, C, 470u, SMD:toevoegen
Een bestaand onderdeel verwijderen: ID10:rm
Hulp bij syntaxis: helpen

Lezen van bestand / schrijven naar bestand

De componentgegevens worden opgeslagen in een.txt-bestand. Afhankelijk van de invoer zoekt de software naar gegevens in het bestand of schrijft nieuwe gegevens naar het bestand. Bij het verwijderen, toevoegen of wijzigen van componenten worden nieuwe gegevens geschreven.

Voer de resultaten uit

De software voert de resultaten van de operatie uit naar de console. Als er een zoekopdracht is uitgevoerd, worden tegelijkertijd de LED-gegevens gegenereerd en weergegeven.

Stap 7: De gegevensstructuur

De gegevensstructuur
De gegevensstructuur

De componentgegevens in het.txt-bestand volgen een specifieke structuur. Elke rij van het bestand bevat informatie over een enkele component die in het systeem is opgeslagen. Elk onderdeel is samengesteld uit verschillende parameters die worden gescheiden door een komma.

Sommige parameters zijn verplicht en worden door de software gebruikt om de locatie van de componenten en de LED-kleuren bij te houden. Ze moeten daarom een bepaald formaat volgen.

De verplichte parameters en hun formaten zijn:

  • ID (in het formaat IDX waarbij X een of meer cijfers is)

    De ID fungeert als een unieke identificatie voor elk onderdeel. Het wordt gebruikt bij het zoeken en verwijderen van componenten

  • PI (in het formaat PIX:X waarbij X een of meer cijfers is)

    De PI beschrijft welke leds bij welk onderdeel horen

  • Hoeveelheid (in het formaat Xpcs waarbij X een of meer cijfers is)

    De hoeveelheid wordt gebruikt om de LED-kleur voor elk onderdeel te bepalen

Andere parameters zijn gewoon bedoeld voor de gebruiker. De software hoeft daar geen interactie mee te hebben en hun formaat is daarom optioneel.

Stap 8: Montage - Elektronica

Montage - Elektronica
Montage - Elektronica
Montage - Elektronica
Montage - Elektronica

Het geheel kan in twee delen worden verdeeld, het eerste deel is de display-arm en de elektronica.

De 3D-geprinte onderdelen heb ik met de benodigde bouten en moeren in elkaar gezet. Vervolgens heb ik de 3D-geprinte arm met 4 mm schroeven aan het HDMI-scherm bevestigd. De Raspberry Pi werd op een handige plaats bevestigd en de bedrading werd aangesloten volgens het schema in "Stap 5: De elektronica".

Er is een poging gedaan om de bedrading te bekabelen door deze om de beeldschermbeugel te wikkelen. Ik heb kabelbinders gebruikt om de stroom- en datakabels langs de displayarm te leiden voor aansluiting op de rest van het opslagsysteem.

Stap 9: Montage - Opbergsysteem

Montage - Opbergsysteem
Montage - Opbergsysteem
Montage - Opbergsysteem
Montage - Opbergsysteem
Montage - Opbergsysteem
Montage - Opbergsysteem
Montage - Opbergsysteem
Montage - Opbergsysteem

Het tweede deel van de montage is het opbergsysteem zelf.

Met behulp van de meegeleverde schroefgaten heb ik alle afzonderlijke lade-assemblages op een stuk geverfd triplex bevestigd dat als een bord fungeert.

Daarna heb ik de LED-strips op elke rij bevestigd en alle rijen met elkaar verbonden tot één enkele LED-strip. De configuratie van elke rij en richting van de LED-strip maakt niet uit, aangezien deze opnieuw kan worden geconfigureerd in software.

Om de montage af te ronden, heb ik de display-arm met de elektronica aan de zijkant van het triplex-bord bevestigd.

Ik heb alle componenten in hun nieuwe huis gesorteerd en toegevoegd aan de.txt-bestandsdatabase.

Stap 10: Conclusie

conclusie
conclusie
conclusie
conclusie
conclusie
conclusie

Het project is nu klaar en ik ben erg blij met hoe het is geworden!

Ik heb pas een paar dagen tijd gehad om mijn nieuwe opslagsysteem te gebruiken en het werkt uitstekend. Ik ben opgewonden om te zien hoe dit systeem mijn workflow in de toekomst zal veranderen, aangezien dat het doel van dit hele project was.

Ik hoop dat je genoten hebt van dit project en als je gedachten, opmerkingen of vragen hebt, laat ze dan hieronder achter.

Aanbevolen: