avatar_elektro77

DMX512 hazır konsola slave bir cihaz yapmak

Başlatan elektro77, 28 Kasım 2019, 21:53:05

elektro77

Merhabalar. Babamın vefatı dolayısıyla bir haftadır aranızda değildim. Ancak kendimi toparlayabildim.
Sizi de üzmek istemedim ama anlatmak içimden geldi. İnsan yanlız olunca duygularını bu gibi alakasız yerlerde de açabiliyormuş. Bunu anladım bir süredir.
Neyse
işyerime döndüm ve hayat devam ediyor mantığıyla bir devre tasarlayarak kendimi iyice toparlamaya karar verdim.

Bu proje ile ilgili daha öncede başlık açtığımı hatırlar gibiyim ama henüz yeterli bir tasarım yapamadım.
Ben ses ve ışık sistemleri tamircisiyim ama şu dmx512 konsol denilen cihazları test edebileceğim bir alıcı cihaz yapamadım bu güne kadar. aslında benim için çok gerekli olmasına rağmen yıllardır bu cihazı yapmak nasip olmadı nedense.
bazen elimde tamir için gelen ve dmx512 konsol ile çalışan bir cihaz oluyor ve konsolun sağlamlığını bu cihazla kontrol edebiliyorum. ama çoğu zamanda tamir edip gönderdiğim için konsolun sağlamlığını test edebileceğim bir alıcı cihaz olmuyor.
Pic basic ile yapılmış adreslenebilen en az 3 kanal dmx512 protokolü ile çalışabilen slave bir cihazın kaynak kodlarına ihtiyacım var. Hazır kod vermeyeceğinizi biliyorum ama şansımı denemek istedim. ticari bir amacım yok. yardımcı olabilecek bilgisini ve kaynaklarını esirgemeyen iyilik sever birilerinin yardımını bekliyorum.
birde merek ettiğim şey usart iletişimdeki serout ve serın komut dizini içinde bulunan şifre bilgisinin bu gibi üniversal dmx kontrol cihazlarındaki mantığı nedir. çünki hangi marka ve model olursa olsun bir dmx kontrol cihazı tüm marka ve model cihazlara hükmedebiliyor. bunun mantığını kavramıyorum. iletişim protokolünün ve algoritmasının usart ile bir ilişkisi varmıdır.
elektro77@msn.com
 
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

furkan41

Dostum başın sağolsun.

Konuyla alakalı şöyle bir yer buldum bayağı anlatmış işe yarar bilgiler var.

http://mikrobotik.com/wp2/2019/04/03/dmx-sistemi-nedir-dmx512-isik-kontrol-sistemleri/

https://youtu.be/Z4ImdAEJTBk

Yardımcı olurum ben kolay bir şeye benziyor.


elektro77

Teşkkür ederim furkan41. Evet çok güzel ve faydalı bir kaynak hazırlamışlar. Hiç bir soruya mahal bırakmamışlar.
Fakat benim istediğim Anlamak ve değişiklik yapabilmek için daha çok pbp dilinde bir kaynak.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

Hattuşa

başınız sağolsun usta,ALLAH cc babanıza ve tüm ölmüşlerimize rahmeti ile muamele etsin

elektro77

Alıntı yapılan: pro-TR - 29 Kasım 2019, 15:10:25başınız sağolsun usta,ALLAH cc babanıza ve tüm ölmüşlerimize rahmeti ile muamele etsin
teşekkür ederim hocam.Allah razı olsun.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#5
site içinde DMX ile ilgili aşağıdaki kodları buldum. Çalışıp çalışmadığını bilmiyorum. Bilen üstatlarım bi bakabilirmi. Devre simülasyonunda ekran var ama neyi okuyup okumadığı belli değil. Benim istediğim bir potun durumuna göre 0-255 arası bir değeri ekranda görmek ve alıcıda da bu duruma göre bir pwm sinyalininin veya 0-255 arası değerde %50 duty ile 3000 adet 100hz de  puls verebilen bir veya birkaç pinin durumunu gözlemlemek.
DEFINE OSC 20

DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 4   ' 250 KBaud @ 20MHz, 0,0%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
DEFINE	HSER_BAUD 250000	'250Kbps Baud
'******** bu config satırı PBP 3.0 Versiyondan dolayı böyle yazıldı *********
#CONFIG
__config _HS_OSC & _WDT_ON & _LVP_OFF & _CP_OFF & _MCLRE_OFF

#ENDCONFIG
'****************************************************************************
DEFINE LCD_DREG		PORTB	'LCD data bacakları PortB de bağlı
DEFINE LCD_DBIT			4		'LCD data bacakları 4. bitten başlıyor
DEFINE LCD_EREG		PORTB	'LCD Enable Bacağı PortB de bağlı
DEFINE LCD_EBIT			0		'LCD Enable Bacağı 3. bite bağlı	
DEFINE LCD_RWREG    		PORTB	'LCD RW Bacağı PortB de bağlı
DEFINE LCD_RWBIT     		2		'LCD RW Bacağı  2. bite bağlı
DEFINE LCD_RSREG		PORTA	'LCD RS Bacağı PortB de bağlı
DEFINE LCD_RSBIT		0		'LCD RS bacağı 1. Bite bağlı		
DEFINE LCD_BITS			4		'LCD 4 bit  olarak bağlı
DEFINE LCD_LINES		2		'LCD 2 sıra olarak çalışıyor.

' ******** Değişkenler **************
counter VAR word ' Variable de travail WORD
idleflag VAR WORD 
dummy VAR WORD 
RCIF VAR byte
startcode VAR WORD
aminus VAR WORD
adresse_grada VAR WORD
x VAR WORD
newlevel1 VAR WORD
 address1   var word
 startpulse  var byte
 stoppulse  var byte
 xx var byte
 al var byte
bl var byte
cl var byte
pp var byte
kk var byte 
sense1  var byte
sense2 var byte

'************************************

'* * * *

LCDOUT $FE,12
LCDOUT $FE,$80,"DMX VER AL "'ilk sıra baştan itibaren yazdırıyoruz.
LCDOUT $FE,$c0,"PROGRAM" 'ilk sıra baştan itibaren yazdırıyoruz.
 xx=0
 address1=7         ' 7,8,9. datalar okunacak
 aminus = address1 - 1 'adresi bulmak için

basla:

 SPBRG = 0
 TXSTA.2 = 0 'brgh = 0
 RCSTA.6 = 0 'setting 8 bit receive mode, no parity, etc 
RCSTA.4 = 0 'check the datasheet to see what all these bits do
RCSTA.4 = 1 'now, the USART is on and ready to receive

call checkdmx
    
goto basla

checkdmx:
 
pulsin portb.1,0,counter 'mtbf den önceki sıfır seviyesi minimum 88uS

if counter < 45 then checkdmx 'watching for 'break

 pulsin portb.1,1,counter   ' mtbf 1 seviyesi min 8uS
 if counter>4 then
  else
   goto checkdmx
  endif
 pulsin portb.1,0,counter
   

RCSTA.7 = 1 

hserin [startcode]


if startcode = 0 then 'sıfır olması gereken start palsi kontrol
      goto starttamam
else 
'xx=0
'LCDOUT $FE,1
 '   lcdout $fe,$c1,dec3 startcode
  '  lcdout $fe,$81,"startcode HATA"
return
endif

 starttamam:
 
for x = 1 to aminus 'istenen adrese kadar boş kanal datası okunur.
while RCIF = 0:WEND 'sit here until a byte is received
hserin [dummy]'boş kanal okuma
next x

hserin [al,bl,cl] 'adresten başlayıp 3 kanal birden okuma

 LCDOUT $FE,1
    lcdout $fe,$81,dec3 startcode,"  ",dec3 sense2
    lcdout $fe,$c1,dec3 al,"  ",dec3 bl,"  ",dec3 cl
RCSTA.7 = 0 'turn off the USART

return

"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

fatih88

usta öncelikle başın sağolsun
usta meslektaşız bende aynı işi yapıyorum neden kendini bu kadar yoruyorsun maksadın dmx512 yi anlamaksa birşey diyemem programla uğraşmana lakin sadece gelen dmx mixerlerini tamir etmek içinse bence bu kadar fantaziye gerek yok al bi led par ver adresini bak ledler yanıyormu yanmıyormu max 350-400tl kobay bir ledpar alabilirsin buda senin işini ilerde görmeyecektir çünkü pilot2000 40ch olabiliyor avolites de daha fazla kanal sayısı var ama led parla en azından haberleşmenin olup olmadığını kontrol edebilirsin nacizane düşüncem bu iyi çlışmalar
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

elektro77

#7
Alıntı yapılan: fatih88 - 03 Aralık 2019, 22:47:35usta öncelikle başın sağolsun
usta meslektaşız bende aynı işi yapıyorum neden kendini bu kadar yoruyorsun maksadın dmx512 yi anlamaksa birşey diyemem programla uğraşmana lakin sadece gelen dmx mixerlerini tamir etmek içinse bence bu kadar fantaziye gerek yok al bi led par ver adresini bak ledler yanıyormu yanmıyormu max 350-400tl kobay bir ledpar alabilirsin buda senin işini ilerde görmeyecektir çünkü pilot2000 40ch olabiliyor avolites de daha fazla kanal sayısı var ama led parla en azından haberleşmenin olup olmadığını kontrol edebilirsin nacizane düşüncem bu iyi çlışmalar
baş sağlığı dileğin için teşekkür ederim.
15 senedir dediğin gibi yapıyorum zaten. Ama 15 senedirde bu iletişimin mantığını hala anlamamak bana eksiklik gibi geliyor. örneğin bir led parın anakartı arızalı ve bulunamıyor. ne yapıcaz atıcazmı. Ona kendi yaptığım bir kartı neden takmayayım.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

fatih88

Amacınız yeni kart yapmaksa saygı duyarı bildiğim kadarıyla seri haberleşme mantığında lakin baud rate yüksek
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

Powered by EzPortal