Control Carro RF
Desarrollado por:
- Jairo Romero 261512
- Alejandro Rangel 261499
- Esteban Martínez 260656
Estudiantes Ingeniería Electrónica
Universidad Nacional de Colombia
[edit] Proyecto de Control Carro RF
El objetivo principal del curso electronica digital II es el diseño e implementacion de un sistema electronico capaz de controlar un carro desde un dispositivo remoto bajo un espectro de radiofrecuencia.
Para la elaboracion de dicho sistema se implemetara la tarjeta SIE la cual cuenta con una FPGA XC3S{100,250,500}E_VQ100 proporcionará el 25 de propósito general de entrada/salida para una señal digital, convertidor analogo-digital de 10 canales, memoria 64MB SDRAM, 2GB memoria NAND, RS-232 Serial UART, puerto I2C. Siendo una herramienta versatil para la implementacion de este proyecto.
[edit] Descripción del proyecto
Este proyecto consiste en desarrollar el control de un carro remoto por medio de radiofrecuencia, para tal fin utilizaremos los modulos RFM22B. Estos modulos operan en las siguientes bandas del espectro 433/868/915 MHz ISM comprendidas dentro de la Ultra High Frequency UHF.
Para este fin es necesario generar un periferico dentro del procesador PLASMA que controle el protocolo de comunicacion SPI, protocolo mediante el cual la fpga de la tarjeta SIE se comunicara con el modulo de radiofrecuancia RFM22B.
Ya establecida la comunicacion por medio del protocolo SPI entre la SIE y el modulo RFM22B, se debe establecer la comunicacion entre el modulo conectado a la tarjeta SIE y el modulo conectado a el carro remoto a ser controlado. Para este fin los modulos RFM22B deben estar en diferentes modos de operacion. El modulo conectado a la tarjeta SIE debe operar en modo TX, tipo de operacion en la cual el modulo transmite datos. Con respecto al modulo ubicado en el carro remoto debe operar en modo RX, estado en el cual el modulo recibe datos siendo estos las instrucciones que ejecutara el carro.
Para lograr que el carro ejecute las instrucciones recibidas por el mudulo que opera en modo RX, se implementara un PIC que se comunicara bajo el protocolo SPI con el modulo RFM22B, este tambien se encargara de procesar las instrucciones recibidas que posteriormente controlaran las tareas a ejecutar por el carro remoto.
[edit] Diagrama de bloques
[edit] Diagrama de Perifericos (Arquitectura)
[edit] MODULO COMUNICACION SPI(Serial Protocol Interface)
SPI, es una interfície serie síncrona de 4 hilos, la comunicación de datos se activa mediante una señal baja, aplicada en la entrada Slave Select (SS) o en el Chip Select (CSB). Los datos, se transmiten mediante 3 conexiones: conexión para la entrada de datos serie (MOSI), la de salida de datos (MISO) y la señal de reloj (SCK).
Para nuestro caso tan solo se tiene un esclavo, el modulo RFM22B.
La línea MOSI (Master Out Slave In) transporta los datos del maestro hacia el esclavo.
La línea MISO (Master In Slave Out) transporta los datos del esclavo hacia el maestro.
[edit] Comunicacion con el Periferico RFM22B
SPI usa un par de parámetros llamados clock polarity (CPOL) y clock phase (CPHA), para determinar, cuando los datos son validos dependiendo del señal de reloj. Estos deben establecerse, tanto en el dispositivo maestro (SIE) como en el modulo de radio frecuencia, para que asi la comunicación funcione correctamente.
Modos de transmision:
Transmision SPI CPHA = 0
Transmision SPI CPHA = 1
[edit] Diagrama de Flujo
[edit] Maquina de estados control SPI
[edit] Diagrama de bloques
[edit] Esquematico RTL
[edit] Simulacion
[edit] MODULO DE CONTROL JOYSTICK
[edit] Diagrama de Flujo
[edit] Maquina de Estados de Control del Joystick
[edit] Diagrama de bloques
[edit] Datapath
[edit] Esquematico RTL
[edit] Codigo Maquina de Control
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;
PACKAGE joystick IS COMPONENT control Port(up : in STD_LOGIC; down : in STD_LOGIC; right : in STD_LOGIC; left : in STD_LOGIC; up_right: in std_logic; up_left: in std_logic; down_right: in std_logic; down_left: in std_logic; out_flag : out STD_LOGIC_VECTOR (2 downto 0)); END COMPONENT; END joystick;
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity control is Port ( up : in STD_LOGIC; down : in STD_LOGIC; right : in STD_LOGIC; left : in STD_LOGIC; up_right: in std_logic; up_left: in std_logic; down_right: in std_logic; down_left: in std_logic; out_flag : out STD_LOGIC_VECTOR (2 downto 0)); end control;
architecture Behavioral of control is signal in_signal : STD_LOGIC_VECTOR (7 downto 0); begin in_signal <= up&down&right&left&up_right&up_left&down_right&down_left;--&button;
process (in_signal) begin case in_signal is when "10000000" => out_flag <= "001"; when "01000000" => out_flag <= "010"; when "00100000" => out_flag <= "011"; when "00010000" => out_flag <= "100"; when "00001000" => out_flag <= "101"; when "00000100" => out_flag <= "110"; when "00000010" => out_flag <= "111"; when "00000001" => out_flag <= "100"; when others => out_flag <= "000"; end case; end process; end Behavioral;
[edit] Simulaciones
Simulación con 8 estados para el Joystick
[edit] Puerto de Comunicacion Joystick
La implementación típica de un puerto de juegos emplea un condensador y un simple comparador de tensión, que constituyen un tipo de conversor analógico digital de rampa. Éste debe ser encuestado periódicamente y reiniciado en momentos muy concretos para leer una entrada, algo que necesita realizarse varias veces (generalmente en torno a 30) por segundo para conseguir una entrada sensible. La frecuencia de adquisición actual depende de la resistividad interna del joystick, el ruido, la velocidad de la CPU y el total de las constantes de tiempo de los circuitos RC de los joysticks.
Pin 1 +5V +5V DC Pin 2 B1 Botón 1 Pin 3 X1 Eje X para joystick 1 (0-100 kΩ) Pin 4 GND Tierra para B1 Pin 5 GND Tierra para B2 Pin 6 Y1 Eje Y para joystick 1 (0-100 kΩ) Pin 7 B2 Botón 2 Pin 8 +5V +5V DC Pin 9 +5V +5V DC Pin 10 B4 Botón 4 Pin 11 X2 Eje X para joystick 2 (0-100 kΩ) Pin 12 GND Tierra para Botones 3 y 4 (o salida MIDI) Pin 13 Y2 Eje Y para joystick 2 (0-100 kΩ) Pin 14 B3 Botón 3 Pin 15 +5V +5V DC (o MIDI en ocasiones desconectado)
[edit] PLASMA-JOYSTICK-SPI
[edit] Esquematico RTL
[edit] Mapa de memoria
* DESCRIPTION: * Plasma Hardware Defines *--------------------------------------------------------------------*/ #ifndef __PLASMA_H__ #define __PLASMA_H__
/*********** Hardware addesses ***********/ #define RAM_INTERNAL_BASE 0x00000000 //8KB #define RAM_EXTERNAL_BASE 0x10000000 //1MB #define RAM_EXTERNAL_SIZE 0x00100000 #define CONTROL_UP 0x20000000 #define CONTROL_DOWN 0x20000000 #define CONTROL_LEFT 0x20000000 #define CONTROL_RIGHT 0x20000010 #define IRQ_MASK 0x20000010 #define IRQ_STATUS 0x20000020 #define SPI_SDO 0x20000030 #define SPI_SS 0x20000040 #define SPI_SDI 0x20000050 #define RF_TX 0x20000060
/*********** Interrupt bits **************/ #define IRQ_CONTROL_UP 0x01 #define IRQ_CONTROL_DOWN 0x02 #define IRQ_CONTROL_LEFT 0x04 #define IRQ_CONTROL_RIGHT 0x08 #define IRQ_RF_NSEL 0x10 #define IRQ_RF_NIRQ 0x20
[edit] Herramientas a utilizar
[edit] Herramientas Hardware
- Tarjeta SIE
SIE
- Wireless Transceiver RFM22B
- Recursos y Herramientas RFM22B
RF22B Register Settings Datasheet of RFM22B
- PIC18F2550
PDF PIC18F2550
[edit] Herramientas Software
- Xilinx ISE WebPack
- Herramienta KiCAD (para el desarrollo de PCB's).
- GPUTILS: utilidades programar PIC
- GPSIM: simulador microcontrolador
- PIKLOOPS
[edit] ESQUEMATICO PIC-RFM22B
Vista general del esquematico, etapa de potencia y conexion PIC-RFM22B.
Detalle conexion PIC-RFM22B.
Detalle etapa de potencia para control de los dos motores.
[edit] PCB PIC-RFM22B
PCB preliminar.
PCB final con planos de tierra para eliminar ruido
[edit] PCB SIE-RFM22B
[edit] ANTENA-MODULO RFM22B
La antena WLP434 se conecta al modulo RFM22B, con el objetivo de emitir o recibir ondas electromagneticas que son transformadas en voltajes o en los datos generados por el sistema de control que se encuentra en la tarjeta madre SIE, siendo estos instrucciones las que generen el movimiento sobre el carro remoto.
Datasheet of WLP434
[edit] Diagrama de Radiacion
Es la representación gráfica de las características de radiación de una antena, en función de la dirección (coordenadas en azimut y elevación). Lo más habitual es representar la densidad de potencia radiada, aunque también se pueden encontrar diagramas de polarización o de fase. Atendiendo al diagrama de radiación, se hace una clasificación general de los tipos de antena y podemos definir la directividad de la antena. Dentro de los diagramas de radiación se define el diagrama copolar que representa la radiación de la antena con la polaridad deseada y contrapolar al diagrama de radiación con polaridad contraria.
Parámetros diagrama de radiación son:
Dirección de apuntamiento: Es la de máxima radiación. Directividad y Ganancia.
Lóbulo principal: Es el margen angular en torno a la dirección de máxima radiación.
Lóbulos secundarios: Son el resto de máximos relativos, de valor inferior al principal.
Ancho de haz: Es el margen angular de direcciones en las que el diagrama de radiación de un haz toma un valor de 3dB por debajo del máximo. Es decir, la dirección en la que la potencia radiada se reduce a la mitad.
Relación de lóbulo principal a secundario (SLL): Es el cociente en dB entre el valor máximo del lóbulo principal y el valor máximo del lóbulo secundario.
Relación delante-atrás (FBR): Es el cociente en dB entre el valor de máxima radiación y el de la misma dirección y sentido opuesto.
[edit] Caracterizacion de la Antena WLP434
La caracterizacion de la antena fue realizada en el laboratorio de comunicaciones de la Universidad Nacional de Colombia.
Espectro de Magnitud
Caracterizacion carta de Smith
La antena debe conectarse al modulo RFM22B con una distancia maxima de 1 cm, para asi mantener el acople de impedancia (50Ω - 50Ω) entre el modulo y la antena.
En caso de que la distancia entre el modulo RFM22B y la antena sea mayor a 1 cm, se debe garantizar que se mantendra el acople de impedacia (50Ω - 50Ω) entre la antena y el modulo de radiofrecuencia.
[edit] Tareas Hardware
- FPGA (SIE).
- Modulo RFM22B.
- Protocolo comunicacion SPI.
- microcontolador (PIC).
[edit] Tareas Software
- generar comunicacion TX.
- generar comunicacion RX.
- generacion de coordenadas para mover el carro remoto.
- control motoreductores desde PIC








