MANDO DE LA PLAY STATION POR RADIO FRECUENCIA 30/05/2011

Página creada Cedro Zorro
 
SEGUIR LEYENDO
MANDO DE LA PLAY STATION POR RADIO FRECUENCIA 30/05/2011
MANDO DE LA PLAY
STATION POR RADIO
FRECUENCIA

Miguel Colomina Benedet

                          30/05/2011
MANDO DE LA PLAY STATION POR RADIO FRECUENCIA 30/05/2011
ÍNDICE

1 - Objetivos y Estudio estado del arte

2 - Estudio de viabilidad

3 - Planificación

4 - Esquema del proyecto (Schematic)

5 - PCB del proyecto (Layout)

6 - Imagen real del prototipo

7 - Software (Programa)

8 - Conclusiones
MANDO DE LA PLAY STATION POR RADIO FRECUENCIA 30/05/2011
1 Objetivos y Estudio del arte.

1.1 Objetivos

El objetivo es hacer un mando a distancia por radiofrecuencia para el control de un
coche o de un robot sencillo, aunque se podría usar para controlar otros dispositivos
eléctricos.

Mi motivación principal es que al desarrollar un mando basado en enlaces de
radiofrecuencia, este podría ser utilizado en otros proyectos diferentes.

Aprender un poco sobre comunicación inalámbrica entre microcontroladores.

1.2 Estado del arte

Existen algunos proyectos ya realizados basados en la misma tecnología con la que se
pretende llevar a cabo el presente proyecto.

A continuación se describen brevemente dichos proyectos

1.2.1 - Comunicación con módulos RF entre dos Pics. [1]

El siguiente proyecto está basado en la comunicación de dos microcontroladores
Pics16f628A del fabricante microchip de forma inalámbrica con dos módulos RF de
433,92 MHz en modulación ASK: el TLP434A y RLP434A, del fabricante LAIPAC, que son
el transmisor y el receptor respectivamente.

El sistema descrito anteriormente enviar un cuarteto de bits, que se consiguen con cuatro
pulsadores, que posteriormente se puede ver en el microcontrolador receptor mediante 4
leds conectados a este.

La programación del microcontrolador, se ha implementado en lenguaje C.

La estructura de este es el proyecto es muy similar al proyecto que se pretende desarrollar ya
que usa dos Pics, un emisor y un receptor RF en ASK y 4 botones que enciende unos leds. Ver
figuras 1 y 2.

Figura 1                                                                      Figura 2
MANDO DE LA PLAY STATION POR RADIO FRECUENCIA 30/05/2011
1.2.2 - Manejo de un robot humanoide (figura 3) con el mando de Nintendo Wii. [2]

En este proyecto el cual está en venta, consta de un mando de la consola de Nintendo
Wii, un ordenador y un software descargable gratuito, un USB Bluetooth y otro USB de
infrarrojos, para el control de un robot humanoide.

El funcionamiento de este proyecto se basa en la conexión de un USB bluetooth para
conectar de forma inalámbrica el mando de la Wii con el ordenador y el software, y
con el de infrarrojos se manda al robot inalámbrico.

                                       Figura 3

1.2.3 - Manejo de un robot hexápodo (figura 4) con mando de la Play 2 inalámbrico
(no oficial) o mando de la Wii. [3] Web donde aparecen los videos del proyecto con
los dos mandos diferentes. [4] Web del fabricante del robot.

Es parecido al anterior, también en venta. Pero en lugar de ser un robot humanoide es
un hexápodo el cual se ha adaptado para controlarlo con el mando de la Wii y un
mando inalámbrico comercial, no oficial de la Play 2.

En el caso del control con el mando de la Play el fabricante del robot proporciona el
software correspondiente. El cual se programa desde un ordenador. Pero el control
con el mando de la Wii ha sido desarrollado por un usuario particular por su cuenta.
MANDO DE LA PLAY STATION POR RADIO FRECUENCIA 30/05/2011
Figura 4

1.3 Descripción del proyecto

1.3.1 Explicación breve

Para el desarrollar el proyecto, usare un mando viejo de la Play Station, se prefiere
utilizar este modelo porque es un mando muy conocido y con muchos botones, ya con
el espacio y los huecos para los joysticks y cómodo para cogerlo, así que se
aprovechara la carcasa y los botones de éste. Para el control de los botones, los
joysticks y del protocolo de comunicación con un microcontrolador Pic 16f876, un
modulo emisor de radiofrecuencia de 433MHz en ASK del fabricante AUREL, los dos
joysticks analógicos que venían en el mando y también han sido reutilizados, y una pila
de 9v para la alimentación del circuito pasando por un regulador de tensión LM2575
de National Semiconductors, para regular los 9V a los 5v que consume el Pic. La
programación se implementará en lenguaje PIC BASIC

Si se hubiese dispuesto de más tiempo de desarrollo. El mando hubiera comandado un
coche o robot sencillo. En cualquiera de los dos casos, estará alimentado con pilas.
Este contara también con otro Pic 16f876, un modulo receptor como el emisor de
433,92 MHz en ASK del fabricante AUREL, motores i o servos y el regulador o
reguladores de voltaje correspondientes. Ademas algún sensor para evitar que choque
contra objetos o que pueda funcionar autónomo sin necesidad de que esté controlado
por el mando.

La programación se implementará en lenguaje PIC BASIC

1.3.1 Esquema de bloques (Figura 5)
MANDO DE LA PLAY STATION POR RADIO FRECUENCIA 30/05/2011
Figura 5

1.4 Componentes principales

1.4.1 Microcontroladores (Figura 6):

Un microcontrolador es un circuito
integrado o chip el cual podemos
comparar con un ordenador pero muy
simple, pequeño y barato, el cual se
puede programar fácilmente para que
hagan funciones específicas que el
programador desee. Y se pueden
programar con diferentes lenguajes de
programación.                                 Figura 6: Familia de microcontroladores PIC16F...

Incluye en su interior las tres unidades funcionales de un ordenador: unidad central de
procesamiento, memoria y unidades de E/S (entrada/salida). Los microcontroladores
se usan en automoción, en quipos de comunicación y de telefonía, en instrumentos
eléctricos, en equipos médicos e industriales de todo tipo, en electrodomésticos, en
juguetes, etc.

La CPU es el “cerebro” del microcontrolador y actúa bajo el control del programa
almacenado en la memoria. La CPU se ocupa básicamente de coger las instrucciones
del programa almacenadas en la memoria, interpretarlas y hacer que se ejecuten.

Memoria: Es donde se guarda el programa del microcontrolador, lo que ejecuta la CPU
para su funcionamiento. También es donde se guardan los datos que necesita el
programa para funcionar.
MANDO DE LA PLAY STATION POR RADIO FRECUENCIA 30/05/2011
Entradas y salidas: También conocidos como puertos de E/S, generalmente agrupadas
en puertos de 8 bits de longitud, permiten leer datos del exterior o escribir en ellos
desde el interior del microcontrolador, el destino habitual es el trabajo con dispositivos
como relés, leds, pantallas, sensores de temperatura, humedad o cualquier otra cosa
que se le ocurra al programador.

Algunos puertos de E/S tienen características especiales que le permiten manejar
salidas con determinados requerimientos de corriente, o incorporan mecanismos
especiales de interrupción para el procesador.

Típicamente cualquier pin de E/S puede ser considerada E/S de propósito general, pero
como los microcontroladores no pueden tener infinitos pines, ni siquiera todos los
pines que queramos, las E/S de propósito general comparten los pines con otros más
específicos como conversores analógico/digital. Para usar un pin con cualquiera de las
características a él asignadas debemos configurarlo mediante los registros destinados
a ellos.

También disponen de puertos de comunicación para comunicarse con otros
microcontroladores, ordenadores y otros equipos diversos. Como el Bus I2c, el USART,
etc.

1.4.2 Módulos RF (Figura 7):

 Los módulos RF permiten el envió de
información   y     por  tanto     la
comunicación entre dispositivos de
manera inalámbrica.

Esto se consigue porque se envía una
onda electromagnética de un punto a
otro. Algunas de sus frecuencias
pueden ser por ejemplo: 315 MHz;
433,92 MHz; 2,4 GHz.
                                                              Figura 7

Existen los sistemas analógicos y los digitales, los analógicos. En los analógicos la
información se envía directamente pasando por todos los estados posibles. Mientras
que en el digital esta información se codifica en “1” y “0”, es decir solo dos estados
posibles. La analógica puede ser AM (amplitud modulada) [6] y FM (frecuencia
modulada) [7]. En el sistema digital los más comunes son los ASK (amplitud modulada)
y FSK (frecuencia modulada). Los de amplitud modulada lo que hace es variar la
amplitud de la onda que se envía y el segundo frecuencia modulada lo que se hace es
en lugar de variar la amplitud de la onda, lo que se varia es la frecuencia de esta onda
que enviamos.

Bibliografía:
MANDO DE LA PLAY STATION POR RADIO FRECUENCIA 30/05/2011
[1]http://www.ucontrol.com.ar/wiki/index.php?title=Comunicaci%C3%B3n_inal%C3%
A1mbrica_entre_PICs

[2] http://www.robodance.com/nintendo-wii-i-sobot.php

[3] http://hackaday.com/2009/04/05/wiimote-controlled-hexapods/

[4] http://www.lynxmotion.com/c-117-phoenix.aspx

- Microcontroladores:

[5] http://es.wikipedia.org/wiki/Microcontrolador

- Módulos RF:

[6] http://en.wikipedia.org/wiki/Amplitude-shift_keying

[7] http://en.wikipedia.org/wiki/Frequency-shift_keying

2 Estudio de viabilidad.

2.1 Componentes:

       1x Mando Play Station

       2x joysticks analógicos

       1x pilas 9V

       1x Conector bornes pila 9V

       1x Regulador de tensión LM2575 (SMD)

       1x Pic 16f876A (SMD)

       1x Cristal de 20 MHz (SMD)

       1x Conector banda plana (SMD)

       1x tira pins hembra

       1x tira de pins macho

       Condensadores:          2x 22pF (SMD)

                               1x 100nF (SMD)

                               1x 100µF

                               1x 330µF
MANDO DE LA PLAY STATION POR RADIO FRECUENCIA 30/05/2011
Bobinas:         1x 330µH, 0,9 A

      Diodos:          1x 1N5819

                       1x 1N4007

                       1x Diodo led rojo cuadrado

      Resistencias SMD:      2x 0Ω, puentes

                             1x 150Ω

                             18x 10KΩ

      Módulos emisor y receptor de RF de la casa AUREL 433.92 MHz (ASK)

      Placa de fibra de vidrio doble cara.

      Cable

2.2 Herramientas (hardware y software)

2.2.1 Hardware necesario:

      Realización de la pcb:

              Impresora.

              Papel trasparente.

              Insoladora del taller de electrónica de la caparrella.

              Revelador y atacador del taller de electrónica de la caparrella.

              Minitaladro

              Brocas de entre 0,75mm a 2mm, propias.

              Soldador

              Estaño

      Desarrollo del software del proyecto:

              Programador Pickit 2 clone, propio.

              Ordenador propio.

      Pruebas y medidas:
MANDO DE LA PLAY STATION POR RADIO FRECUENCIA 30/05/2011
Tester y osciloscopio, el primero propio, el segundo del taller de
                      electrónica.

                      Placa protoboard, propia.

      2.2.2 Software:

               Desarrollo de esquema eléctrico y layout: Proteus Profesional

               Desarrollo de software: Pic simulator IDE

               Grabador de microcontroladores: PICKIT 2

      2.3 Conocimientos:

      Necesarios para el desarrollo de esquema eléctrico y layout, con “Proteus”, Adquirido
      el curso pasado del ciclo

      Programación del proyectó “Pic Basic”, con “Pic simulator IDE”, adquirido el curso
      pasado del ciclo y programación de los módulos RF adquisición del mismo en un
      futuro, este 2º curso en el crédito Diseño de prototipos.

      2.4 Estudio de costes:

   Producto                 RS Amidata                           Farnell                    mse bilbao
                     Código     Precio  Precio         Código     Precio        Precio   Precio     Precio
                               sin IVA con IVA                    sin IVA      con IVA   sin IVA   con IVA
    Cristal     1   226-1869     1,6 €  1,88 €        1640878     1,70 €
   20MHz                                                                       2,01 €
 interruptor    1    702-3634    0,458 €    0,54 €    1123876     1,06 €       1,25 €
  Emisor RF     1                                                                        11,50 €   13,57 €
    Aurel
Receptor RF     1                                                                          6€      7,08 €
    Aurel
   LM2575       1   460-972      6,00 €     7,08 €    1469170     6,80 €       8,02 €
Condensador     2   211-4886     0,071 €               71464      0,05 €
     22pF                                   0,08 €                             0,06 €
Condensador 1                                       1855321      0,48 €
    100µF                                                                  0.57 €
Condensador 1 703-7396           0,864 €            1144642      1,28 €
    100µF                                  1,02 €                           1,51 €
Condensador 1 703-7242           0,343 €            1144688      0,42 €
    330µF                                  0,40 €                           0,50 €
   Bobina       1 715-6781       4,29 €             1077018      4,50 €
   330µH                                   5,06 €                           5,31 €
Resistencias 18                                     1739026      0.12 €
    10KΩ                                                                   0.14 €
    Diodo       1 486-4460       0,20 €             9801219     0,192 €
   1N5819                                  0,24 €                           0,23 €
            TOTAL
 Cantidades resaltadas son las                                   40,25
     que se han adquirido

       El resto de los componentes ya los poseía con anterioridad o se han pedido en sample,
       como es el caso del PIC16F876A (soic 300).
3 Planificación.
4 Esquema del proyecto (Schematic).
5 PCB del proyecto (Layout).
5 Imagen real del prototipo.

Placa principal mando
Placa principal mando
7 Software (Programa).

‘ Configuración de puertos, conversores analógico- digital, frecuencia 20MHz
‘**************************************************************
Define CLOCK_FREQUENCY = 20
Hseropen 4800
ADCON1 = 0x0e
Config PORTB = Input
TRISC = %10111111
Config PORTA = Input

‘Definición de variables
‘*************************************************************
Dim xi As Word
Dim yi As Word
Dim xd As Word
Dim yd As Word
Dim tri As Byte
Dim cir As Byte
Dim cua As Byte
Dim x As Byte
Dim arr As Byte
Dim aba As Byte
Dim izq As Byte
Dim der As Byte
Dim sel As Byte
Dim str As Byte
Dim ana As Byte
Dim l3 As Byte
Dim r3 As Byte
Dim l1 As Byte
Dim l2 As Byte
Dim r1 As Byte
Dim r2 As Byte
Dim contador As Byte
Dim grupo1 As Byte
Dim grupo2 As Byte
Dim envio1 As Byte
Dim envio2 As Byte
‘ inicialización de variables
grupo1 = 0
grupo2 = 0
envio1 = 0
envio2 = 0
inicio: ‘inicio programa

       grupo2 = 0
       grupo1 = 0

       Gosub leerjoystick            ‘subrutina de leer joystick analogicos

       If PORTA.4 = 0 Then l3 = 1 ‘relacionar cada Puerto del pic con el boton del mando
       If PORTA.5 = 0 Then r3 = 1 ‘si esta el puerto a 0 el botón esta apretado
       If PORTB.0 = 0 Then r2 = 1
       If PORTB.1 = 0 Then r1 = 1
       If PORTB.2 = 0 Then tri = 1
       If PORTB.3 = 0 Then cir = 1
       If PORTB.4 = 0 Then x = 1
       If PORTB.5 = 0 Then cua = 1
       If PORTB.6 = 0 Then sel = 1
       If PORTB.7 = 0 Then str = 1
       If PORTC.0 = 0 Then l2 = 1
       If PORTC.1 = 0 Then der = 1
       If PORTC.2 = 0 Then arr = 1
       If PORTC.3 = 0 Then l1 = 1
       If PORTC.4 = 0 Then ana = 1
       If PORTC.5 = 0 Then izq = 1
       If PORTC.7 = 0 Then aba = 1

       Gosub leerrl        ‘subrutina este grupo de botones englobado en una variable.
       Gosub leerflebot    ‘subrutina este grupo de botones englobado en una variable.
       Gosub enviar ‘ subrutina envió de las variables anteriores y el valor de joysticks

       If PORTA.4 = 1 Then l3 = 0           ‘si esta el puerto a 0 el botón esta apretado
       If PORTA.5 = 1 Then r3 = 0
       If PORTB.0 = 1 Then r2 = 0
       If PORTB.1 = 1 Then r1 = 0
       If PORTB.2 = 1 Then tri = 0
       If PORTB.3 = 1 Then cir = 0
       If PORTB.4 = 1 Then x = 0
       If PORTB.5 = 1 Then cua = 0
       If PORTB.6 = 1 Then sel = 0
       If PORTB.7 = 1 Then str = 0
If PORTC.0 = 1 Then l2 = 0
       If PORTC.1 = 1 Then der = 0
       If PORTC.2 = 1 Then arr = 0
       If PORTC.3 = 1 Then l1 = 0
       If PORTC.4 = 1 Then ana = 0
       If PORTC.5 = 1 Then izq = 0
       If PORTC.7 = 1 Then aba = 0

Goto inicio    ‘vuelta al inicio
End             ‘ fin de programa

leerjoystick: ‘ leer cada señal analogical de los joysticks y ponerla en su respective variable.

       Adcin 0, xd
       Adcin 1, yd
       Adcin 2, xi
       Adcin 3, yi

Return
leerflebot: 'Flechas y simbolos, inplementacion de los botones en una única variable

       grupo1 = 0
       grupo2 = 0

       If tri = 1 Then
                 grupo1 = 1
                 grupo2 = grupo2 + grupo1
       Endif

       If cua = 1 Then
               grupo1 = 2
               grupo2 = grupo2 + grupo1
       Endif

       If cir = 1 Then
                grupo1 = 4
                grupo2 = grupo2 + grupo1
       Endif

       If x = 1 Then
                grupo1 = 8
                grupo2 = grupo2 + grupo1
       Endif
If arr = 1 Then
                  grupo1 = 16
                  grupo2 = grupo2 + grupo1
         Endif

         If der = 1 Then
                 grupo1 = 32
                 grupo2 = grupo2 + grupo1
         Endif

         If izq = 1 Then
                  grupo1 = 64
                  grupo2 = grupo2 + grupo1
         Endif

         If aba = 1 Then
                 grupo1 = 128
                 grupo2 = grupo2 + grupo1
         Endif

                envio1 = grupo2               ‘ igualar la variable resultante a la que se envia

Return

leerrl: 'botones "L", "R", "str", "sel , igual que los botones anteriores

         grupo1 = 0
         grupo2 = 0

         If r1 = 1 Then
                  grupo1 = 1
                  grupo2 = grupo2 + grupo1
         Endif
         If r2 = 1 Then
                  grupo1 = 2
                  grupo2 = grupo2 + grupo1
         Endif
If r3 = 1 Then
                  grupo1 = 4
                  grupo2 = grupo2 + grupo1
         Endif
         If str = 1 Then
                  grupo1 = 8
                  grupo2 = grupo2 + grupo1
         Endif
         If l1 = 1 Then
                  grupo1 = 16
                  grupo2 = grupo2 + grupo1
         Endif
         If l2 = 1 Then
                  grupo1 = 32
                  grupo2 = grupo2 + grupo1
         Endif
         If l3 = 1 Then
                  grupo1 = 64
                  grupo2 = grupo2 + grupo1
         Endif

         If sel = 1 Then
                  grupo1 = 128
                  grupo2 = grupo2 + grupo1
         Endif
         envio2 = grupo2
Return
enviar: ‘envio de las variables por el RF
WaitMs 10
Hserout "WI", envio1, "FI"
WaitMs 10
Hserout "WI", envio2, "FI"
WaitMs 10
Hserout "WI", xd, "FI"
WaitMs 10
Hserout "WI",yd, "FI"
WaitMs 10
Hserout "WI", xi, "FI"
WaitMs 10
Hserout "WI", yi, "FI"
WaitMs 10

Return
8 Conclusiones:
También puede leer