Skip to content
This repository has been archived by the owner on Oct 6, 2019. It is now read-only.
mikenz edited this page Jul 18, 2011 · 5 revisions

Welcome to the trackview-arduino wiki!

So all this code isn't much use without the matching hardware. So here's some info to go along with all the ENABLE_* options at the top of the code. In theory any combination of the options should work except enabling more then one gps - TinyGPS xor SirfGPS.

Core hardware:

  • Arduino Mega, currently tested with Seeeduino's Mega running on 3.3v. A 3.3v board makes life easier with the 3.3v I2C sensors.
  • Power for the Arduino Mega, I used 6 x AA batteries in a holder - A power switch also makes life simpler
  • 5 x GoPro Hero HD cameras
  • Camera Housing for your cameras.

Camera Controller

This goes between the Arduino and the 5 camera circuits. Camera Controller

5 x Camera Circuits

This puts the Camera in to Slave mode and connects to the Camera Controller to allow the Arduino to act as a master and trigger the camera.

Program 0x05 into the first byte of the eeprom before you assemble this. The GoPro looks for this to know it should act as a slave. Camera Circuit

5 x Camera Power

As the cameras don't have any batteries on them in the housing, you'll need to power them. I used 3 x AA rechargeable batteries from Energizer per camera. I left one running and it gave about 5000 photos, so at one ever 5 meters, that's about 25km or about as much as I'm willing to walk in one day.

Camera Power

MicroSD shield

The micrSD is used to store all the data about location and when photos were taken. This shield isn't just plug and play on a Mega as the Mega's SPI pins are different so you'll have to wire it up. MicroSD

Optional hardware:

Turn these on or off in the top of trackview.pde.

#define ENABLE_FREEIMU  // FreeIMU
//#define ENABLE_TINYGPS  // Tiny GPS serial NMEA
#define ENABLE_SIRFGPS  // Sirf Binary GPS serial
#define ENABLE_HMC6352  // HMC6352 I2C compass
#define ENABLE_BMP085   // BMP085 I2C Barometer
#define ENABLE_LDR      // LDR for relative light level
#define ENABLE_BEEP     // Piezo Speaker for audio feedback
#define ENABLE_LCD12864 // Serial LCD12864 128x64 Grahpical display
#define ENABLE_LEDBUTTONS // Go/Reset/Stop buttons

ENABLE_BEEP

Just a simple piezo for feedback Enable beep

ENABLE_LCD12864

I like to see what's going on. I use a 128 x 64 pixel LCD Enable LCD12864

ENABLE_HMC6352

This is to record the heading of the cameras. I have the North on the board aligned with camera 1. Enable HMC6352

ENABLE_FREEIMU

This is to record the pitch and roll of the camera head. Enable FreeIMU

ENABLE_LDR

Records the light level, in future I may use this to warn if the light level is too low. But for now it's just recorded Enable LDR

ENABLE_LEDBUTTONS

Three illuminated buttons that I use to control everything. Without these the code with just start recording when it's turned on and there's no graceful way to shut it down. Enable LED Buttons

ENABLE_TINYGPS

Use the TinyGPS library with a serial GPS outputing NMEA sentences Enable TinyGPS

ENABLE_SIRFGPS

Use my SirfGPS library with a serial GPS in SiRF Binary mode. It will send the command to put the GPS into binary mode on start up, just in case it isn't already. Just wire it up the same as for TinyGPS, above, but also connect the Arduino's tx3 line to the GPS's rx line.

ENABLE_BMP085

Just for fun - gives a second altitude reading, barometric pressure and temperature. Sorry no circuit diagram, it's just I2C so same as the HMC6352 Digital Compass - wire it in parallel.