Hallo alle zusammen,
Viele hochintelligente RGB-LEDs sind derzeit auf dem Markt (die sicher
irgendwann mal auch noch per Cloud selbständig Kontakt zur Fabrik
aufnehmen werden ;-) ). Auch Microcontroller, die von der Leistung her
wohl sogar für eine Marsmission taugen würden.
Dazu fiel uns neulich auf, dass die Beschäftigung mit beiden zwar
optisch durchaus beeindruckende Ergebnisse liefern kann, vor allem auch
zu überschaubaren Kosten, dass damit irgendwie aber auch ein wichtiger
Spaßfaktor verloren gegangen ist.
Um Ressourcen muss sich (zum Glück) keiner mehr Gedanken machen, selbst
wenn die Tools heute für das simple Blinken einer LED gefühlte Megabyte
Programmcode generieren. Und für einen schlappen Euro mehr gibts den
Controller gleich auch mit doppelter Portzahl.
Dabei besteht eigentlich gerade ein besonderer Reiz und eine große
Herausforderung darin, das maximale aus einer eher beschränkten Hardware
herauszuholen.
Wir haben uns deshalb mal an so einen alten Hut wie "Lichteffekte per
Mikrocontroller" herangewagt. Und finden, ein originelles Beispiel
gefunden zu haben. Es zeigt, dass ungewöhnliche Lichteffekte auch mit
Standard-LED und winzigen Controllern machbar sind.
Wie im Bild zu sehen ist, enststand eine analoge LED-Uhr. Mit nur 5 Pins
werden dazu 20 LED einzeln angesteuert. Dazu gibts 10 (soft)-PWM Kanäle
für sanfte Übergänge bei den eingebauten Extra-Lichteffekten. Die Praxis
hat gezeigt, dass die Uhrzeit auch bei hellem Tageslicht trotz der nur
20 LED sehr gut ablesbar ist.
Das Programm hat 2K, die Taktfrequenz beträgt 8 Mhz. Wie nun alles
funktioniert, ist hier im Video zu bewundern.
https://youtu.be/8gQc23zuWSk
(-- Das im Video sichtbare leichte Flimmern einiger LED ist in
Wirklichkeit nicht wahrzunehmen --)
Beste Grüße
Micha
Michael schrieb:> Das Programm hat 2K, die Taktfrequenz beträgt 8 Mhz. Wie nun alles> funktioniert, ist hier im Video zu bewundern.
Was soll da bewundert werden ?
Hallo
für die geborenen µC und Elektronikgötter die so eben mal eine Komplette
Steuerung mit Bilderkennung programmieren und Datenblätter im Schlaf
herunter beten ist das natürlich noch unterhalb des einsetzen einer
Batterie in die Fernbedienung.
Es soll aber auch Anfänger und auch Fortgeschrittene geben die Stolz auf
ihre Leistung sind und froh sind nach viel Arbeit und lernen ein
vorzeigbares Ergebnis zu haben.
Fortgeschrittene und Profis die noch ein Minimum an Empathie haben und
nicht vergessen haben das auch sie selbst mal Anfänger waren
unterstützen aber auch so was, für sie ach so "Simples", durch Lob und
konstruktive(!) aufbauende und helfende Kritik.
Also von mir:
Gut gemacht, da waren bestimmt viel Schweiß und Tränen im Spiel bis es
so funktionierte wie im Video.
Mach weiter so.
Danke für die Vorstellung
mfg
Mensch
Glückwunsch zu einem durchgezogenen Projekt! Klar ist es nichts
weltbewegendes, aber die Nörgelei der Anderen ist nun wirklich auch
nicht nötig.
Besonders das Nachleuten sieht gut aus, wie ich finde.
Hubert schrieb:>> Weder Schaltplan noch Programm ist verfügbar.>> Nutzlos, da Perlen vor die Säue geworfen.
Nein, eben nicht.
Weder ist das eine Perle noch sitzen hier Säue vor den Bildschirmen.
Was soll das überhaupt werden, ohne Programm und Schaltplan ?
Sollen wir jetzt alle vor Begeisterung in die Ohnmacht fallen ?
Michael schrieb:> Mikrocontroller" herangewagt. Und finden, ein originelles Beispiel> gefunden zu haben. Es zeigt, dass ungewöhnliche Lichteffekte auch mit> Standard-LED und winzigen Controllern machbar sind.
Weder sind 2K winzig, noch sehe ich da ungewöhnliche Lichteffekte -
und selbst wenn, ohne Programm und Schaltplan ist das nicht mehr als
Selbstwerbung - und dazu ist das alles einfach nicht gut genug.
Mit Programm und Schaltplan würde es vielleicht der eine oder andere
Anfänger noch nachbauen, aber so...
Moin.
Gut gemacht. Leider mit PIC. Aber was solls.
Sieht gut aus, und man hat sicher was gelernt dabei.
Also sinnvolles Projekt. Allerdings hat der MC sicher
kein Flash-RAM wie im Video dargetan.
Hab sonst nix zu meckern gefunden.
MfG Micha.
Coole Sache, besonders das weiche Nachleuchten. Vielleicht kannst Du ja
ein bißchen was vom Programm zeigen.
PS: lass Dich von den neidischen Selbstdarstellern hier nicht ärgern,
die tönen nur laut den ganzen Tag ...
Mir gefällt es auch, jeder hat mal angefangen und man sieht das man auch
mit wenig coole Dinge machen kann. Und! Es ist in der heutigen Zeit mal
nix mit nem Arduino - das is schon mal was :-D
+1
Gaukler schrieb:> PS: lass Dich von den neidischen Selbstdarstellern hier nicht ärgern,
wer ist denn hier Selbstdarsteller?
Ich sehe kein Schaltbild, kein Programm, also nix woraus man lernen
könnte, das nenne ich Selbstdarstellung oder SPAM
Wenn es NMZ sein soll, OK hat funktioniert.
Hallo alle zusammen,
danke erstmal für eure Kommentare.
Micha D. schrieb :
> Leider mit PIC.
Ralph S. schrieb :
> wenn auch mit PIC Controller !
Sicher wäre mit einem vergleichbaren ATtiny25 die Programmierung
einfacher gewesen. Zum PIC kam es letztlich nur wegen der Platine.
Die selbstdefinierten Vorgaben lauteten dafür:
- einseitig beschichtete Platine
- kleinstmöglicher Durchmesser, von den LED-Maßen vorgegeben
- keine Drahtbrücken (sonst wäre es zu einfach)
- keine SMDs
- "Edding-taugliche" Design rules
(Abstand Lötpunkte min. 2,5 mm,
keine Leiterbahnen zwischen benachbarten Lötpunkten hindurch)
- Die Zuordnung der LED erfolgt per Software. Ihr Platz im Kreis auf der
Platine ist somit beliebig. Die antiparallelen LED-Paare sollten zur
Layout-Vereinfachung jedoch direkt nebeneinander liegen
- kein Einsatz von CAD-Tools mit Autoroutern o.ä.
Mit der Lage der Pins für die Spannungsversorgung beim PIC war es am
Ende irgendwie einfacher, beim Layout ohne jegliche Drahtbrücken
auszukommen...
Die Schaltung für einen ATtiny25 wäre bis auf die Pinzuordnung am
Controller identisch. S.o.
Marc V. schrieb :
> Weder sind 2K winzig ....
Der Platz ist bis aufs letzte Byte belegt. Allein die Nutzereingaben
fürs Stellen der Uhr, die vielen Einstellungen der Optionen und die
mögliche Fein-Kalibrierung des RC-Oszillators verbrauchen einigen Platz.
Dazu noch ein halbwegs brauchbarer (Pseudo-)Zufallsgenerator. Man sollte
auch nicht vergessen, dass zu jedem Zeitpunkt stets immer nur eine
einzige LED leuchtet. Dafür ist einiges an Organisation in der Software
erforderlich.
Mit einem Oszi wäre außerdem schnell erkennbar, dass hier keine
klassische PWM für die Helligkeitssteuerung zum Einsatz kommt. Das
dürfte bei nur 5 Pins für 10 Kanäle auch kaum machbar sein. Um die LED
nun doch alle gleichmäßig und flackerfrei steuern zu können, ist eine
Art Pulsmengenmodulation (also PMM?) programmiert, bei der Impulse von
stets gleicher Länge aber in unterschiedlicher Anzahl der Reihe nach auf
die aktiven LED verteilt werden.
Soviel noch zur Theorie..
Wenn wirklich Bedarf besteht, kann ich die Platine`samt Hex-File
natürlich auch noch hochladen. Und für Anregungen, welche optischen
Effekte sonst noch so interessant wären, bin ich auch immer dankbar.
Beste Grüße
Micha
Hallo Michael,
TOLL das du es einen PIC genommen hast!
Und noch einen 12F, Super.
Bei 2K und den Funktionen nehme ich an das du es in ASM Programmiert
hast.
Ich finde das Ergebniss sehenswert, und würde es auch sofort Nachbauen!
PICs habe ich hier genug hier (Atmel und Intel aber auch) da ich selber
damit sehr gerne Arbeite.
MC_FAN
Michael P. schrieb:> Um die LED> nun doch alle gleichmäßig und flackerfrei steuern zu können, ist eine> Art Pulsmengenmodulation (also PMM?) programmiert, bei der Impulse von> stets gleicher Länge aber in unterschiedlicher Anzahl der Reihe nach auf> die aktiven LED verteilt werden.
Das Verfahren nennt sich Bit-Angle-Modulation. Ist auch ein alter Hut.
Dabei besteht eigentlich gerade ein besonderer Reiz und eine große
Herausforderung darin, das maximale aus einer eher beschränkten Hardware
herauszuholen
Nö, als Techniknerd vielleicht, aber manch einer macht sich auch um die
Idee Gedanken als blos die technsiche Umsetzung ;)
Franklin schrieb:> Michael P. schrieb:>> Um die LED>> nun doch alle gleichmäßig und flackerfrei steuern zu können, ist eine>> Art Pulsmengenmodulation (also PMM?) programmiert, bei der Impulse von>> stets gleicher Länge aber in unterschiedlicher Anzahl der Reihe nach auf>> die aktiven LED verteilt werden.>> Das Verfahren nennt sich Bit-Angle-Modulation.
Nein.
Das Kennzeichen einer BAM ist, daß die Längen der Impulse gerade nicht
gleich, sondern typischerweise binär gewichtet sind.
Ich verstehe schon das der Weg das Ziel war, aber ich halte 20 (!) LEDs
bei einer Uhr irgendwie für einen Designfehler.
12 oder 24 hätte ich verstanden. Aber gerade 20?! Wie zeigt die Uhr denn
z.B. 23:50 an?
Axel S. schrieb:> Nein.
Doch.
Axel S. schrieb:> Das Kennzeichen einer BAM ist, daß die Längen der Impulse gerade nicht> gleich, sondern typischerweise binär gewichtet sind.
Das passiert ja auch. Da bei Charlieplexing ja immer nur eine LED zur
selben Zeit leuchten darf ist es sinnvoll die Impulslänge durch
Kombination von Einzelimpulsen zu erreichen. Für die einzelne LED setzen
sich diese Einzelimpulse zum BAM-typischen 128-64-32-16-8-4-2-1
Impulsverhältnis zusammen.
Schönes Projekt, danke für's veröffentlichen. Hoffe du lässt dir die
Laune nicht durch die paar Miesepeter, Kritikaster und
Markenfetischisten versauen.
Etwas off topic:
Warum das gemecker über die Kontrollermarke immer nur aus einer Ecke
kommt verstehe ich übrigens gar nicht. Als ob das irgendwie von Belang
wäre und. In diesem Fall auch noch von der gleichen Aktiengesellschaft
irgendwo in Amiland hergestellt.
Erinnert mich an die Apple Jünger und ihre Elegien über den Power PC
(eine Kiste die Profis bestenfalls in Drucker eingebaut haben -was jetzt
aber kein Seitenhieb auf irgendeine Kontrollermarke sein soll).
Als dann Apple den gleichen Kram wie die PC Welt eingebaut hat blieb
damals nichts anderes übrig als den Dongle zu bejubeln (oder den
abgespeckten Frontend vor der Unix Standardkiste).
Meiner einer findet das anmaßend, unhöflich und inhaltlich schlicht dumm
(ob ich nun PORTA oder PINA tippe ist so verschieden nicht).
Hallo alle zusammen,
Markus M. schrieb:
> ich halte 20 (!) LEDs> bei einer Uhr irgendwie für einen Designfehler.
Ein grundsätzlich völlig berechtigter Einwand. Tatsächlich ist es aber
so:
Die Uhrfunktion ist nur ein "Abfallprodukt", da ich sowieso einen
variablen Intervalltimer für die periodisch zu startenden Lichteffekte
brauchte. Und dafür sollte nur grob die ungefähre Zeit darstellbar sein.
Für Nutzereingaben ist mindestens 1 Pin erforderlich. Die verbleibenden
5 Pins erlauben nach der Formel n*(n-1) die Ansteuerung von maximal 20
LED. Bei 6 Pins wären demnach zwar bis zu 30 LED möglich, allerdings
fehlt dann der Anschluß eines Tasters. Und ohne den geht es nicht.
Die eigentliche Kernfunktion des Programms ist auch nicht ganz so
trivial wie sie im Video vielleicht erscheint.
Der Lauf der Lichtpunkte wird nicht wie sonst üblich über Bit-Shift,
Lookup-Tables oder if- und while- Konstruktionen mit Delays gesteuert.
Vielmehr finden die bis zu 10 Lichtpunkte ihren Weg völlig autonom. Und
zwar weitgehend nach den Regeln der Physik, also der Kinetik.
Die Nutzung vom Modul Reactor im 3dsMax brachte mich neulich auf die
Idee, dieses Konzept mal auf einen Mikrocontroller zu übertragen.
Und das geht prinzipiell so:
Jedem Ort (hier also einer der 20 LED-Positionen) ist virtuell eine
wirkende Kraft zugeordnet, dazu die Richtung). Diese Werte zur
Nachbildung der Gravitation werden einfach einer Lookup-Table entnommen.
D.h. an der obersten und untersten LED ist die Kraft 0. Links und rechts
ist sie maximal, jedoch mit entgegengesetzter Richtung. Die
Zwischenwerte sind dann vom Winkel der jeweiligen LED abgeleitet.
Jedem Objekt (hier also einem Leuchtpunkt) wird virtuell eine Masse,
eine Geschwindigkeit, die Richtung, ein Reibungskoeffizient, eine
Helligkeit, ein Leuchtverlauf, die Elastizität und das Verhalten bei
Kollision zugeordnet. (Erinnert sich hier noch jemand an die Sprites
beim C64?)
Faktisch wird also jedes Objekt nur einmal an den erforderlichen Ort
platziert und ihm dazu die gewünschten Eigenschaften mit auf den
Lebensweg gegeben.
Den Rest erledigt das Programm gemäß Physik und der Formel F=m*a dann
allein. Mit zwei beabsichtigten Ausnahmen: Ordne ich einem Leuchtpunkt
eine (unreale) Masse 0 zu, wird die momentane Position beibehalten. Und
zweitens, an einem Ort darf sich mehr als ein Leuchtpunkt befinden.
Alles läuft komplett Timer-Interrupt gesteuert. Jedem Punkt können 40
verschiedene Geschwindigkeiten und 22 Helligkeiten zugeordnet werden.
Mehr geben die 8 MHz und 128 Byte RAM nicht her, reicht in der Praxis
aber völlig aus.
Beim Lichteffekt "Ping Pong" im Demo-Video hat der wandernde Leuchtpunkt
z.B. die Eigenschaft, bei Kollision mit einem anderen Lichtpunkt die
Richtung zu wechseln. Mit einer größeren Elastizität würde er dabei dann
auch noch ganz realistisch seine Geschwindigkeit erhöhen.
Würde ich den 10 langsam aufleuchtenden LED plötzlich eine Masse > 0
zuordnen, fingen sie an immer schneller werdend links und rechts nach
unten zu fallen, dabei weiter blinkend.
Beim gezeigten Lichteffekt "Pendel" im Demo-Video wäre es so: Ordne ich
dem Punkt eine höhere Geschwindigkeit und einen Reibungskoeffizienten >
0 zu, dann überschlägt er sich erst ein paarmal, pendelt dann eine Weile
immer schwächer um dann irgendwann mal unten stehenzubleiben.
Also ganz wie im echten Leben.
Beste Grüße.
Micha
-
X4U schrieb:> Schönes Projekt, danke für's veröffentlichen.
sehe ich auch so!
X4U schrieb:> Hoffe du lässt dir die> Laune nicht durch die paar Miesepeter, Kritikaster und> Markenfetischisten versauen.
hey mach mal halblang, miesepetrisch wurde man ja weil vorher im 1.
Beitrag nix war, kein Schaltbild keine Erklärung, kein Code!
Jetzt hat das schon mehr Gesicht.
Michael P. schrieb:> Und das geht prinzipiell so:>> Jedem Ort (hier also einer der 20 LED-Positionen) ist virtuell eine> wirkende Kraft zugeordnet, dazu die Richtung). Diese Werte zur> Nachbildung der Gravitation werden einfach einer Lookup-Table entnommen.> D.h. an der obersten und untersten LED ist die Kraft 0. Links und rechts> ist sie maximal, jedoch mit entgegengesetzter Richtung. Die> Zwischenwerte sind dann vom Winkel der jeweiligen LED abgeleitet.>> Jedem Objekt (hier also einem Leuchtpunkt) wird virtuell eine Masse,> eine Geschwindigkeit, die Richtung, ein Reibungskoeffizient, eine> Helligkeit, ein Leuchtverlauf, die Elastizität und das Verhalten bei> Kollision zugeordnet. (Erinnert sich hier noch jemand an die Sprites> beim C64?)
[...]
OMG. Was für ein geballter Haufen akademischen Bullshits. Und das dann
auch noch mit einer so logischen, einfachen und effizienten Sache wie
den C64-Sprites zu verknispeln: Da hat ein Troll mal wieder ganze Arbeit
geleistet. Respekt.
Hast du nix zu arbeiten? Wenn ich was zu sagen hätte, würdest du sehr
bald was zu arbeiten haben und keine Zeit mehr zum Trollen...
Hallo alle zusammen,
c-hater schrieb:
> Bullshits .....
Netter Beitrag. Dazu äußerst lehrreich. Und ganz besonders dein
geschliffener Umgangston lässt auf eine ziemlich hohe mentale
Taktfrequenz schließen.
C-hater, ich hoffe nur, du bist im wahren Leben nicht so ein armes,
bedauernswertes kleines Würstchen, wie ich es mir gerade vorstelle.
Jemand, dem niemand freiwillig auch nur ein winziges Glas Bier
spendieren würde. Oder so ein kleiner Bubi, mit dem keiner im
Buddelkasten spielen will.
Also bitte noch mal deine geistigen Kräfte bündeln und das Thema vom
Thread zumindest grob erfassen. Dort taucht u.a. der Begriff "Spaß" auf
(extra fur dich auch noch in Englisch -> "fun", mal nach der Bedeutung
googeln). Von Zulassungsbestimmungen, Arbeit, DIN oder sonstigen
kommerziellen Aspekten war dagegen keine Rede.
Was meinst du, warum so viele nach ein paar Runden auf dem Nürburgring
an der selben Stelle wieder aus ihrem Auto steigen. Oder stundenlang zum
Angeln an einem See sitzen. Oder ein halbes Vermögen in Projekte in
ihrem Modellbaukeller versenken.
Richtig! Weil sie es aus Spaß tun und dabei nicht nach einem Sinn oder
der Kosten/Nutzen-Relation vom Ganzen fragen. Einfach weil sie es stolz
und zufrieden macht.
Gleiches gilt für mich mit diesem kleinen Projekt. Und wenn du nicht nur
schlau daher redest, kannst du ja mal zeigen was du kannst und diese
MC-Schaltung (von den Kindern treffend Pusteblume getauft) selber
programmieren. Das Platinen-Layout stelle ich dafür sogar bereit,
wahlweise für AVR oder PIC.
Nach passenden Programmbeispielen oder gar fertigen Bibliotheken dazu
wirst du im Netz aber wohl lange suchen müssen. Dennoch, so ein Experte
wie du erledigt das alles ja ganz sicher locker in ASM an einem
Wochenende...
Now over to you...
Beste Grüße.
Micha
Die Idee dahinter ist schon geil!
Ich hab vor vielen Jahren mal mit 3DS gearbeitet (
http://f4u-draconix.deviantart.com/ ), aber das man inspiriert vom
Reactor Plugin auf ein µC ableitet, wäre mir nicht in den Sinn gekommen
:-D
Hallo alle zusammen,
Draco schrieb:
> Ich hab vor vielen Jahren mal mit 3DS gearbeitet (> http://f4u-draconix.deviantart.com/
Hi Draco, da kannst du ja sicher bestätigen, dass so was fast süchtig
machen kann, wenn oft schon mit der kleinsten Änderung eines Parameters
gleich eine ganz neue dynamische Szenerie entsteht.
Ich lasse bei mir viele der Werte im Programm durch den Zufallsgenerator
zuweisen und erhalte so Milliarden von verschiedenen Leucht- und
Bewegungsmustern. Viele davon total faszinierend, noch nie gesehen und
auf konventionelle Art wohl auch niemals zu programmieren.
Falls es Interessenten gibt, die Layouts zur Platine habe ich für PIC
und AVR nun mal sauber gezeichnet und lade sie hier hoch. Bei der
AVR-Variante liegt der Taster jetzt an Pin 7 vom Controller, also anders
als in der Schaltung weiter oben gezeigt. Somit konnten auch da alle
lästigen Drahtbrücken entfallen.
Pinkompatible Controller mit höherer Leistung wie 12F1840 oder
ATtiny45/85 funktionieren natürlich auch. Bei mir haben die 2K
Programmspeicher und 128 Byte RAM jedoch für alles gerade so
ausgereicht.
Beste Grüße.
Micha
Hallo,
sehr interessant.
>(von den Kindern treffend Pusteblume getauft)
Ein Elektretmikro an den Pin und dann wirklich "Pusteblume" machen.
Kann ja einfach den Taster ersetzen, Pegel zum Triggern könnte beim
raufpusten ausreichen...
PS: war der Source eigentlich irgendwo dabei, speziell AVR?
Gruß aus Berlin
Michael
Hallo, jetzt muß ich mich doch mal melden.
Mir gefällt das Projekt sehr gut.
Schlimm daß manche hier nur rummeckern, warum soll man, beim
Eloktronikbasteln, keinen Spaß haben? Gerade mit Mikrocontrollern und
LEDs lassen sich viele Dinge bauen, die zwar keinen praktischen Nutzen
haben, aber großen Spaß machen. Ein Bereich, auf den ich mich sogar
etwas spezialisiert habe. Leider komme ich, aufgrund meiner schlechten
Verfassung, viel zu wenig zum Basteln, aber wenn ich solche Projekte
sehe, juckt's mich in den Fingern.
Mit freundlichen Grüßen - Martin
Ich denke, Du hattest viel Freude und Erfolg bei der Konstruktion.
Auch von meiner Seite danke für die investierte Zeit.
Das Layout ohne Drahtbrücken hat sicher einige Überlegungen gekostet.
> Man sollte auch nicht vergessen, dass zu jedem Zeitpunkt stets immer> nur eine einzige LED leuchtet.
Franklin schrieb:
> Da bei Charlieplexing ja immer nur eine LED zur selben Zeit> leuchten darf ist es sinnvoll die Impulslänge durch> Kombination von Einzelimpulsen zu erreichen.
Das ist eine Urban Legend. Beim 20Led-5Pin-Plexing können immer 4 Leds
gleichzeitig leuchten.
Wenn jetzt jemand argumentiert: dann wird aber der Common-Pin überlastet
(P=R*I^2)?
Nein, da die LEDs ja auch nur vier mal so kurz eingeschaltet sein
brauchen.
Oder die Vorwiderstände vergrößern, das ist bei den modernen ultrahellen
alles kein Problem mehr.
Meine Vermutung war ja, Du hättest ganz ohne Vorwiderstände und mit <3V
Vcc gearbeitet, was auch oft gemacht wird. Dann ist die Helligkeit stark
von der Spannung abhängig, aber ein U-Regler ist ja vorhanden.
Schade, dass im Video die Musik abrupt abreißt. Ich hätte es ohne Musik
gemacht und dabei etwas zur Entstehung erzählt.
Die Überlegung ist auch, dass man 6 Leitungen für 6x5-Plexing verwendet.
Dann hat man 30 Leds, jede 2 Sekunden eine
Mit dem Taster legt man ein Pin über einen Widerstand nach Masse (evtl.
internen PullUp und ADC zum Auswerten verwenden).
Mir scheint, heute sind etliche User mit dem linken Fuß aufgestanden,
schade. Ich wünsche gute Besserung.
Michael schrieb:> Dabei besteht eigentlich gerade ein besonderer Reiz und eine große> Herausforderung darin, das maximale aus einer eher beschränkten Hardware> herauszuholen.
Endlich jemand, der mich versteht :D
Hallo alle zusammen,
Michael U. schrieb:
> Ein Elektretmikro an den Pin....
Die Idee mit dem Elektretmikro werde ich ausprobieren, bin schon
gespannt. Werde ein altes Handy dafür ausschlachten.
Noch was für Interessierte an außergewöhnlichen Lösungen:
Für die Lichteffekte brauche ich im Programm einen Zufallsgenerator. Und
der ist in jedem uC ja bekanntlich ein großer Schwachpunkt, da es in der
digitalen Computerwelt einen echten Zufall nicht geben kann und darf.
Auch der beste Algorithmus liefert also nach dem Programmstart leider
stets exakt die gleiche Reihe an Zufallszahlen (Deshalb schließlich der
Name Pseudo...). Behelfen kann man sich da nur, indem man externe
variable Werte wie z.B. Licht oder Temperatur per ADC zum Initialisieren
des Generators mit hinzufügt.
Da meine Schaltung mangels freiem Pin keine zusätzlichen Sensoren mehr
verkraftet, bin ich auf der Suche nach Alternativen durch Zufall auf
eine einfachste Lösung für einen "echten Zufallsgenerator" gestoßen.
Und der geht so:
Die Schaltung bleibt unverändert. Wenn ich nun einen Zufallswert
brauche, schalte ich einfach irgend ein Pin als Ausgang kurz auf 0
(Damit werden stets 8 LED einseitig Richtung GND gezogen). Ein anderes
Pin schalte ich kurz auf analogen Eingang um und starte da eine
10bit-ADC. Der erhaltene "Messwert" erscheint zwar total unsinnig, ist
dafür aber perfekt zufällig, sehr gleichmäßig verteilt und somit als
Zufallswert ideal geeignet.
Das kann ich hier ganz einfach prüfen, indem ich in einer
Endlos-Schleife mit dem generierten Zufallswert MODULO 20 direkt eine
der LED im Kreis adressiere. Nach jedem Programmstart entstehen wie
angestrebt völlig unterschiedliche Zahlenfolgen.
Ich vermute, die Leiterbahn am hochohmigen ADC-Pin fängt Funkwellen oder
Störfelder ein, die am Halbleiterübergang der LED demoduliert bzw.
gleichgerichtet werden und eine ausreichende Spannung aufbauen. Und Dank
geringster Kapazitäten beim Pin und der LED ist dieser Wert für jede
folgende ADC auch unterschiedlich hoch. Hier kann man Störfelder endlich
auch mal zu seinem Vorteil nutzen...
Das Prinzip müsste überall da funktionieren, wo zumindest eine LED an
einem uC-Ausgang hängt, der auch als ADC-Kanal umschaltbar ist. Kann ich
echt zur Nachahmung empfehlen! (Oder ist das schon wieder nur ein alter
Hut? ;-)) ).
Beste Grüße.
Micha
@Martin Schlüter
> Schlimm daß manche hier nur rummeckern, warum soll man, beim> Eloktronikbasteln, keinen Spaß haben?
Quatsch, das darf doch keinen Spaß machen, jetzt aber... :-))))
> Gerade mit Mikrocontrollern und> LEDs lassen sich viele Dinge bauen, die zwar keinen praktischen Nutzen> haben, aber großen Spaß machen.
Eben! Und gerade wenn was leuchtet, blinkt oder blitzt, besteht immer
eine gewisse Faszination. "Jeder" muß da hinschauen, das ist
naturgegeben!
Ich komme aus der Werbebranche, da wird u.A. mit Lichteffekten noch mehr
Aufmerksamkeit erregt.
Kurz um, ich finde solche "Spielereien" einfach faszinierend, wie z.B.
auch die LED-Cubes. Und 20 LEDs mit nur einem 8 beinigen µC zum
leuchten/faden, etc. zu bewegen, einfach nur genial! Hätte ich mehr
Programmierkenntnisse, würde ich mich sofort ans Werk machen.
Vielleicht stellt ja Jemand einen Atmel Code zum obigen Layout zur
Verfügung?
Vom Themen Ersteller, liest man weiter nicht's mehr, wie ich das sehe?
Manchmal bin ich der Meinung, daß sich einige schon gar nicht mehr
trauen,
hier etwas vorzustellen, weil man befürchten muß, auseinander genommen
zu werden, was hier schon oft der Fall war! Das ist natürlich
demotiviertend und ich persönlich finde das zum...
Gruß Michael
Martin S. schrieb:> Schlimm daß manche hier nur rummeckern, warum soll man, beim> Eloktronikbasteln, keinen Spaß haben?
Gerade die Pruckelei mit Mikrocontrollern kann süchtig machen - auch ich
baue Dinge "weil ich's kann" und Spaß dran habe!
Michael D. schrieb:> Manchmal bin ich der Meinung,> daß sich einige schon gar nicht mehr trauen,> hier etwas vorzustellen, weil man befürchten muß, auseinander genommen> zu werden, was hier schon oft der Fall war! Das ist natürlich> demotiviertend und ich persönlich finde das zum...
Es sind zum Glück nicht alle Schreiber so negativ drauf. So manche
Antworten hier gehen garnicht, hast Du recht.
Michael schrieb:> (-- Das im Video sichtbare leichte Flimmern einiger LED ist in> Wirklichkeit nicht wahrzunehmen --)
Da sind sich wohl PWM-Frequenz und Kamerabildfrequenz ins Gehege
gekommen. Das nenne sich Aliasing.
Schönes Projekt!
Um die Notwendigkeit zu umgehen, den Tiny25 dauerhaft auf HV Programming
umstellen zu müssen, um Reset als Portpin zu benutzen, könnte man den
Trick mit dem ADC auf Pin1 machen und dort den Benutzerknopf
anschliessen. Mit einem Spannungsteiler kann man dann den Pin nur 'ein
bisschen' runterziehen und das mit dem ADC erkennen.
Somit bleibt ISP weiter benutzbar. Reset ist ja als I/O auch nicht so
kräftig wie die anderen Pins.