@LM
klar, oft ist auch der Weg das Ziel. Wenn ich aber einen 32pinnigen Controller habe und mir ersparen möchte für jedes Pinout nen Adapter zu basteln oder einfach kein Platz für die ISP Schnittstelle ist, kann man das Ding schon sehr gut gebrauchen.
@turi
ganz eindeutig passt der Adapter nicht, gerade bei kleinen Platinen die nicht oft programmiert werden müssen, ist er schon eine große Hilfe. Diagonal hat der Adapter zwei Positioniernasen, die sieht man auf dem Foto schlecht.
Beiträge von Elite
-
-
das mit dem Flashen geht aber mittlerweile auch einfacher:
[Blockierte Grafik: http://abload.de/img/271955rkof.jpg]Grafik by Hobbyking.com
beziehbar bei Hobbyking
Hat sich schon als sehr nützlich erwiesen bei Projekten ohne Platz. -
Tristan musste mir erst einen Umlaut im Passwort ersetzen, damit ich mich wieder anmelden konnte.
-
hey Dominique,
wenn du schon einen ebenen Untergrund hast, gibt es eigentlich keinen Grund einen Zwischenraum mit Latten zu schaffen.? Die Kabeleinführung von Hohlwanddosen ist sowieso schräg hinten, so dass du das Kabel hinter den 'Holzpanelen' verlegen müsstest um diese ordnungsgemäß einzuführen. Hohlwanddosen werden mit einer 68er Bohrkrone mit einem Mitte-Mitte-Maß von 71mm gesetzt. wie viele du davon nun anreihst, legt eigentlich der Hersteller der Fontblenden fest: idR 5-fach. Hohlwanddosen sind, wie der Name schon sagt, für hohle Wände konzipiert und werden nicht eingegipst sondern halten sich selbst mit kleinen Krallen, die beim Anziehen der Schrauben ausklappen.
Du solltest bedenken, dass du sämtliche Stöße der Gipsplatten später verspachteln und je nach späterer Obefläche verschleifen musst. Daher empfiehlt es sich möglichst große Platten zu verwenden. Tip am Rande: die Stöße bereits vor der Montage anfasen, tut man sich leichter als später an der Decke.
Ein anderer Punkt wäre eventuell noch die Dampfsperre hinter den 'Holzpanelen', welche beim Bohren der Dosen sofern vorhanden durchstoßen wird. Die sollte wieder luftdicht verschlossen werden.Gruß, Simon
-
hehe, das schreibt er hier ja auch:
ZitatVermutlich gibt’s für Rg ja auch ne geschlossene Form (also ohne rekursiven Selbstverweis), aber
1. kann man aus der rek. Form noch den Gedankengang 1-zu-1 ablesen,
2. sieht die geschlossene Formel glaub ich komplizierter aus, ohne auch nur ansatzweise mehr zu koennen
Ich frag mal nach, ob er sich das auch noch aus dem Ärmel schütteln kann. -
danke Irrlicht,
Ich teste das dann mal am Samstag und mache dann aus diesem Beitrag wieder einen halbwegs sinnvollen.
Beispiel:
Valves(1) = &B01010101 :Spiout Valves(1) ,1
Valves(2) = &B11110000 :Spiout Valves(3) ,1
Valves(3) = &B00001111 :Spiout Valves(3) ,1hehe, muss ich das Smileyinterpreter- Plugin für Bascom vorher installieren.
Edit: habe heute die meisten deiner Anmerkungen umgesetzt aber das Problem nicht in den Griff bekommen. Mir ist ausgefallen, dass Hard-SPI erst wieder funktioniert hat, sobald ich den Soft-SPI- Teil komplett raus gelöscht habe. Das ausklammern des entsprechenden Aufrufs im main-loop hat nicht gereicht. Ich umgehe die Problematik nun, indem ich die Daten an einen zweiten AVR weiterprinte und dort ausgebe, bevor ich noch mehr Zeit in Fehlersuche vergrabe. Danke für deine Hilfe Irrlicht, ich werde versuchen Großteile deiner Vorschläge nächstes Mal direkt umzusetzen.
-
hey Irrlicht,
Also erstmal: alles was oben als Zitat aufgeführt ist, ist nicht auf meinem Mist gewachsen sondern entstammt der Feder meiner verlässlichen Quelle.^^
In Deiner linearen Entsprechung, die Du weiter unten aufführst, verwendest Du ja die erste Variante. Du setzt also für den RG unter dem Bruchstrich 12 ein.
Rg(1) = 10 + 2 = 12Rg(2) = 1/(1/10 + 1/Rg(1) ) + 2 = 1/(1/10 + 1/12) + 2 = ? = 7,4545
Das stimmt dann zwar für ein Glied und für zwei Glieder, aber bereits ab dem dritten Glied kommt wieder Müll heraus:
nö! Stimmt.
CodeRg(1) = 10 + 2 = 12 = 12 Rg(2) = 1/(1/10 + 1/Rg(1) ) + 2 = 1/(1/10 + 1/12) + 2 = 82/11 = 7,45455 Rg(3) = 1/(1/10 + 1/Rg(2) ) + 2 = 1/(1/10 + 1/(82/11)) + 2 = 301/48 = 6,27083 Rg(4) = 1/(1/10 + 1/Rg(3) ) + 2 = 1/(1/10 + 1/(301/48)) + 2 = 4572/781 = 5,85403 Rg(5) = 1/(1/10 + 1/Rg(4) ) + 2 = 1/(1/10 + 1/(4572/781)) + 2 = 35242/6191 = 5,69246
mit dem Ergebnis von Rg(n) wird also bei Rg(n+1) weitergerechnet -> rekursiver Selbstverweis. Oder andersrum: Rg(n) = 1/(1/Ra + 1/(Rg*(n-1))) + Rc -
Hi Irrlicht,
nachdem ich nun alle deine Hinweise eingearbeitet habe, sieht der Code nun so aus.
Fehlerbeschreibung:
Ist der Code wie im Anhang, so erfolgt keine Datenausgabe an die Ventile (Hard- SPI, Ventile schalten nicht) und die Datenausgabe an die WS2801 ist um drei Byte verschoben. (LED an zweitem WS2801 zeigt Infos, die für WS2801 bestimmt waren. LED1 scheint die Ventil-Informationen anzuzeigen)
Klammere ich (nur) die Datenausgabe an die Ventile komplett aus, so funktioniert die Lichtausgabe richtig, die Ventile schalten nicht.
Klammere ich (nur) die Datenausgabe an die WS2801 aus, so habe ich gar keine Funktion. Weder eine LED leuchtet noch schaltet ein Ventil.Alles in allem hat die Hard-SPI gar keine Funktion und je nachdem was ich ausklammere bekommt die Soft-SPI noch die drei Byte von der Hard-SPI mit auf den Weg.
Nachdem auch das hintereinanderschalten von 74HCT595 und WS2801 nicht auf anhieb funktioniert hat, denke ich nun darüber nach einen zweiten Controller für die WS2801 zu nehmen. -
Ich habe mit hoher Erwartung bei jemandem nachgefragt, der es wissen müsste und wurde nicht enttäuscht. Die Antwort ist eigentlich ganz logisch.
ZitatRg(1) = 10 + 2 = 12
Rg(2) = 1/(1/10 + 1/Rg(1) ) + 2 = 1/(1/10 + 1/12) + 2 = … = 7,4545- Gesamtwiderstand: rekursiv, immer rechten Teil als black-box betrachten, der man halt noch Ra parallel und Rc in Reihe dranbastelt…
- Ia berechnet nicht den Strom selbst, sondern den relativen Anteil des Stroms im rechtesten Glied zum Gesamtstrom… das wird halt Kirchoff-style rekursiv nach rechts runtergebrochen… zumindest fuer Rc=0 kommt wie erwartet immer 1 raus und ein paar erfundene Werte haben sinnvoll klingende Ergebnisse produziert^^
- Ua ist damit logischerweise <Wdst. der Schlaufe ganz rechts>*<Strom rechter Schlaufe> = Rg(1)*<Gesamtstrom>*Ia = Rg(1)*(Ue/Rg(n))*Ia
Vermutlich gibt’s für Rg ja auch ne geschlossene Form (also ohne rekursiven Selbstverweis), aber
1. kann man aus der rek. Form noch den Gedankengang 1-zu-1 ablesen,
2. sieht die geschlossene Formel glaub ich komplizierter aus, ohne auch nur ansatzweise mehr zu koennen^^Just for fun: rekursive Formel für die Fakultaet (die verwendet die Rekursions-Mechanik glaub am offensichtlichsten):
Fak(0) = 1
Fak(n) = n*Fak(n-1) -
Entweder verstehe ich dich falsch, oder habe mich oben nicht ganz eindeutig ausgedrückt: die Porterweiterungsbausteine und die WS2801 sind hardwaretechnisch voneinander getrennt. Die Porterweiterungen bekommen ihre Daten von der Hard-SPI und die WS2801 von der Soft-SPI. War zumindest so geplant, denn so muss ich am Layout nur minimal verändern. Die Idee die Dinger hintereinander zu hängen ist gar nicht mal blöd, solange nacher nicht das Licht flackert, wenn die Ventile neue Daten bekommen; oder die Ventile anfangen an und aus zu faden. Ich war nur überzeugt, dass das programmtechnisch lösbar wäre.
-
Intuitiv würde ich sagen, dass es so richtiger ist:
Denn wenn bei dir n gegen unedlich geht, wird die große Klammer 0 und damit x=0. Was nicht sein kann, denn 1c wird immer bleiben, egal wie viel parallel geschalten wird.
Damit passt es zwar schon bei n=2 nicht mehr, die Kurve geht aber nicht mehr so schnell gegen null.
Immerhin wird die Klammer bei n=1 zu 1 und bei n=unendlich zu 0. Das stimmt ja, wenn man die Extremwerte betrachtet. -
echt krass wie viel sinnvollen Inhalt du dir in Kürze aus dem Ärmel schüttelst.
Noch ein Paar Gedanken zum Abend: mit (Ra+Rc)*x muss x zwischen null und eins liegen, so viel steht fest. Ich denke aber nicht, dass man hier mit Kurvendiskussion arg weiter kommt, schließlich willst du ja aufgrund von Variablen auf exakte Werte kommen und keine Kurve annähern. Dennoch bleibt dadurch eventuell eine Hilfe: Extremwertbetrachtung. -
so klappts schonmal für die ersten zwei^^ Nimmt man noch ein Glied dazu, siehts dann wieder blöd aus. Damit sieht man dann gleich, dass die Betrachtung von nur zwei Gliedern nicht ausreicht. Um da nun genauer zu werden müsste man den Therm für #3 auseinandernehmen. Wir scheinen mit x Ra + Rc schon mal in die selbe Richtung zu denken. Ich habs auch mal mit dem Taschenrechner (CAS) versucht. Wenn man aber nicht weiß, was man einzugeben hat, ist das aber völlig wertlos. -
ouch, jetzt wo du es sagst. So rostet man halt ein, wenn man sich nicht immer wieder damit beschätigt. Aber wer es nicht versucht, kann es nicht falsch machen^^ Ich habe mich an der Widerstandsrechnung versucht. Aber nur mit Variablen zu rechnen, bläht die Rechnung dermaßen auf und ich schaffe es nicht sie zu vereinfachen:
-
-
Hallo Leute,
es hat sich bei mir die Notwendigkeit ergeben, in einem Programm nebst 74HCT595 Porterweiterungsbausteinen auch noch eine Hand voll WS2801 anzusteuern. Die Porterweiterungen hängen schon jeher auf Hard- SPI mit SS, MOSI, SCK. Dazugekommen sind die WS2801 auf Mosi=D.1, SCK=D.0. Das Pragramm dazu ist vereinfacht dieses: (ich habe alles was nicht den Übermittlungteil betrifft fürs Forum raus genommen)
Code
Alles anzeigen$regfile = "m88def.dat" $crystal = 8000000 '$baud = 38400 $hwstack = 40 ' default use 32 for the hardware stack $swstack = 40 ' default use 10 for the SW stack $framesize = 40 ' default use 40 for the frame space [...] 'WS2801######################################################################### 'Config Spi = Soft , Din = Portd.4 , Dout = Portd.1 , Ss = None , Clock = Portd.0 'Spiinit Config Spi = Hard , Master = Yes Spiinit [...] Dim Valves(3)as Byte '#098765# 20-15 Valves(1) = &B00000000 '4321098# 14-8 Valves(2) = &B00000000 '7654321# 7-1 Valves(3) = &B00000000 Spiout Valves(1) , 3 [...] Do [Variablen füllen] 'SoftSPI######################################################################### Config Spi = Soft , Din = Pind.4 , Dout = Portd.1 , Ss = None , Clock = Portd.0 Spiinit Spiout Rgb(1) , 12 Waitms 1 'HardSPI######################################################################## Config Spi = Hard , Master = Yes Spiinit Spiout Valves(1) , 3 Waitms 20 '#098765# 20-15 Valves(1) = &B00000000 '4321098# 14-8 Valves(2) = &B00000000 '7654321# 7-1 Valves(3) = &B00000000 Spiout Valves(1) , 3 '############################################################################### Loop End
Das Ziel war nun eigentlich in jedem Programmdurchlauf einmal den Porterweiterungen und einmal den WS2801 neue Daten zu übermitteln. Leider funktioniert das so nicht wie gedacht. So wie der vereinfachte Code jetzt oben steht werden offensichtlich Daten welche für die WS2801 bestimmt sind an die Porterweiterungen übermittelt (Ein Farbverlauf lässt meine Ventile binär hoch zählen). Je nachdem welchen Teil ich nun ausklammere geht der andere auch problemlos. Nehme ich SoftSPI- Übermittlung raus, bekommen die Ventile an der Hard SPI ihre Daten; nehme ich die HardSPI- Übermittlung aus dem Programm bekommen die WS2801 ihre Daten. Beides hintereinander geht halt nicht. Bestimmt muss da nur wieder irgenwo ein Register gesetzt oder geleert werden.? Hat jemand einen Verdacht woran das liegen könnte?
beste Grüße, Simon
-
Glediator mit festen Parametern zu starten war auch schon mein Bedürfnis. Da aber nichts dergleichen in Aussicht stand, habe ich mir dann mit einem Makro ausgeholfen. Mit Autohotkey ist das relativ fix erstellt und tut seinen Dienst. Jedem DJ beizubringen wo welcher Parameter einzustellen ist, hätte schnell dazu geführt, dass die die Matrix gar nicht mehr verwenden weil sie dafür einfach zu faul sind. Außerdem kann man auch gleich die Scenes laden und automatisch durchlaufen lassen. Du bräuchtest das dann (sofern Windows basiert) nur in den Autostart hängen und fertig.
-
habe eben mal eingefügt, was ich noch auftreiben konnte.
isch: Ja, das ist nicht alles. Dazu kommen im wesentlichen noch 150$ Frachtkosten und 220€ für die Netzteile. Der Rest ist dann aber Kleinkram den ich sowieso schon rumfahren hatte. Mit 1500€ kommt man ganz gut hin.
Counterfeiter: Wegen der Blickwinkelabhängigkeit hatte ich erst auch Angst, schließlich ist bei mir jede zweite Reihe um 180° gedreht. Zum Glück sieht man davon aber nichts. -
pepe: ja, darfst gerne verwenden.
Counterfeiter: ein paar gibts, bin gerade noch am sammeln.
Pesi: das erste Bild zeigt die Wand bevor wir sie gestrichen haben. Da ist noch nix mit LEDs.
ich mach dann nochmal ein Update mit ein paar mehr Bildern und Video.
-
Über den Sommer haben wir in der örtlichen Eishalle nun auch endlich eine stationäre Matrix installiert. Dimensionen: 15m x 4m, 48px x 15px, 720px, 518W. Angesteuert wird per Glediator und tpm2. Über T64s artnet-to-tpm2-node und der letzten Beta von MatrixMover ist die Ansteuerung auch möglich, aber etwas ruckelig. Könnte das mal jemand mit >700px ausprobieren?
Für die Ansteuerung muss ein Sedu mit Zusatzplatine herhalten, das dann tpm2 via USB empfängt und IIC über RS485 ausgibt. 60m Patchkabel weiter sitzt dann der 'Empfänger' und die Pixelschlange; übrigens Pixelplatinen von Ledwalker mit 3 LEDs und auf 33cm Pixelabstand erweitertem Abstand; bezogen 05/12 über aliexpress (1,30$/px). Zwei HLG-320H-12A sorgen für die Spannungsversorgung. Top Geräte mit Potis für Spannungs- und Strombegrenzung für den Aussenbereich. Eines speist jede Spalte von oben und eines jede Spalte von unten ein.
Den RS485 Umsetzer gibts als Target-File im Anhang. Hier gibts meine Scenen.!!!Vielen herzlichen Dank an alle Entwickler und Mitwirkende von Glediator, MatrixMover, Sedu-Board und artnet2tpm2!!!
4vP1tLl4QIII8kWE8mvhOc
3mxy70ixxH0