Selamlar. elidme speed doom dedikleri kameradan var. video çıkışından hariç rs485 çıkışı var. DVR cihazlarından buraya bağlantı yapılıp joyistik ile kontrol ediliyormuş. aynı zamanda focus vb. de. ben bunu arduino ile nasıl kontrol edebilirim ? Görüntü alıyorum ama ne focus ne de başka bişey yapabiliyorum ? ya da direk usb to rs485 modülünü kullanarak pc ye mi bağlamam gerekiyor.
bence mumkun, ama joystick in kameraya zoom yapması için yolladıgı bir mesaj vardır, atıyorum serial 9600bault dan kamera dinler ZOOMOUT diye bi şey gelirse geri zum yapar, LEFT gorurse sol yapar gibi. bir tane TTL-RS485 Seri Dönüştürücü Kartı alıp, kamerayı kontrol edebilecek bir joystick e bağlayıp, sag sol ileri geri vs. tum hareketleri okuyup, arduino ilede taklit edip yapılabileceğini dusunuyorum.
cevabınız için teşekkürler. Dediğiniz üzere pelco kodları girilen değere göre faklı işlemler yaptırıyormuş., netten ararken buldum. http://www.commfront.com/pages/pelco-d-protocol-tutorial bende USB to TTL dönüştürücü var ama rs485 yok. Bir tane edinip denemek için sabırsızlanıyorum. Arduinoyu rs485 dönüştürücü olarak kullanabilir miyim ?
bildiğim kadarıyla olmuyor hocam, zaten 8-10 lira bişey. bu arada müthiş bi döküman bulmuşsunuz marka aynımı?
tamam ben bir tane ediniyim rs485 to usb. markayla bişey yok sanırım. “pelco d” bu tür kameralarda kullanılan bir arayüz gibi bişey herhalde.
selamlar. USB rs485 ve PC deki PTZ controller adlı programla kamerayı kontrol edebildim. Gel gelelim Ben bu işi arduino ya PS2 joyistik bağlayıp da yapmak istesem nasıl yapıcam acaba
İhtiyacım olan şey aslında şu; Bu program kameraya tam olarak hangi komutları gönderiyor izleyebilsem birşeyler yapcam ama kaç tane site inceledim anlamadım bir türlü. Mesela bir komut var. Bunu program vasıtasıyla gönderince sürekli aynız hızda sağa dönüyor. Ama joyistikle ister yavaş ister hızlı çevirmek isteyebiliriz. Bunu nasıl sağlıcaz. K
once bir joystick bağlayın hız kolay
okoman üstad. Hala bu konu üzerinde çalışıyorum. Pc den kontrol edebildim USB to rs485 ile. Fakat arduinoda tıkandım. Yazılımı geç, arduinoya nasıl bağlantı kuracağımı da anlayamadım. Her yerde başka bir şema var. Ama yazılımla ilgili güzel bişey buldum. Adamın birisi joyistik ile bir kod yazmış ama ne devresi var ne de ben bişe anladım bana yardımcı olur musun ? Bulduğum kodda hangisi sağ hangisi sol onlar tanımlanmış “const byte titldown” demiş mesela. Bunları bulamıyordum. Kod; /*Программа для управления камерой*/ include <softwareserial.h>
int sensorPan = A0; // канал вправо/влево
int sensorTilt = A1; // канал вверх/вниз
int sensorFocus = A2; // канал фокус
int xVal = 0; // переменная для хранения значения с потенциометра вправо/влево
int yVal = 0; // переменная для хранения значения с потенциометра вниз/вверх
int focus = 0; // переменная для хранения значения с потенциометра фокуса камеры
const byte tiltDown = 0x10;
const byte tiltUp = 0x08;
const byte panRight = 0x02;
const byte panLeft = 0x04;
const byte focusNull = 0x00; // Зума нет
const byte focusNear = 0x20; // Зум + 0x01
const byte focusFar = 0x40; // Зум - 0x80
SoftwareSerial newSerial = SoftwareSerial(7, 8);
void setup()
{
pinMode(7, INPUT);
pinMode(8, OUTPUT);
newSerial.begin(2400); // включаем uart
}
// отправка данных камере
// структура посылки Pelco-D
/*
| byte 1 | byte 2 | byte 3 | byte 4 | byte 5 | byte 6 | byte 7 |
|Sync 0xFF | Cam Adress | Command1 | Command2 | Data 1 | Data 2 |Checksum|
*/
void sendData(byte camNum, byte command_1, byte command_2, byte panSpeed, byte tiltSpeed)
{
int modSum = 0; // начальное нулевое значение контрольной суммы
byte dataVal[6] = {0xFF, camNum, command_1, command_2, panSpeed, tiltSpeed}; // вектор формата комманды Pelco-D
for (int i=0; i<6; i++) // цикл отправки посылки камере
{
newSerial.write(dataVal[i]); // отправить байт в UART
if (i > 0) // контрольная сумма начинает считаться со второго байта, поэтому первый 0xFF пропускаем
modSum += dataVal[i]; // суммируем байты контрольной суммы
}
modSum %= 100; // контрольная сумма делиться по модуля на 256 в dec или по другому на 100 в hex
newSerial.write(modSum); // отправить контрольную сумму
}
void halt()
{
byte dataVal[7] = {0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};
for (int i=0; i<7; i++)
{
newSerial.write(dataVal[i]); // отправить байт в UART
}
}
void loop()
{
xVal = analogRead(sensorPan); // считывание значения потенциометра вправо/влево в соответствующую переменную
yVal = analogRead(sensorTilt); // считывание значения потенциометра вниз/вверх в соответствующую переменную
focus = analogRead(sensorFocus); // считывание значения потенциометра фокуса камеры в соответствующую переменную
if (xVal > 600)
{
sendData(0x01, focusNull, panRight, 0x3F, 0x00); // вызывается функция отправки байта
while (xVal > 600)
{
xVal = analogRead(sensorPan);
}
}
if (xVal < 450)
{
sendData(0x01, focusNull, panLeft, 0x3F, 0x00); // вызывается функция отправки байта
while (xVal < 450)
{
xVal = analogRead(sensorPan);
}
}
if (yVal > 600)
{
sendData(0x01, focusNull, tiltUp, 0x00, 0x3F); // вызывается функция отправки байта
while (yVal > 600)
{
yVal = analogRead(sensorTilt);
}
}
if (yVal < 450)
{
sendData(0x01, focusNull, tiltDown, 0x00, 0x3F); // вызывается функция отправки байта
while (yVal < 450)
{
yVal = analogRead(sensorTilt);
}
}
if (focus > 600)
{
sendData(0x01, focusNull, focusNear, 0x00, 0x00); // вызывается функция отправки байта
while (focus > 600)
{
focus = analogRead(sensorFocus);
}
}
if (focus < 450)
{
sendData(0x01, focusNull, focusFar, 0x00, 0x00); // вызывается функция отправки байта
while (focus < 450)
{
focus = analogRead(sensorFocus);
}
}
halt();
}</softwareserial.h>
arkadaşlar yok mu yardım eden ? Şimdiye kadar hiç RS485 ile işim olmadı. Hiç bilmiyorum. Nette modbus haberleşmesi diye birşeyler diyor. Master slave var. Şu yukardaki kodu benim anlayabileceğim şekilde yeniden düzeltemez misiniz ? elimde RS485 modül var. Ama nasıl bağlanacağını nasıl kontrol edileceğini bilmiyotum.
rs585 ile arduino arasındaki bağlantı rx tx pinleri ve bunu yonetecek bir kontrol pininden ibarettir. normal rs485 çıkışı 2 telli basit bir kablo ve bunun cevreleyen bir gnd topraklama hattı ile olur. rs485 in avantajı 1-2km kablo uzunluğunda çalışabilmesi ve bildiğin bir network oluşturmanı sağlar aynı anda 16 ile 32 cihaz haberleşebilir. burada onemli olan networkde aynı anda herzaman 2 cihazın birbirleri ile konuşabilmesi ve diğerlerinin bunu dinlemesi veya sırasını beklemesi şekline olur. senin networkunde sadece 2 unıte varsa normal serial iletişimi kullanabilirsin sadece dikkat etmen gereken aynı anda iki noktanın birde tx yapmamasını sağlaman yeterli. modbus bir protokoldur bir master etrafındaki unıtelerden bazı bilgileri sorgulaması ıcın geliştirilmiş bir iletişim yontemidir. sen kendin de birşeler uydurabılrsın sonuçta rx tx hattı nasıl istersen kullan…
okoman usta bilgi için teşekkürler. Ya şu kamerayı arduino ile bir hareket bile yaptırsam kendim için çok büyük bir ilerleme kaydetmiş olucam. rs485’i arduinoya bağladım, rx,tx bir de enable olarak. Nette bir kaç library gördüm, gerek var mı ? birtanesi <softwareserial.h> bunu kullanmışlar.
bana bir yardım et üstad ya en azından bir hareket ettirsem gerisi çözülcek. nette pek birşey de yok bu konuyla ilgili. herhalde böyle şeylere sadece ben merak sarıyorum :D</softwareserial.h>
Serial.write(0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01 ,HEX); burda hata veriyor nasıl yazmam gerek acaba
Aslında iş yerimdeki ip kamera için bende benzer şeyler düşünüyorum. Sizin olaya göre daha kolay. İlla bi protokolü vardır. Sizin kamera sisteminde tavsiyem gömülü bi sistem üzerine araştırma yapıp doktora yapana kadar mekanik sistemi dahili kontrolcüden ayırıp kendiniz bi kontrol düzeneği kurun.
Konuyu okuyunca farkettim.siz arduinoyla kontrol ettiniz diyelim. Görüntüyü nerden alacaksınız? Cevap pcdense bu işi arduino leonardo ile çok kolay yapabilirsiniz…
evet arduinoya kontrol etmek istiyorum. sonuçta çıkışı av çıkış. fpv sistem olarak bile kullanılabilir. Benim amacım daha çok öğrenmek ve yapmak. Yani ardiunoyla bunu yapmak istiyorum. PC için bir program var 30 gün triali var PTZ Controller diye. Bunun en güzel tarafı üstündeki step motorlardan hiç ses çıkmıyor. Ve titremeden çok güzel şekilde yapıyor hareketleri. Eğer bunlar servo motor olsaydı, çazz cuz sesten durulmaz. Resim ekleyebilsem buraya eklerdim. Bunun aynısının küçüğü olsa elimde, yapmak istediğim rc tankın içine koyardım. Kamersı çok iyi. 27x zoom var
Mekaniğe dokunmayacaksın zaten. Av çıkışta mevcut motor kontrol işini arduinoya vericeksin.geri kalan iki arduinoya iletişim kurdurmak.
tek sorun kameranın içindeki zoom motoru, yoksa a4988 step motor sürücü vb. ile her türlü hareket ettirirdim ama işte kameranın zoom motoru ve focus ayarlaması bozuyor işi.
@yucelll Serial.write(0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01 ,HEX); yerine tek tek yaz yolla Serial.write(0xFF,HEX);
hata veriyor, kabul etmiyor.