Section outline

  • Plataforma PLUMABOT + Placa de periféricos

    XXxx

    Ejercicios de programación en MPLABX con ensamblador, C18, XC8 y CCS
  • Antes de comenzar
    • Para poder realizar los ejercicios de este curso es necesario disponer de los siguientes recursos:
      Hardware:
      * Placa base Plumabot PMB01 con pic18F4550 grabado con el bootloader "HID_bootloader_p18F4550_at_48Mhz.hex"
      * Placa de periféricos PEB07 con teclado 4x4 y mando MG-839.
      * Cable de conexión USB<->mini USB.

      Hardware opcional:
      * Sensores de infrarrojos CNY70.
      * Sensores de distancias GP2D12 o similar.
      * Sensores de ultrasonidos SRF05.
      * Servomotores Futaba S3003 o similar.
      * Cable de conexión serie RS232.

      Software:
      * Aplicación windows para la carga de programas
      (PLUMABootLoader.exe )

      O bien, Aplicación Linux para la carga de programas
      ( Bootloader linux )

      Para usar este programa en linux sin ser root hay que añadir una regla en UDEV, lo siguiente funciona en Opensuse 12.2, pero seguramente funcionará en otras distribuciones. Consiste en crear un archivo /etc/udev/rules.d/75-hid-usb.rules con el siguiente contenido:

      ----------------------------------------------------------------------------------------------------------------------------------------------------------

      #
      # Fichero para que el HID usb (bootloader pluma) pueda ser escrito sin ser root
      #

      SUBSYSTEM=="usb", ATTR{idVendor}=="04d8", ATTR{idProduct}=="003c", ACTION=="add", GROUP="users", MODE="0660"

      -----------------------------------------------------------------------------------------------------------------------------------------------------------

      Lo que hace es detectar el HID-USB de microchip (vendedor 04d8, producto 003c) y asignarse l grupo "users" permisos de escritura



      * Entorno de desarrollo MPLABX v1.30 (incluye ensamblador)
      (https://dl.dropbox.com/u/29471281/MPLABX-v1_30-windows-installer.exe)

      * Compilador C18 v3.40
      (https://dl.dropbox.com/u/29471281/mplabc18-v3.40-windows-lite-installer.exe)

      * Archivo "linker" (Obligatorio añadirlo al proyecto si usamos el bootloader en C)
      (rm18f4550_HID_Bootload.lkr)

      Ensamblador:

      Lo primero para realizar programas en ensablador será conocer la arquitectura del microcontrolador y su juego de instrucciones.

      -Juego de Instrucciones

  • Entrada y salida digital
    • Puerta AND

      Realizar un programa que esté, permanentemente, leyendo el estado de los pines RD0 y RD1 y encienda el led conectado en RB7 cuando las dos líneas estén a nivel alto.

    • Puerta XOR

      Realizar un programa que esté, permanentemente, leyendo el estado de los pines RD0 y RD1 y encienda el led conectado en RB7 cuando las dos líneas tengan niveles diferentes.

    • Inversor de giro

      Diseñar un programa que simule el funcionamiento de un motor con inversión de giro pasando por paro. RA3=Led verde on, RA4=Led rojo on, RB0=Paro.

    • Luz_escalera

      Basándose en los programas anteriores conseguir que cada vez que se pulse RA3 se enciendan todos los leds del PORTB, de uno en uno, y permanezcan enciendidos durante 3 segundos para luego apagarse en orden inverso.
  • Control del display lcd (2x16)
  • Retardos y temporizadores e interrupciones
    • Timer 0

      Utilizar el Timer 0 como temporizador sin interrupción para realizar un programa que muestre en el display de siete segmentos un segmento girando alrededor con una velocidad variable en función del valor de RD0. Para RD0=0 -> 320ms y para RD0=1 -> 640ms.

    • Timer 1


      Utilizar el timer 1 sin interrupción para conseguir que, cada vez que se pulse RA3,. se produzcan tres pitidos 320ms cada uno. Para ampliar crear la función void pitidos(unsigned char np), para conseguir variar el número de pitidos.

    • Interrupción Timer 0


      Desplazar constantemente un led de RB1 a RB7 y viceversa. Incorporar una interrupción en RB0 que produzca un parpadeo de todos los leds tres veces con una cadencia de 320ms.
  • Entradas analógicas. El conversor ADC
  • Control con mando a distancia
    • Mando 03

      Control de la placa Plumabot con el mando Sony. Con las teclas numéricas se cambia el canal mostrado en el lcd y también con las teclas (pr+) y (pr+). Las teclas (vol+) y (vol-) del mando suben o bajan la barra de leds indicando el volumén.