Innholdsfortegnelse:

Arduino -kontroller for automatisert 360 ° produktfotografering: 5 trinn (med bilder)
Arduino -kontroller for automatisert 360 ° produktfotografering: 5 trinn (med bilder)

Video: Arduino -kontroller for automatisert 360 ° produktfotografering: 5 trinn (med bilder)

Video: Arduino -kontroller for automatisert 360 ° produktfotografering: 5 trinn (med bilder)
Video: Soldering Automation: High Speed Scara Robot #full-automation #electronics #smartfactory 2024, Juli
Anonim
Image
Image
Samle deler og filer
Samle deler og filer

La oss bygge en arduino -basert kontroller som styrer en trinnmotor og en kameralukker. Sammen med en steppermotordrevet dreieskive er dette et kraftig og rimelig system for automatisert 360 ° produktfotografering eller fotogrammetri. Den automatiske kameralukkeren er basert på et flott bibliotek fra "Sebastian Setz" og fungerer for infrarøde kameraer fra Nikon, Canon, Minolta, Olympus, Pentax, Sony.

Jeg har forberedt to versjoner av kontrolleren:

  • En grunnleggende versjon som betjenes med en enkel trykknapp og en statuslys.
  • En avansert versjon som bruker et 16x2 LCD + tastaturskjerm og dermed har en meny for å endre variablene "on the fly" og ikke bare i kildekoden.

Hva gjør kontrolleren?

Hvis du utløser en "fotografering" ved å trykke på knappen, utfører platespilleren en full omdreining, delt inn i en forhåndsdefinert mengde trinn. Etter hvert rotasjonstrinn, gjør kontrolleren en kort pause og utløser deretter kameraet. Du vil kunne endre variablene for rotasjonshastigheten, forsinkelsestiden og antall trinn i kildekoden (for enkel kontrollerversjon) eller i displaymenyen (avansert kontrollerversjon).

Trinn 1: Samle deler og filer

Samle deler og filer
Samle deler og filer
Samle deler og filer
Samle deler og filer

Deler:

  • Arduino Uno (eller lignende)
  • Brødbrett (passer til halvbrett)
  • Easydriver Stepper Motor Driver
  • 2X kjøleribbe for Easydriver (valgfritt, men anbefales på det sterkeste) https://www.sparkfun.com/products/11510 Du trenger termisk tape for å feste kjøleribben på brikken. Hvis du bestiller kjøleribben, må du kontrollere at termetape er inkludert eller kan bestilles separat.
  • Infrarød LED 950nm (for IR -kamerautløser)
  • Motstand 220 ohm (formotstander for infrarød-LED)
  • Piezo -lydelement (valgfritt, hvis du vil ha tilbakemeldingslyder)
  • Noen hoppetråder
  • Ekstern strømforsyning for trinnmotor Jeg gjorde gode erfaringer med en 12V 1A strømadapter for å drive en 1A NEMA 17 trinnmotor fra Trinamic. Jeg hadde også en 24V 3A strømadapter i bruk. Easydriver -kortet støtter opptil 30V og 750mA per fase. Mer om easydriver-spesifikasjonene her:
  • Stikkontakt for trinnmotorens eksterne strømforsyning
  • Bipolar NEMA 17 Trinnmotor og dreieskive f.eks. FluxGarage „Automated Turntable With Steppermotor“Link:

Legg til for grunnleggende trykknappkontroller …

  • Trykknapp
  • Motstand 10k ohm (for trykknappen)
  • LED (status-led)
  • Motstand 220 ohm (formotstander for status-LED)

… ELLER legg til for avansert kontroller med display+tastaturmeny:

Adafruit LCD Shield Kit med 16x2 tegnvisning, f.eks

Last ned Arduino-koder og Fritzing-diagrammer for grunnleggende og avansert kontroller:

Hvis du vil åpne Fritzing-dokumentet for den avanserte kontrolleren, må du laste ned og installere adafruit-elementene:

Merk: På bildene bruker jeg FluxGarage "Tinkerer's Baseplate" og FluxGarage "Frontplate for 16x2 LCD + tastaturskjerm". Å bruke disse elementene er valgfritt. Hvis du også vil bruke dem, klikker du på koblingene for instruksjonene.

Trinn 2: Sett sammen kretsen

Sett sammen krets
Sett sammen krets
Sett sammen krets
Sett sammen krets
Sett sammen krets
Sett sammen krets

Loddemaskin for lett bruk av brødbrett: For å bruke easydriveren på et brødbrett må du lodde noen mannlige pinhoder på brettet. Den beste måten er å sette hanhodene i brødbrettet, legge easydriveren på toppen og deretter lodde pinnene.

Kabling: Kabling av delene som vist i Fritzing -grafikken for den grunnleggende eller avanserte kontrolleren. Last ned Firtzing -diagrammer på github, finn koblingene i trinn 1.

Dobbeltsjekk om alt er koblet til som følger:

  • Arduino digital pin 02 = dir pin av Easydriver
  • Arduino digital pin 03 = trinnnål til Easydriver
  • Arduino digital pin 09 = utgang for piezo
  • Arduino digital pin 12 = utgang for infrarød LED (plasser 220 ohm for motstand før led)

+ for Basic Controller:

  • Arduino digital pin 04 = inngang for trykknapp (plasser 10k ohm motstand før knappjord)
  • Arduino digital pin 13 = utgang for status -LED (plasser 220 ohm før motstand før led)

+ for avansert kontroller:

Stable skjermen+tastaturskjoldet på arduinoen, faktisk brukes disse pinnene: Arduino analog pin A4+A5 og 5V+GND

Koble til trinnmotor: Kobling av bipolare trinnmotorer (4 ledninger) handler om å koble de to spolene (A og B) på motoren til de høyre pinnene på easydriver -kortet. Se på grafikken i midten av denne siden og på spesifikasjoner for din spesifikke trinnmotor:

Du kan også finne mer informasjon om hvordan du kobler til steppermotoren og Easydriver her:

Koble til ekstern strømforsyning Easydriver -kortet har to separate strømpinner øverst til høyre (M+ og bakken). Mens brettet selv får strøm fra Arduino, gir den separate inngangen strøm til trinnmotoren. Hvis du bruker en typisk "out of the box" strømadapter og en stikkontakt, bør du koble "+" ledningen til "M+" pinnen på easydriveren og "-" ledningen til easydriverens "GND" pin. Vanligvis er "+" på innsiden, mens "-" er på utsiden av pluggen. Men vær forsiktig, noen strømadaptere tillater å bytte polaritet! Hvis du kobler til easydriveren feil, kan og vil den sannsynligvis bli skadet, husk det.

Trinn 3: Last opp kildekoden til Arduino

Last opp kildekode til Arduino
Last opp kildekode til Arduino

Last ned Arduino-kildekoden på Github:

Last ned Arduino IDE:

www.arduino.cc/en/Main/Software

Last ned tredjepartsbibliotekene og kopier dem til IDEs bibliotekmappe: … for kameralukker: https://github.com/dharmapurikar/Arduino/tree/mast ……. for Adafruit 16x2 Display+Keypad Shield: https:// github.com/adafruit/Adafruit-RGB-LCD-Shiel…

Koden er testet og fungerer fint med den nyeste Arduino IDE (1.8.7 på windows) og Arduino Uno + Easydriver Stepper motor Driver + Adafruit 16x2 Display + Tastaturskjerm, + en Trinamic trinnmotor og et Nikon D60 kamera.

Juster koden for å fungere med ditt spesifikke kamera: Som nevnt brukte jeg biblioteket „multiCameraIrControl.h“av Sebastian Setz. For å få det til å fungere for kameraet ditt, må du slette kommentarfeltene før kameraprodusentnavnet og selvfølgelig legge til skråstreker før alle de andre produsentnavnene:

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

Gjør den samme justeringen i "snap" -funksjonen:

// Ta en bildeløs snap () {D5000.shotNow (); // D5.shotNow (); // A900.shotNow (); // E5.shotNow (); // K7.shotNow (); // A900.shotNow ();}

Vær oppmerksom på: Dessverre var jeg ennå ikke i stand til å teste andre IR -utløste kameraer enn min egen Nikon D60. Kameralukkerbiblioteket skal fungere med flere kameraer fra de forskjellige produsentene, ikke bare de spesifikke kameramodellene som er nevnt i koden. Det ville være flott hvis du legger ut en kommentar om dine erfaringer med Canon, Minolta, Olympus, Pentax eller Sony kamera.

Trinn 4: Betjen kontrolleren

Betjen kontrolleren
Betjen kontrolleren
Betjen kontrolleren
Betjen kontrolleren

Hva gjør koden henholdsvis kontrolleren? Hvis du trykker på knappen, utløses en "fotografering". Hver fotografering er en endelig sløyfe med følgende sekvens:

  1. Kameraet er utløst
  2. Kort forsinkelse
  3. Steppermotor vil rotere en forhåndsdefinert mengde grader
  4. Kort forsinkelse

En fotografering er basert på et sett med variabler som bestemmer dens eksakte oppførsel. Du kan endre disse variablene i kildekoden (for enkel kontrollerversjon) eller i displaymenyen (avansert kontrollerversjon).

Betjening av den grunnleggende kontrolleren:

På den grunnleggende kontrolleren viser status -LED når systemet er klart til å utføre. Lysdioden slås av når du starter en fotografering. Du kan avbryte et fotografering ved å holde knappen inntil "avbruddslyden" vises og platespilleren stopper. Ta en titt på videoen i denne instruksjons øverste delen for å se dette i "det virkelige liv".

Fotograferingens variabler finner du i kodens øverste del, og kan endres for å endre fotograferingen. Nedenfor kan du se startverdiene:

int skytetrinn = 20; // antall trinn for en full omdreining, bør være 10, 20 eller 40 flyte skytehastighet = 0,01; // rotasjonshastighet: et hvilket som helst tall fra.01 -> 1 med 1 som er raskest - Saktere er sterkere (langsommere = bedre for "tunge" objekter) int shootingdelay = 1000; // pause i millisekunder før og etter hver rotasjon

Betjening av den avanserte kontrolleren:

Når du slår på den avanserte kontrolleren, vises et FluxGarage -logosplash i 4 sekunder. Etter det er kontrolleren klar til å utføre og viser en liste over det justerbare settet med variabler:

  • ST = Antall trinn, kan være 10, 20 eller 40
  • SP = Rotasjonshastighet, kan være 1-5 mens 1 er tregest
  • DE = Forsinkelse før og etter hvert trinn på tiendedels sekund, kan være 5, 10, 25, 50
  • LI = Bestemmer om bakgrunnslyset på displayet er på eller av under fotografering. Kan være 1 = på eller 0 = av

Du kan navigere gjennom variabeltypene med venstre og høyre knapp og endre verdiene med opp- og nedknappene. Start en fotografering ved å trykke på velgeknappen og avbryte et fotografering ved å holde valgknappen til "avbryt lyd" vises. Ta en titt på videoen i denne instruksjons øverste delen for å se dette i "det virkelige liv".

Trinn 5: Start opptaket

Begynn å skyte
Begynn å skyte

Hvis du har bygget din egen kontroller + platespiller og kameraet er på plass, er du klar til å begynne å skyte … nesten. La meg dele noen erfaringer fra mine egne eksperimenter:

  • Bruk et lystelt til å belyse objektene dine jevnt. Du kan finne mange gode opplæringsprogrammer her på instructables.com som viser hvordan du lager en DIY lightbox. Det er også rimelige tekstiltelt som du kan kjøpe i mange nettbutikker.
  • Bruk lyspærer med samme fargetemperatur (Kelvin)
  • Fokuser objektet på dreieskiven manuelt, deaktiver kameraets autofokus
  • Slå av kameraets bildestabilisator hvis du arbeider med stativ
  • Velg et måleområde i bakgrunnen, der skuddobjektet ikke vil vises. Ved å unngå dette vil du unngå å flimre i bildesekvensen. En annen måte er å manuelt sette kameraets eksponeringstider osv.
  • Hvis du vil inkludere 360-bildene dine på nettstedet ditt, kan du bruke javascript-plugins som "Jquery Reel Plugin" av Petr Vostřel alias "PISI" → https://jquery.vostrel.cz/reel "360 Degrees Product Viewer" av "Codyhouse" “→

Dette er resultatet av en av mine skytinger (opprettet med innstillingen ovenfor):

Anbefalt: