Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Stringent, de $15 Wall Plotter

Componenten en benodigdheden

Arduino UNO
× 1
28BYJ-48 stappenmotor met driver
× 2
TSOP 4838 IR-ontvanger
× 1
SPI-lezer Micro SD-geheugenkaartlezer
× 1
SG90 Micro-servomotor
× 1

Benodigde gereedschappen en machines

3D-printer (algemeen)
Soldeerbout (algemeen)

Apps en online services

Arduino IDE

Over dit project

Achtergrond

Ik weet niet meer precies wanneer het begon, maar ik denk rond 1999 of zo. Ik en een vriend die van alles hield met robotica en elektronica, bespraken het bouwen van een robot om op whiteboards te tekenen. Natuurlijk hadden we toen nooit tijd om iets serieus te doen, het ecosysteem voor hobbyistische microcontrollers was niet wat het nu is.

In 2002 liet mijn vriend me het geweldige werk zien van Jürg Lehni en Uli Franke - Hektor. Ik was erg blij om te zien dat iets vergelijkbaars met wat we hadden gedroomd om te bouwen, daadwerkelijk werd gebouwd en gedeeld met de wereld! Ik had vrede.

Enige tijd later herinner ik me dat ik de website van het Hektor-project aan iemand liet zien die presenteerde hoe fantastisch ik het vond. Deze keer begon ik echter meer naar de details te kijken en realiseerde ik me dat er één eigenschap ontbrak die ik aanvankelijk had voorgesteld als een muurplotter. Ik wilde dat het op zichzelf staand zou zijn, alles in één eenheid met alleen draden die het met de muur verbinden. Als ik het me goed herinner, keek ik op dit punt naar de gewichten van de stappenmotor, en realiseerde ik me dat mijn idee niet zou vliegen.

De tijd verstreek en er gebeurden dingen in de ruimte van hobbyistische robotica. Het was 2014 en ik had Arduino's en RC-servo's gebruikt voor verschillende camerabesturingsprojecten, ik had toegang tot 3D-printen en eigenlijk wat vrije tijd (!?!). Nadat ik over de spotgoedkope 28BYJ-48 stappenmotor struikelde, wist ik precies wat ik ging bouwen:

De goedkoopst mogelijke minimalistische muurplotter.

Eerste poging

Na een eeuwigheid, een week of vijf, te hebben gewacht op onderdelen die uit China waren besteld, begon ik aan de bouw van de plotter. Ik heb geprobeerd een zo compact mogelijk skelet te maken voor een Arduino Uno, steppers, servo en een batterij. Ik kan me niet herinneren hoeveel domme, ik bedoel minder slimme, ontwerpen ik in OpenSCAD heb gemaakt voordat het kwartje viel. Je moet over de snaren heen!

Het hebben van de kruisgeometrie heeft een enorm voordeel bij het behouden van de juiste positie op de muur. Het nadeel is dat je minder stabiliteit krijgt van rotatie om de verticale as. Dit werd verholpen door enkele kabelbinders aan de hoeken van de plotter toe te voegen, zo aangepast dat ze de rotatie voorkomen.

De eerste plotter hardware kwam eruit te zien als de onderstaande afbeelding. In mijn zoektocht naar de goedkoopst mogelijke onderdelen heb ik ervoor gekozen om naaigaren te gebruiken voor navigatie en zwaartekrachtopheffing. De draden kruisten elkaar aan de bovenkant van het 3D-geprinte chassis door kleine gaatjes in de print. Zoals (bijna) te zien is, is het een uitdagende geometrie om de draden schoon te krijgen van de pen en draden (bekabeling van Arduino naar rechter stepper driver ontbreekt op de foto, dus het ziet er minder slecht uit dan het was). De pen wordt van het tekenoppervlak getild door een RC-servo die de hele plotter van de muur af duwt.

Deze eerste plotter had een hard-coded ontwerp geschreven in zijn programma op de Arduino. Het opzetten van de plotter werd gedaan door aan elke kant een meter draad te laten uitrollen en deze op een meter afstand vast te maken. Door deze opstelling kende de plotter het coördinatensysteem bij het opstarten en kon hij de paden in zijn geheugen tekenen. Het werkte, maar het was een puinhoop om te gebruiken. De Arduino opnieuw moeten flashen bij het wijzigen van het ontwerp was niet leuk. Het was ook frustrerend om te worden beperkt tot de opstelling van een verschil van één meter.

Het was echter een goed platform om de probleemruimte beter te begrijpen. Een paar snelle lessen:

  • De stappenmotoren zijn niet zo sterk - De spoelen waren te groot .
  • Tip van pen offset van het kruisen van snaren - Wicked Wobbliness

Het goede aan deze problemen was dat ze me dwongen om wat moeite te doen om redelijk te accelereren en te remmen...

Evolutie

Plotter nummer twee (de witte op de omslagafbeelding) heeft een paar verbeteringen:

  • Kleinere spoelen.
  • Klosjes bewogen boven de pen voor een betere geleiding van de draad en minder slingerbeweging.
  • Elektronica toegankelijker.
  • SD-kaart voor het opslaan van wat u wilt plotten.
  • Nieuw instellingsproces dat variabele afstanden tussen ankerpunten mogelijk maakt.
  • IR-ontvanger om alles vanaf een afstandsbediening te kunnen bedienen.

Het toevoegen van een SD-kaartlezer en IR-ontvanger was een stuk eenvoudiger dan ik eerst had verwacht. Het was een van die "waarom heb ik dit niet vanaf het begin gedaan"-momenten. Het nieuwe installatieproces werkte heel goed en gaf veel meer flexibiliteit voor het tekenen van zowel groot als klein. Het grootste perceel tot nu toe was ongeveer 2,5 meter breed.

De instelling wordt gedaan door de plotter te navigeren met de afstandsbediening. Eerste markeerpositie A en ga dan naar positie B en dat te markeren. Ik heb 20 cm-markeringen op het linker- en rechternaaigaren aangebracht om handmatige metingen te voorkomen. De afstand m wordt gegeven door de stappen op de linker stepper te tellen tijdens het verplaatsen van A naar B . Zodra de plotter d . weet en dat de huidige locatie zich op B . bevindt je kunt bewegen en plotten waar je maar wilt in de ruimte tussen en onder de ankerpunten.

Plotter nummer drie (de oranje in de video hieronder) lijkt erg op zijn voorganger, slechts een paar veranderingen:

  • Alle elektronica gebouwd als schild voor de Arduino.
  • Batterijniveau-waakhond, "pauze - batterij vervangen - hervatten".

Dit waren allemaal goede bedoelingen, maar. Door de IC's van de stepperdriver direct op het schild te plaatsen, en de drivers die met de steppers werden meegeleverd over te slaan, waren er geen knipperende leds meer. Het is triest om te zien. Super saai. Ook de ingebouwde led van de Arduino is verborgen achter het schild en verbergt de handige knipperingen die je krijgt wanneer de IR-ontvanger ontvangt, waardoor je niet zeker weet of je op die kalibratieknop hebt gedrukt of niet. Het meten van het batterijniveau leek een goed idee, maar in werkelijkheid nam ik toch altijd mijn toevlucht tot het doen van langlopende plots met bekabelde stroom.

Plotter nummer vier (De fantastische!) werd gebouwd als een verjaardagscadeau voor mijn broer. Het is verreweg de mooiste die is gebouwd met elektronica in schildstijl, maar waarbij de knipperende stuurprogramma's in al hun glorie zichtbaar blijven. Houd er rekening mee dat kabels onnodig lang worden alleen voor het uiterlijk!

Plotter nummer vijf (MacGyver-editie) is eigenlijk gebouwd als een proof of concept voor deze projectbeschrijving. Ik wilde laten zien dat je zo'n plotter kunt bouwen zonder ingewikkeld gereedschap. Ik ging in mijn garage zitten en keek om me heen waar ik hem van kon bouwen. Tie-wire (zachte metalen draad gebruikt voor het verbinden van wapening) was mijn eerste voor de hand liggende keuze. Toen ik ernaar zocht, vond ik een rol duct-strap en dacht dat dat me tijd zou besparen en meer stabiliteit zou geven. Kabelbinders en gaffeltape stonden ook op mijn lijstje, maar waren niet nodig. Het enige waar ik niet echt achter kwam, was hoe ik met niet al te veel werk goede spoelen kon maken. Ik ging terug naar het huis voor koffie en daar was het, de dop voor een melkreservoir! Het kostte eerlijk gezegd minder tijd om het frame voor plotter vijf te bouwen dan de tijd die nodig was om het originele ontwerp in 3D te printen. En het werkt net zo goed (bijna tenminste) als de andere die ik heb gebouwd.

Plotter nummer zes

Wacht wat? Op de een of andere manier heb ik er nog een gebouwd. Kon het niet helpen. Een paar dingen die me stoorden, moesten worden aangepakt. Ook verbeteringen dankzij enkele opmerkingen hier.

  • Het 3D-afdrukformaat van de plotter was gewoon te groot en te traag.
  • De pen verplaatsen in plaats van de hele plotter leek op zijn minst het proberen waard.
  • Het verplaatsen van servo en IR-ontvanger naar de "analoge" pinnen zou seriële foutopsporing mogelijk maken! (Bedankt jrcTexas dat je erop hebt gewezen dat ik dat wel kon!)

Dus, hier is het resultaat:

Dus, hoe goed werkt dit nieuwe ding? Goed en slecht. De veranderingen voelen over het algemeen goed aan, maar er is één probleem. Omdat de pen niet aan het frame is bevestigd, wiebelt hij een beetje tijdens het plotten. Dit maakt de nauwkeurigheid slechter dan bij de vorige generatie. Het enorme voordeel is het wissen van digitale IO-pinnen 0-1, zodat ze kunnen worden gebruikt voor foutopsporing. Dit maakt het leven zoveel makkelijker!

Ik begon ook wat stresstesten te doen op de steppers om erachter te komen hoe ik geen stappen kon missen:

Wat uit de stresstesten bleek, was dat ik een beetje moest vertragen om voldoende koppel te hebben. Ik heb ook de werkelijke trekkracht op de snaren berekend, afhankelijk van waar de plotter zich op de muur bevindt:

Ik zou de stresstests kunnen opvolgen om erachter te komen hoe verschillende stapsequencing en voltage ook spelen. Op een dag.

De plotter gebruiken

Ik maak een video die laat zien hoe de setup en plotten in real life en realtime werkt.

Zoals te zien is in de video, is de installatie vrij eenvoudig en kost het weinig tijd. De typische uitdaging bij het opzetten is om goede ankerpunten te vinden. Voor whiteboards heb ik meestal kleine zuignappen gebruikt waaraan ik een lus van naaigaren of iets dergelijks heb gelijmd om de plotter vervolgens op te hangen met een paperclip. Een belangrijk aspect van het ankerpunt is om de draad zo dicht mogelijk bij de muur te krijgen, om een ​​betere druk van de pen op de muur te krijgen.

Een ander voorbehoud is het plotten hoog op brede percelen. Wanneer er te meer koppel nodig is om aan de draad te trekken, beginnen de steppers stappen te missen, waardoor de plotter zijn exacte locatie kwijtraakt, omdat er geen encoders zijn om te helpen. Dus algemeen advies is:hang hoog, print laag.

Plotterhardware

Het bouwen van de plotter is vrij eenvoudig en lijkt veel op de meeste andere Arduino-projecten. Je hebt een Arduino Uno, een aantal componenten die je wilt gebruiken en een heleboel kabels om alles aan te sluiten.

Zoals te zien is in de schema's, gebruikt u vrijwel alle digitale pinnen en mogelijk wat analoog als u bijv. batterijniveaus wilt controleren. Een waarschuwing hierbij is dat je uiteindelijk pin 0-1 gebruikt die ook dienst doet als TX/RX. Om frituren te vermijden je moet alles wat je hebt aangesloten loskoppelen daar als je de Arduino programmeert! Dit is de reden dat ik mijn recentere plotters met alle elektronica op een schild heb gebouwd dat ik gewoon kon losmaken tijdens het programmeren.

De RC-servo kan vrijwel elke servo van elke dimensie zijn. Je moet gewoon creatief zijn en het zo monteren dat het de plotter van de muur kan duwen (of niet).

De stappenmotoren en stuurprogramma's kunnen mogelijk worden overgeschakeld naar een ander soort, maar de kleine 28BYJ-48-motoren zijn zo handig. Ze zijn echter niet zo krachtig en ik zou graag een plotter bouwen die op een dag veel sneller is. De motoren hebben een classificatie van 5V, maar ik heb dit met plezier genegeerd en ze zonder probleem van alles tussen 5-9V voorzien. Ze worden wel heet, maar ik heb er nog geen gebakken.

De micro-sd-kaartmodule is eenvoudig aan te sluiten op de Arduino, hetzij via de SPI-interface-pinnen of digitale pinnen 10-13.

IR-ontvanger TSOP 4838 speelt ook mooi direct aangesloten op de Arduino.

Mijn derde en vierde plotter hadden een batterijniveau-waakhond door een weerstandsspanningsdeler toegevoegd aan een analoge ingang. Ik dacht ook dat ik temperatuurbewaking van de steppers op een vergelijkbare manier zou toevoegen. Mijn advies, sla het gewoon over.

Ik zou het ten zeerste aanbevelen om één ding tegelijk te bouwen en te testen. Niet alles in elkaar zetten, je graphics op de SD zetten en hopen meteen te plotten. Ik raad je het volgende aan:

  • Begin met het testen van de IR-ontvanger. Gebruik het IRRecvDump-voorbeeld dat bij de IRRemote-bibliotheek wordt geleverd. Je hebt dit toch nodig om de codes voor je afstandsbedieningen op te slaan.
  • Test je servo. Gebruik bijvoorbeeld het Sweep-voorbeeld uit de Servo-bibliotheek.
  • Test je SD-kaart. Speel wat met de voorbeelden voor de SD-bibliotheek.
  • Test de besturing van de steppers. Speel wat met de samples voor de Stepper-bibliotheek.
  • Als je je op je gemak voelt met de bovenstaande onderdelen, flash dan het plotterprogramma op de Arduino en sluit vervolgens alle componenten aan. (niet in elkaar zetten en nog iets moois maken)
  • Schakel de Arduino in en kijk wat er gebeurt. Als alles werkt, moet de servo direct na het opstarten een beetje zwaaien.
  • Probeer de steppers met de afstandsbediening te bedienen. zorg ervoor dat je erachter komt welke stepper links en welke rechts is. Zorg ervoor dat ze zo zijn aangesloten dat de "REEL_IN"-knop daadwerkelijk een touwtje intrekt en niet het tegenovergestelde. Ik geef je 50% kans dat je de volgorde van de pinnen in software of hardware moet omdraaien. (niet de moeite waard om je er al te veel druk over te maken, het is zo gemakkelijk om de connectoren gewoon om te draaien. Vertrouw, maar verifieer!
  • Als je er zeker van bent dat al het bovenstaande werkt, ben je klaar om alles in een plotterachtige vorm in elkaar te zetten en het aan een muur te hangen!

Ik zal hier geen super gedetailleerde instructies geven over de montage van onderdelen. Het is beter dat u uw hardware verkent en oplossingen vindt die voor u werken. Laat je inspireren door de "MacGyver" plotter hierboven, houd het simpel. Je kunt later altijd fancy en perfect gaan. Hieronder staat een zeer onsamenhangende video waarin ik praat over sommige dingen hardware. U moet ook vertrouwd raken met de software en een bestand maken om te plotten, zie verderop.

Plottersoftware

Alle software is hier beschikbaar op GitHub. Mijn excuses voor de staat van de code, het is echt een hack. Misschien zal ik de tijd nemen om het op te ruimen, maar het is zeer waarschijnlijk dat u ernaar zult kijken voordat dat gebeurt. Sorry.

De software op de plotter doet eigenlijk twee dingen:

  • Navigatie en configuratie vanaf de afstandsbediening toestaan
  • Teken de inhoud van een.svg-bestand dat op de SD-kaart is opgeslagen.

Omdat het programmageheugen op de Arduino Uno vrij beperkt is, zijn er veel lelijke snelkoppelingen genomen om de code in het geheugen te passen. Dit gold met name voor de eerste plotter die geen SD-kaart had en de grafische weergave moest ook rechtstreeks in de Arduino worden geprogrammeerd. Het ontleden van.svg is extreem beperkt en kan alleen paden met lijnen (geen bochten) aan en vereist dat het een specifiek dialect van.svg is dat ik INKSCAPE heb gebruikt om uit te voeren.

De.svg-bestanden worden opgeslagen in de map op het hoogste niveau van de SD-kaart als 1.svg, 2.svg, enzovoort. Het te tekenen bestand wordt geselecteerd door op de overeenkomstige knop op de afstandsbediening te drukken. Hierdoor kan ik de plotter voorbereiden met een paar favorieten waarmee ik snel whiteboards van mensen kan verrijken.

De Arduino IDE is gebruikt voor het bouwen en programmeren van de controller. De enige extra bibliotheek die wordt gebruikt, is IRRemote (door shirriff).

Een plotbaar bestand maken

Er zijn waarschijnlijk honderden manieren om een.svg-bestand te maken dat kan plotten, maar ik ga er hier slechts één beschrijven:

  • Gebruik INKSCAPE
  • Teken wat je maar wilt en converteer het naar paden "Pad->Object naar pad"
  • Kies "Paden bewerken op knooppunten (F2)"
  • Selecteer alle individuele paden en knooppunten. Ctrl-A twee keer
  • Converteren naar regels door "Extensions->Pad aanpassen->Beziers afvlakken"
  • Opslaan als "Inkscape SVG"
  • Loop in de simulator, zie hieronder

De Simulator

Nog een ding! Er is een simulator. Het is min of meer verplicht om elke plot die u wilt maken door de simulator te laten lopen voordat u deze probeert af te drukken. Dit is meestal nodig omdat de.svg-parsing zo slecht is dat de kans groot is dat iets niet goed wordt geïnterpreteerd door de plotter.

De simulator werkt door de plottercode voor osx of linux te compileren en de "digitalWrite" -aanroepen te vervangen door afdrukken naar stdout (tijdstempel, pin, status) die vervolgens wordt doorgesluisd naar een visualisatie-UI.

De simulator is geschreven nadat ik een bug had waardoor een afdruk van 2 uur na 95% of zo jammerlijk verpestte. Ik wist totaal niet wat er was gebeurd en realiseerde me dat ik een manier nodig had om het te debuggen. Het bleek een float-parseerfout te zijn, veroorzaakt door een getal in de.svg met belachelijke hoeveelheden decimalen. (Ik heb mijn eigen analyse gedaan omdat bibliotheekfuncties niet in het geheugen zouden passen). Het was een geweldige bug omdat het me dwong om de simulator te maken.

Het gebruik van de simulator tijdens het ontwikkelen kan veel helpen. Het kan veel, veel sneller worden uitgevoerd dan realtime, wat erg handig is. Het geeft ook weer hoe lang de plot daadwerkelijk zal duren wanneer deze in realtime wordt uitgevoerd. Er is een leesmij in naast de simulatorcode over hoe deze te gebruiken.

Toekomstige verbeteringen

Hier is een lijst uit mijn hoofd van wat er kan worden verbeterd:

  • Stop met parsing.svg op de plotter, gebruik een echte parser op de computer en maak in plaats daarvan een goed formaat voor de plotter.
  • Beter breken, huidige software leest slechts één lijnstuk vooruit, wat soms te weinig is als een kleine bocht een scherpe bocht wordt.
  • Encoders of een soort van feedback om te voorkomen dat u verdwaalt bij het missen van stappen..
  • Schrijf goede, schone software.
  • Gebruik een voor wifi geschikte controller en gebruik de telefoon in plaats van de afstandsbediening.

Enkele slotwoorden

Zoals je waarschijnlijk al begrijpt heb ik geruime tijd aan dit project besteed, meestal lang geleden. Ik vind het nog steeds leuk om mee te spelen en ik heb heel veel ideeën over wat ik kan verbeteren, nieuwe variaties en nieuwe muren om te decoreren. Maar ik heb gewoon geen tijd, er zijn zoveel andere projecten en dingen zoals familie en werk.

Wat ik echt geweldig zou vinden, is als sommige van jullie fijne mensen op het internet er iets aan hebben om dit te lezen en inspiratie op te doen voor je eigen projecten. Ik zou ook blij zijn als sommigen van jullie je eigen plotters bouwen en ze laten werken!

Hoewel ik denk dat ik erin geslaagd ben een minimalistische plotter te bouwen, is het me niet gelukt om de kosten onder de $ 10 te krijgen, zoals ik mezelf als doel had gesteld. Maar omdat onderdelen steeds goedkoper worden, is hij er waarschijnlijk over een jaar of zo...

O, nog een ding. Dood me alsjeblieft niet om de spaghetticode. Het is nooit geschreven om te delen, ik was op dat moment bezig met tekenen op de muur en kon me niets schelen over code. Ik besloot het toch te delen, dus wees daar blij mee.

Bon Voyage,

Fredrik

Code

Stringen
Code, documentatie en CAD-tekeningen voor de muurplotter Stringent.https://github.com/snebragd/stringent

Aangepaste onderdelen en behuizingen

een nieuwe stl voor de basis geüpload, de oude was op de een of andere manier kapot. Nieuwe basis voor de plotter. Kleinere voetafdruk -> minder om af te drukken. Servo-actie is nu om de pen te verplaatsen in plaats van de plotter weg te duwen van de muur.

Schema's

Eenvoudig elektronicaschema

Productieproces

  1. De multi-skill inspanning voor onderhoud
  2. Kwaliteitscontrole is de eerste stap naar motorbetrouwbaarheid
  3. Het belang van trends in de betrouwbaarheid van elektromotoren
  4. Toezicht op de gezondheid van fabrieksmachines
  5. Motorwikkelingen:wat zijn de verschillen?
  6. De complete gids voor het kiezen van een explosieveilige motor
  7. De complete gids voor een juiste opslag van elektrische motoren
  8. DC versus AC-motor:wat is het verschil?
  9. AC versus DC-motor:wat is het verschil tussen hen?
  10. Hoe kies je de juiste vertragingskast
  11. Wat bepaalt de snelheid van een hydraulische motor