Inhoudsopgave:

Arduino-controller voor geautomatiseerde 360 ° productfotografie - Ajarnpa
Arduino-controller voor geautomatiseerde 360 ° productfotografie - Ajarnpa

Video: Arduino-controller voor geautomatiseerde 360 ° productfotografie - Ajarnpa

Video: Arduino-controller voor geautomatiseerde 360 ° productfotografie - Ajarnpa
Video: Using a Game Controller with Arduino and Processing 2024, Juli-
Anonim
Image
Image
Onderdelen en bestanden verzamelen
Onderdelen en bestanden verzamelen

Laten we een op Arduino gebaseerde controller bouwen die een stappenmotor en een camerasluiter bestuurt. Samen met een stappenmotor aangedreven draaitafel is dit een krachtig en voordelig systeem voor geautomatiseerde 360° productfotografie of fotogrammetrie. De automatische camerasluiter is gebaseerd op een geweldige bibliotheek van "Sebastian Setz" en werkt voor infrarood geactiveerde camera's van Nikon, Canon, Minolta, Olympus, Pentax, Sony.

Ik heb twee versies van de controller voorbereid:

  • Een basisversie die bediend wordt met een simpele drukknop en een status led.
  • Een geavanceerde versie die een 16x2 LCD + toetsenbord schild gebruikt en dus een menu heeft om de variabelen "on the fly" te wijzigen en niet alleen in de broncode.

Wat doet de controleur?

Als u een "fotoshoot" activeert door op de knop te drukken, voert de draaitafel een volledige omwenteling uit, verdeeld in een vooraf gedefinieerd aantal stappen. Na elke rotatiestap maakt de controller een korte pauze en activeert vervolgens de camera. U kunt de variabelen van de rotatiesnelheid, de vertragingstijd en het aantal stappen in de broncode (voor eenvoudige controllerversie) of in het displaymenu (geavanceerde controllerversie) wijzigen.

Stap 1: Verzamel onderdelen en bestanden

Onderdelen en bestanden verzamelen
Onderdelen en bestanden verzamelen
Onderdelen en bestanden verzamelen
Onderdelen en bestanden verzamelen

Onderdelen:

  • Arduino Uno (of vergelijkbaar)
  • Breadboard (half size breadboard past)
  • Easydriver Stappenmotor Driver
  • 2X koellichaam voor Easydriver (optioneel maar STERK aanbevolen) https://www.sparkfun.com/products/11510Je hebt thermische tape nodig om het koellichaam op de chip te bevestigen. Als u uw koellichaam bestelt, zorg er dan voor dat termaltape is meegeleverd of apart kan worden besteld.
  • Infrarood LED 950nm (voor IR-cameratrigger)
  • Weerstand 220 ohm (voorweerstanden voor infrarood-LED)
  • Piezo-geluidselement (optioneel, als u feedbackgeluiden wilt hebben)
  • Sommige jumperdraden
  • Externe voeding voor stappenmotor Ik heb goede ervaringen opgedaan met een 12V 1A voedingsadapter om een 1A NEMA 17 stappenmotor van Trinamic aan te sturen. Ik had ook een 24V 3A voedingsadapter in gebruik. Het Easydriver-bord ondersteunt tot 30V en 750mA per fase. Meer over de easydriver-specificaties hier:
  • Aansluiting voor externe voeding stappenmotor
  • Bipolaire NEMA 17 Stappenmotor en Draaitafel b.v. de FluxGarage „Automated Turntable With Steppermotor“Link:

Toevoegen voor basis drukknop-controller …

  • Druk op de knop
  • Weerstand 10k ohm (voor de drukknop)
  • LED (status-led)
  • Weerstand 220 ohm (voorweerstanden voor status-LED)

… OF voeg toe voor geavanceerde controller met display+toetsenbordmenu:

Adafruit LCD Shield Kit met 16x2 Character Display, b.v

Download de Arduino-codes en Fritzing-diagrammen voor de basis- en geavanceerde controller:

Als je het Fritzing-document voor de geavanceerde controller wilt openen, zorg er dan voor dat je de adafruit-elementen downloadt en installeert:

Let op: Op de foto's gebruik ik de FluxGarage "Tinkerer's Baseplate" en de FluxGarage "Front Plate for 16x2 LCD + Keypad Shield". Het gebruik van die elementen is optioneel, als je ze ook wilt gebruiken, klik dan op de links voor de betreffende instructables.

Stap 2: monteer circuit

Assembleer Circuit
Assembleer Circuit
Assembleer Circuit
Assembleer Circuit
Assembleer Circuit
Assembleer Circuit

Soldeer Easydriver board voor breadboard gebruik:Om de easydriver op een breadboard te gebruiken, moet je een aantal mannelijke pin headers op het board solderen. De beste manier is om de mannelijke pin-headers in het breadboard te plaatsen, de easydriver erop te leggen en vervolgens de pinnen te solderen.

Bedrading: Sluit de onderdelen aan zoals weergegeven in de betreffende Fritzing-afbeelding voor de basis- of geavanceerde controller. Download de Firtzing diagrammen op github, vind de links in stap 1.

Controleer als volgt of alles is aangesloten:

  • Arduino digitale pin 02 = dir pin van Easydriver
  • Arduino digitale pin 03 = stappen van Easydriver
  • Arduino digitale pin 09 = uitgang voor piëzo
  • Arduino digitale pin 12 = uitgang voor infrarood LED (plaats 220 ohm pre-weerstand voor led)

+ voor basiscontroller:

  • Arduino digitale pin 04 = ingang voor drukknop (plaats 10k ohm weerstand voor knop massa)
  • Arduino digitale pin 13 = uitgang voor status-LED (plaats 220 ohm pre-weerstand voor led)

+ voor geavanceerde controller:

Stapel het scherm + toetsenbord schild op de arduino, eigenlijk worden die pinnen gebruikt: Arduino analoge pin A4+A5 en 5V+GND

Stappenmotor aansluiten: Het aansluiten van bipolaire stappenmotoren (4 draden) gaat over het aansluiten van de twee spoelen (A en B) van de motor op de rechter pinnen van het easydriver-bord. Bekijk de afbeelding in het midden van deze pagina en op de specificaties van uw specifieke stappenmotor:

U kunt hier ook meer informatie vinden over het aansluiten van uw stappenmotor en de Easydriver:

Externe voeding aansluiten Het Easydriver-bord heeft twee aparte voedingspinnen rechtsboven (M+ en Ground). Terwijl het bord zelf stroom krijgt van de Arduino, levert de aparte ingang stroom voor de stappenmotor. Als u een typische "out of the box" voedingsadapter en een stopcontact gebruikt, moet u de "+"-draad aansluiten op de "M+"-pin van de easydriver en de "-"-draad op de "GND"-pin van easydriver. Meestal zit de „+“aan de binnenkant, terwijl de „-“aan de buitenkant van de stekker zit. Maar wees voorzichtig, sommige stroomadapters maken het mogelijk om de polariteit te veranderen! Als u uw easydriver verkeerd bedraden, kan en zal deze waarschijnlijk beschadigd raken, houd daar rekening mee.

Stap 3: Upload broncode naar Arduino

Upload broncode naar Arduino
Upload broncode naar Arduino

Download de Arduino-broncode op Github:

Arduino-IDE downloaden:

www.arduino.cc/en/Main/Software

Download de bibliotheken van derden en kopieer ze naar de bibliotheekmap van uw IDE:… voor de camerasluiter:https://github.com/dharmapurikar/Arduino/tree/mast…… voor de Adafruit 16x2 Display+Keypad Shield:https:// github.com/adafruit/Adafruit-RGB-LCD-Shiel…

De code is getest en werkt prima met de nieuwste Arduino IDE (1.8.7 op windows) en Arduino Uno + Easydriver Stepper motor Driver + Adafruit 16x2 Display+Keypad Shield, + een Trinamic stappenmotor en een Nikon D60 camera.

Pas de code aan om met uw specifieke camera te werken: zoals vermeld, heb ik de "multiCameraIrControl.h" -bibliotheek van Sebastian Setz gebruikt. Om het voor je camera te laten werken, moet je de schuine strepen in de opmerkingen vóór de naam van de camerafabrikant verwijderen en natuurlijk de schuine strepen voor alle andere namen van de fabrikant toevoegen:

// Cameratype instellen Nikon D5000(12);//Canon D5(12);//Minolta A900(12);//Olympus E5(12);//Pentax K7(12);//Sony A900(12);

Doe de vergelijkbare aanpassing in de "snap"-functie:

// Maak een picturevoid snap(){D5000.shotNow();//D5.shotNow();//A900.shotNow();//E5.shotNow();//K7.shotNow();//A900.shotNow();}

Let op: Helaas heb ik nog geen andere IR-getriggerde camera's kunnen testen dan mijn eigen Nikon D60. De camerasluiterbibliotheek zou moeten werken met verschillende camera's van de verschillende fabrikanten, niet alleen met de specifieke cameramodellen die in de code worden genoemd. Het zou leuk zijn als je een reactie plaatst over je ervaringen met je Canon, Minolta, Olympus, Pentax of Sony camera.

Stap 4: Bedien de controller

Bedien de controller
Bedien de controller
Bedien de controller
Bedien de controller

Wat doet de code respectievelijk de controller? Als u op de knop drukt, wordt een "fotoshooting" geactiveerd. Elke fotoshoot is een eindige lus van de volgende reeks:

  1. Camera wordt geactiveerd
  2. Korte vertraging
  3. Stappenmotor draait een vooraf gedefinieerd aantal graden
  4. Korte vertraging

Een fotoshoot is gebaseerd op een reeks variabelen die het exacte gedrag bepalen. U kunt deze variabelen wijzigen in de broncode (voor eenvoudige controllerversie) of in het displaymenu (geavanceerde controllerversie).

Bediening van de basiscontroller:

Op de basiscontroller geeft de Status-LED aan wanneer het systeem klaar is om te presteren. De LED gaat uit wanneer u een fotoshoot start. U kunt een fotoshoot onderbreken door de knop ingedrukt te houden totdat het "onderbrekingsgeluid" verschijnt en de draaitafel stopt. Bekijk de video in het bovenste gedeelte van deze instructable om dit in "het echte leven" te zien.

De variabelen van de fotoshoot zijn te vinden in het bovenste gedeelte van de code en kunnen worden gewijzigd om de fotoshoot aan te passen. Hieronder ziet u de beginwaarden:

int schietstappen = 20; // aantal stappen voor een volledige omwenteling, moet 10, 20 of 40float opnamesnelheid = 0,01 zijn; // rotatiesnelheid: elk getal van.01 -> 1 waarbij 1 de snelste is - Langzamer is sterker (langzamer = beter voor "zware" objecten) int shootingdelay = 1000; // pauze in milliseconden voor en na elke rotatie

De geavanceerde controller bedienen:

Bij het inschakelen van de geavanceerde controller wordt gedurende 4 seconden een FluxGarage-logosplash weergegeven. Daarna is de controller klaar om uit te voeren en toont hij een lijst met de instelbare set variabelen:

  • ST = aantal stappen, kan 10, 20 of 40. zijn
  • SP = Rotatiesnelheid, kan 1-5 zijn, terwijl 1 het langzaamst is
  • DE = Vertraging voor en na elke stap in tienden van een seconde, kan 5, 10, 25, 50. zijn
  • LI = Bepaalt of de achtergrondverlichting van het scherm aan of uit is tijdens het fotograferen. Kan 1 = aan of 0 = uit zijn

U kunt met de linker- en rechterknop door de variabele typen navigeren en de waarden wijzigen met de omhoog- en omlaagknoppen. Start een fotoshoot door op de selectieknop te drukken en onderbreek een fotoshoot door de selectieknop ingedrukt te houden totdat het "onderbrekingsgeluid" verschijnt. Bekijk de video in het bovenste gedeelte van deze instructable om dit in "het echte leven" te zien.

Stap 5: Begin met fotograferen

Begin met fotograferen
Begin met fotograferen

Als je je eigen controller + draaitafel hebt gebouwd en je camera is geplaatst, ben je helemaal klaar om te beginnen met fotograferen … bijna. Ik zal enkele lessen uit mijn eigen experimenten met u delen:

  • Gebruik een lichttent om uw objecten gelijkmatig te verlichten. Je kunt hier op instructables.com veel goede tutorials vinden die laten zien hoe je een diy lightbox kunt maken. Ook zijn er goedkope textiellichttenten die in veel online winkels te koop zijn.
  • Gebruik gloeilampen met dezelfde kleurtemperatuur (Kelvin)
  • Stel het object handmatig scherp op de draaitafel, deactiveer de autofocus van uw camera
  • Schakel de beeldstabilisator van uw camera uit als u met een statief werkt
  • Selecteer een meetbereik op de achtergrond, waar het geschoten object niet zal verschijnen. Zo voorkom je flikkeringen in je beeldreeks. Een andere manier is om de belichtingstijden enz. van uw camera handmatig in te stellen.
  • Als u uw 360-afbeeldingen in uw website wilt opnemen, gebruikt u javascript-plug-ins zoals "Jquery Reel Plugin" door Petr Vostřel alias "PISI" → https://jquery.vostrel.cz/reel "360 Degrees Product Viewer" door "Codyhouse “→

Dit is het resultaat van een van mijn opnames (gemaakt met de instelling hierboven):

Aanbevolen: