Seguimiento de torreta con PIC y C IR (6 / 9 paso)

Paso 6: programación

La codificación para esto es bastante simple. Existen cuatro métodos para escribir. Nos pondremos todos el negociación de señal I2C de la biblioteca de I2C que lo generamos con el configurador de código del Microchip.

  1. initWiiCam(); Necesaria sólo una vez para configurar la cámara
  2. readWiiCam(); Pide la cámara para la posición de la baliza
  3. updatePan(); Actualiza la bandeja si es necesario a la baliza en el eje X del centro
  4. updateTilt(); La inclinación se actualiza si es necesario a la baliza en el eje Y el centro

Instalar MPLABX

Así que vamos a empezar. En primer lugar, descargar e instalar MPLABX de Microchip: http://www.microchip.com/pagehandler/en-us/family/...

Crear un proyecto

Una vez hecha la instalación, puesta en marcha y vaya a archivo > nuevo proyecto

Esto le llevará a través de un asistente para configurar nuestro proyecto.

  1. Elija proyecto

    • Categorías: Microchip incrustado
    • Proyectos: Proyecto de independiente
  2. Seleccione dispositivo
    • Familia: Gama media 8-bit MCU (PIC12/16/MCP)
    • Dispositivo: PIC16F1503
  3. Seleccione encabezado
    • -Encabezado: Ninguno (o AC244051 * si desea tenerlo y usarlo)
      * Si utiliza un encabezado de depuración, se debe construir el proyecto de depuración para la cabecera del programa
  4. Seleccione la herramienta
    • PICkit3 o herramienta compatible
  5. Seleccionar el compilador
    • XC8
  6. Seleccione proyecto y carpeta
    • Nombre: lo que quieras (ej. IR_Tracking_Turret)
    • Carpeta: por defecto
    • Encoding: ISO-8859-1
    • Ubicación: por defecto

Vale, crea el proyecto. Ahora vamos a generar algunos archivos de código fuente.

Configurador de código del microchip (MCC)

Esto es una buena herramienta en MPLABX que permite seleccionar y configurar periféricos, como temporizadores, generadores PWM y comunicaciones I2C. Después de su proyecto de ir a herramientas > embebidos > Microchip código Configuratior

Se subirá una pantalla con el pinout de las asignaciones de chip y pin en los derecho y seleccionados y disponibles los periféricos a la izquierda. En el centro superior habrá un botón [generar código]. Haga clic en él se generan el código y la configuración que seleccione en el MCC. Puesto que no hay ningún archivo de código fuente, MCC le preguntará si desea generar un archivo main.c - Haga clic en sí. Vamos a necesitar los siguientes periféricos configurados para nuestra aplicación:

  • TMR1 - temporizador de 16-bits
  • TMR2 - temporizador de 8 bits
  • PWM2 - PWM en pin 7
  • PWM3 - PWM en el pin 11
  • MSSP - maestro I2C, SDA en el pin 9, SCL en el pin 10

En la lista en la parte inferior derecha, busque y haga doble clic en los anteriores periféricos para añadir la lista de periféricos seleccionados en la parte superior izquierda. Una vez que los tienes todos, vamos a generar un código de apoyo periférico.

Sistema de

  • Sistema reloj Select: INTOSC
  • Frecuencia seleccione > reloj interno: 16MHz_HF
  • CONFIG1 > MCLR Pin función Seleccione [MCLRE OFF]

TMR1

  • Fuente de reloj: FOSC/4
  • Prescaler: contador de tiempo de 1:8
  • Período: 100ms
  • Habilitar interrupción: comprobar
  • Tarifa de la función de devolución de llamada: 30 x (3s) - tiempo de espera para volver a centrar la torreta

TMR2

  • Prescaler: 1: 64
  • Temporizador periodo: 4ms
  • Iniciar el contador después de la inicialización: comprobar
  • Habilitar interrupción de temporizador: comprobar
  • Tarifa de la función de devolución de llamada: 5 x (20ms) - para la conducción de los servos, servos más también trabajará con un período de 12ms.

PWM2, PWM3

  • Permiten PWM: comprobar
  • Permitir la salida PWM Pin: comprobar
  • Polaridad PWM: Invertida (período 4ms)

MSSP::I2C

  • MASTER activar I2C: comprobado
  • Permitir la salida del Bus SM: comprobado
  • Control de la velocidad de giro: Alta velocidad SDA
  • Tiempo de espera: 100ns
  • Frecuencia de reloj I2C: 400KHz
  • Dirección de esclavo: 7 bits
  • Tamaño del búfer de lectura: 10 - dependiendo de cuántos bytes que esperar detrás del dispositivo que está hablando, en este caso, para la configuración más simple, la camerawill de Pixart volver 10 bytes.
  • Tamaño de búfer de escritura: 2 - vamos a hablar a la cámara de Pixart 2 bytes a la vez.

Agregar su propio código

Ahora se genera la mayor parte del código para el proyecto, pero todavía tenemos que declarar algunas variables y constantes y añadir algo de código adicional, incluyendo cuatro los métodos mencionados anteriormente.

Main.c

Encuentre esta línea:

Agregue el código siguiente debajo de él

Permitir interrupciones y agregue el código siguiente a la función principal:

TMR2.c

Servos utilizan un pulso de.5 a 2.5 ms en un periodo de 20 ms para determinar su posición de destino. Nuestra configuración da TImer2 un 4ms período, que es ideal para darnos un montón de precisión dentro de que período, pero demasiado corta para servo el uso. Así que utilizamos una devolución de llamada que se ejecuta cada vez 5 Timer2 se desborda. Guardamos la PWM con discapacidad hasta el paso 5, que nos da un periodo de 20 MS con una longitud de pulso más alta precisión. Esto nos da más suave movimiento en seguimiento y mejor respuesta a pequeños movimientos. Ir a las funciones de rutina de servicio de interrupción (ISR) y de devolución de llamada y editarlos para ver como sigue.

TMR1.c

Acabo de añadir esto a centrar la torreta si no se ve nada durante 3 segundos. Tenemos que declarar la variable CountCallBack como global. Encuentre esta línea:

Agregue esta línea debajo de él:

Ahora ir a las funciones de rutina de servicio de interrupción (ISR) y de devolución de llamada y editarlos para ver como sigue.

TMR1.h

Encuentre esta línea

Añadir la siguiente línea debajo de ella

Ahora todo el código está en el lugar y w puede construir y programar el dispositivo.

Limpiar y construir el proyecto, luego hacer y dispositivo de programa. El PIC está listo para enchufar a la toma de la placa.

Artículos Relacionados

Controlador de ventilador de la CPU con PIC

Controlador de ventilador de la CPU con PIC

controlador de ventilador de la CPU con PIC 16F877Aregulador de ventilador de la CPU 4 pines utilizando el microcontrolador PIC16F877A.Ajustar el generador PWM de 25 khz, medidor de RPM, interruptor de velocidadenlace: http://www.edaboard.com/thread2
Auto torreta con Pixy y pistola Nerf

Auto torreta con Pixy y pistola Nerf

Con el proyecto de Auto-Torrecilla, automáticamente puede rastrear y disparar a tus enemigos! Este proyecto utiliza un módulo de cámara de duende, un RobotGeek de pan/tilt base, una pistola de dardos de espuma y un Geekduino para coordinar los compon
Twitter seguimiento juguete construido con LEGO y Arduino

Twitter seguimiento juguete construido con LEGO y Arduino

Se trata de un juguete LEGO animado que monitorea twitter y celebra cada vez que encuentra una nueva ocurrencia del hashtag #BLOCKSHELL que suena una campana, una luz intermitente y enviando a un poco huevón activista minfigure encima de la superestr
Caliente la salsa cóctel - Michelada - con picante y el Chile en polvo

Caliente la salsa cóctel - Michelada - con picante y el Chile en polvo

Una bebida muy especial para su gusto "quema". Una mezcla de cerveza amarga, picante y limón hacen de esta bebida un excelente acompañamiento para carnes a la brasa. Esta bebida es más de la cultura mexicana, pero me gusta beberlo a (soy de Colo
Tarjetas de Navidad de LED con PIC 10F200

Tarjetas de Navidad de LED con PIC 10F200

este es un instructivo sobre cómo crear una tarjeta de Navidad del LED con el microcontrolador PIC 10F200.Este PIC tiene seis pernos y es del tamaño de un transistor SMD, es ideal para aplicaciones de bajo perfil y puede fácilmente introducirse cuand
Objeto de seguimiento por color con Python y openCV

Objeto de seguimiento por color con Python y openCV

El objetivo es escribir un script que hace un coche robot detecta un marcador azul, hacia el marcador, leer la señal de que está en el marcador y seguir su dirección hasta encontrar una señal de stop.El video muestra un resumen del enfoque y desempeñ
1000W modificado Inversor de onda sinusoidal con pic microconttoller

1000W modificado Inversor de onda sinusoidal con pic microconttoller

Aquí está un diagrama del circuito de 1000W modificado Inversor de onda sinusoidal. Este inversor de onda sinusoidal modificada está diseñado utilizando el microcontrolador PIC16F877A. MOFET driver 1R2210 se utiliza para MOSFETs conectados al transfo
Control remoto obstáculo evitando Robot con PIC microcontrolador

Control remoto obstáculo evitando Robot con PIC microcontrolador

Utilizo el pic 16f877amódulo ultrasónico motor servo había orientada motor motor cristal conductor y 20 mhz.En robótica, evitación del obstáculo es la tarea de satisfacer algún objetivo de control sujeto a las limitaciones de la posición de no inters
Cielo de Tata remoto con PIC

Cielo de Tata remoto con PIC

tengo escribió en su blog sobre ella en http://chaukasalshi.blogspot.in/2015/03/pic-micro-remote-for-tata-sky.htmlse discuten tanto la lectura de códigos y que transmite.Actualmente, el programa acepta comandos sobre un uart, no de un teclado.el códi
Construcción de un movimiento y seguimiento torreta de Portal

Construcción de un movimiento y seguimiento torreta de Portal

Es lindo, es educado y es realmente mortal. Es una torreta de Portal. Se mueve, tiene luz, tiene sonido y algo que no tenía mi anterior proyecto Portal: seguimiento de la cámara.La torreta está controlada con un Arduino y un ordenador. Arduino contro
Módulo inalámbrico Radio frecuencia con microcontrolador PIC.

Módulo inalámbrico Radio frecuencia con microcontrolador PIC.

Es un microcontrolador basado en proyecto de electrónica DIY. El nombre de módulo inalámbrico RF con microcontrolador PIC. El módulo de RF es un pequeño circuito electrónico utilizado para transmitir, recibir, o las ondas de radio transceive en uno d
Construcción de una torreta de Portal con movimiento controlado audio e iluminacion

Construcción de una torreta de Portal con movimiento controlado audio e iluminacion

en este Instructable voy a mostrarle cómo me fui sobre la construcción de mi propia vida tamaño hablando torreta de Portal de principio a fin. Se trata de una profundidad bastante en proyecto que cubra todas las fases de construcción y todas las técn
Cómo programar un PIC 18F2550 o 18f4550 con Arduino UNO

Cómo programar un PIC 18F2550 o 18f4550 con Arduino UNO

Aquí está nuestro nuestro primer tutorial en Instructable ser tan indulgente. Este tutorial muestra el método de usar una placa Arduino UNO como un programador de microcontroladores PIC. Este método ha sido probado con PIC 18F2550 y 18f4550 pero pued
Torreta de Portal tamaño vida

Torreta de Portal tamaño vida

este instructable es un tutorial de cómo hice mi torreta de tamaño natural del videojuego Portal. Se convirtió en un proyecto mucho más involucrado de lo que esperaba, por lo que se advierte: este proyecto no es para los débiles de corazón.Al hacer e