top of page

micro:bit DSLR remote control


Régóta vonz a fotózás de a tükörreflexes gépek világába csak nemrég csöppentem bele. Hamar rájöttem, hogy a tökéletes fotó elkészítéséhez a természet adta lehetőségeken, egy jó kompozíción és állványon kívül szükségem lesz egy távkioldóra is. Természetesen alkalmazható a fényképezőgép beépített időzítője is, amelyet magam is sokat használtam mielőtt beruháztam volna egy vezetékes DSLR kontrollerre.

Az általam használt váz: Olympus E520

Távkioldóhoz használt interface: RM-UC1

Pár hónapja megszületett az elhatározás és beruháztam egy vezetékes kontrollerre, amely JJC SO2 névre hallgat, és nem tud mást csupán az alap funkciókat: fókuszálás és exponálás vezérlése.

Már kisgyerekként is érdekelt az, ami a motorháztető alatt rejtőzködik, így a vásárlás után 1 nappal már szét is szedtem az eszközt és meglepődve tapasztaltam, hogy egy faék egyszerű szerkezettel állok szembe.

Az RM-UC1-es kommunikáció 3 vezetékből áll:

- Váz földelése

- fókusz kivezetése (kb 1.3 V-on lebeg)

- exponálás kivezetése (kb 1.3 V-on lebeg)

A rendszer működése a következő:

1. Fókusz kivezetés leföldelése esetén a gép elkezdi a fókuszálást (manuális fókusz esetén természetesen semmit sem csinál).

2. Ha a fókusz kivezetés le van földelve és az exponálás kivezetést is leföldeljük, a gép egészen addig készíti a képeket, amíg ez az állapot fennáll (a fókusz leföldelése akkor is feltétel, ha a gép manuális fókuszra van állítva). Akár az exponálás, akár a fókuszálás elengedése esetén az adott kivezetés újra az eredeti lebegő 1.3 V-os feszültségre kerül, a gép felfüggeszti a képek készítését (célom a teljes default állapot elérése volt: mindkét kivezetést egyszerre engedem el, hogy visszanyerjék a kiinduló 1.3 V-os feszültségüket). Maga a gyári távvezérlő is ezen az elven működik, tehát először a fókuszáló lapkát érintjük a földeléshez, majd az exponálást:

JJC SO2 szétbontva

A képen a legfelső lemez a földelés. Ha a gombot lenyomjuk az első ütközésig, akkor a fókuszt vezérlő lemezhez ér hozzá, ha a második kattanásig nyomjuk, akkor a leföldelt fókusz hozzáér az exponáló lemezhez, leföldelve ezzel mindkét vezetéket. Elengedés esetén természetsen fordított sorrendben áll vissza mindkét vezeték az eredeti 1.3 V-os feszültségre.

Ezt a funkcionalitást micro:bit segítségével is könnyen megvalósíthatjuk. Ez azonban számomra nem volt elég. Elhatároztam, hogy a micro:bit-et Bluetooth-on keresztül egy okostelefonnal fogom vezérelni, miközben az megvalósítja a DSLR távirányítót. Ezzel a megoldással kapásból egy tetszőlegesen programozható vezeték nélküli távkioldót kapok.

A vezérlő kábel távirányítóhoz kapcsolódó része egy 2.5mm-es jack csatlakozó. Sajnos 2.5 mm-es lengő csatlakozót sehol sem kaptam, ezért egy 2.5mm -3.5mm JACK átalakítóval kötöttem egy lengő 3.5mm-es csatlakozóra, amelynek a kivezetéseit közvetlenül a micro:bit-re forrasztottam.

A rendszerterv:

- micro:bit P0 - fókusz vezérlése

- micro:bit P1 - exponálás vezérlése

- Bluetooth-on átküldött "0" -> fókuszálás aktiválása

- Bluetooth-on átküldött "1" -> exponálás abban az esetben ha a fókuszálás már aktív

- Bluetooth-on átküldött "2" -> fókuszálás és exponálás addig, míg egy újabb parancs nem érkezik (sorozatfelvétel készítése a STOP feltételig).

- a micro:bit jelezze, ha a telefon sikeresen kapcsolódott hozzá Bluetooth-on

- a micro:bit jelezze, ha a telefon sikeresen lekapcsolódott róla

Az elkészített JACK csatlakozás:

micro:bit JACK csatlakozás P0 és P1 Pinekre

A megvalósított szoftver BlockEditor segítségével:

DSLR remote code part1

A szoftver induláskor a P0 és P1 pinek le/felhúzó ellenállását kikapcsolja. Erre azért van szükség, mert a fókusz és az exponáló lábakat a leföldelés után el kell engedni, különben a gép a végtelenségig készíti a képeket ha a lehúzó ellenállás aktív. Amennyiben a felhúzó ellenállás aktív - a lebegő 1.3 V helyett a micro:bit tápfeszültséget kapcsolja a kivezetésekre, ami 3.3 V. Ez az érték zavart okozhat a gép működésében.

Engedélyezni kell a bluetooth uart szolgáltatást, hiszen az okostelefonon egy egyszerű bluetooth-uart terminált fogunk futtatni a parancsok küldésekor. Meg kell hívni a bluetooth advertise UID brick-et, így a micro:bit elkezdi hirdetni magát induláskor Bluetooth-on. Ez ahhoz kell, hogy a telefon lássa az eszközt.

Ha nem kapcsolódott a micro:bithez senki, akkor ezt egy négyzet kirajzolásával jelezzük.

Ha az okostelefon sikeresen kapcsolódott a micro:bit-hez, kirajzol egy kitöltött négyzetet.

A Bluetooth kapcsolat megszakadása, vagy tudatos lecsatlakozás esetén az eredeti ábrát rajzolja ki a micro:bit.

A P0 és P1 kivezetésekre véletlenül kapcsolt tápfeszültséget 100ms-enként leválasztja ha nem tudatos digital vagy analog write segítségével húztuk az adott lábat tápfeszültségre.

Minden Bluetooth-on átküldött parancs végét sortöréssel jelezzük. Figyelni kell arra is, hogy az érkezett üzenet egy karakter, amit logikai felhasználás előtt integer típusra kell castolni (parse to integer).

Ha "0" karakter érkezett: aktiváljuk a fókuszt.

Ha "1" karakter érkezett és a fókusz már aktív - exponálunk.

Ha a fókusz aktív, de nem "1" érkezett - a parancs értelmezhetetlen.

Ha "2" érkezett, aktiváljuk a fókuszt és az exponálást is (ez a mód kezeli a sorozatkészítést).

Ha értelmezhetetlen parancs érkezett - IDLE állapotba állítjuk a DSLR_state változót.

500us várakozás. Ez elegendő ahhoz, hogy a fókusz és az exponálás aktiválása után a gép érzékelje a P0 és P1 földelését, de nem túl sok ahhoz, hogy többször is képet készítsen (ez a késleltetés erősen gépfüggő).

Ha letelt az 500us és a DSLR_state 0-ba állításával jeleztük, hogy IDLE állapotot kérünk - elengedjük a P0 és P1 kivezetések földelését, hogy azok újra az 1.3V-os feszültséget vehessék fel.

FIGYELEM! A "2"-es parancs elküldésekor látható, hogy az állapotgép DSLR_state = 2 lesz. Ez biztosítja azt, hogy az utolsó, P0 és P1 kivezetéseket elengedő "if" feltétele nem teljesül. Egy újbóli "2" érkezésekor viszont a DSLR_state = 0 kerül beállításra. Ezzel a megoldással biztosítja a szoftver a folyamatos képkészítést a 2 db "2"-es parancs között!

FONTOS! A micro:bit-en lévő Nordic chip bluetooth-uart szolgáltatását elég nehéz beüzemelni a default "párosítás" opcióval, ezért a legegyszerűbb, ha ezt kikapcsoljuk:

Click on Project Settings

Turn off pairing

Link a publikált BlockEditor projekthez:

Android applikáció:

Serial Bluetooth Terminal-t javaslom, de működik a micro:bit UART Terminal nevű applikációval is! Kapcsolódás a micro:bit-hez Bluetooth-on a Serial Bluetooth Terminalt használva.

Parancsok tesztelése:

"0" - fókuszálás aktiválása

"1" - exponálás aktiválása

majd 500 us elteltével DSLR IDLE állítása.

"2" parancs küldése

- fókuszálás

- exponálás

- ismétlés egészen addig, míg újabb "2" nem érkezik.

Új "2" parancs hatására DSLR IDLE állítása.

"5" parancs küldése:

- nem implementált, ismeretlen parancs, hibaüzenet fogadása a micro:bit-től:

- "DSLR unknown command"

!FIGYELEM! A tükörreflexes gépek eltérő interface-t használnak a távkioldókhoz. Mielőtt megépíted a részletezett projektet - informálódj, nézd meg, hogy a te géped milyen csatlakozást igényel. Csak ennek tudatában kapcsolj a fényképeződre bármilyen áramkört!

Featured Posts
Check back soon
Once posts are published, you’ll see them here.
Recent Posts
Archive
Search By Tags
No tags yet.
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page