Arduino a 100 metros

Hola Amigos.
Estoy realizando un proyecto personal.
Basicamente es un Mini Tanque en donde quiero hacer inspeccion de tuberias con camara de video.

El problema que tengo es que la inspeccion de estas tuberias deben por lo menos a 100 metros.

Estoy ocupando los siguentes componentes.

  1. Joystinck Analogo de 5v el cual hago que avance hacia adelante y hacia los lados.
  2. Joystinck Analogo de 5v el cual hago que que dos servo motores muevan una camara hacia arriba, abajo, derecha y izquierda.

E estado averiguando y leyendo en este foro y encontre algunos con este problema y recomendaron un modelo para altas distancias de informacion como el modulo RS485

Eso... Si alguien puedo ayudarme o existe un tema similar se los agradezceria mucho.

A 100 mts y por tuberías no puedes pensar en nada con RF.
Asi que si piensas en RS485 que no me parece mal, porque no algo que use TCP/IP o UDP?
Piensa que te vendría bien para la cámara o tal vez eso lo tengas resuelto de otro modo.
RS485 es una buena opción.
No se que mas quieres, buscas Arduino RS485 y verás que puedes usarlo half duplex o full duplex.
Full requiere un par de ida y otro par de vuelta.

hola amigo.
por la menos la camara no pierde señal se mantiene todo estable en cuanto al video

ahora mismos estoy probando el rs485 asi que en esto estamos jejej

Gracias por tu ayuda

Y como transmitis video?

por cable normal, pero aumente la tension de los 12 volt para no perder la calidad de imagen. la señal de video no se pierde en los 100 metros

Hola Amigos.
Espero que esten todos bien.
Bueno les cuento.
estoy realizando un proyecto en el cual consiste mover por cable equipo de inspeccion que son dos motores de 12 volt y dos servomotores, todo esto lo debo manipular osea mover con dos analogos estilo joystinck.

Anteriormente consulte en foro como hacer el funcionamiento de esto a los 100 metros, pero no entiendo muy bien como " funcionar" o integrar el rs485 a mi algoritmo. bueno tambien comentar el algoritmo tambien lo saque por varias partes hasta que me resulto...

Nose si puedan ayudarme. Se lo comparto..


#include <Servo.h>
#define enA 9
#define in1 4
#define in2 5
#define enB 10
#define in3 6
#define in4 7

int motorSpeedA = 0;
int motorSpeedB = 0;
  
Servo servo1;
Servo servo2;
int joyX = 4;
int joyY = 5;
  
int servoVal;


void setup() {
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);

 servo1.attach(3);
 servo2.attach(11);



}

void loop() {
  int xAxis = analogRead(A0); // Read Joysticks X-axis
  int yAxis = analogRead(A1); // Read Joysticks Y-axis

  // Y-axis used for forward and backward control
  if (yAxis < 470) {
    // Set Motor A backward
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    // Set Motor B backward
    digitalWrite(in3, HIGH);
    digitalWrite(in4, LOW);
    // Convert the declining Y-axis readings for going backward from 470 to 0 into 0 to 255 value for the PWM signal for increasing the motor speed
    motorSpeedA = map(yAxis, 470, 0, 0, 255);
    motorSpeedB = map(yAxis, 470, 0, 0, 255);
  }
  else if (yAxis > 550) {
    // Set Motor A forward
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
    // Set Motor B forward
    digitalWrite(in3, LOW);
    digitalWrite(in4, HIGH);
    // Convert the increasing Y-axis readings for going forward from 550 to 1023 into 0 to 255 value for the PWM signal for increasing the motor speed
    motorSpeedA = map(yAxis, 550, 1023, 0, 255);
    motorSpeedB = map(yAxis, 550, 1023, 0, 255);
  }
  // If joystick stays in middle the motors are not moving
  else {
    motorSpeedA = 0;
    motorSpeedB = 0;
  }

  // X-axis used for left and right control
  if (xAxis < 470) {
    // Convert the declining X-axis readings from 470 to 0 into increasing 0 to 255 value
    int xMapped = map(xAxis, 470, 0, 0, 255);
    // Move to left - decrease left motor speed, increase right motor speed
    motorSpeedA = motorSpeedA - xMapped;
    motorSpeedB = motorSpeedB + xMapped;
    // Confine the range from 0 to 255
    if (motorSpeedA < 0) {
      motorSpeedA = 0;
    }
    if (motorSpeedB > 255) {
      motorSpeedB = 255;
    }
  }
  if (xAxis > 550) {
    // Convert the increasing X-axis readings from 550 to 1023 into 0 to 255 value
    int xMapped = map(xAxis, 550, 1023, 0, 255);
    // Move right - decrease right motor speed, increase left motor speed
    motorSpeedA = motorSpeedA + xMapped;
    motorSpeedB = motorSpeedB - xMapped;
    // Confine the range from 0 to 255
    if (motorSpeedA > 255) {
      motorSpeedA = 255;
    }
    if (motorSpeedB < 0) {
      motorSpeedB = 0;
    }
  }
  // Prevent buzzing at low speeds (Adjust according to your motors. My motors couldn't start moving if PWM value was below value of 70)
  if (motorSpeedA < 70) {
    motorSpeedA = 0;
  }
  if (motorSpeedB < 70) {
    motorSpeedB = 0;
  }
  
  analogWrite(enA, motorSpeedA); // Send PWM signal to motor A
  analogWrite(enB, motorSpeedB); // Send PWM signal to motor B

  servoVal = analogRead(joyX);
  servoVal = map(servoVal, 0, 1023, 0, 180);
  servo1.write(servoVal);

  servoVal = analogRead(joyY);
  servoVal = map(servoVal, 0, 1023, 70, 180);
  servo2.write(servoVal);
  delay(15);  

}

He trasladado su tema de una categoría de idioma inglés del foro a la categoría International > Español @debramspa.

En adelante por favor usar la categoría apropiada a la lengua en que queráis publicar. Esto es importante para el uso responsable del foro, y esta explicado aquí la guía "How to get the best out of this forum".
Este guía contiene mucha información útil. Por favor leer.

De antemano, muchas gracias por cooperar.

1 Like

Moderador:
Varias faltas has cometido.
Por favor, lee las Normas del foro
Primera falta:
Si posteas en el foro en inglés usa idioma inglés para expresarte.
Si escribes en español debes usar el foro [Arduino en español]
Segunda falta
Edita el título retirando la palaba Ayuda, lee el punto 5 de cómo se postean títulos.
Tercera falta
Si ya tienes un hilo abierto para que abres uno nuevo refiriéndote al mismo tema? eso se considera doble posteo.
Uno este tema con el anterior.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.