Arduino+ Canon, hiukan toisenlaista kuvaamista

Minulle yksi osa-alue valokuvauksessa on tekniset kokeilut. Haluan väliin kokeilla vanhoja tekniikoita ja soveltaa niitä moderneille välineille. Minua kiinnostaa ns. high speed- kuvaus ja sen vanhat tekniikat.

Nykypäivänä lähes kaikkeen valokuvaukseen saa erikoisvälineet valmiina, joten oman rakentämisen ja kokeilemisen voi korvata valmilla laitteilla. Esim. tässä jutussa kerrotaan kuinka Arduinosta saadaan hyvin yksinkertaisesti rakennettua kopautuksen tunnistava laukaisin kameralle. Samaan lopputulokseen pääsee myös käyttämällä kaupallisia tuotteita kuten esimerkiksi Pluto-triggeriä. Kyseiselle triggerille saa erilaisia antureita mm. äänelle, valolle ja infrapunavalolle.

Arduino

Itse teen kuitenkin paljon omia kokeiluita ja pyrin niillä pitämään yllä omaa teknistä osaamista ja tämä mahdollistaa silloin myös ”järjettömien” ratkaisujen tekemisen kuten Ikean Lack– pöydän käyttämisen anturina.

Kuvituskuvan tilanteessa pöytä tunnistaa pyödän pintaan osuvan herneen ja laukaisee kameran. Samaten jutun yläkuvassa on tunnistetettu AREA 51- merkinnällä olevaan pahviin osuva herne.

Kameran ja salaman ohjaamiseen valitsen usein työkaluksi Arduinon eli open source- pohjaisen kehitysympäristön. Se on helppokäyttöinen sekä yksinkertainen ohjelmoida C-kielen tyyppisellä kielellä.

”Arduino is an open-source electronics platform based on easy-to-use hardware and software. It’s intended for anyone making interactive projects.”, Arduino.cc- sivusto.

Oma valintani perustuu siihen, että Arduino on edullinen kehitysympäristö sekä hyvin helposti hankittavissa. Itse ostan omat tuotteeni tamperelaisesta Elektori- liikkeestä, mutta myöskin vaikkapa Triopakilla on hyvät valikoimat tuotteita.

Canonin ohjaaminen Arduinolla

Peilillisen Canonin, jossa on joko 2.5 millin stereoplugi tai N3- liitin, ohjaaminen on hyvin yksinkertaista. Käytännössä siellä tarvitsee vain oikosulkea joko tarkennuksen tai laukaisun nastat. Ja kun toimii vain käsitarkennuksellä niin shutter- ground- välin oikosulkeminen laukaisee kameran. Purkamalla halvimman langallisen kaukosäätimen näkee, että ne on toteutettu samalla tavalla.

Tästä ajatuksesta pääsemme nopeasti kiinni Arduinoon. Sillä on hyvin helppo toteuttaa ohjelmallisesti kameran laukaisu eli kolmella komponentilla saa rakennettua ohjaimen, joka laukoo kameraa. Ohjainta voi käyttää timelapsekuvaamiseen eli intervalometrinä.

Yksinkertaisin tapa ohjata Canonia on käyttää optoerotinta sekä sekä vastusta apuna. Optoerottimella erotetaan kamera Arduinosta ja päinvastoin. Ja kameran ohjaus tapahtuu yhden digitaaliportin tason muutoksella eli käytännössä tarvitaan vain muutama rivi ohjauskoodia kameran ohjaamiseksi.

Käytännössä näin yksinkertaisella elekroniikalla ja koodilla voidaan rakentaa yksinkertainen intervalometri eli laite joka laukoo kameraa säntillisin väliajoin.

Kuten koodista pystyy lukemaan, niin kameran laukaisu on pinnissä kaksi ja laukaisunappi painetaan 200 millisekunnin ajaksi alas. Ja Arduino on helppokäyttöinen eli ns. loop- rakenteessa pyöritetään samaa ohjelmaa jatkuvasti. Eli alla oleva ohjelma laukoo kameraa viiden sekunnin välein niin kauan kuin Arduinossa on virrat päällä.

int shutterPin = 2;
int shutterPressDelay = 200;


void setup() {
    pinMode(shutterPin, OUTPUT);

}

void loop() {
     digitalWrite(shutterPin, HIGH);
     delay(shutterPressDelay);
     digitalWrite(shutterPin, LOW);
     delay(5000);
}

Ja tästä päästään nopeasti kiinni kopustusanturiin. Yksinkertaisin tapa tehdä koputusanturi on käyttää pietzo-elementtiä apuna. Kyseistä asiasta on hyvä tutoriaali Arduino.cc- sivuilla.

Eli yhdellä pietzo-elementillä ja 1 Megaohmin vastuksella voidaan tehdä anturi, joka reagoi esim. pöydän tai oven pintaan kiinnitettynä kopautukseen. Eli ns. analogiportin kautta luetaan jännitteen muutos ja reagoidaan siihen.

Yhdistämällä kameran ohjaus ja pietzo-elementin luku samaan ohjelmaan saadaan helposti tehtyä kopautukseen perustuva kameraohjain. Ohjaimen koodikin on hyvin yksinkertainen.

const int knockSensor = A0; 
const int threshold = 50;  
int shutterPin = 2;
int shutterPressDelay = 200;

int sensorReading = 0;     


void setup() {
  pinMode(shutterPin, OUTPUT);
  }

void loop() {
  sensorReading = analogRead(knockSensor);

  if (sensorReading >= threshold) {
    digitalWrite(shutterPin, HIGH);
    delay(shutterPressDelay);
    digitalWrite(shutterPin, LOW);
    delay(500);
    }
  
 
}

Tällä ratkaisulla pystyy yksinkertaisesti rakentamaan ns. knock- anturiin perustuvan kameran laukaisimen ja hiukan muokkaamalla ja komponenttejä lisäämällä voi vielä rakentaa säädettävän ajastuksen. Tällä hetkellä ainoa viive tulee kameran omasta laukaisumekanismista joka on sekunnin osia. Pelkällä salamalla toimiessa viiveen voisi käytännössä kokonaan poistaa.

Ja mihin tätä ratkaisua voi helpolla käyttää. Tuon avulla on hyvin helppo toteutta erilaisia läiskähdys tai kovalle pinnalle tapahtuvien tiputusten kuvaamista. Ja tuosta on nopea lähteä jalostamaan muita ratkaisuja anturien avulla tapahtuvaan kameran laukaisuun.

Ja kuten alussa sanoin, niin tähän saa myös valmiit laitteet markkinoilta jos ei itse halua harrastaa rakentamista ja tutkimista.

Varoituksen sana sitten vielä tähän loppuun. Jos et ole ihan varma mitä olet tekemässä, niin pohdi kahdesti että haluatko tehdä. En ota vastuuta muiden kuin oman kamerani kohtalosta.

Kunhan kuvailen, Kari…

P.S. Koodiesimerkeissä ei ole kommentteja. Ne ovat sen verran yksinkertaisia, että muuttujien nimistä voi arvata niiden tarkoituksen.

 

kari Written by:

2 Comments

  1. Jari Laaksonen
    29.5.2020
    Reply

    Mitenkähän onnistuisi kännykän kameran laukaisu Arduinolla ja vastaavalla bluetooth-laukaisimella joka on noissa selfie-kepeissä?

    • kari
      29.5.2020
      Reply

      En ole ikinä tutkinut, mutta jos sellaisen purkaisi niin selviäisi. Jos systeemissä on painonappi, niin sen voisi todennäköisesti saada toimimaan samalla tavalla kuin tuon kameran laukaisun.

      Täytyy joskus tutkia.

      Kari…

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *