Synkronisera eldflugor (1 / 7 steg)
Steg 1: Hur det fungerar
Vad kan observeras är att eldflugor börjar med slumpmässigt blinkande. Men som tiden går, de är långsamt synkronisera med sina närmaste grannar. Och dessa grannar synkroniserar themselfes med sina grannar och så vidare en osv. Tills hela trädet eller hela dalen blinkar i samma cykel.
Och vad är det bra för? Det används för att locka andra exemplar. Med alla de blinkande i synk är det mycket lättare att hitta en partner.
En av de enklaste algoritmen att förklara detta beteende går så här: du har ett värde som har makten att blinka. Eftersom tiden går kommer något att ta upp denna makt. Om strömmen når en viss nivå, firefly blinkar och strömmen förbrukas. Där makt väcker är nästan den samma för alla eldflugor. Så har de samma frekvens men inte samma punkt i tid till blixt.
Medan du långsamt laddar med makt är firefly kan upptäcka en blixt av en annan firefly i närheten. Det ger då ett högre värde till dess makt värde. Någon form av power boost, om du önskar. Det betyder att nästa blixten kommer att infalla tidigare än den innan. Och nästa en ännu tidigare, tills dessa två blinkar precis vid samma punkt i tid och med samma hastighet.
Du kan hitta mer om denna algoritm t.ex här:
Firefly synkronisering Ad hoc-nätverk
Maskinvaran
Jag beslutade att använda min tidigare instructable (programmerbar LED) som utgångspunkt. Den består av en mikrokontroller, en LED och en ljus beroende Resistor (LDR). Det borde vara tillräckligt för att simulera en enkel Eldfluga. Den kan blinka, att se och att räkna.
Jag var bara tvungen att modifiera programmet och orientering på LED och LDR. LED och LDR måste varit placerad på ett sätt som en firefly krets kan störa en annan. Så en LDR måste kunna "se" LED av en annan firefly. Och det ska inte bara se en granne men mer. Detta kan göras genom att låta lampan och det LDR som pekar uppåt från marken och använda vissa vitboken som avspeglar blinkar.