Compare commits

...

2 commits

Author SHA1 Message Date
3dd1c97f2b Moved G1 key on index 2025-09-01 18:05:52 +02:00
7ef728ffa1 blog: translate arduino-nikon-remote 2025-09-01 17:48:12 +02:00
4 changed files with 91 additions and 3 deletions

View file

@ -77,7 +77,7 @@ title = "Hejmo"
* [Publika ŝlosilo GPG](/tuxmain.asc)
* <a rel="author" href="https://toot.aquilenet.fr/@tuxmain">Mastodon</a>
* [Kontaktformularo ZettaScript](//zettascript.org/contact.php)
* [Libera Mono Ğ1](https://demo.cesium.app/#/app/wot/45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ/) (publika ŝlosilo: `45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ:CUw`)
* [Libera Mono Ğ1](https://demo.cesium.app/#/app/wot/45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ/)
* [GitLab Framagit](https://framagit.org/ZettaScript) (projektoj)
* [GitLab Duniter](https://git.duniter.org/tuxmain) (projektoj pri la libera mono)
* [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (aliaj projektoj pri la libera mono)
@ -87,4 +87,12 @@ title = "Hejmo"
<a href="https://liberapay.com/tuxmain/donate" title="Doni kun Liberapay"><img alt="Doni kun Liberapay" src="/img/liberapay-donate.svg"/></a>
<div>
<picture>
<source srcset="/img/gbreve-white.svg" media="(prefers-color-scheme: dark)"/>
<source srcset="/img/gbreve.svg" media="(prefers-color-scheme: light)"/>
<img decoding="async" src="/img/gbreve.svg" alt="Ğ" loading="lazy" style="vertical-align:middle;height:32px"/>
</picture> <span>Doni en Ğ1 al <code>45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ:CUw</code></span>
</div>
⬘ Doni en Ethereum al `0x5e2101A637b28e561432fda9ffADB2b0D12c2116`

View file

@ -77,7 +77,7 @@ title = "Accueil"
* [Clé publique GPG](/tuxmain.asc)
* <a rel="author" href="https://toot.aquilenet.fr/@tuxmain">Mastodon</a>
* [Formulaire de contact ZettaScript](//zettascript.org/contact.php)
* [Monnaie Libre Ğ1](https://demo.cesium.app/#/app/wot/45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ/) (clé publique&nbsp;: `45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ:CUw`)
* [Monnaie Libre Ğ1](https://demo.cesium.app/#/app/wot/45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ/)
* [GitLab Framagit](https://framagit.org/ZettaScript) (projets en général)
* [GitLab Duniter](https://git.duniter.org/tuxmain) (projets pour la monnaie libre)
* [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (autres projets pour la monnaie libre)
@ -87,4 +87,12 @@ title = "Accueil"
<a href="https://liberapay.com/tuxmain/donate" title="Donner avec Liberapay"><img alt="Donner avec Liberapay" src="/img/liberapay-donate.svg"/></a>
<div>
<picture>
<source srcset="/img/gbreve-white.svg" media="(prefers-color-scheme: dark)"/>
<source srcset="/img/gbreve.svg" media="(prefers-color-scheme: light)"/>
<img decoding="async" src="/img/gbreve.svg" alt="Ğ" loading="lazy" style="vertical-align:middle;height:32px"/>
</picture> <span>Donner en Ğ1 à <code>45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ:CUw</code></span>
</div>
⬘ Donner en Ethereum à `0x5e2101A637b28e561432fda9ffADB2b0D12c2116`

View file

@ -75,7 +75,7 @@ title = "homepage"
* [GPG public key](/tuxmain.asc)
* <a rel="author" href="https://toot.aquilenet.fr/@tuxmain">Mastodon</a>
* [ZettaScript contact form](//zettascript.org/contact.php)
* [Libre Currency Ğ1](https://demo.cesium.app/#/app/wot/45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ/) (pubkey: `45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ:CUw`)
* [Libre Currency Ğ1](https://demo.cesium.app/#/app/wot/45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ/)
* [GitLab Framagit](https://framagit.org/ZettaScript) (projects in general)
* [GitLab Duniter](https://git.duniter.org/tuxmain) (projects about libre currency)
* [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (also projects about libre currency)
@ -85,4 +85,12 @@ title = "homepage"
<a href="https://liberapay.com/tuxmain/donate" title="Donate with Liberapay"><img alt="Donate with Liberapay" src="/img/liberapay-donate.svg"/></a>
<div>
<picture>
<source srcset="/img/gbreve-white.svg" media="(prefers-color-scheme: dark)"/>
<source srcset="/img/gbreve.svg" media="(prefers-color-scheme: light)"/>
<img decoding="async" src="/img/gbreve.svg" alt="Ğ" loading="lazy" style="vertical-align:middle;height:32px"/>
</picture> <span>Donate Ğ1 at <code>45GfjkWCWQhJ3epJVGC2NSg1Rcu4Ue1vDD3kk9eLs5TQ:CUw</code></span>
</div>
⬘ Donate Ethereum at `0x5e2101A637b28e561432fda9ffADB2b0D12c2116`

View file

@ -0,0 +1,64 @@
+++
title = "Timelapse and space birds"
date = 2025-09-01
description = "Photo trigger and presence detector"
insert_anchor_links = "left"
[taxonomies]
tags = ["Arduino", "electronics", "photo"]
+++
## A robin in the stars
Robins, sparrows, blackbirds and titmouses visit the garden all day but fly away a soon as a hominid approaches.
Then how to picture them without a telephoto lens?
By crafting a trigger with an infrared distance sensor!
![A robin, standing on the corner of a wooden garden table, is looking through a small round flat recipient in front of it, next of which are scattered a few seeds. In the recipient appear stars and nebulae.](dream1.webp)
![The robin looks more closely in the recipient, still staying at a distance. In the stars there is a penguin with a wing out of the recipient.](dream2.webp)
![The robin now shows its back to the camera. It's just above the recipient. Two penguins came out of the recipient, in which a starry sky is still visible. One of them jumped on the corner of the table, wings and legs deployed. The other one is following, standing on the corner, looking toward the ground.](dream3.webp)
[More high-res photos are available here.](/img/birds/)
## Humble timelapse
There is also a periodic mode, to make a timelapse.
In the video, brightness varies because I forgot to disable automatic white balance.
<iframe title="Timelapse - trees and sky - 2020-10-31" width="560" height="315" src="https://flim.txmn.tk/videos/embed/3acae4de-2669-4b48-867d-41a980bfce9c" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>
## The trigger
My camera (Nikon D3000) has an infrared sensor but I don't have the remote that works with it.
Fortunately someone published an Arduino program for replicating the remote's signal: [_Nikon Remote Emulator_ by Gough Lui](https://goughlui.com/2013/12/06/teardown-and-project-clone-nikon-ml-l3-ir-remote-and-emulation/).
You only need a microcontroller and an infrared LED (salvaged from an old TV remote).
The bird detector is an infrared distance sensor GP2D12, capable of (very approximately) evaluating distance from 20 to 80cm.
It's mounted on an articulated arm, at a distance from the camera (to be able to tune the focal and avoid frightening the birds).
The switch allows to choose a mode (either detector or fixed interval), and a potentiometer to choose a value (distance in the detector mode, duration in the interval mode).
The program also triggers the camera every few minutes to prevent it from going to sleep mode (which would require a manual reset).
The case is designed for an Arduino Micro but an ATtiny402 would be more than enough.
The articulated arm can be fixed on the camera's tripod.
![Articulated arm made of double metal rods. On one end, a collar fixes the apparatus on the tripod. Between the two segments, a knee-like joint. On the second segment, the case containing the Arduino, the LED, the switch and the potentiometer. On the last end, the infrared sensor, connected to the case by three wires.](remote.webp)
* [nikon_ir_trigger.ino](nikon_ir_trigger.ino) (Arduino program)
* [timelapser.scad](timelapser.scad) (3D model [OpenSCAD](https://openscad.org/), for 3D printing)
* [pitch.scad](pitch.scad) (screw pitch and bolt support)
## Credits
The montage with the robin includes two images of which I am not the author:
* _Adelie Penguin (Pygoscelis adeliae) group on iceberg, Antarctic Peninsula, Antarctica_, image shared everywhere on the Internet without attribution, and I can't find the original publication.
* [Westerlund 2, photographed by the Hubble Space Telescope (heic1509a)](https://esahubble.org/images/heic1509a/)
Images edited with Gimp, optimized with YOGA Image Optimizer.
No animal was hurt during the photo shootings.
The participants did not sign any image rights but were remunerated in seeds.