Buggfix Plus
Aktuellt datum och tid: 04.16 2018-07-20

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 49 inlägg ]  Gå till sida 1, 2, 3, 4  Nästa
Författare Meddelande
InläggPostat: 12.21 2017-11-06 

Blev medlem: 12.43 2013-03-19
Inlägg: 250
Ort: Östersund
Tänkte jag skulle skriva av mig lite om mitt senaste projekt. Det är mest för min egen skull som jag 'dokumenterar' projektet här, men kanske det kan intressera någon annan också.
Jag började med att söka runt på nätet efter hur man skulle kunna gå till väga. Tilläggas bör kanske, att jag själv är inte minsta fotointresserad (men frugan hade en period för några år sedan).
Det verkade iaf finnas en del lösningar, men jag fastnade för att fotografera av dem med frugas digitala systemkamera. Jag hade sett att det fanns de som använt en diabildsprojektor för att automatisera jobbet och det blev således planen, kanske mest för att det är sånt jag själv tycker är kul. Jag spenderar hellre en vecka på att bygga automatik, än en vecka med manuellt arbete.

Till det här behövs ett makroobjektiv. Frugan hade inget makro och jag hade ingen lust att hosta upp stålarna för att köpa ett. Så, första problemet var att fixa makro på en budget.
Lösningen blev mellanringar. För 135kr, ropade jag in en uppsättning mellanringar av lägsta möjliga made-in-china kvalitet från eBay UK.

Medan jag väntade på på leverans, så kunde jag inte hålla mig, utan köpte även en beg. projektor på blocket för 400kr.
Bilaga:
1_carousel_s.jpg

Har var det västtysk kvalitet istället. Byggd för att hålla kan man lugnt säga. Jag fick testköra projjen vid inköpstillfället, men naturligtvis gick lampan så fort jag skulle dra igång den hemma.
Ingen jättepanik, för det sitter normalt en 150W halogen i den. Det är lite i mesta laget för det jag vill använda den till, så jag började leta ersättningslampa. Det var inte helt enkelt, men till slut hittade jag den här:
https://e-lampor.se/osram-halostar-24v-gy6-35-50w.html

Linsen på projektorn kan man bara skruva ur, så det som var kvar att lösa på projektorn, var diffusering av ljuset bakom diabilden. Nu var det så fint löst, att i (iaf den här) projektorn fanns det en ledig plats för ett filter. Så jag klippte helt sonika ut en passande plastbit ur ett gammalt glasspaket (av märket Sia) och stoppade in det på rätt plats.
Bilaga:
2_diffusering.jpg


Och nu kommer vi till själva projektet med automatiseringen. Projektorn har en fjärrkontrollingång av typen DIN-6 hona.
Bilaga:
3_din6.png

Efter en hel del googlande, lyckades jag ändå inte hitta en pinout. Det enda jag lyckades hitta var att det möjligen kunde röra sig om pin 1, 2 och 3 och att det antagligen är så enkelt som att kortsluta några av dessa tåtar för att byta bild. Med multimeter och knapparna på projjen, mätte jag mig fram till att 3 antagligen var 'common', 2 framåt, och 3 bakåt. (För att vara helt ärlig, så lyckades jag ändå blanda ihop framåt och bakåt när jag lödde ihop prylarna, så tittar man på filmen längre ner, så går karusellen baklänges...)

Kameran har också en remote-ingång (2.5mm stereoplugg)
Bilaga:
4_canon.png

Och samma där, det ska tydligen duga med att kortsluta pinnarna för att simulera knapptryck.

Så det som behövs göras är att sluta en kontakt (till projektorn) i några hundra millisekunder för att byta bild, vänta (ca 1 sekund) på att bilden byts, sluta en annan kontakt till kameran för att ta bilden (och sen börja om).
Det går säkert att göra med optokopplare eller annat, men jag körde med reläer, för det borde garanterat kunna fungera istället för en fysisk knapp.

Nu fick jag dessutom lite hybris och tänkte jag skulle bygga nåt som var lite snyggt (nåja, utvändigt iaf) och inbyggt i en liten låda.
Så för att få plats i lådan, köpte jag dessa reläer:
https://www.kjell.com/se/sortiment/el-verktyg/elektronik/elektromekanik/relaer/1-poligt-dil-rela-12-v-dc-0-5-a-30-v-p36111

Och så en Arduino Pro Mini för att sköta timingen. Inga bilder på själva bygget, men så här blev resultatet.
Bilaga:
5_ci.jpg

Bilaga:
6_co.jpg


Lådan strömmatas med en 12V väggvårta, denna 12V går in på RAW till Arduinon och reläerna dras vardera (via ett 1k motstånd på basen) av en transistor från Arduinon. Jag vet inte om det behövs en skyddsdiod för så här små reläer, men jag kastade in det ändå.

Tryckknapparna på ena sidan byter bild på projektorn (framåt, bakåt) och på andra sidan tar en bild samt fokus på kameran. Reläerna är kopplade parallellt med 'framåt' och 'ta bild' knapparna. Lite extra omständigt kanske, men det fina är nu att 'lådan' kan (även utan strömmatning) användas som färrkontroll till både kameran och projektorn om så skulle önskas. Och dessutom att manuellt kunna byta bild framåt/bakåt, samt ta kort utan att skaka kameran är väldigt trevligt när fokus och bländare ska justeras in.
Sen har jag även en pot och det är för att kunna ställa in antalet bilder, samt fördröjningen mellan bilder. Precis under pot:en finns ytterligare en knapp som är inkopplad till Arduinon, för att kontrollera automatiken.

Funktionen är som sådan, att med potten kan man ställa in mellan 0,5 till 4,5 sekunders fördröjning efter att en bild tagits tills det att nästa matar fram. Sen håller man knappen intryckt > 400ms (alltså "lång" knapptryckning) för att spara detta värde till EEPROM.
En kort knapptyckning (<400ms) startar istället automatiken. Då läses potten av och omvandlas till ett värde mellan 10 och 80. Detta är det antal bilder som kommer tas. Den kommer dock alltid att mata fram karusellen 81 gånger, då dessa rymmer 80 bilder + en tom position och man kan bara ta i/ur karusellen när den är frammatad till den tomma positionen. Men man sparar lite tid (och plats) om man inte behöver ta en massa onödiga kort om karusellen är t.ex. bara är halvfull.
När den kör automatiken, kan man även pausa (kort knapptryck) eller avbryta (långt knapptryck).

Åsså, lite arduino kod då
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
#include <EEPROM.h>
#define POTPIN    A0
#define BUTTONPIN A1
#define OUT1PIN   A2
#define OUT2PIN   A3

unsigned char slidedelay;

void setup() {
  pinMode(BUTTONPIN, INPUT_PULLUP);
  Serial.begin(115200);
  Serial.println("Wait for keypress...");
  slidedelay = EEPROM.read(0);
}

void loop(){

  static unsigned int lastMillis = millis();
  static unsigned char carouselcounter = 0;
  static unsigned char slidecounter = 0;
  static unsigned char delaycounter = 0;
  static unsigned char state = 0;
  static unsigned char button = 255;
  static unsigned char pause = 0;
 
  unsigned int nowMillis = millis();

  if(nowMillis - lastMillis > 50){
    button = (button << 1) | digitalRead(BUTTONPIN);

    if(carouselcounter == 0){
      if(button == 0x1){
        int analogv = analogRead(POTPIN);
        slidedelay = map(analogv, 0, 1024, 91, 10);
        EEPROM.write(0, slidedelay);
        Serial.print("Slidedelay: ");
        Serial.println(slidedelay);
      } else if((button & 0x3) == 0x1){
        int analogv = analogRead(POTPIN);
        slidecounter = map(analogv, 0, 1024, 81, 10);
        Serial.print("Slides: ");
        Serial.println(slidecounter);
        carouselcounter = 81;
        state = 3;
        delaycounter = 0;
        pause = 0;
      }
      digitalWrite(OUT1PIN, LOW);
      digitalWrite(OUT2PIN, LOW);
    } else {
      if(button == 0x1){
        carouselcounter = 0;
        Serial.println("Reset, waiting for keypress...");
      } else if ((button & 0x3) == 0x1) {
        pause = !pause;
        Serial.print("Pause: ");
        Serial.println(pause);
      } else if(!pause) {
        if(delaycounter > 0){
          delaycounter--;
        } else {
          switch(state & 0x3){
            case 3:
              digitalWrite(OUT1PIN, HIGH);
              delaycounter = 4;
              state = 2;
            break;
            case 2:
              digitalWrite(OUT1PIN, LOW);
              delaycounter = 25;
              carouselcounter--;
              Serial.print("Loop: ");
              Serial.println(carouselcounter);
              state = (slidecounter == 0) ? 3 : 1;
            break;
            case 1:
              digitalWrite(OUT2PIN, HIGH);
              delaycounter = 4;
              state = 0;
            break;
            case 0:
              digitalWrite(OUT2PIN, LOW);
              delaycounter = slidedelay;
              slidecounter--;
              Serial.print("Slides: ");
              Serial.println(slidecounter);
              state = 3;
            break;
          }
        }
      }
    }
    lastMillis = nowMillis;
  }
}


Nu går det att bara tuta och köra, men jag valde att göra en grej till... Jag vill helst inte skjuta till kamerans minneskort, utan direkt till hårddisk. Så jag installerade gphoto2 på min Asus eee och kopplade in kameran med USB.
Då kan man välja att spara bilderna till kamerans interna RAM istället för på minneskortet, samt att den automatiskt laddar hem bilderna från RAM.
Det tar dock lite extra tid att föra över bilderna från kameran (därav möjligheten att ställa in fördröjning mellan bilderna på Arduinon).
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
gphoto2 --capture-tethered --filename DIA_%H%M%S.%C


Har är en kort videosnutt på hur det ser ut när hela uppsättningen är 'in action'
phpBB [video]

Länk

På det hela taget måste jag säga att jag är jag är nöjd med den här lösningen.

Och till sist några exempel på resultatet (dock nedskalade för presentation på forument)
Bilaga:
7_flygplan.jpg

Bilaga:
8_flygdag.jpg


Logga in för att visa de filer som bifogats till detta inlägg.


Upp
 Profil  
 
InläggPostat: 13.55 2017-11-06 
Tidigare soundbrigade
Användarvisningsbild

Blev medlem: 21.44 2006-08-23
Inlägg: 17123
Ort: opediska institutionen, Brätte
Mycket kul projekt och intressant som inspiration för oss med många diabilder. :tumupp:


Upp
 Profil  
 
InläggPostat: 14.04 2017-11-06 
EF Sponsor
Användarvisningsbild

Blev medlem: 22.54 2006-09-23
Inlägg: 29628
Ort: Borås
Eller också så köper/hyr man en för ändamålet avsedd skanner, då en kamera inte, enligt mitt tycke har tillräckligt hög upplösning, dessutom finns det inga infraröda funktioner på en kamera, eller i projektorn, vilket är mycket bra att ha när man skannar dia.


Upp
 Profil  
 
InläggPostat: 14.11 2017-11-06 
Tidigare soundbrigade
Användarvisningsbild

Blev medlem: 21.44 2006-08-23
Inlägg: 17123
Ort: opediska institutionen, Brätte
Man kan inte få allt.


Upp
 Profil  
 
InläggPostat: 14.39 2017-11-06 
EF Sponsor
Användarvisningsbild

Blev medlem: 22.54 2006-09-23
Inlägg: 29628
Ort: Borås
Jo, om man vill :)


Upp
 Profil  
 
InläggPostat: 16.08 2017-11-06 

Blev medlem: 12.43 2013-03-19
Inlägg: 250
Ort: Östersund
Nämen, kors i taket! Vem kunde ana att självaste TomasL skulle glida in och veta bäst i även den här tråden?
Det är iofs bra, för nu känns min lösning ännu mera rätt :)


Upp
 Profil  
 
InläggPostat: 16.16 2017-11-06 
EF Sponsor
Användarvisningsbild

Blev medlem: 22.54 2006-09-23
Inlägg: 29628
Ort: Borås
Nja, jag har skannat in runt 14000 dior de senaste två åren, så jag har liksom fått en del erfarenhet av det.
Nu i vinter skall jag ta ytterligare en batch om 6000 dior, därefter blir det väl 15000 negativ både sv/v och färg som skall skannas in.

Min erfarenhet från detta arbete är att "IR-Tvättning" är nödvändig, då det i princip är omöjligt att få diorna dammfria.
Multiexponering är väldigt bra, framförallt på svåra bilder.

Jag har skannat in allt med 3600DPI och 48Bitars färgdjup, samt att skannern är kalibrerad, använder dessutom multiexponering (typ HDR).
Sparat ned i dels råformat (64 bitar RGBI Tiff), 48 bitar Tiff samt JPG.
Använder ProPhoto färgrymd vid editering och "framkallning".
TIFen använder jag när jag skall redigera fotot, jpg för snabbvisning.
TIFen raderar jag när jag är klar, JPG är slutformatet vid visning.
Råformatet om jag behöver "Skanna" om med andra inställningar.
Har även köpt en färgkalibrator för skärmarna samt kalibrerat skrivaren, för att få resultatet så bra som möjligt.


Upp
 Profil  
 
InläggPostat: 16.49 2017-11-06 

Blev medlem: 12.43 2013-03-19
Inlägg: 250
Ort: Östersund
Japp.


Upp
 Profil  
 
InläggPostat: 17.01 2017-11-06 
EF Sponsor
Användarvisningsbild

Blev medlem: 17.53 2010-01-04
Inlägg: 4471
Ort: Skogen mellan Uppsala-Gävle
Skitsnyggt mAVRick! :tumupp:
Himla bra redovisning och bilder.

Den enda kritiken du får av mig är att du bifogat för få gamla fina bilder :)


Upp
 Profil  
 
InläggPostat: 17.03 2017-11-06 
EF Sponsor
Användarvisningsbild

Blev medlem: 15.25 2007-10-29
Inlägg: 2461
Ort: Kristinehamn
Kul Projekt!

Även jag har lite sådant här att ta tag i från min gamle far bland annat så det här blir kanske en nytändning att ta tag i det hela.

Den som hyr är feg. ;)

/ Tompa


Upp
 Profil  
 
InläggPostat: 17.16 2017-11-06 

Blev medlem: 08.42 2016-01-26
Inlägg: 297
Ort: Helsingborg
Jättebra gjort mAVRick. Värt en :bravo: :bravo:


Upp
 Profil  
 
InläggPostat: 17.38 2017-11-06 
Användarvisningsbild

Blev medlem: 17.51 2007-12-13
Inlägg: 579
Ort: Stockholm
Enkelt och troligen kul projekt!
Tummen upp!



.


Upp
 Profil  
 
InläggPostat: 18.38 2017-11-06 

Blev medlem: 07.14 2007-04-11
Inlägg: 3410
Ort: En_stad
Vad är det som gör att bottenplattan inte kan
vrida sig så att bilder ramlar ur när man har
sådana där magasin lösa?
(Jag har inget i verkligheten att titta på.)


Upp
 Profil  
 
InläggPostat: 18.42 2017-11-06 

Blev medlem: 12.43 2013-03-19
Inlägg: 250
Ort: Östersund
Det sitter en fjäderbelastad spärr som öppnar sig när man lägger på magasinet på 'mittpucken' på projjen.
Och tack för alla positiva kommentarer!


Upp
 Profil  
 
InläggPostat: 18.45 2017-11-06 

Blev medlem: 07.14 2007-04-11
Inlägg: 3410
Ort: En_stad
Okej.
:tumupp: från mig med.


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 49 inlägg ]  Gå till sida 1, 2, 3, 4  Nästa

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 5 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
cron
   
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010