Click to return to the page

Take 360 panoramics on iPhone

DIY panoramic photos on iPhone

iphone360.ilyatitov.com

DIY Panoramic Bracket for iPhone

This really takes the 360 photography to the new level. Press the button and then watch the phone snap away. I can also do a full spherical panorama by running this 3 times with phone at different angles to cover the ground, horizon and sky.



Focus, exposure and white balance hold are achieved by tapping and holding on the desired focus point, after that the iphone will indicate the focus is locked. Additional control can be achieved with other apps allowing manual white balance and exposure adjustments.

Bits involved

 


Microcontroller program
int stepDelay = 120;
int motor1Step = 0;
int stepSequence1[] = {1,0,0,1};
int stepSequence2[] = {1,1,0,0};
int stepSequence3[] = {0,1,1,0};
int stepSequence4[] = {0,0,1,1};
int stepsInTurn = 48;
int currentStep = 0;

int turnStatus = 1;

void setup() {
pinMode(0,OUTPUT);
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
moveBy(-1);
delay(1600);
digitalWrite(0,HIGH);
delay(400);
digitalWrite(0,LOW);
}

void loop() {

if (turnStatus != -1){
delay(200);
digitalWrite(0,LOW);
while (turnStatus == 1 && currentStep
moveBy(1);

if (0 == (currentStep+1)%((stepsInTurn/16)-(stepsInTurn%16))){
delay(60);
moveBy(-1);
delay(30);
moveBy(1);
delay(1000);
digitalWrite(0,HIGH);
delay(400);
digitalWrite(0,LOW);
delay(400);
}
delay(stepDelay);
digitalWrite(0,LOW);
}
digitalWrite(0,LOW);
turnStatus = -1;
currentStep = 0;
}
}

void moveBy(int dir){
motor1Step += dir;
currentStep += dir;
if (motor1Step >= 4){motor1Step = 0;}
if (motor1Step < 0){motor1Step = 3;}
digitalWrite(1,stepSequence1[motor1Step]);
digitalWrite(2,stepSequence2[motor1Step]);
digitalWrite(3,stepSequence3[motor1Step]);
digitalWrite(4,stepSequence4[motor1Step]);
}