2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Položili ste si niekedy otázku, ako sa stovky a tisíce svetlušiek dokážu synchronizovať? Ako to funguje, že dokážu spolu blikať bez toho, aby mali svojho druhu svetlušku? Tento návod ponúka riešenie a ukazuje, ako je možné túto synchronizáciu dosiahnuť. Vždy ma fascinovala samoorganizácia hmyzu. Pred niekoľkými rokmi som napísal Java-aplet, ktorý simuluje štvorec tisícov svetlušiek. Fungovalo to dobre a bolo zábavné to sledovať. Tentokrát som to urobil v hardvéri. Kredity za inšpirácie putujú Kesovi a jeho Jarovi svetlušiek https://www.instructables.com/id/E7U5HYMSVIEWP86SAL/. Akékoľvek pripomienky alebo opravy sú vítané. Aktualizácia 2008-09-12: Tam je nová verzia svetlušiek online na stránke Synchronization Firefly Howto. Má vlastnú PCB pre každú svetlušku. A môžete si kúpiť súpravu v obchode Tinker. Tu je video:
Krok 1: Ako to funguje
Algoritmus Je možné pozorovať, že svetlušky začínajú náhodným blikaním. Ale ako čas plynie, dokážu sa pomaly synchronizovať so svojimi najbližšími susedmi. A títo susedia sa synchronizujú so svojimi susedmi a podobne. Kým celý strom alebo celé údolie neblikne v jednom cykle. A na čo je to dobré? Slúži na prilákanie ďalších exemplárov. So všetkým synchronizovaným blikaním je oveľa jednoduchšie nájsť si partnera. Jeden z najľahších algoritmov, ako vysvetliť toto správanie, vyzerá takto: Máte hodnotu, ktorá dokáže blikať. Postupom času sa táto sila mierne zvýši. Ak výkon dosiahne určitú úroveň, svetluška zabliká a energia sa spotrebuje. Rýchlosť, ktorou sa zvyšuje výkon, je takmer rovnaká pre všetky svetlušky. Majú teda rovnakú frekvenciu, ale nie rovnaký časový bod bliknutia. Pri pomalom nabíjaní energiou je svetluška schopná detekovať záblesk inej svetlušky v okolí. K svojej silovej hodnote potom pripočíta vyššiu hodnotu. Ak chcete, nejaký druh zvýšenia výkonu. To znamená, že ďalší záblesk nastane skôr ako ten predchádzajúci. A ďalší ešte skôr, kým títo dvaja nebudú blikať presne v rovnakom časovom bode a rovnakou rýchlosťou. Viac o tomto algoritme nájdete napr. tu: Synchronizácia ad hoc sietí FireflyHardware Rozhodol som sa použiť svoj predchádzajúci inštruovateľný (programovateľný LED) ako východiskový bod. Skladá sa z mikrokontroléra, diódy LED a odporu závislého od svetla (LDR). Na simuláciu jednoduchej svetlušky by to malo stačiť. Je schopný blikať, vidieť a počítať. Len som musel zmeniť program a orientáciu LED a LDR. LED a LDR musia byť umiestnené tak, aby jeden svetlovodný obvod mohol interferovať s iným. Jeden LDR teda musí byť schopný „vidieť“LED inú svetlušku. A nemalo by vidieť iba jedného suseda, ale aj viac. To sa dá dosiahnuť tak, že LED a LDR smerujú nahor zo zeme a na odrazenie bleskov použijú biely papier.
Krok 2: Materiály a nástroje
Na mriežku svetlušiek 5 x 5 potrebujete:
- Rezistor 25 x 1K Ohm
- Rezistor 25 x 100 ohmov
- 25 x LDR (svetlo závislý odpor), napr. M9960
- 25 x LED, 1,7 V, 20 mA (reg, zelená, modrá, čo sa vám páči)
- 25 x ATtiny13, 1 kB flash RAM, 64 bajtov RAM, 64 bajtov EEPROM
- 25 x zásuvky
- prototypová doska
- drôt
Náklady na jednu svetlušku by mali byť asi 1,50 eura, ak pri objednávke väčšieho počtu dostanete králik. Zásuvky sú potrebné iba vtedy, ak sú vaše programy chybné. Ak sa cítite sebavedomí vo svojich vývojových schopnostiach, môžete ich ušetriť.;-) Čip ATtiny môžete určite nahradiť akýmkoľvek iným mikrokontrolérom, ako napríklad PIC, PICAXE alebo BasicStamp. Vezmite si len to najmenšie a najlacnejšie, čo môžete dostať. Idem s Atmelom, pretože som už mal programátora a môj prvý projekt s ATtiny13 fungoval dobre. Nástroje
- Spájkovačka
- Spájkovací drôt
- Breadboard
- Programátor AVR
- Napájanie 5V príp
- 4 AA nabíjateľné
Softvér