> Man kann also sowas wie ein> gepulstes Nachleuchten wie eine Welle die durch den Schwarm läuft> beobachten.
Dazu das Video 2 hier:
http://tinkerlog.com/2009/06/25/64-synchronizing-fireflies/
Ich vermute, dass der Lichtsensor des einzelnen "Glühwürmchens" nicht
alle anderen sehen kann, sondern nur seine Nachbarn. Trotzdem entsteht
keine Welle.
als sich fortpflanzende Welle, meinte ich. Ich habe damals einiges an
Abhandlungen zu Glühwürmchens gelesen, besonders war ich auf der Suche
nach digitalisierten Leuchtmustern.
Das von dir angesprochene Viedeo zeigt beide angesprochenen Effekte. 1.
werden sich lange Dunkelperioden ergeben und dann durch wenige
Glühwürmchens veranlasst leuchten in deren Umgebung immer mehr
gleichzeitig auf. 2. der Impuls, eg. die Wellenfront pflanzt sich fort.
Ist eigentlich auch logisch da ja die Glühwürmchens evolutionär keinen
Vorteil hätten wenn sie auf 100'erte Kilometer Entfernung einem Weibchen
antworten würden. Aus Sicht eines größeren örtlich verteilten Schwarmes
muß es also dann so aussehen das igrendwo im Schwarm das Leuchten
einsetzt, die umliegenden Glühwürmchens angeregt werden und dadurch
ihrerseits weiter entfernte Glühwümchens zum Leuchten bringen. Die Welle
pflanzt sich durch den Schwarm fort.
Übrigens meine ich auch das deine verlinkte Simulation nicht korrekt
modelliert wurde. Die Glühwürmchen antworten schon als Masse in Wellen
auf ein Reizsignal. Das heist aber eben nicht das sie sich von ihrem
Timing her auf die Zukunft betrachtet hin synchronisieren. So als ob sie
einen inneren Zeitgeber hätten, am Anfang unsynchronisiert jeder mit
seiner eigenen Frequenz und am Ende hin alle schlagartig.
Dies widerspricht dem evolutionären Sinn des Ganzen. Es geht um
Fortplanzung und das Anlocken möglichst vieler Männchen aus Sicht der
Weibchens. Was ich aus wissenschaftlichen Abhandlung weiß deutet eher
darauf hin das es immer die Weibchen sind die das Leuchten auslösen.
Ergo heist dies für ein gutes Modell: es müssen zwei unterschiedliche
Arten von Glühwürmchens modelliert werden, einmal Weibchens und ein
anders Mal Männchen. Und beide unterscheiden sich in ihrem Verhalten wie
sie auf Leuchtmuster anderer reagieren werden.
Warum sollte in einem Schwarm aus par wenigen Weibchens und ne Handvoll
Männchens auch die zur Zeit nicht blinkenden Weibchens entschließen,
quasi Energie opfern, und synchron mit allen anderen Glühwürmchens
zusammen zu leuchten ? Sie haben keinen Vorteil gegenüber ihrer
Fortpfanzungskonkurrentinnen wenn sie so wie Männchen auf das Leuchten
der Konkurrentinnen reagieren würden.
In einem guten Modell kann der Zustand "alle leuchten demnächst zum
gleichen Zeitpunkt" garnicht vorkommen dürfen.
Gruß hagen
> es müssen zwei unterschiedliche> Arten von Glühwürmchens modelliert werden, einmal Weibchens und ein> anders Mal Männchen.
Wobei man vermuten könnte, das es ausreicht, wenn nur ein Geschlecht
leuchtet.
Hallo,
eine Frage an jemanden der sich hier gut auskennt?
Habe die Glühwürmchen nachgebaut, und Funktioniert ganz gut.
Nun die Fragen:
1. was muss ich wo am Code weglassen, oder verändern, wenn ich keine
Spannungsüberwachung des Akkus und der Solarzelle wünsche, so das die
Würmchen gleich loslegen wenn ich einen Akku einsetzte, b.z.w. die
Elektronik einer Gartensolarlampe auf Nacht schaltet und meinen mC mit
Energie versorgt?
Also völlig ohne Tag/Nacht und Akku Überwachung.
2. wenn ich statt des Tiny 45 einen Tiny44 20 PU also einen mit 14
Beinchen einsetzten möchte, habe ich den Code, also die Befehle
entsprechend angepasst laut beiden Datenblättern, aber ich bekomme das
Programm einfach nicht zum Laufen?
Das einzige das ich nicht anpassen konnte waren die 2,5v Interne
Reverenz Spannung, bei meinem Tiny44 sind das 1,1V oder leitung zum
entsprechenden Port mit VCC also 5V Legen, und hatte dann testhalber
Akkuspannung von 1,2 V drann und auch 5 V aber das hat nicht
funktioniert, oder es liegt an etwas anderem was nicht so ganz passend
ist?
Ziel hiervon wäre ein bis Zwei mehr LED Ports und Externen Oszilator
verwenden und dann auch eventuell noch mehr LED Ports zu verwenden.
Da aber das Programm auf meinem Tiny44 scheinbar nichts macht, also
nichts an den LED's erkennbares, kann ich auch nicht Testen ob sich das
Programm, wie weiter oben als Tip von Hagen beschrieben erweitern lässt?
Geflasht habe ich alles ohne Bootloader, einfach nur das Hexfile das
nach anwendung von Make ensteht habe ich auf den mC übertragen.
Wäre sicherlich für andere auch Hilfreich, da eine Solarlampe schon fast
alles mit sich bringt was man zum Laden und Tag / Nacht erkennung
benötigt, und die Sorte die ich zum Basteln hier habe, hat eine sehr
gute Diode verbaut, Spannungsverlust Solarpanel zum Akku 0,1 V konnte
ich Messen.
Von da her ist es ja eigentlich einfacher das der Zweckentfremdetetn
Electronic der Lampe zu überlassen oder?
Mit Freundlichem Gruß
Michael
Hallo,
hab das Problem selbst gelöst bekommen, hier der Code ohne die Solar und
Akku Messung und damit Zwei freien Pin's ähem Port's!
Wenn es Jetzt Nacht ist bekommt der Attiny von der ehemaligen
Gartenlampe, also der Stepup erst Energie, und dann läuft das Programm
einfach und die Glühwürmchen fangen an zu Leuchten!
Lg
Michael
zuerst die firefly.c
1
#include"firefly.h"
2
3
firefly_tfireflies[12];// 12 fireflies
4
uint8_tocr_data[6];// OCR0A and DDRB datas for Timer0 Compare Match ISR, computed PWM Dutycycles
5
uint16_thungry_threshold;// threshold for lightning fireflies
6
7
// 12 fixed registers assigned to speedup ISRs, Timer0 Overflow and Output Compare
8
registeruint16_t_saveZasm("r2");// save Z register
9
registeruint16_t_saveYasm("r4");// save Y register
10
registeruint8_t_saveSREGasm("r6");// save SREG
11
registeruint8_t_zeroasm("r7");// zero Register
12
registeruint8_t*_ocr_ptrasm("r8");// pointer to current ocr_data[] entry
13
registerfirefly_p_fly_ptrasm("r10");// pointer to current firefly[] entry
14
registeruint8_t_ddr_idxasm("r16");// index into ddr_data[] entry, 0 upto 15 in +4 steps
Hallo,
noch ne Frage, ich habe Versucht die Tierchen zu erweitern um genau Zwei
LED Port's, alles war ein wenig extrem schwer für mich, und es tut sich
absolut nichts an meinen LED's auch nicht wenn ich nur Einen Port mehr
hineinschreibe, und 6 LED Ports scheinen gar unmöglich zu sein?
Mir gehen einfach die Register aus, also gehen bei diesem Programm
scheinbar nur Maximal 4 eventuell 5 Port's für die LED's.
Kann das denn sein, ich hänge gerade mal mein beim Registerumherschieben
entstandenes Wunderwerk als Datei an, und Hoffe auf Ratschläge?
Ach ja Umschreiben auf andere Mega's oder Tiny's scheint ja auch nicht
so einfach, da andere Typen die Befehle oder gar andere Voraussetzungen
garnicht erfüllen können?
Gibt's wirklich nur 32 Register, wo ich auch dann nur noch die oberen 15
für einige Dinge verwenden kann und darf?
Über Antworten würde ich mich riesig freuen, versuche mich schon ne
ganze Ecke an dem Projekt.
LG
Michael
Hi,
was meinst Du mit 2 LED Ports? Willst Du um 2 LEDs erwitern, oder um
wirklich um 2 Anschlüsse, also das Charlieplexing mit dann 30?? LEDs?
Da kommt doch vom Multiplexen gar nicht mehr viel raus, da wird das
Puls-Pausen Verhältnis reichlich schlecht.
Bedenke dabei auch, daß Hagen hier das Charlieplexing in den
Interruptroutinen ziemlich optimiert hat, mit fest vergebenen Registern
u.ä.
Bevor Du den Code nicht genau verstanden hast (habe ich auch einige Zeit
gebraucht ...), und nicht weisst, wie der Compiler mit den Registern
umgeht, wirst Du das nicht erweitern können.
Dann ist allerdings das Umschreiben auf andere AVRs auch nicht mehr
schwer.
Gruß,
Bernhard
Hallo Bernhard,
ja das hatte ich eigentlich vor, ziel der Sache ist das es noch
realistischer wirkt.
Es sollen eigentlich nicht mehr gleichzeitig leuchten, sondern eher das
sich die Stellen an denen die Tierchen auf dem Grünzeug angebracht sind
besser verteilen, so das es nach mehr Zufall aussieht.
Oder auch das mehr zur gleichen Zeit Leuchten?
Die Hardware ist schon fertig, 30 SMD LED's in Grün mit Schwarzen 0,1 mm
Drähtchen die mit winzigen Heißklebetropfen auf einem recht echt
aussehenden, aus Drei Verschiedenen Pflanzen bestehenden Gestrüpp
sitzen, die Drähte sind sogar wenn man es weiß, nahezu unsichtbar um die
Ästchen gewickelt, und damit es weniger Eckig aussieht hat jede LED
einen winzigen Tropfen Heißkleb oben drauf bekommen, ich Schick meinen
letzten Versuch, mit Änderungen an der isrs.S Datei mit, in dem ich
Versuchte Zwei LED Ports auf 4 Register zu Packen, aber es hat sich
nichts getahn.
LG
Michael
Nachtrag:
Hier noch die Bilder der Hardware, zur Zeit noch mit Kabeln zu einem
mini Steckbrett, da die Fassung mitten in dem Gebüsch versteckt ist, und
so das Testen einfacher ist.
Überlege noch ob ich die Tiere unter eine Art Käseglocke packen soll?
könnte eventuell noch besser aussehen, auf den Boden etwas Sand und Erde
oder Torf???
Habe auch ein Video gemacht das halt nur 12 angesteuerte von den 30 in
Aktion zeigt.
Einstellungen am Prescaler ziemlich unten in der firefly.c ist auf 8
gestellt anstatt 64, und der eine Timerwert in der firefly.h ist auf 1 *
250 gestellt.
Und das Programm hat das Batterie und Nacht Flag dauernd gesetzt.
http://www.youtube.com/watch?v=lXky5xcLvwU&feature=youtu.be
LG
Michael
Hallo,
habe einen Versuch mit einem Tiny44 und der MIK Variante gemacht, indem
ich die Spannungsmessung entfernt habe, und versucht habe 30 LED's
anzusteuern, aber in der Firefly.h komme ich oben nicht über 26 und
weiter unten nicht über 28 hinaus, sobald ich nur eine Zahl höher
reinschreibe tut sich garnix mehr, und die Würmchen hören nach kurzer
Zeit auf zu Leuchten und fangen nur wieder an wenn ich die Spannung
unterbreche und wieder anschliese!
ALso es leuchten auf jeden fall mehr als die 12 Orginalen Würmchen, aber
nicht alle werden angesteuert, woran kann das liegen???
Habe den gesammten Ordner mit allen Dateien angehängt.
LG
Michael