Danke, sehr komplex!
Ich muss jetzt mal gucken ob man sich DMX Schnittstellen für den PC zusammenlöten kann
ich weiss leider nicht mehr wo ich den code gefunden habe...
der intressante teil ist in rec_isr...
Code:' "Deklaration" m³sste klar sein $regfile = "m8def.dat" $crystal = 16000000 $baud = 250000 'Baudrate 250Kbaud $framesize = 128 $swstack = 32 $hwstack = 64 Open "Comc.4:9600,8,n,1" For Output As #1 ' ben÷tigete Variablen Dim Dmx_count As Integer 'Pakete die auf Ausgõnge zielen Dim Dmx_count_temp As Byte 'Gesendete Pakete Dim Dmx_byte As Byte 'DMX Wert Dim Dmx_clock As Byte 'Spielerei Dim Dmx_adr As Word 'DMX-Adresse Dim Dmx_adr_temp As Byte 'DMX-Adresse (Temp) Dim Dmx_adr_c As Word 'DMX-Adresse (Counter) Dim Dmx_off As Byte 'DMX-Signal noch da? ' Ports setzen und configurieren Config Portb.0 = Output 'Schaltausgõnge ' Anfangsvariablen Festlegen Dmx_count = 0 'kein Paket empfangen Dmx_clock = 16 ' Dmx_adr = 55 'DMX_Adresse 2 Config Portb.4 = Output Config Portb.3 = Output Config Portb.2 = Output Dim Ledr As Byte Dim Ledg As Byte Dim Ledb As Byte Dim Servo1 As Byte Dim Servo2 As Byte Dim Speed As Byte Dim Strobe As Bit Dim Strobo As Byte Dim Strobo_to As Byte Dim X As Byte Config Timer1 = Pwm , Prescale = 64 , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up Config Timer2 = Pwm , Pwm = On , Compare = Set , Prescale = 1 Wait 1 On Urxc Rec_isr Enable Urxc Enable Interrupts ' ****************************************************************************** ' Hauptschleife ' ****************************************************************************** Do Decr Dmx_off If Dmx_off = 0 Then Set Portb.0 End If X = 23 Disable Interrupts Printbin #1 , 1 ; Servo1 ; Servo2 ; Speed; Enable Interrupts Waitms 50 'Incr Strobo_to 'If Strobo_to >= Strobo Then ' Strobo_to = 0 ' ' Toggle Strobe 'End If 'Toggle Strobe 'If Strobe = 0 Then Pwm1a = Ledr Pwm1b = Ledg Ocr2 = Ledb 'Else ' Pwm1a = 0 ' Pwm1b = 0 ' Ocr2 = 0 'End If 'Incr Strobo_to Loop ' ****************************************************************************** ' Funktion: DMX-Signal emfangen und auswerten ' Dieser Interupt wird beim eintreffen von seriellen Daten ausgef³hrt Rec_isr: $asm 'Programmteil f³r das Auswerten der .def Uart_status = R16 'emfangenen Daten .def Uart_byte = R17 .def Uart_temp1 = R18 IN Uart_status,USR IN Uart_byte,UDR SBRC Uart_status,FE 'Auswertung ob Datenbyte OK RJMP Asm_reset 'bei ³berlõnge des Datenbyte = DMX Reset RJMP Asm_Loop1 'Daten OK---> Asm_reset: LDI Uart_temp1,$00 'Adesszõhler zur³cksetzen STS {Dmx_count_temp} , Uart_temp1 'Daten dem Basicvariablen ³bergeben STS {Dmx_byte} , Uart_byte RJMP Asm_exit Asm_loop1: STS {Dmx_byte} , Uart_byte Asm_exit: $end Asm If Dmx_count_temp <> 0 Then 'emfangene Daten im "Dmx_buf" ablegen Incr Dmx_count 'und den jeweiligen Kanal zuordnen If Dmx_adr_c = Dmx_count Then If Dmx_adr_temp < 8 Then Select Case Dmx_adr_temp Case 1: 'Ocr0a = Dmx_byte Case 2: Ledr = Dmx_byte Case 3: Ledg = Dmx_byte Case 4: Ledb = Dmx_byte Case 5: Servo1 = Dmx_byte Case 6: Servo2 = Dmx_byte Case 7: Speed = Dmx_byte End Select Incr Dmx_adr_temp Incr Dmx_adr_c End If End If Else 'bei DMX Reset Variablen setzen Dmx_count = 0 : Dmx_count_temp = 1 Dmx_adr_c = Dmx_adr : Dmx_adr_temp = 1 Decr Dmx_clock 'nur eine Spielerei Toggelt eine LED am PortD.6 beim eintreffen von korrekten DMX Daten If Dmx_clock = 0 Then : Toggle Portb.0 : Dmx_clock = 16 : End If End If Dmx_off = 64 Return
Meine Homepage:
www.bluesmash.roboterbastler.de
Danke, sehr komplex!
Ich muss jetzt mal gucken ob man sich DMX Schnittstellen für den PC zusammenlöten kann
für den pc?
für was denn? um vom pc aus zu senden?
Meine Homepage:
www.bluesmash.roboterbastler.de
Jo genau.
Kleines C Proggy zur Ansteuerung (oder bereits ein Fertiges).
Die Frage wäre nur ob sich das lohnt dafür extra DMX zu verwenden.
Wenn ich später nochmal was damit mache vielleicht schon, aber wenn nicht wäre es mit RS232 wohl viel einfacher.
wenn du keine naderen geräte hast die du über dmx steuern kannst denke ich nicht dass es sich lohnen wird... wenn du eh nur den einen moving head steuern wilst würde ich einen eigenen bus auf RS232 basis machen... ist einfacher...
Meine Homepage:
www.bluesmash.roboterbastler.de
Ja ist nur fürs Zimmer, ich denke DMX wird dann wegfallen.
Mir ist nur noch nicht ganz kla wie ich die programmierung am besten aufbauen könnte.
Einfach nur:
Rot an
Tan 90° kippen
Blau an
usw wäre ja oky, aber net richtige kleine Lightshow komfortabel anzusteuerun wird nicht so einfach werden.
Was hast du an deinem Moving Head jetzt eig. noch geplant?
Kannst du mir vielleicht noch Infos über die Motoren, Spot, RGB Ansteuerung (FETs?) geben?
Weil wenn ich sowas baue überleg ich es mir erstmal richtig, bevor ich mir wieder viel zu viel vornehme
die oberfläche für die ansteuerung würde ich so machen dass du für alle 3 farben und die beiden moren je einen schieberegler hast... dann kanst du position und farbe einstellen... dann verschiedene speicherplätze um die einstellungen zu speichern und dann einfach die einzelnen daten der speicherplätze an den moving head schicken... so funktioniert auch ein einfaches dmx steuer pult...
Schrittmotoren habe ich die von conrad... die günstigsten...
ne prolight led von led1.de http://www.led1.de/shop/index.php?cN...747262958a911c
und davor dann ne fresnell linse
https://www.roboternetz.de/phpBB2/ze...639&highlight=
für die led ansteuerung einfach passende vorwiderstände und transistoren...
geplant ist noch dass er ein gehäuse bekommt und die antriebe von den motoren auf die achsen verbessern...
gruss bluesmash
Meine Homepage:
www.bluesmash.roboterbastler.de
Oky danke soweit, wenn werd ichs dann wohl mit meinen 3€ Motörchen probieren.
Zwei Frage hab ich noch, was für ein Spot Gehäuse verwendest du?
Ein kleiner PAR oder?
Und wie bekomm ich die hohe Geschwindigkeit hin (Clock vom L297), per Waitms 1 Intervall dreht sich der Motor nicht besonders schnell.
Per Timer?
Ich hab kaum Ahnung in Sachen Lichttechnik sorry
ich kenne mich noch weniger damit aus was ist ein par?
led:
http://www.led1.de/shop/product_info...747262958a911c
collimator:
http://www.led1.de/shop/product_info...747262958a911c
collimatorhalterung:
http://www.led1.de/shop/product_info...747262958a911c
leider passt die halterung nicht genau auf die rgb led da sie eigentlich für die prolight leds mit 2 lötpads gemacht ist... man muss halt einfach die stellen für die zusätzlichen 2 lötpads freimachen...
gruss bluesmash
Meine Homepage:
www.bluesmash.roboterbastler.de
par = „Parabolic Aluminium Reflector“
ich würde nen timer nehmen den du in der gewünschten frequenz aufrufst und den clock toggelst... wait befehle sind tabu für solche sachen
gruss bluesmash
--edit--
das gehäuse für den strahler ist ein einfaches aluminium rohr....
Meine Homepage:
www.bluesmash.roboterbastler.de
Lesezeichen