Een animatie binnen een water langs Physalia (7 / 11 stap)

Stap 7: Arduino programmering


Zo veel als wij zouden willen, wij geen programmeurs zijn en programmering van het hele ding zelf zou hebben gemaakt van het hele proces veel langzamer. Onze vriend Jordi Planas leende een hand en wat zou hebben genomen me een week werd gedaan in een ochtend met geen gedoe. We eerst een kleine schets van de Arduino in controle flits en camera volgens het blokkeren van het licht, allemaal in één klik fotodiode geprogrammeerd. Zoals we met behulp van een macrolens schieten waren, installeerden we een potentiometer die zou laten toe om de vertraging tussen waterdruppel en flitsers te wijzigen zonder de herprogrammering van de Arduino. We wees het wateroppervlak, gericht en begon proberen verschillende vertragingen (milliseconden wacht): 100, 120, 190... en de waterdruppel was nergens te bekennen. We blijven op het vergroten van de vertraging, en op ongeveer 200-210 milliseconden: zie bijgevoegde foto!

Om de theorie te testen we een aantal foto's met de dezelfde vertraging geschoten en ze waren allemaal zeer vergelijkbaar. We beseften ook dat, door het wegwerken van de potentiometer en elke communicatie met de laptop, de foto's meer en meer soortgelijke-achtige twee druppels water werden!

Om de theorie te testen we een aantal foto's met de dezelfde vertraging geschoten en ze waren allemaal zeer vergelijkbaar. We beseften ook dat, door het wegwerken van de potentiometer en elke communicatie met de laptop, de foto's meer en meer soortgelijke-achtige twee druppels water werden! Vervolgens de code gereinigd en voegde een aantal ideeën om het systeem betrouwbaarder, zoals het toevoegen van een milliseconde na elke 1000 microseconden om te helpen de Arduino beheren van dergelijke grote hoeveelheden cijfers.

CODE:

"Entropie Machine" voor IDN Magazine door Physalia. Gecodeerd door Jordi Planas & Pablo Barquin
#include < Servo.h >
int flash1 = 9;             PIN del Flash 1 pin 9
int flash2 = 12;            PIN del Flash 2 pin 11
int laser = 2;                PIN del fotodiodo
int camara = 3;              PIN del optoacoplador donde se conecta la camara
int boton1 = 7;               Boton de disparo de foto
int boton2 = 13;              Boton de repeticion de foto (geen incrementar)
Boole clic1 = false;        Buleano para el boton 1
Boole clic2 = false;        Buleano para el boton 2
Boole laserState = false;   Buleano del laser
int i = 1;                     Variabele que cuenta las gotas (primera o segunda)
Servo servo1;                Crea un Objeto servo
int f = 0;                   Numero de fotos para DEBUG

////////////////////////// TIEMPOS //////////////////////////////////////////////////////////////////////////////
int delai = 0;                Espera nl milisegundos para la primera foto
int delaim = 0;               Vertraging inicial al que se le suma el incremento
int incremento = 250;         Incremento nl microsegundos
int guardarfoto = 4000;                  Espera de la camara para guardar la foto
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

VOID Setup {}
Serial.begin(9600);            Activar para hacer DEBUG
pinMode (flash1, OUTPUT);
pinMode (flash2, OUTPUT);
pinMode (laser, INPUT);
pinMode (camara, OUTPUT);
pinMode(boton1,INPUT);
pinMode(boton2,INPUT);
servo1.attach(6);
servo1.write(0);              //Posicion inicial del servo

}

void loop {}
botones();

Als (clic1 == true) {//Si el boton esta pulseren
lecturalaser();   Ejecutamos la opstelplaats lecturalaser
}
{//Si el boton geen esta pulseren
} //No wordt nada
}

ongeldig lecturalaser() {}
laserState = digitalRead(laser);

Als (laserState == HIGH) {//Si el laser geen esta interrumpido
} //No wordt nada
else {//Si el laser se interrumpe (laag)
foto();             Se ejecuta la opstelplaats foto
}
}

ongeldig botones() {}
int dclic1 = digitalRead(boton1);
int dclic2 = digitalRead(boton2);
if(dclic1==High) {}
clic1 = true;
}
if(dclic2==High) {}
clic2 = true;
}

}

ongeldig foto() {}
Als (ik == 1) {//Si reizigers ha pasado una gota por el laser
vertraging(20);                     Ontdendering del laser
digitalWrite (camara, hoge);    Empezamos een obturar con la camara
Ik = i ++;                       Sumamos 1 a, i para que dispare a la segunda gota
}
else {                        //Si i = 2
disparo();                 Ejecutamos la opstelplaats disparo
Ik = 1;                     Ik vuelver een valer 1
}
}

ongeldig disparo() {}
Als (clic2 == true) {//Si el boton 2 ha sido pulseren
delay(Delai);                 Esperamos "delai"
delayMicroseconds(delaim);    Esperamos el incremento nl Microsegundos
flasheo();                    Ejecutamos flasheo
}
else {//Si el boton 2 NO ha sido pulseren
incrementar();               Incrementamos la espera ejecutando la opstelplaats incrementar
delay(Delai);                Esperamos "delai"
delayMicroseconds(delaim);   Esperamos el incremento nl Microsegundos
flasheo();                   Ejecutamos flasheo
Motion();                    Movemos la beweging

}
}
ongeldig flasheo() {}
digitalWrite (flash1, hoge);    Disparamos el flash 1
digitalWrite (flash2, hoge);    Disparamos el flash 2
delay(10);                     Le damos tiempo al flash mientras búsqueda un impulso
digitalWrite (camara, laag);
digitalWrite (flash1, laag);     Apagamos el flash 1
digitalWrite (flash2, laag);
clic1 = false;                 Quitar si queremos las gotas automaticas
clic2 = false;
/*f = f++;
Serial.println ("vertraging Inicial:");        DEBUG
Serial.println(Delai);
Serial.println ("vertraging Microsegundos:");
Serial.println(delaim);
Serial.println ("Numero de fotos:");
Serial.println(f); */
}

ongeldig motion() {}
delay(300);
servo1.write(90);
delay(100);
servo1.write(0);
/*
Serial.println("Motion");             DEBUG
Serial.println("Esperando");

delay(guardarfoto);                   Esperamos een que la camara garde la foto
Serial.println("LISTO!!!");  */
}

ongeldig incrementar() {}
delaim += incremento;
Als (delaim > 1000) {}
delaim = delaim-1000;
Delai = delai ++;
}
}

Gerelateerde Artikelen

Het installeren van een water tank verwarmingselement in een Polar Ware 321BP 32 Quart RVS Brewpot

Het installeren van een water tank verwarmingselement in een Polar Ware 321BP 32 Quart RVS Brewpot

ik ben een lange termijn homebrewer. Ik brouwen buiten met gas als het mooi weer is, maar wanneer het is regenachtig, te koud of te heet ik brouwen binnen. Het blijkt dat meer dan de helft van de tijd ik uiteindelijk brouwen binnen. Het probleem met
Hoe maak je een Water raket met een Plastic fles

Hoe maak je een Water raket met een Plastic fles

https://www.YouTube.com/watch?v=WsRVYoMpDfs&feature=Youtu.beStap 1: Om te doen een water raket met een plastic fles moet je! Zomer hand craft!Dit is voor die degenen, die reeds heeft gedaan met de barbecue en ligstoelen op het strand!Stap 2: Ik stel
Pianeau - een Water Instrument

Pianeau - een Water Instrument

de Pianeau is een piano als instrument dat wordt beheerd met water. Wij de uitvinder van het voor een schoolwerk over productdesign (op Howest industriële Design Centre) voor Bolwerk. Het doel was om prototype een interactieve installatie met 'water'
Bouwen van een betere lange fiets

Bouwen van een betere lange fiets

How to Build een lang fiets, die u veilig kunt stoppen, en zou kunnen worden opgevat als straat wettig op de meeste plaatsen. Met deze methode, u zal zitten kundig voor staan meer dan de fiets, zodat u hop gemakkelijk omlaag, hebben twee remmen, een
Oplossen van een Water Pik lek

Oplossen van een Water Pik lek

Dit is een Water Pik handvat. Het begon te lekken uit de bodem van het handvat. De oplossing is een nieuwe vergadering van het handvat zal, maar het dat meer dan een paar dagen voor een nieuwe greep vergadering zal aankomen in de mail. Ik wil graag d
Maken van een water jerrycan met vuur

Maken van een water jerrycan met vuur

We leven in een tijd van grote steden, elektronica, en afval. In een wereld waar we onze band met de natuur en het respect die verloren meegeleverd wordt met het. Maar we hebben ook de kennis die we opgedaan van het leven met de natuur die nog steeds
Hoe maak je een Water Bottle Rocket My Way: door Ethan Blum

Hoe maak je een Water Bottle Rocket My Way: door Ethan Blum

dit is mijn presentatie over het maken van een echt goede waterfles raket voor uw entertainment plezier.Stap 1: Eerste stap: het meest voor de hand liggende deel Maakt je waterfles raket, uiteraard moet u een fles. De fles moet een twee liter fles so
IPad staan veelzijdige draagbare oneindige positie ontworpen om een leven lang meegaan / AKA: Rite-idee leningen A Hand Tablet Stand

IPad staan veelzijdige draagbare oneindige positie ontworpen om een leven lang meegaan / AKA: Rite-idee leningen A Hand Tablet Stand

The Rite idee leningen A Hand Tablet Stand is bijgewerkt naar:   iPad staan veelzijdige draagbare oneindige positie ontworpen om een leven lang meegaanDit project werd geïnspireerd door Lifewarrior van Zero Gravity Tablet Instructable. Wat is ik het
How to Make; een Water betalen nek koeler

How to Make; een Water betalen nek koeler

vele jaren geleden nam ik mijn kleine kinderen naar een pretpark.  Het was warm!  Op een van de kleine kiosken, heeft ze een strook van doek at ze beweerden dat zodra het was gedrenkt in water zou doen een groot werk van het houden van een cool.  Ik
Omzetten van een bad in een water-dal.

Omzetten van een bad in een water-dal.

Dit is hoe ik een oude gietijzeren badkuip omgezet in een water-dal voor de schapen grazen in mijn land.De winter van sever veroorzaakt de oude betonnen trog te splitsen zo slecht dat het was onherstelbaar, ik een vervanging een geprijsd en beslissen
Hoe maak je een water-prof overeenkomen met surival vak

Hoe maak je een water-prof overeenkomen met surival vak

Hallo en welkom op mijn tweede instrable. Deze keer ik zal u tonen hoe te maken van een water-prof overeenkomen met overleving vak. Nu voordat ik verder ga, dit instrable gaat om brand- en zeer heet kaarsvet. Enige poging onder nauw toezicht van volw
Maken van een Water-achtergrond met gekleurde potloden

Maken van een Water-achtergrond met gekleurde potloden

hoe je de kleur van de achtergrond van een water?Heb geen angst, I'II tonen u enkele eenvoudige tips!Stap 1: apparatuur u zult moeten scherp potlood kleurpotloden.Ik heb gebruikt theDerwent kleur collectie 24 met zachte kleur, Studio & Metallic potlo
How To Build een Water over raket

How To Build een Water over raket

Hoe te bouwen A Water over Rocket - Bekijk meer grappige video's hier , dit een video tutorial die laat hoe is zien te bouwen van een water en druktherapie over raket. Het is zeer eenvoudig te braak en gebruik materialen die u kunt vinden in uw huis.
How to Save een Water beschadigd Verizon EnV telefoon.

How to Save een Water beschadigd Verizon EnV telefoon.

ik wil graag openen met een eenvoudige groet, ik ben niet een technicus voor een telefoonbedrijf, ik nam een eigenlijk nooit uit elkaar tot nu. Er is niets dat kan worden samengesteld, die kan worden genomen uit elkaar. Dit zei, niets is onmogelijk o