• No se han encontrado resultados

}

void loop()

{

Serial.println(letra);

letra=Serial.read();

if(letra=='s'){joystick[0] =520; joystick[1] =520;}

else if(letra=='f'){joystick[0] =520; joystick[1] =0;}

else if(letra=='b'){joystick[0] =520; joystick[1] =1023;}

else if(letra=='l'){joystick[0] =0; joystick[1] =520;}

else if(letra=='r'){joystick[0] =1023; joystick[1] =520;}

radio.write( joystick, sizeof(joystick) );

}

-133-

Comenzando, vemos que la cabecera de las cuatro primeras líneas es la misma que la que existe en el programa de código receptor, asegurando así la correcta comunicación entre las partes; las bibliotecas SPI, Nrf24L01 y RF24 se ocupan de los protocolos de comunicación y de características de radiotransmisión específicas del transceptor Nrf24l01, también definiremos los pines 9 y 10 del mismo, CE y CSN, los cuales llevarán a cabo esta labor.

Se definirán dos constantes; JOYSTICK_X y JOYSTICK_Y que están asociadas a los pines A0 y A1 analógicos del Arduino.

La dirección de memoria a la cual se irán mandando los datos será la 0xE8E8F0F0E1LL. Ahora es cuando declaramos la variable letra de tipo char que será nuestra variable de movimiento sustituto del joystick.

Vemos que tenemos una variable entera, joystick, array de dos variables; joystick[0] hace referencia al eje X y joystick[1] al Y.

En el setup tenemos el inicio de la comunicación serial a 9600 baudios, al igual que también se inicializa la radio abriendo la escritura de línea o dirección de datos; en el inicio estaremos en el estado de paro ya que se está mandando, en primer lugar, la letra ‘s’ (stop)

En el loop tenemos una impresión serial del carácter letra introducido manualmente mediante el teclado del ordenador, éste carácter será leído e interpretado por el programa y asociado tanto a las variables joystick[0] y joystick[1] como a los movimientos asociadas a dichos caracteres. El joystick tiene dos entradas analógicas que van de 0 a 1023, por lo que los movimientos asociados tendrán valores dentro de este rango.

LETRA MOVIMIENTO JOYSTICK[0]_x JOYSTICK[1]_y

s Stop 520 520

f Forward 520 0

b Backward 520 1023

l Left 0 520

r Right 1023 520

-134-

5.3.2. Módulo receptor

En este subapartado, se hablará del módulo receptor, en otras palabras, del vehículo radiocontrolado. Como en el anterior apartado, que hace referencia al módulo de mando emisor, en éste también hablaremos del proceso de fabricación, soldadura de componentes y puesta en marcha del coche.

De la arquitectura del kit-car ya se hizo alusión en capítulos anteriores, así que aquí explicaremos el proceso de montaje añadiendo las imágenes del mismo, soldadura de la tarjeta del integrado inversor de giro L293D y colocación de los diferentes elementos sobre la estructura vacía del kit- car.

También se dará a conocer el código de programación que se habrá cargado en el Arduino para que, con el movimiento del joystick del mando de control, interprete las señales que mandará a los motores para el movimiento requerido para el vehículo. Antes de este código final se probarán los motores para comprobar su correcto funcionamiento tras la soldadura al L293D.

5.3.2.1. ARQUITECTURA

Pues bien, la arquitectura del vehículo estará formada por el mismo montaje del coche, explicado con anterioridad, con la diferencia de que, sobre él, se colocará todo el sistema de comunicación y alimentación del proceso.

Sobre la placa de metacrilato transparente del coche, se situarán el Arduino Uno, la tarjeta con el integrado L293D, la pila de 9V 6LR61 que alimentará el pin 8 Vs del integrado y al que irán conectados también los pines de tierra 12 y 13. Los pines 1 y 9, Enable1 y Vss respectivamente, irán conectados a la salida de alimentación de 5V que tiene el Arduino, así, los pines 4 y 5 van a la salida GND del Arduino.

A su vez, los pines 2 y 7 del integrado irán a las entradas digitales 4 y 3 del Arduino, que harán referencia al motor izquierdo y los pines 10 y 15 del integrado a las entradas digitales 5 y 6 del Arduino, referentes ahora al motor derecho.

-135-

Durante el proceso de pruebas, se está conectando y alimentado al Arduino mediante USB con el ordenador, pero en el momento en el que esté todo a punto y acabado, éste será alimentado por cuatro pilas AAA de 1,5V, es decir, tendrá una alimentación de 6V; éstas pilas irán sobre un zócalo colocado también sobre el vehículo, en la parte delantera.

Decir que para la colocación de todos estos elementos sobre la placa y la posterior sujeción de los mismo a ella, se ha utilizado cinta adhesiva de doble cara ya que, atornillar los mismo al metacrilato podría acarrear grietas y fracturas en el material debido al calentamiento momentáneo del mismo a la hora de hacer el taladro o en el momento de apretar las tuercas.

La soldadura del integrado se ha hecho con un soldador de 30W junto con una aleación de estaño 60-40, 60% estaño y 20% plomo sobre una tarjeta presoldada para la introducción de los pines del integrado.

Fig. 5.13. Detalle del proceso de soldadura (izda.) y vista del integrado en la parte posterior de la tarjeta

-136-

Fig.5.15. Resultado final del montaje físico del módulo receptor

5.3.2.2. PROGRAMACIÓN

Aquí es donde se verá el código con el que se ha programado el Arduino para que, siguiendo las órdenes de mando del joystick del módulo emisor, el receptor las ejecute e interprete de manera deseada.

Antes de programar el conjunto del código final, una vez montado el módulo receptor, probaremos que los motores actúan de manera correcta, esto es básicamente, que las ruedas se muevan en función de una señal dada, en este caso, programada, para que las mismas funcionen automáticamente.

// Control de los dos motores DC con el driver de puente en H, L293D H-Bridge driver

int leftMotor[] = {3,4};

int rightMotor[] = {5,6};