Randomisierte kugelleuchte

Ich war gestern im Flughafen von San Diego und habe eine tolle Leuchte gesehen. Im Internet habe ich dann gefunden, dass es ein Kunstwerk von Jim Campbell ist. Ich will es an meiner 4m-hohen Decke haben! Da ich aber kein Milliardär bin, habe ich das mit einem Python-Skript projektiert. Nun die Frage ist: wie kann ich das realisieren? Ich dachte an ein Raster von 5mm high-power LEDs (12V) in matten Glaskugeln. Ideen/Ratschläge? Spezifisch: ich suche nach sehr dünnen 2poligen Drähten, welche 500 mA aushalten. Die Dioden sollten in matten/weissen Kugel untergebracht werden. Keine Ahnung wo ich sowas finde. Und dann stellt sich die Frage nach der elektrischen Versorgung…

hier ist das Original:

hier ist der Skript, der das erzeugt.

import plotly.graph_objects as go
import numpy as np

vertical_size = -700
x_axis_length = 1000
y_axis_length = 2000
spacing = 50

# Generate grid points for X and Y, spaced at 10 units
x = np.arange(0, x_axis_length, spacing)
y = np.arange(0, y_axis_length, spacing)

# Create a meshgrid for X and Y coordinates
x_grid, y_grid = np.meshgrid(x, y)
x_flat = x_grid.flatten()
y_flat = y_grid.flatten()

# Generate random Z values for each point
z_flat = np.random.uniform(0, vertical_size, size=x_flat.shape)

# Random sizes for markers between 5 and 20
sizes = np.random.uniform(5, 20, size=x_flat.shape)

fig = go.Figure()

# Add white markers with random sizes
fig.add_trace(go.Scatter3d(
    x=x_flat,
    y=y_flat,
    z=z_flat,
    mode='markers',
    marker=dict(
        size=sizes,
        color='white',  # Set color to white
        opacity=0.8
    )
))

# Add lines from each point upward
for (xi, yi, zi) in zip(x_flat, y_flat, z_flat):
    fig.add_trace(go.Scatter3d(
        x=[xi, xi],
        y=[yi, yi],
        z=[zi, zi - vertical_size],  # End point is now above each point's current Z
        mode='lines',
        line=dict(
            color='seagreen',  # Set line color to seagreen
            width=2
        )
    ))

# Update layout for a better view with specified axis ranges
fig.update_layout(
    scene=dict(
        xaxis=dict(
            nticks=10, 
            range=[0, x_axis_length],
            gridcolor='darkblue',  # Keep dark blue gridlines
            showbackground=False,  # Make surfaces invisible
            linecolor='darkblue',  # Dark blue axis lines
            zerolinecolor='darkblue'  # Dark blue zero line
        ),
        yaxis=dict(
            nticks=10, 
            range=[0, y_axis_length],
            gridcolor='darkblue',
            showbackground=False,
            linecolor='darkblue',
            zerolinecolor='darkblue'
        ),
        zaxis=dict(
            nticks=5, 
            range=[vertical_size, 0],  # Adjust the range for the entire depth of the Z-axis
            gridcolor='darkblue',
            showbackground=False,
            linecolor='darkblue',
            zerolinecolor='darkblue'
        )
    ),
    margin=dict(l=0, r=0, b=0, t=0),
    paper_bgcolor='black',  # Set outer background to black for contrast
    scene_bgcolor='rgba(0,0,0,0)'  # Set scene background to fully transparent
)

fig.show()

sieht toll aus, aber bei 500mA benötigst du ein Netzteil > 500A bei 12 V = 6 kW für den Hausgebrauch doch etwas heftig :lying_face:

ja, 500mA ist überdimensioniert. Typische 5mm LEDs brauchen höchstens 20mA, sie sind aber wahrscheinlich nicht hell genug. Es gibt anscheinend high-power 5mm LEDs (30 mA x 3.6V wenn ich es richtig verstehe); das ist was ich brauche. Im Bild habe ich 800 LEDs gezeichnet, das wären 86W. Wenn ich je 20 LEDs in Serie schalte, komme ich mit einem 72V-Netzgerät und 1.2A aus. Ob es dann genug Licht gibt, ist mir noch etwas unklar.

Hi, wir haben Deckenhöhe 5,5m und ich suche schon ewig eine geeignete Beleuchtung. Dein Fund ist der Hammer. Das wäre der Eyecatcher schlechthin.

Ich bin gespannt, wie Du das löst.

Grins und Gruß
Andreas

1 „Gefällt mir“

Meine Fragen sind:

  • welche Drähte
  • welche Verbindungen

Drähte sollten so gut wie unsichtbar sein. Ich dachte Magnetspulendraht AWG36 (allerdings Widerstand 1.36 Ohm/m, bei 1200m Gesamtlänge wird es relevant). Die Isolierung kann man wegbrennen oder mit Zitronensäure auflösen, habe ich gelesen (abisolieren geht nicht).

Löten möchte ich vermeiden. Um 800 LEDs zu löten brauche ich 1 Jahr :rofl: Aber was sonst? Am ehesten mache ich mir press-fit Sockel mit Fusion360 und drucke sie mit FDM oder (besser) mit dem Formlabs Harzdrucker. Lieber hätte ich eine kommerzielle Lösung, habe aber nichts passendes gefunden.

Dies ist das Original, was ich in San Diego (United terminal) gesehen habe. Auf dem Foto kann man die dritte Dimension nicht richtig schätzen; in Realität ist das viel schöner.

mega. denke die Arbeit wird nicht gerade wenig denn die menge der kugeln macht es.
Helligkeit würde ich gar nicht so helle leds nehmen. zum einen wird es die menge machen und zum anderen mehr Effekt als Hauptbeleuchtung.

auf dem bild sieht es fast mehr wie ein Sternenhimmel aus. vielleicht kannst das nutzen. die kugeln an den Lichtleitern baumeln lassen.

viel erfolg beim basteln.

Morgen

Such doch beim Ali nach „LED curtain“ da findest jede Menge Zeug das du entweder direkt oder als Basis für einen Umbau verwenden kannst.
Falls du wirklich alles selbst machen willst:
bzgl. Leistung brauchst nicht so hoch gehen - soll ja nur im Privatraum verwendet werden, oder ? Da brauchst keine High Power LED , es sei denn du wohnst in einer Kathedrale. Damit hat sich dann auch deine Suche nach geeignetem Draht erledigt. Irgendeinenn dünnen Kupferlackdraht, mit der Bohrmachine verdrillen und ggfl. schwarz einfärben. Als Diffusor würden sich PingPong Bälle anbieten - sind aber für Privatraum gefühlt auch etwas zu groß.
Wie stellst dir denn die Ansteuerung vor ? Is ja auch nicht ganz ohne dies selbst zu entwerfen. evtl. kannst da bei den 3D LED Würfel Projekten was abschauen.
Oder du machste es mit WS2812/WS2813 LEDs. Da wäre die Ansteuerung sehr leicht aber etwas mehr Verdrahtungsaufwand. evtl. gibts aber auch da schon was fast fertiges beim Ali.

viele Spass
Bernhard

1 „Gefällt mir“

Löten wäre hier unbedingt sinnvoll, weil du auch gleich die Isolierung des Kupferlackdrahtes wegbrennst.

Allerdings würde ich deren Isolierung nicht unbedingt vertrauen und eher dünne transparent isolierte Litzen verwenden, die gibt es z.B. in 0,14mm. Einen Shoplink dürfen wir hier ja leider nicht posten, aber bei Pollin habe ich was gefunden.

Für die Grundform würde ich mal bei LED-Kugelketten (Weihnachtsdeko) schauen, die gibt es für wenig Geld und man kann sie umverdrahten für deinen Zweck.

Abermillionen von Trafos vertrauen seit Jahrzehnten darauf …
Problem ist eher das Gewicht - damit die schön straff hängen sollten die Kugel nicht zu leicht sein. Da kommt bei mehreren hundert schon was zusammen.

Löten muß er sowieso, weil auch das andere Eende des Drahtes will irgendwo angeschlossen sein. Würde mir dafür eine Vorrichtung überlegen wo man Draht und LED einlegt, dann geht das Ratz-fatz.

Aber ganz ehrlich - ich glaub eh nicht das aus dem Projekt was wird. Zumindest nicht in der angedachten Dimension.

greez
bb

1 „Gefällt mir“

kannst du mir eine kleine Handzeichnung machen, wie eine solche Vorrichtung aussehen könnte?

Ob aus dem Projekt was wird, hängt ganz davon ab, ob ich einen High-Throughput Weg finde, die Dinge schnell zu realisieren.

Wie stellst dir denn die Ansteuerung vor ? Is ja auch nicht ganz ohne dies selbst zu entwerfen. evtl. kannst da bei den 3D LED Würfel Projekten was abschauen.
Oder du machste es mit WS2812/WS2813 LEDs. Da wäre die Ansteuerung sehr leicht aber etwas mehr Verdrahtungsaufwand. evtl. gibts aber auch da schon was fast fertiges beim Ali.

kannst du bitte ausführen? Ich bin wirklich ein Anfänger, und verstehe das nicht. Auf ali finde ich nur WS2813 led-strips. Wie kann ich sie verdrahten, selbst wenn ich die strips schneide sind die Kontakte Konformer-geschützt. Ausserdem sehe ich Probleme mit der Direktionalität; das Licht sollte ja vor allem nach unten leuchten. Und was muss man bei der Ansteuerung beachten? Die Idee mit dem Pingpong gefällt mir sehr gut; die Bälle dürften nicht zu gross sein (ich glaube).

Skript angepasst, um die tatsächlich auf Aliexpress existierenden hohlen Polypropylen-Kugeln zu verwenden.

import plotly.graph_objects as go
import numpy as np

vertical_size = -700
x_axis_length = 1000
y_axis_length = 2000
spacing = 50
sphere_diameters = np.array([20, 25, 28.5])

# Generate grid points for X and Y, spaced at 50 units
x = np.arange(0, x_axis_length, spacing)
y = np.arange(0, y_axis_length, spacing)

# Create a meshgrid for X and Y coordinates
x_grid, y_grid = np.meshgrid(x, y)
x_flat = x_grid.flatten()
y_flat = y_grid.flatten()

# Generate random Z values for each point
z_flat = np.random.uniform(0, vertical_size, size=x_flat.shape)


# Randomly assign sizes from the sphere_diameters array to each marker
sizes = np.random.choice(sphere_diameters, size=x_flat.shape)

fig = go.Figure()

# Add white markers with random sizes chosen from sphere_diameters
fig.add_trace(go.Scatter3d(
    x=x_flat,
    y=y_flat,
    z=z_flat,
    mode='markers',
    marker=dict(
        size=sizes,
        color='white',  # Set color to white
        opacity=0.8
    )
))

# Add lines from each point upward
for (xi, yi, zi) in zip(x_flat, y_flat, z_flat):
    fig.add_trace(go.Scatter3d(
        x=[xi, xi],
        y=[yi, yi],
        z=[zi, zi - vertical_size],  # Extend lines upwards from current Z
        mode='lines',
        line=dict(
            color='seagreen',  # Set line color to seagreen
            width=2
        )
    ))

# Update layout for a better view with specified axis ranges
fig.update_layout(
    scene=dict(
        xaxis=dict(
            nticks=10, 
            range=[0, x_axis_length],
            gridcolor='darkblue',  # Keep dark blue gridlines
            showbackground=False,  # Make surfaces invisible
            linecolor='darkblue',  # Dark blue axis lines
            zerolinecolor='darkblue'  # Dark blue zero line
        ),
        yaxis=dict(
            nticks=10, 
            range=[0, y_axis_length],
            gridcolor='darkblue',
            showbackground=False,
            linecolor='darkblue',
            zerolinecolor='darkblue'
        ),
        zaxis=dict(
            nticks=5, 
            range=[vertical_size, 0],  # Adjust the range for the entire depth of the Z-axis
            gridcolor='darkblue',
            showbackground=False,
            linecolor='darkblue',
            zerolinecolor='darkblue'
        )
    ),
    margin=dict(l=0, r=0, b=0, t=0),
    paper_bgcolor='black',  # Set outer background to black for contrast
    scene_bgcolor='rgba(0,0,0,0)'  # Set scene background to fully transparent
)

fig.show()

Das Script funktioniert, aber die Rechenzeit ist beachtlich. Ich dachte schon da funktioniert was nicht als der Browser eine Minute lang nix tat…

Zur Ansteuerung eine Frage: soll das einfach statisch leuchten oder noch irgendwelche Dimm- und Bewegungseffekte zeigen?

Naja hast du dir noch keine Gedanken gemacht wie du dein „Script“ und die 800 Kabel wo die LED dranhängen miteinander verheiratest ?
Die Software bzw. Kabelauswahl ist ja das letzte.
Erstmal mußt man ein Konzept haben wie beides zueinander finden soll. Sinnvollerweise würde man das als Matrix ausführen und dann alle entsprechend durchmultiplexen, weil sonst brauchst einen uC mit 800 Ausgänge…
Oder du machst es mit den WS2812 oder ähnlichen. Da werden alle LED zu einem langen Schieberegister verbunden welches dann am uC nur CLK und DATA benötigt. d.h. du schließt die elektrisch gesehen alle in Serie. Logisch gesehen sind die aber so intelligent das jede ihre eigene „Adresse“ hat und somit unabhängig angesteuert werden kann. Naja, fachlich ist das jetzt falsch, aber damit du es dir vorstellen kannst.
Entsprechend intelligente LED kriegst natürlich auch einzeln, net nur fertig aufgelötet am Strip.

Trotzdem ist sowas sicher kein Anfängerprojekt.
bb

Das Pythonscript zeichnet die Anordnung, so wie im ersten Beitrag zu sehen ist. Das steuert nix. Vielleicht soll es ja statisches Dauerlicht sein, ganz ohne Blingbling.

Ach soooo - einfach nur statisches Licht. Das is ja mega fad.
Dachte das soll sich irgendwie random ändern oder Muster zeichnen und coole Sachen machen.
Na dann nehm ich natürlich alles zurück. Für was dann aber ein Script ??? Ich mein wenns statisch ist häng ich die Kugeldinger einfach hin und gut.
Statisch gehört ja in Elektrikerforum und nicht zur Homeautomation :wink:

bb

Find ich gut,
habe selber Jahre in einer Beleuchtungsfirma gearbeitet und einiges gesehen.
Ich würde mal über Lichtleitfaser nachdenken, und mir einige Links von google anschauen.
LWL hätte den Vorteil, nur ein „dickes Leuchtmittel“ für viele Enden.

2 „Gefällt mir“

Ja, wenn die nur statisch leuchten sollen dann ist natürlich LWL das Mittel der Wahl.
Gabs vor einiger Zeit auch quasi fertig mit alles inclusive als „Sternenhimmel“.
Wenn dann Bälle am Ende dran sollen wirds vermutlich einen passenden Diffusor benötigen. Weil außm LWL tritt das Lich ja parallel aus.

1 „Gefällt mir“

Ja, aber es geht. Und mit mehreren Leuchtmitteln oder „Drehscheibe“ oder … lassen sich auch andere Effekte erzeugen.
Ein weiterer Vorteil, viel weniger zu verkabeln und wenige Leuchtmittel.
Diffusor muss man probieren, was da geht.

1 „Gefällt mir“