DIY-RGB-Controller mit IR-Fernbedienung und DMX - modular erweiterbar

  • Andreas: ja, ich habe ne Erinnerung auf dem Desktop, bin aber noch nicht dazu gekommen, erst mal wieder zamstöpseln, DMX-Pult aus dem Lager holen... aber gute Idee, hier anbei mal mit Adresse 17, schau' doch mal, ob das funktioniert...


    Phillux: Ja, wenn ich mal Zeit habe :D mach' ich die Beschreibung noch...


    geht mir auch so, asm finde ich irgendwie verständlicher - für C gibt's halt mehr fertige Sachen, da beschäftige ich mich gerade damit, ich glaube, wenn man's mal kapiert hat, ist das auch ganz cool.


    Die globale Geschwindigkeit wird in der Timer-ISR (ISR_Timer0OVF.inc) eingestellt, entscheidend ist die Zeile:


    Code
    andi	temp0, 0b00001111			; nur letzte 4 Bits = Teilen mit Rest durch 16


    hier kannst Du andere Werte nehmen, z.B. mit 0b00011111 wird's durch 32 geteilt, also halbe Geschwindigkeit im Vergleich zu vorher - aber dann natürlich bei allen Programmen!


    wenn nur der Fader langsamer werden soll, müsstest Du in der Fade-Routine noch nen Teiler einbauen...


    die entscheidene Stelle ist hier (in jedem Modul so):


    Code
    sbrs	Flags, FL_Tick				; Zeitsegment abgelaufen...?
    rjmp	_Baumarkt_Ende				; nein, Modul überspringen
    cbr	Flags, (1<<FL_Tick)			; ja, Flag löschen


    die Timer-ISR setzt regelmäßig das Flag "FL_Tick" für die Zeitbasis - immer wenn es gesetzt ist, macht der Fader einen Schritt weiter.


    Du kannst hier in dieser Routine noch mal die Ticks zählen, also z.B. dass nur alle 3 Ticks ein Schritt weiter gemacht wird = 1/3 so schnell...


    das geht dann aber mit dem Tiny2313 nicht mehr, weil der ist mit der letzten SW-Version echt *randvoll* :D

    Dateien

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Okay ich habe mich jetzt doch dazu entschieden noch zusätzlich den Taster einzubauen.
    Dazu werde ich dann einfach einen freien Pin vom Attiny auf Masse schalten. Falls das so richtig ist?
    Das zweite wäre dann noch die Sound2Light Funktion.
    Dazu möchte ich einen weiteren freien Pin nutzen.
    Nur leider weiß ich nicht, wie ich das gestallten soll.
    Reicht dort ein Mikrofon mit analog/digital--Wandler?
    Oder ein seperater Mikrocontroller für die Sound2Light-Funktion?
    Mfg

  • Okay ich habe mich jetzt doch dazu entschieden noch zusätzlich den Taster einzubauen.
    Dazu werde ich dann einfach einen freien Pin vom Attiny auf Masse schalten. Falls das so richtig ist?

    Kannst Du machen wie Du willst - üblich ist Taster nach GND, und den internen Pullup benutzen...


    aber nochmal: das alleine reicht nicht, es muss auch noch SW dazu! - und in den Tiny2313 passt die nicht mehr rein, musst Du nen 4313 nehmen...


    kannst Du überhaupt programmieren, und auch Assembler, nur mal so vorsichtshalber gefragt...?


    wegen dem Sound2Light: Auch hier führen viele Wege nach Rom, 2. µC (m.E. nicht nötig), A/D Wandler, wasauchimmer...


    ich persönlich würde - wie schon gesagt - nach "Sound to Light" im Netz suchen, irgendsone Verstärkerschaltung mit Mikrofon, dahinter Tiefpass, so dass letztlich eine Spannung entsteht, die zur Lautstärke proportional ist. Diese dann an nen ADC-Pin, dann kannst Du sie in SW auswerten...


    also einfach so Sachen wie "je lauter desto heller", dann pulsieren die LEDs im Takt der Musik - oder Du vergleichst periodisch die Lautstärke mit der vorherigen, ist ein starker Anstieg festzustellen, dann war's ein Bass-Impuls, dann im Programm den nächsten Schritt triggern, dann laufen die Programme nicht mehr stur mit festem Tempo, sondern passend zur Musik...


    da brauchst Du aber nen anderen µC, der Tiny2313/4313 hat keinen ADC...


    gibt da viele Möglichkeiten, aber keine davon geht per einfach irgendwo ein Mikrofon dran klatschen und paar Zeilen Code von irgendwoher in die SW kopieren...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Die Softwareanpassung ist mir klar.
    Ich bin dabei mich in ASM rein zu lesen.
    So hat es bei mir auch in anderen Programmiersprachen gut funktioniert.
    Einen A/D Wandler dachte ich deshalb, weil der Attiny ja keinen ADC Eingang hat.
    Oder ist dies deiner Meinung nach gar nicht möglich?
    Simple Sound2Light Schaltungen finde ich im Netz schon, aber irgendwie fehlt mir da irgendwie die Idee das ganze in den Mikrocontroller einzuarbeiten.

  • Wie schon gesagt, das eine ist die analog-Schaltung, die aus der Lautstärke ne Spannung von 0-5 V macht - das andere dann die Auswertung im µC


    Einen A/D Wandler dachte ich deshalb, weil der Attiny ja keinen ADC Eingang hat.

    Wie schon gesagt, dann nimm' doch einfach nen anderen, z.B. nen Mega 88 oder sowas... unter'm Strich deutlich günstiger und einfacher, als unbedingt den Tiny zu nehmen und dann noch nen externen ADC

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • kommt drauf an - Ergebnisse/Baufortschritte kannst Du gerne hier posten, wie schon gesagt (im Startpost) das ist hier ja ein "modulares" System, wo jeder gerne erweitern kann und es auch gerne gesehen ist, wenn die Erweiterungen dann auch hier zu finden sind...


    wenn aber viele Fragen zu grundsätzlichem kommen, also wie geht das mit dem Taster, wie Mikrofon verstärken etc., das ist dann hier o.t., dafür dann lieber nen eigenen Thread aufmachen...


    z.B. im Expertenforum "Bau eines RGB-Controllers mit Sound2Light-Funktion" o.ä., da kurz beschreiben, was Du vor hast (diese SW hier erweitern, am Besten mit Link auf den Thread) und dann dort die Fragen stellen...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Andreas: Habe den Fehler endlich gefunden - Dein Hinweis mit dem EEP hat mich drauf gebracht... ;)


    eigentlich läuft das ja so, dass die Adresse aus der Konstante DMX_STARTADRESS gelesen und in's RAM gespeichert wird...


    jetzt hatte ich das aber schon vorbereitet für später, da soll man die DMX-Adresse auch per FB einstellen können, deswegen liegt die DMX-Adresse im RAM in dem Bereich, der in's EEP geschrieben, und auch da raus gelesen wird (beim Start).


    Also hat dann die Adresse im EEP (die war da fest auf 1) die vorher eingestellte wieder überschrieben... :pinch:


    jetzt sollte es aber gehen, anbei noch mal das komplette Projekt mit Startadresse 17, oben mache ich auch noch das korrigierte rein.

    Dateien

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Ich hab's gerade ausprobiert, jetzt funktionierst. Jetzt kann ich auch in den settings die Adresse ändern und habe den entsprechenden Effekt ;) vielen dank dafür. Ob das ändern mit dip Schaltern auch funktioniert werde ich die Tage mal probieren, denke dann müsste man die dmx setup ändern, aber das ist ja keine Kunst. Solange das alles ist.
    Somit ist das schonmal sehr gut, das i Tüpfelchen wäre dann anstatt eines Programms (aus platzgründen) eine strobfunktion, das hattest du anfangs glaube ich auch schonmal angedeutet, wenn mal die zeit da ist ;)
    Schönen Gruß

  • anstatt eines Programms (aus platzgründen)

    Die Ausrede "aus Platzgründen" zählt nicht (Pesi weiß, wie ich das meine).
    Falls der Programmspeicher des Tiny 2313 nicht ausreichend sein sollte, dann nimmt man ganz einfach den Tiny 4313, ist ja schließlich völlig pinkompatibel.
    (Die Geschichte, weshalb Pesi unbedingt den 2313 nimmt, ist eine ganz andere ...)


    Und, ja, eine Strobe-Funktioin mit veränderbarer Geschwindigkeit, wäre noch eine gute Ergänzung ...

  • Stimmt, da hast du recht, das ist kein Problem, da hatte ich im ersten Moment gar nicht dran gedacht, weil ich die anderen hier liegen habe. Und es wurde ja gezeigt was alles in den 2313 passt, was auch ein Anfangsgedanke war.

  • Ja, in der Routine DMX_Setup.inc ist die DIP-Abfrage schon drin, die ist nur auskommentiert - weil's mit genau 2.052 Byte sind, der Tiny2313 hat nur 2.048...


    war so - ich habe noch etwas geändert, und die Routine direkt eingebunden statt sie mit rcall aufzurufen, jetzt sind's genau 2.046 Byte :D


    habe es oben ausgetauscht, DIP-Abfrage ist nun drin - da wird der DIP abgefragt, wenn keiner da ist (bzw. alle Schalter off), dann wird die fest eingebrannte Adresse verwendet, wenn eine Adresse eingestellt ist, dann wird diese verwendet (Reihenfolge der Routinen ist getauscht, die überschreibt dann die fest eingebrannte)


    wäre nett, wenn Du das mal ausprobieren würdest... ;)


    für diese Strobe-Funktion werde ich garantiert lange keine Zeit haben, aber Du kannst Dich gerne mal dran versuchen, es sollen hier ja Leute mit machen, auch an der SW (Danke noch mal an Lötmeister für die Mitarbeit bei der HW!).


    Als nächstes - wenn mal Zeit - werde ich die zusätzliche Steuerung per Taster einbauen, sowie die Empfangsroutine für NEC-Protokoll, damit man diese billigen China-FB auch benutzen kann...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Hallo,


    ich würde gerne die Fadinggeschwindigkeit herunter setzen.
    Sehe ich das richtig, dass ich mir dazu einen neuen Timer konfigurieren müsste?


    So wie ich das bisher verstanden habe, und Pesi glaube ich im ersten Post geschrieben hat, läuft RC5, PWM und der Fader über einen Timer. Das ganze wird in der ISR_Timer0OVF.inc konfiguriert und in der configuration.inc initialisiert (bitte korriegt mich wenn ich da falsch liege). Jetzt kapiere ich leider noch nicht so ganz wie ich die Fadinggeschwindigkeit darüber einstellen kann.
    Benötige ich jetzt:
    a) einen zusätzlichen Timer oder kann ich
    b) die Fadinggeschwindigkeit durch irgendwelche Einstellungen dort entschleunigen?

  • Guckst Du hier... ;)


    Am Timer selbst darfst Du nix ändern, sonst funktioniert der RC5-Empfang nicht mehr.

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!