I learned that the camera has a one button mode that allows it to snap off a capture as soon as you turn it on. My project will take place over a period of weeks, so running it all off the internal battery of the GoPro was not an option.
The GoPro has a USB port on the side for charging.
I got a dual USB wall wart to power both the Arduino and the GoPro and will leave them plugged in, so I don’t need to worry about battery capacity. The Arduino likely would run a long time on a battery pack but I have found that the GoPro with the EyeFi SD card I will use seems to go through a fully charged battery pretty quickly.
If I didn’t mind downloading the pics manually before the memory card got full, I could use a standard SD card instead of the EyeFi card and probably run the whole thing on a battery. A 32 GB SD card would hold a fair amount of 11 MP shots.
I also didn’t want to have to remove the SD card from the GoPro when it got full, so I got an Eye-Fi SD card that automatically transfers the images from the GoPro to a nearby computer that is on a wireless network.
I realized that if I could turn the camera on remotely, it would take one picture, then I could turn it off until the next time I needed a picture.
With a 20 minute interval between pictures, the Arduino would be running the whole time, but the GoPro would be totally off except for when it was taking the picture or transferring it to the PC. Since both the Arduino and the GoPro are plugged into USB power sources, power consumption was not a consideration for my application.
All I needed was a way to turn the camera on and off with the Arduino, and a connector to access the GoPro bus on the back of the camera.