an- und abschwellendes Rauschen auf einer 8x8 Matrix darstellen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • an- und abschwellendes Rauschen auf einer 8x8 Matrix darstellen

      Seit ein paar Tagen geistert eine Idee durch mein Köpfchen, aber es kommt nicht voran. Ich denke an eine Uhr!! mit einer Anzeige aus 4x max7219 8x8 Ledmatrixen. Stunden und Minuten. Das Besondere daran wäre wie die Ziffern umschalten. Es sollte so sein, das der Bereich der Ziffer mit einem anschwellenden Rauschen ausgefüllt wird und das nach dem Maximum nachlässt und eine leere Fläche bleibt. Die Ziffer wäre jetzt 'weggebeamt'. Dann soll das Rauschen wieder beginnen, bis zum Maximum, nachlassen und die neue Ziffer bleibt übrig, neue Ziffer 'hingebeamt'. Bisschen so wie im Transporter von startrack. Mit Rauschen meine ich ein schnelles, unregelmäßiges Flackern der Leds im Bereich der Ziffer. Maximum wäre, wenn alle Leds eine Einschaltdauer von 50% hätten. Da man den max in 16 Stufen dimmen kann, wäre das eine Option, damit das Rauschen an- und abschwellen zu lassen. Das geht aber nicht, wenn sich eine Ziffer im abschwellenden Rauschen abzeichnen soll. Also müsste man die Ed (Einschaltdauer) manipulieren. Das würde auch für die Leds gelten, die die Ziffer darstellen. Rauschen-Ed runter regeln Ziffern-Ed hoch regeln und es entsteht aus dem Rauschen die Ziffer. Ob das mit kaskadierten Matrixen möglich ist, kann ich jetzt nicht abschätzen, zur Not könnte man die CE-pins separieren und immer nur eine Matrix bearbeiten. Da dieses Umschalten der Ziffer paar Sekunden dauern soll, kommt keine Sekundenanzeige in Frage.
      Jetzt zu dem Rauschen. 8Leds bilden ja die bits von einem byte. Dieses byte per Rnd() zu erzeugen ergibt was zufälliges, aber keine 50%Ed, oder Bruchteile davon.
      Wie könnte man das angehen?

      Eine Möglichkeit wäre per Rnd(16) für jede Led eine Zahl zu generieren und für 50% nur Zahlen <8 als 'Led an' zu verwenden. Durch senken der Schwelle würde man so die Ed in 8 Stufen runter fahren können.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tschoeatsch ()

    • tschoeatsch schrieb:

      wie im Transporter von startrack
      star trek
      Das Rauschen entsteht durch das zufällige an- und abschalten der einzelnen LEDs
      Also immer mehr Pixel nehmen am Rauschen teil bis zum Maximum und verdecken dabei den Inhalt.
      Dann ebbt das rauschen ab und der neue Inhalt erscheint.
      So korrekt?
      Hast du schon mal ein Feld rauschen lassen, als ersten Test?
    • Ja, so könnte man es auch machen, das Abschwellen, leere Anzeige und Anschwellen eben weg lassen.
      Ich hab' noch nix probiert, die Überlegung von mir im ersten post ist gerade beim Schreiben dessen entstanden. Da das Rauschen ja 'flimmern' soll, braucht es dann ja etwa 5 bis 10 Hz Bildwechselfrequenz und in jedem Bild müssen 63 Zufallszahlen erzeugt und verglichen werden. Gibt eine ganz schöne Rechnerei. Das Reinshiften der Daten in den max kommt ja auch noch dazu.

      Ja, manchmal hilft es, wenn man mein Geschreibsel laut liest X/
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Wenn das Rauschen den Inhalt überdeckt, dann muss der natürlich auch bis zur Überdeckung 'rauschend' augeblendet werden. Umgekehrt genauso, das Rauschen ebbt ab, dafür kommt von schwach rauschen, stärker werdend, der neue Inhalt (Ziffer).
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Die ersten Versuche sind ganz vielversprechend

      der code zum Film

      BASCOM-Quellcode

      1. 'Max7219 Anzeige
      2. 'Testrauschen
      3. $regfile = "m32def.dat"
      4. $crystal = 16000000
      5. $hwstack = 256
      6. $swstack = 256
      7. $framesize = 256
      8. Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
      9. Config Portb.4 = Output : Cs Alias Portb.4
      10. 'Config Spisoft = Soft , Din = Portd.6 , Dout = Portd.5 , Ss = None , Clock = Portd.7
      11. 'Config Portd.3 = Output : Cs Alias Portd.3
      12. Spiinit
      13. Enable Interrupts
      14. Dim Display_daten As Byte , Display_digit As Byte
      15. Dim N As Byte , N_1 As Byte
      16. Dim Anzeige As Byte , Inhalt As Byte
      17. Dim Zeile As Byte , Pixel As Byte
      18. Dim Ed_rauschen As Byte , Ed_inhalt As Byte
      19. Dim Z As Byte
      20. Spiinit
      21. Gosub Init_max7219 'Display initialisieren
      22. Ed_rauschen = 2
      23. Ed_inhalt = 20
      24. Do
      25. For N = 0 To 10
      26. Ed_rauschen = N
      27. Ed_inhalt = 20 - N
      28. For N_1 = 0 To 50
      29. For Zeile = 1 To 8 'Zeile der Matrix
      30. Anzeige = 0 'zurück setzen
      31. Inhalt = Lookup(zeile , Baum)
      32. For Pixel = 0 To 7
      33. Z = Rnd(21)
      34. If Z <= Ed_inhalt Then Anzeige.pixel = Inhalt.pixel
      35. If Z < Ed_rauschen Then Anzeige.pixel = 1
      36. Next Pixel
      37. Cs = 0
      38. Spiout Zeile , 1
      39. Spiout Anzeige , 1
      40. Cs = 1
      41. Next Zeile
      42. Waitms 25
      43. Next N_1
      44. Next N
      45. For N = 10 To 0 Step -1
      46. Ed_rauschen = N
      47. Ed_inhalt = 20 - N
      48. For N_1 = 0 To 50
      49. For Zeile = 1 To 8 'Zeile der Matrix
      50. Anzeige = 0 'zurück setzen
      51. Inhalt = Lookup(zeile , Hase)
      52. For Pixel = 0 To 7
      53. Z = Rnd(21)
      54. If Z <= Ed_inhalt Then Anzeige.pixel = Inhalt.pixel
      55. If Z < Ed_rauschen Then Anzeige.pixel = 1
      56. Next Pixel
      57. Cs = 0
      58. Spiout Zeile , 1
      59. Spiout Anzeige , 1
      60. Cs = 1
      61. Next Zeile
      62. Waitms 25
      63. Next N_1
      64. Next N
      65. Wait 2
      66. Loop
      67. End
      68. 'sub
      69. Init_max7219: ' Initialisieren des MAX7219
      70. Display_digit = &H0C : Display_daten = &H00 ' Shutdown On
      71. Cs = 0
      72. Spiout Display_digit , 1
      73. Spiout Display_daten , 1
      74. Cs = 1
      75. Display_digit = &H09 : Display_daten = &H00 ' kein decode "B" für alle Digits
      76. Cs = 0
      77. Spiout Display_digit , 1
      78. Spiout Display_daten , 1
      79. Cs = 1
      80. Display_digit = &H0A : Display_daten = &H02 ' Helligkeit 0-F
      81. Cs = 0
      82. Spiout Display_digit , 1
      83. Spiout Display_daten , 1
      84. Cs = 1
      85. Display_digit = &H0B : Display_daten = 7 ' Anzahl Digits 8
      86. Cs = 0
      87. Spiout Display_digit , 1
      88. Spiout Display_daten , 1
      89. Cs = 1
      90. Display_digit = &H0F : Display_daten = 0 ' Test Off
      91. Cs = 0
      92. Spiout Display_digit , 1
      93. Spiout Display_daten , 1
      94. Cs = 1
      95. Display_digit = &H0C : Display_daten = 1 ' Shutdown Off
      96. Cs = 0
      97. Spiout Display_digit , 1
      98. Spiout Display_daten , 1
      99. Cs = 1
      100. Return
      101. Baum:
      102. Data 0 'dummy
      103. Data &B00010000
      104. Data &B00010000
      105. Data &B00111000
      106. Data &B01011100
      107. Data &B00011010
      108. Data &B00111100
      109. Data &B01011010
      110. Data &B00011000
      111. Hase:
      112. Data 0 'dummy
      113. Data &B00011000
      114. Data &B00110000
      115. Data &B01110000
      116. Data &B11111110
      117. Data &B01111111
      118. Data &B00111110
      119. Data &B00100011
      120. Data &B01001110
      Alles anzeigen
      Wenn jetzt jemand über meine künstlerische Vorstellung eines Baumes oder Hasen lacht, soll er nur, Spaß muß sein!

      Und nein, das ist ein Hase, kein Schwein!
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Stimmt, so dauert es zu lange. Lässt sich aber leicht ändern, gibt ja genug waits und Schleifen, wo man was verkürzen kann.
      Das ist ja jetzt kein konkretes Projekt, nur mal so eine Idee. Man könnte auch so einen flimmernden Streifen von oben über den Inhalt nach unten führen und der Inhalt löst sich dabei flimmernd auf, beim wieder hoch führen des Streifens bildet sich flimmernd der neue Inhalt.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------