Inhoudsopgave:

Schroefsorteermachine - Ajarnpa
Schroefsorteermachine - Ajarnpa

Video: Schroefsorteermachine - Ajarnpa

Video: Schroefsorteermachine - Ajarnpa
Video: Koelschroef met Koelruimte voor Verschillende Producten – Marcelissen 2024, Juli-
Anonim
Image
Image
Maak de lichtbak
Maak de lichtbak

Op een dag in het lab (FabLab Moskou) zag ik mijn collega bezig met het sorteren van een volle doos schroeven, moeren, ringen en andere hardware. Ik bleef naast hem staan, keek even en zei: "Het zou een perfecte klus zijn voor een machine." Na een snelle blik op google zag ik dat er al verschillende ingenieuze mechanische systemen bestonden, maar ze konden ons probleem niet oplossen omdat in onze doos een grote verscheidenheid aan onderdelen zit. Iets puur mechanisch doen zou behoorlijk ingewikkeld zijn. De andere goede reden om naar een meer "robotachtig" systeem te gaan, was omdat dit alle technische gebieden zou vereisen waar ik van hou: machinevisie, robotarmen en elektromechanische actuatoren!

Deze machine pakt de schroeven en plaatst ze in verschillende dozen. Het bestaat uit een robotarm die een elektromagneet hanteert, een doorschijnende werktafel boven lampen en een camera bovenop. Na wat schroeven en moeren op de werktafel te hebben uitgespreid, gaan de lichten aan en wordt er een foto gemaakt. Een algoritme detecteert de onderdeelvormen en geeft hun posities terug. Tenslotte plaatst de arm met de elektromagneet de onderdelen één voor één in de gewenste dozen.

Dit project is nog in ontwikkeling maar nu behaal ik behoorlijke resultaten die ik met jullie wil delen.

Stap 1: Gereedschap en materiaal

Gereedschap

  • Lasersnijder
  • Haakse slijper
  • Metaalzaag
  • Schroevendraaier
  • Klemmen (hoe meer hoe beter)
  • Heet lijmpistool

Materiaal

  • Multiplex 3mm (1 m2)
  • Multiplex 6mm (300 x 200 mm)
  • Wit doorschijnend kunststof 4mm (500 x 250 mm)
  • Computer (ik probeer over te stappen naar Raspberry Pi)
  • Webcam (Logitech HD T20p, iedereen zou moeten werken)
  • Arduino met 4 PWM-uitgang / analogWrite (drie servo's en de elektromagneetspoel) (ik gebruik de ProTrinket 5V)
  • Prototyping bord
  • Elektronische draad (2m)
  • Schakeltransistor (elke transistor die een spoel van 2 W kan aansturen) (ik heb S8050)
  • Diode (Schottky is beter)
  • 2 weerstanden (100Ω, 330Ω)
  • Voeding 5V, 2A
  • Servo micro (breedte 13 lengte 29 mm)
  • 2 servo's standaard (breedte 20 lengte 38 mm)
  • Houtlijm
  • 4 metalen hoek met schroeven (optioneel)
  • Houten staaf (30 x 20 x 2400)
  • Hete lijm
  • Geëmailleerd koperdraad (0,2, 0,3 mm diameter, 5m)(oude transformator?)
  • Zacht ijzer (16 x 25 x4 mm)
  • 3 gloeilampen met fitting
  • Aansluitstrip (230V, 6 elementen)
  • Elektrische kabel met stopcontact (230V) (2 m)
  • Lager 625ZZ (binnendiameter 5 mm, buitendiameter 16 mm, hoogte 5 mm)
  • Lager 608ZZ (binnendiameter 8 mm, buitendiameter 22 mm, hoogte 7 mm)
  • Lager rb-lyn-317 (binnendiameter 3 mm, buitendiameter 8 mm, hoogte 4 mm)
  • Distributieriem GT2 (2 mm steek, 6 mm breed, 650 mm)
  • Schroef M5 x 35
  • Schroef M8 x 40
  • 8 schroeven M3 x 15
  • 4 schroeven M4 x 60
  • 6 houtschroeven 2 x 8 mm
  • Schroef M3 x 10
  • Relaiskaartmodule (direct aanstuurbaar door controller)

Stap 2: Maak de lichtbak

Maak de lichtbak
Maak de lichtbak
Maak de lichtbak
Maak de lichtbak
Maak de lichtbak
Maak de lichtbak

De lichtbak heeft vier hoofdonderdelen en enkele beugels. Download deze onderdelen en lijm ze aan elkaar behalve het doorschijnende plastic. Ik ben begonnen met de houten halve schijf en de gebogen wand. Tijdens het drogen moet u de wand strak om de schijf houden. Ik gebruikte klemmen om de halve schijf en de gebogen muurbasis vast te zetten. Dan houdt wat tape de muur rond de halve schijf vast. Ten tweede heb ik een rand gelijmd om de doorschijnende werktafel te weerstaan. Ten slotte wordt de vlakke wand toegevoegd met houten (binnen) en metalen (buiten) rechterranden.

Zodra de doos is voltooid, hoeft u alleen maar de gloeilampen toe te voegen en de draad en het stopcontact met de connectorstrip aan te sluiten. Knip de 230V-draad door waar het u het beste uitkomt en plaats de relaismodule. Om veiligheidsredenen heb ik het relais (230V!) in een houten kistje gestopt.

Stap 3: Maak de robotarm

Maak de robotarm
Maak de robotarm
Maak de robotarm
Maak de robotarm
Maak de robotarm
Maak de robotarm

Download de onderdelen en knip ze uit. Om de riem op de servomotor vast te zetten heb ik stukjes paperclip gebruikt. Ik spijkerde de tweedelige riemen op de servomotor en voegde wat lijm toe om er zeker van te zijn dat er niets beweegt.

Voor de lineaire verticale geleiding moet de plunjer worden geschuurd om verstopping te voorkomen. Het moet soepel glijden. Eenmaal gemonteerd kan de hoogte worden aangepast door de geleiding op de gewenste lengte af te knippen. Bewaar het echter zo lang mogelijk om over-center lock te voorkomen. De plunjer wordt eenvoudig op de armkast gelijmd.

De lagers zijn ingesloten in de katrollen. Een katrol is gemaakt van twee lagen multiplex. Deze twee lagen raken elkaar niet noodzakelijkerwijs, dus lijm ze in plaats van ze aan elkaar te lijmen op hun respectievelijke armplaat. De boven- en onderarmplaten worden vastgehouden door vier M3 x 15 schroeven en moeren. De eerste as (grote) is gewoon de M8 x 40-schroef en de tweede (kleine) de M5 x 35-schroef. Gebruik moeren als afstandhouders en borgringen voor de armdelen.

Stap 4: Maak de elektromagneet

Maak de elektromagneet
Maak de elektromagneet
Maak de elektromagneet
Maak de elektromagneet
Maak de elektromagneet
Maak de elektromagneet

Een elektromagneet is gewoon een zachte ijzeren kern met daaromheen geëmailleerd koperdraad. De weekijzeren kern geleidt het magneetveld op de gewenste plaats. De stroom in het geëmailleerde koperdraad creëert dit magnetische veld (het is proportioneel). Ook hoe meer bochten je maakt, hoe meer magnetisch veld je hebt. Ik ontwierp een U-vormig strijkijzer om het magnetische veld nabij de vastgegrepen schroeven te concentreren en de grijpkracht te vergroten.

Snijd een U-vorm in een stuk zacht ijzer (hoogte: 25 mm, breedte: 15 mm, doorsnede ijzer: 5 x 4 mm). Het is erg belangrijk om de scherpe randen te verwijderen voordat u de draad om het U-vormige strijkijzer wikkelt. Zorg ervoor dat u dezelfde wikkelrichting aanhoudt (vooral wanneer u naar de andere kant springt, moet u de draairichting vanuit uw oogpunt veranderen, maar u houdt dezelfde richting vanuit het U-vormige ijzeren oogpunt)(https://en.wikipedia.org/wiki/Right-hand_rule) Voordat u de spoel naar het circuit vertakt, controleert u de spoelweerstand met een multimeter en berekent u de stroom met de wet van Ohm (U=RI). Ik heb meer dan 200 windingen op mijn spoel. Ik raad je aan om op te winden tot je nog maar 2 mm ruimte over hebt in de U-vorm.

Er is een houten houder gemaakt en het U-vormige strijkijzer is vastgezet met hete lijm. Twee sleuven maken het mogelijk om de draad aan beide uiteinden vast te zetten. Ten slotte worden er twee pinnen op de houten houder genageld. Ze vormen de verbinding tussen de geëmailleerde koperdraad en de elektronische draad. Om schade aan de spoel te voorkomen, heb ik rondom de spoel een laag hete lijm aangebracht. Op de laatste foto zie je een houten deel dat het U-vormige strijkijzer sluit. Zijn functie is om te voorkomen dat schroeven vast komen te zitten in het U-vormige strijkijzer.

Het geëmailleerde koperdraad is afkomstig van een kapotte transformator. Als u dit doet, controleer dan of de draad niet gebroken is of geen kortsluiting heeft in het gebruikte gedeelte. Verwijder de tape op de ferromagnetische kern. Maak met een mes één voor één alle ijzeren plakjes los. Verwijder vervolgens de tape op de spoel en wikkel tenslotte de geëmailleerde draadkoker af. De secundaire wikkeling (de spoel met grote diameter) is gebruikt (transformator ingang 230V, uitgang 5V-1A).

Stap 5: Maak het circuit

Maak het circuit
Maak het circuit
Maak het circuit
Maak het circuit

Op een prototypebord heb ik het bovenstaande schema gebouwd. Voor het schakelen van de elektromagneetspoel is een bipolaire transistor (S8050) gebruikt. Controleer of uw transistor de in de vorige stap berekende stroom aankan. Een MOSFET is waarschijnlijk meer geschikt in deze situatie, maar ik nam wat ik bij de hand had (en ik wilde een lage weerstand). Pas de twee weerstanden aan op je transistor.

In het bovenstaande schema zijn VCC en GND icoon verbonden met de + en - van mijn voeding. De servomotoren hebben drie draden: Signaal, VCC en GND. Alleen de signaaldraad is aangesloten op de controller, de andere zijn aangesloten op de voeding. De controller wordt gevoed door de programmeerkabel.

Stap 6: De code

Last but not least: de code. Je vindt het hier:

Er is één programma voor de controller (type arduino) en een andere die op de computer draait (hopelijk binnenkort op framboos). De code op de controller is verantwoordelijk voor de trajectplanning en die op de computer zorgt voor de beeldverwerking en stuurt de resulterende positie naar de controller. De beeldverwerking is gebaseerd op OpenCV.

Het computerprogramma

Het programma maakt een beeld met de webcam en de lichten, detecteert het doorschijnende middelpunt en de radius van de werktafel en corrigeert de uiteindelijke beeldrotatie. Uit deze waarden berekent het programma de robotpositie (we kennen de robotpositie volgens het plaatje). Het programma gebruikt de blob-detectorfunctie van OpenCV om de schroeven en bouten te detecteren. De verschillende soorten blobs worden gefilterd met de beschikbare parameters (oppervlakte, kleur, circulariteit, convexiteit, traagheid) om de gewenste component te selecteren. Het resultaat van de blob detector is de positie (in pixels) van de geselecteerde blobs. Vervolgens zet een functie deze pixelposities om in millimeterposities in het armcoördinatensysteem (orthogonaal). Een andere functie berekent de vereiste positie van elke armverbinding om de elektromagneet op de gewenste positie te krijgen. Het resultaat bestaat uit drie hoeken die uiteindelijk naar de controller worden gestuurd.

Het programma van de controller

Dit programma ontvangt de verbindingshoeken en beweegt de armdelen om deze hoeken te bereiken. Het berekent eerst de topsnelheid van elke verbinding om de beweging in hetzelfde tijdsinterval uit te voeren. Vervolgens controleert het of deze topsnelheden ooit worden bereikt, in dit geval zal de beweging drie fasen volgen: versnelling, constante snelheid en vertraging. Als de topsnelheid niet wordt bereikt, volgt de verplaatsing slechts twee fasen: versnelling en vertraging. Ook worden de momenten berekend waarop het van de ene fase naar de andere moet. Ten slotte wordt de verplaatsing uitgevoerd: met regelmatige tussenpozen worden de nieuwe werkelijke hoeken berekend en verzonden. Als het tijd is om naar de nestfase over te gaan, gaat de uitvoering door naar de volgende fase.

Stap 7: de laatste hand

De laatste hand
De laatste hand

De lijst

Er is een frame toegevoegd om de camera vast te houden. Ik heb ervoor gekozen om het van hout te maken omdat het goedkoop is, makkelijk om mee te werken, makkelijk te vinden, milieuvriendelijk, prettig om te vormen en het blijft in de stijl waarmee ik begon. Maak een beeldtest met de camera om te bepalen welke hoogte nodig is. Zorg er ook voor dat je het stevig en vast maakt, want ik heb gemerkt dat de resulterende positie erg gevoelig is voor camerabewegingen (tenminste voordat ik de functie voor automatische detectie van de werktafel toevoegde). De camera moet zich in het midden van de werktafel bevinden en, in mijn geval, 520 mm van het doorschijnende witte oppervlak.

De dozen

Zoals je op de foto kunt zien, staan de verplaatsbare opbergboxen op het vlakke gedeelte van de werktafel. Je kunt zoveel dozen maken als nodig is, maar met mijn huidige opstelling is de ruimte vrij beperkt. Toch heb ik ideeën om dit punt te verbeteren (zie toekomstige verbeteringen).

Toekomstige verbeteringen

  • Momenteel wordt de distributieriem gesloten met een houten deel, maar deze oplossing beperkt het bereik van de arm. Ik moet meer ruimte toevoegen tussen de grote servo en de armas of een kleiner sluitsysteem maken.
  • De dozen bevinden zich langs de platte werktafelrand, als ik deze langs de halve cirkelrand zou plaatsen, zou ik veel meer ruimte hebben om dozen toe te voegen en veel componenttypen te sorteren.
  • Nu is het blob-detectiefilter voldoende om de onderdelen te sorteren, maar omdat ik het aantal dozen wil vergroten, heb ik de verhoging van de selectiviteit nodig. Om deze reden zal ik verschillende herkenningsmethoden proberen.
  • Nu hebben de servomotoren die ik gebruik niet genoeg bereik om de hele halve schijf werktafel te bereiken. Ik moet de servo's veranderen of de reductiefactor tussen de verschillende katrollen wijzigen.
  • Sommige problemen komen vrij vaak voor, dus het verbeteren van de betrouwbaarheid is de prioriteit. Daarvoor moet ik het soort problemen classificeren en me concentreren op de meest waarschijnlijke. Dit is al wat ik deed met het kleine stukje hout dat het U-vormige strijkijzer sluit en het automatische detectiecentrum-algoritme, maar nu worden de problemen ingewikkelder om op te lossen.
  • Maak een printje voor de controller en het elektronische circuit.
  • Migreer de code naar Raspberry pi om een stand-alone station te hebben
Organisatie wedstrijd
Organisatie wedstrijd
Organisatie wedstrijd
Organisatie wedstrijd

Tweede prijs in de organisatiewedstrijd