Next year I have it in my calendar to look at setting up a time-lapse camera to record the fall colors.
You can see that the trees are definitely a bit orangier than they were in the first shot. Since I’ll be away for the next several days I expect the colors will be on full display and I’ll have missed any transition. So it goes.
Now, to the topic of time-lapse cameras. I have controller software from Canon, and a laptop. So it ought to be easy. Just kidding! I remember a friend from Bell Labs got interested in time-lapses back in the mid 90s and he did an impromptu talk at USENIX about the difficulty of doing such things. Laptops, it turns out, like to power themselves off (or nowadays, thanks to Windows 10, reboot themselves and install patches) and cameras do, too. You can’t touch a camera to change the batteries because the tiniest bump will throw the whole scene out of register. Many cameras put the battery swap port on the bottom, where the camera mounts to the tripod, etc. If I recall correctly, the friend’s solution was a relay on an RS-232 port of a laptop running BSDi – but that was before laptops had power-saving options programmed into the BIOS. And that’s not even taking into account all the NSA malware; they could pulse the fans to ruin a frame, or something.
I looked at an embedded device (i.e.: a computer with less features) such as a “Pixel Wireless Release Shutter Control” [am] but those are too feature-free: it doesn’t occur to them that someone might want to take a picture every hour for 2 weeks. Come to think of it, I do have a laptop loaded with OpenBSD, and I have a USB relay – I wonder if there are BSD drivers for the relay? Yecch. I’m probably over-thinking this. The last time I did something comparable I trained a camera to respond to voice commands (“shoot one” or “shoot every 5 seconds”) using the USB relay and VoiceAttack – this was so I could set stuff up in scenes without having to run back and forth to operate the camera, or risk tugging on a remote cable and knocking it off register. People thought it was kind of spooky when I could give the camera very specific instructions and it would usually follow them, or the laptop would reply, “I’m sorry, Dave, I’m afraid I can’t do that” in the voice of HAL9000.
kestrel says
Made me lol.
I never thought about that – it is a complex problem! I suppose you could use a low-tech camera or what I used to think of as a “real” camera so at least it would not run out of power. But how to fire it! It’s a problem.
I hope that is not hay being left to rot in the field. Breaks my heart when I see people doing that.
Curt Sampson says
Arduino (or any similar microcontroller kit) is your friend.
Marcus Ranum says
Curt Sampson@#2:
Arduino (or any similar microcontroller kit) is your friend.
Yeah. I’ve been avoiding getting into those but that’s definitely the way to go. There’s probably a demo set-up that does 99.9% of what I am looking for.
Reginald Selkirk says
Do a search on: Raspberry Pi time lapse
The RPi runs several flavors of Linux, and other OSes as well.
jrkrideau says
@ 1 kestral
I hope that is not hay being left to rot in the field. Breaks my heart when I see people doing that.
It looks like those are round bales—look at the spacing. From what I observe around here, one can leave round bales out for a long time without great losses. So we can hope that they will be picked up later in the year when things are slower.
Come to think of it, a question for Marcus. How come the rest of the field was not mowed? Water?
voyager says
I have no idea what half those words mean, but for something slow like leaf turning a single shot or two per day should suffice. I can set my coffee pot to turn on at a specific time so surely a computer camera could be programmed to do the same. If battery is a problem maybe try plugging it in.
Marcus Ranum says
jrkrideau@#5:
Come to think of it, a question for Marcus. How come the rest of the field was not mowed? Water?
Good catch. That whole area leading down toward the pond is full of little springs. You can bog a tractor to the hubs very easily.
I let the farmer up the way, who has cows, cut hay in several of my fields. So those are his bales. He’s … he’s remarkably talented at cutting hay right before it rains. I don’t think he’s a very good farmer.
Curt Sampson says
I wouldn’t use a Raspberry Pi for something like this. The usual software load is a full Linux system whose configuration and maintenance may multiply your development time by as much as an order of magnitude.
Auduino’s pleasantly simple if your task is simple. Write up a little program with a
main()
loop, compile it with GCC (they have a toy IDE that makes this really easy if you have a hobbyist software development process¹), load it up, and let it run. No OS, no worries about how it restarts on power failure, it just goes as well as your (hopefully simple) code goes.If you want to get a feel for it without spending $3 on an Arduino Nano² you could always wire up your circuit in a simulator. (There used to be an online one at
circuits.io
that was great for learning, but that seems to be gone now.)_____
¹ If you’re going to a proper dev environment for a non-trivial system you’ll want test frameworks to run unit and some functional tests on the code before you even send it over to the Arduino, and further test framework to exercise it once it’s down there. For this it’s much easier to skip the IDE, download some Makefiles or similar and go from there. You may even prefer this anyway if you’re an experienced C/C++ developer and not one of those “Visual Studio” weenies.
² An Arduino Nano is quite the overkill for this application, but that or something equally close to the standard original Arduino board is easiest for a beginner to develop on. A Digispark or similar ATtiny85 system has plenty of CPU cycles, memory and I/O for something like this but it’s not as completely trivial to interface on the hardware and communications side. But the ATtiny85 chip itself can be had for well under a dollar in small quantities if you’re making enough of these that it’s worth the extra programming hassle.