2 adet step motor, arduino uno, l293d motor shield, 1 adet ip camera (rs485 destekli) tüm bunlardan pan tilt kamera yaptım. camerayı ttl rs485 shield ile arduno uno ya bağladım. fakat bilgim yetmediği için ip cameraya tcp/ip ile bilgisaraydan bağlanıp görüntü seyrederken cameranın rs485 desteği özelliği olduğu için ekrandan pan tilt yapmak istiyorum. ip cameradan rs485 komut gönderip arduno uno ya bağlı step motorlara pan tilt yapmak istiyorum. http://i.hizliresim.com/Jqo9yQ.jpg bitmiştir. herkese teşekkürler
mevcut kod lar bu şekilde bana kameradan rs485 pan tilt komutu gönderince step motorları hareket ettirecek kod lazım include < AccelStepper.h> include < AFMotor.h> AF_Stepper motor1(200, 2); AF_Stepper motor2(200, 1); void forwardstep1() { motor1.onestep(FORWARD, SINGLE); } void backwardstep1() { motor1.onestep(BACKWARD, SINGLE); } void forwardstep2() { motor2.onestep(FORWARD, SINGLE); } void backwardstep2() { motor2.onestep(BACKWARD, SINGLE); } AccelStepper stepper1(forwardstep1, backwardstep1); AccelStepper stepper2(forwardstep2, backwardstep2); void setup() {
http://i.hizliresim.com/Jqo9yQ.jpg bitirdim #include \< SoftwareSerial.h\> #include \< AccelStepper.h\> #include \< AFMotor.h\> #define SSerialRX 0 //Serial Receive pin #define SSerialTX 1 //Serial Transmit pin #define SSerialTxControl 0 //RS485 Direction control #define RS485Transmit HIGH // not needed here, the servos attached to the arduino will not transmit any data to the Pelco-D controller #define RS485Receive HIGH SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX AF\_Stepper motor1(48, 1); AF\_Stepper motor2(48, 2); byte byteReceived[7]; int byteNumber = 0; int byteSend; void setup() { Serial.begin(9600); // opens serial port, sets data rate to 38400 bps Serial.println("Arduino Serial Servo Control with Pelco D"); Serial.println(); pinMode(SSerialTxControl, OUTPUT); digitalWrite(SSerialTxControl, RS485Receive); // Init Transceiver RS485Serial.begin(9600); motor1.setSpeed(100); // 10 rpm motor2.setSpeed(100); // 10 rpm } void loop() { if (RS485Serial.available() \> 0) { byteReceived[byteNumber ++] = RS485Serial.read(); if ( byteReceived[0] != 0xFF ) {byteNumber = 0;} } if ( byteNumber \> 6 ) { byteNumber = 0; byte data = byteReceived[3]; Serial.println(data, HEX); switch(data) { //case 0x00 : break; case 0x02 : motor1.step(100, BACKWARD, INTERLEAVE); break; //sağ case 0x04 : motor1.step(100, FORWARD, INTERLEAVE); break; //sol case 0x10 : motor2.step(70, FORWARD, INTERLEAVE); break;//aşağı case 0x08 : motor2.step(70, BACKWARD, INTERLEAVE); break;//yukarı case 0x12 : motor1.step(100, BACKWARD, INTERLEAVE), motor2.step(70, FORWARD, INTERLEAVE); break;//ALT SAĞ çapraz case 0x14 : motor1.step(100, FORWARD, INTERLEAVE), motor2.step(70, FORWARD, INTERLEAVE); break;//ALT SOL çapraz case 0xA : motor1.step(100, BACKWARD, INTERLEAVE), motor2.step(70, BACKWARD, INTERLEAVE); break;//ÜST SAĞçapraz case 0xC : motor1.step(100, FORWARD, INTERLEAVE), motor2.step(70, BACKWARD, INTERLEAVE); break;//ÜST SOL çapraz } } }
şu konuya bir bakar mısın ben ptz kamerayı kontrol etmek istedim ama yapamadım öyle duruyor; http://forum.arduinoturkiye.com/index.php?p=/discussion/5756/ptz-kamera-rs485-protokolue-#Item\_22
evet gördüm ben yaptım resim atayım sana
burada resim nasıl ekleniyor yücel