SonyのデジイチをM5StickC PLUSでリモート操作できるようにしてみた

SONY α350をArduinoで制御
SONY α350をArduinoで制御

Sonyのデジタルカメラα350を、M5StickC PLUSでリモート操作できるようにしてみました。

M5StickC PLUSは、Arduino互換機であるESP32 PICOをベースに、LCDやボタン、各種センサ、バッテリーなどを一つのケースにパッケージしたM5Stackシリーズ製品のひとつです。

▼ 半導体不足のため入手困難な場合は、ひとつ前のモデルのM5StickCも選択に入れてみてください。

この記事では、M5StickC PLUSとフォトカプラを使って、デジイチのREMOTE端子をハック方法を紹介してます。内容はぜんぜん難しくないので、ぜひ覗いていってください。前半はフォトカプラの使い方を説明し、後半でSonyのα350をArduinoで制御する方法を紹介します。M5StickC PLUSの使い方は M5StickC PLUSでArduinoをはじめよう! をご覧ください。

フォトカプラとは

フォトカプラの構造
フォトカプラの構造

フォトカプラ(Photo Coupler)とは、パッケージの中に発光素子と受光素子が対になって収納された電子部品です。発光素子にはLED、受光素子にはフォトトランジスタが使用されます。

フォトカプラの使い方

  1. LEDに電流を流すとLEDが発光します。
  2. フォトトランジスタが光を受信すると、フォトトランジスタのコレクタ(4)・エミッタ(3)間が導通します。
  3. 光に応じて、つまり入力電流の大きさによって、コレクタ・エミッタ間の電流の流れやすさは制御されます。

実際のフォトカプラは、リレーのようなスイッチとしての使い方が多いように思われます。リレーと違って大電流を流すのは難しいですが、その代わり機械的な動作がない分、リレーよりも遥かに高速に動作させることができます。 また、図のように発光素子と受光素子は光で繋がっているだけです。なので、MOSFETの代わりに絶縁したい場所に使用できます。

ところで、エフェクター回路やアナログ音響機材などでは、受光素子にCdSを使ったアナログタイプを使用することが多いです。以前にフォトカプラを自作した記事を書いた。

M5StickC PLUSとフォトカプラの配線

今回使用したフォトカプラは、LTV4N35です。 LTV4N35のデータシート

なぜか6ピンのパッケージタイプですが、4ピンのフォトカプラと同様、実際使用するピンは4つだけです。なので皆さんはお好きなフォトカプラを使って下さい。ちなみに、フォトカプラはPC817が定番で人気なようですので、どのフォトカプラを買ったら良いかお悩みの方はこちらをおすすめします。 PC817のデータシート

Arduinoとフォトカプラの配線図例
Arduinoとフォトカプラの配線図例
さて、こちらがArduinoとフォトカプラの配線図例になります。

発光素子はLEDですので、__必ず抵抗をはさんで下さい。フォトカプラは、電流オーバーで簡単に壊れます。__ 抵抗の値は何を制御するかによります。フォトカプラLTV4N35に抵抗を介して3.3Vの電圧入力して、各部分を測定してみましたので次の表を参考にしてみて下さい。ちなみに、M5StickC PLUSのGPIO出力は3.3Vです。

入力抵抗(Ω)出力抵抗(Ω)消費電流(mA)
10k4.3k0.25
1k4002.2
2201509.3

ArduinoやRaspberry PiなどのGPIOでは、それほど出力電流を出せませんので__小さくても220Ω程度__に留めておいた方が無難でしょう。

また、フォトトランジスタには方向があるため、__コレクタからエミッタは電流が流れやすくなりますが、エミッタからコレクタは流れにくい__ので、出力先に極性がある場合は注意してください。

SONYのデジイチα350をArduinoで制御

最後にフォトカプラを使った実践をしてみました。タイトルの通り、SONYのデジイチα350をArduinoで制御してみます。制御する対象となるのは、シャッターとフォーカスのみです。 実は、デジタル一眼レフを始めてみたくて最近ヤフオクでSONYのα350を安く手に入れました。α350は、2008年ごろに発売された古いカメラですが、初心者の私には十分すぎる性能です。 そんな中、このカメラには「REMOTE」という端子があり、専用のアダプタをつなぐと カメラを触らずにフォーカスとシャッターを操作できるのを知りました。そこで、この「REMOTE」端子をハックしてArduinoで操作してみたくなったのです。 さて、α350の「REMOTE」の仕様を調べた結果、海外のサイトでそのやり方を見つけることができました。__REMOTE端子のピンは3つなのですが、それぞれ、シャッター・フォーカス・コモンとなっており、単純にスイッチを使ってコモンとショートさせれば良いようです。__ 思いのほか簡単な仕組みで安心しました。

▼こちらの海外サイトも参考にしてみてください。 Make a Wired SONY ALPHA DSLR Remote (by Brad Justinen) Camera remote release pinout list

そういう訳で、フォトトランジスタの記事を書いたのもこれをやりたかったためでした。高度なことをやっているようです、ArduinoでLチカができれば誰でもできるような簡単なプログラムでカメラを制御できます。

M5StickC PLUSとa350のREMOTE端子の配線図
M5StickC PLUSとa350のREMOTE端子の配線図
こちらが、M5StickC PLUSとa350のREMOTE端子を配線した図になります。 配線図のとおり、フォトカプラを二つ使用してます。フォーカスを押す時は、あらかじめ__カメラ側のオートフォーカスをオン__にして下さい。 また、__フォーカスがHighの状態__でないとシャッターは切れません。 __配信図のREMOTE端子は、カメラ側の配列__になってますのでご注意ください。 プログラムは次の通りです。M5Stack以外のArduinoでやる場合は、M5の関数部分を書き換えて下さい。ちなみに、スイッチングが速すぎるとカメラが反応しなかったのでdelayでタイミングを調整してあります。

cpp
#include <M5StickCPlus.h>

#define FORCUS_PIN 0 // G0
#define SHUTTER_PIN 26 // G26

void setup() {
    M5.begin();
    M5.Axp.ScreenBreath(9);
    M5.Lcd.fillScreen(WHITE);
    M5.Lcd.setTextColor(BLACK);

    M5.Lcd.setCursor(0, 10);
    M5.Lcd.setTextSize(2);
    M5.Lcd.println(" Forcus:");
    M5.Lcd.println(" Press btnA");
    M5.Lcd.println("");
    M5.Lcd.println(" Shutter:");
    M5.Lcd.println(" Press btnB");

    pinMode(FORCUS_PIN, OUTPUT);
    pinMode(SHUTTER_PIN, OUTPUT);
    digitalWrite(FORCUS_PIN, LOW);
    digitalWrite(SHUTTER_PIN, LOW);
}

void loop() {
    M5.update();

    digitalWrite(SHUTTER_PIN, LOW);

    if (M5.BtnA.wasPressed()) {
        Serial.println("Doing forcus");
        digitalWrite(FORCUS_PIN, LOW);
        delay(100);
        digitalWrite(FORCUS_PIN, HIGH);
        delay(300);
    }

    if (M5.BtnB.wasPressed()) {
        Serial.println("Doing shutter");
        digitalWrite(SHUTTER_PIN, HIGH);
        delay(300);
        digitalWrite(FORCUS_PIN, LOW);
    }

}

SONY α350をArduinoで制御
SONY α350をArduinoで制御
実際の様子は下記の動画でご覧になれます。参考にしてみてください。

次は、ダイソーで買ったBluetoothリモートシャッターを使って、デジイチを制御してみたいですね。乞うご期待ください!

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム

人気のArduino互換機
Arduinoで人気の周辺パーツ
あると便利な道具
Arduinoのオススメ参考書

▼ Arduino初心者向きの内容です。ほかのArduino書籍と比べて図や説明がとてもていねいで読みやすいです。Arduinoで一通りのセンサーが扱えるようになります。

▼ 外国人が書いた本を翻訳したものです。この手の書籍は、目からうろこな発見をすることが多いです。

▼ Arduinoの入門書を既に読んでいる方で、次のステップを目指したい人向きの本です。C言語のプログラミングの内容が中心です。ESP32だけでなく、ふつうのArduinoにも役立つ内容でした。

関連記事