Stap 2: Het wijzigen van uw eigen auto fotograferen systeem.
De IR-afstandsbediening is heel gevoelig. Het kan worden verstoord door zon verlichting.
Hebt u vragen in code uploaden naar Me-plint, ga bezoek deze link.
http://wiki.makeblock.CC/index.php?title=Makeblock_Robot_Starter_Kit#Programming
In mijn code definiëren ik de knoppen zoals hieronder.
Er zijn meer details in de code.
Test: Focus Camera
Plus: vertragingstijd vergroten
Terug: vertraging van de variabele terug naar 1
Vorige: daling van de shot_time variabele (50 keer in nemen de foto)
Spelen: Neem een foto
Volgende: verhoging van de shot_time variabele (50 keer in nemen de foto)
0 cijfertoets: lang bloot modus
1 foto,
10 sec bloot (afhankelijk van de vertraging keer variabele; eenheid: 10 sec)
cijfertoets 1: 50 foto's (afhankelijk van de shot_time variabele; eenheid: 50 foto's)
1 seconde tussen het nemen van volgende foto,
0,5 sec bloot (afhankelijk van vertraging tijd variabele; eenheid: 0.5 sec)
2 cijfertoets: 50 foto's (afhankelijk van de shot_time variabele)
2 seconden tussen het nemen van volgende foto,
0,5 sec bloot (afhankelijk van de vertraging keer variabele; eenheid: 50 foto's)
3 cijfertoets: 50 foto's (afhankelijk van de shot_time variabele)
3 seconden tussen het nemen van volgende foto,
0,5 sec bloot (afhankelijk van de vertraging keer variabele; eenheid 0,5 sec)
......
9 cijfertoets: 50 foto's (afhankelijk van de shot_time variabele; eenheid: 50 foto's)
9 seconde tussen het nemen van volgende foto,
0,5 sec bloot (afhankelijk van de vertraging keer variabele, eenheid: 0.5 sec)
#include < Makeblock.h >
#include < Arduino.h >
#include < SoftwareSerial.h >
#include < Wire.h >
MeShutter myshutter(PORT3);
MeInfraredReceiver infraredReceiverDecode(PORT_6);
int timedelay = 1; Tijd vertraging variabele
int shot_time = 1; De variabele die wordt gebruikt bij het veranderen van hoe vaak u wilt schot
int i;
VOID Setup
{
infraredReceiverDecode.begin();
seriële communicatie 9600 bps initialiseren
Serial.begin(9600);
}
void loop
{
if(infraredReceiverDecode.available())
{
switch(infraredReceiverDecode.Read())
{
kast IR_BUTTON_POWER: //Not in gebruik
Serial.println ("druk op Power."); breken;
//////
kast IR_BUTTON_MENU: //Not in gebruik
Serial.println ("druk op Menu."); breken;
//////
kast IR_BUTTON_TEST: //Camera focus
myshutter.focusOn();
delay(2000);
myshutter.focusOff();
Serial.println ("druk op Test."); breken;
//////
kast IR_BUTTON_PLUS: //increase de vertragingstijd
timedelay ++;
Serial.println(timedelay);
Serial.println ("druk op Plus.");
breken;
//////
kast IR_BUTTON_RETURN: //change de tijd vertraging variabele op 1
timedelay = 1;
Serial.println(timedelay);
Serial.println ("druk op Return."); breken;
//////
kast IR_BUTTON_PREVIOUS: //decrease de variabele en neem 50 minder foto's
if(shot_time>1)
{
shot_time--;
}
anders
{
shot_time = 1;
}
Serial.println(shot_time);
Serial.println ("Press vorige."); breken;
//////
kast IR_BUTTON_PLAY: //take een foto eenmaal
myshutter.focusOn();
delay(2000);
myshutter.focusOff();
myshutter.shotOn();
delay(1500);
myshutter.shotOff();
Serial.println ("Press Play."); breken;
//////
kast IR_BUTTON_NEXT: //increase het schot tijd variabele en 50 meer foto's te nemen
shot_time ++;
Serial.println(shot_time);
Serial.println ("druk op volgende."); breken;
//////
kast IR_BUTTON_MINUS: //decrease de variabele van de tijd
if(timedelay>1)
{
timedelay--;
}
anders
{
timedelay = 1;
}
Serial.println(timedelay);
Serial.println ("Press Minus."); breken;
//////
Case IR_BUTTON_CLR:
shot_time = 1;
Serial.println(shot_time);
Serial.println ("druk op Clr."); breken;
//////
kast IR_BUTTON_0: //Used in lang-bloot (bloot 10 sec als variabele 1 en verhoging door 10 sec)
myshutter.shotOn();
voor (ik = 0; ik < timedelay; i ++)
{
delay(10000);
}
myshutter.shotOff();
Serial.println ("druk op 0."); breken;
//////
kast IR_BUTTON_1: //Take 50 foto's wanneer shot_time = 1 en wijzigingen door 50. Bloot tijd is 0,5 sec en wijzigingen door elke 0,5 sec
voor (ik = 0; ik < 50 * shot_time; i ++)
{
myshutter.shotOn();
delay(timedelay*500);
myshutter.shotOff();
delay(1000); Tijd tussen elk schot is 1 sec
}
Serial.println ("Press 1."); breken;
//////
kast IR_BUTTON_2: //Take 50 foto's wanneer shot_time = 1 en wijzigingen door 50. Bloot tijd is 0,5 sec en wijzigingen door elke 0,5 sec
voor (ik = 0; ik < 50 * shot_time; i ++)
{
myshutter.shotOn();
delay(timedelay*500);
myshutter.shotOff();
delay(2*1000); Tijd tussen elk schot is 2 sec
}
Serial.println ("druk op 2."); breken;
//////
kast IR_BUTTON_3: //Take 50 foto's wanneer shot_time = 1 en wijzigingen door 50. Bloot tijd is 0,5 sec en wijzigingen door elke 0,5 sec
voor (ik = 0; ik < 50 * shot_time; i ++)
{
myshutter.shotOn();
delay(timedelay*500);
myshutter.shotOff();
delay(3*1000); Tijd tussen elk schot is 3 sec
}
Serial.println ("Press 3."); breken;
//////
kast IR_BUTTON_4: //Take 50 foto's wanneer shot_time = 1 en wijzigingen door 50. Bloot tijd is 0,5 sec en wijzigingen door elke 0,5 sec
voor (ik = 0; ik < 50 * shot_time; i ++)
{
myshutter.shotOn();
delay(timedelay*500);
myshutter.shotOff();
delay(4*1000); Tijd tussen elk schot is 4 sec
}
Serial.println ("druk op 4."); breken;
//////
kast IR_BUTTON_5: //Take 50 foto's wanneer shot_time = 1 en wijzigingen door 50. Bloot tijd is 0,5 sec en wijzigingen door elke 0,5 sec
voor (ik = 0; ik < 50 * shot_time; i ++)
{
myshutter.shotOn();
delay(timedelay*500);
myshutter.shotOff();
delay(5*1000); Tijd tussen elk schot is 5 sec
}
Serial.println ("druk op 5."); breken;
//////
kast IR_BUTTON_6: //Take 50 foto's wanneer shot_time = 1 en wijzigingen door 50. Bloot tijd is 0,5 sec en wijzigingen door elke 0,5 sec
voor (ik = 0; ik < 50 * shot_time; i ++)
{
myshutter.shotOn();
delay(timedelay*500);
myshutter.shotOff();
delay(6*1000); Tijd tussen elk schot is 6 sec
}
Serial.println ("pers 6."); breken;
//////
kast IR_BUTTON_7: //Take 50 foto's wanneer shot_time = 1 en wijzigingen door 50. Bloot tijd is 0,5 sec en wijzigingen door elke 0,5 sec
voor (ik = 0; ik < 50 * shot_time; i ++)
{
myshutter.shotOn();
delay(timedelay*500);
myshutter.shotOff();
delay(7*1000); Tijd tussen elk schot is 7 sec
}
Serial.println ("druk op 7."); breken;
//////
kast IR_BUTTON_8: //Take 50 foto's wanneer shot_time = 1 en wijzigingen door 50. Bloot tijd is 0,5 sec en wijzigingen door elke 0,5 sec
voor (ik = 0; ik < 50 * shot_time; i ++)
{
myshutter.shotOn();
delay(timedelay*500);
myshutter.shotOff();
delay(8*1000); Tijd tussen elk schot is 8 sec
}
Serial.println ("toets 8."); breken;
//////
kast IR_BUTTON_9: //Take 50 foto's wanneer shot_time = 1 en wijzigingen door 50. Bloot tijd is 0,5 sec en wijzigingen door elke 0,5 sec
voor (ik = 0; ik < 50 * shot_time; i ++)
{
myshutter.shotOn();
delay(timedelay*500);
myshutter.shotOff();
delay(9*1000); Tijd tussen elk schot is 9 sec
}
Serial.println ("druk op 9."); breken;
standaard: onderbreking;
}
}
}