Plataforma Móvil económica para RASPICAM

Placas y sistemas de desarrollo con tecnología empotrada

Plataforma Móvil económica para RASPICAM

Notapor biblioman » Dom Jun 15, 2014 5:00 pm

Hola tod@s. Aunque con bastante retraso he probado una RASPICAM que tenía en el cajón de tareas pendientes. Un pequeño inconveniente con el que topamos al probar la cámara es encontrarle un soporte adecuado, hace tiempo también adquirí por Ebay la siguiente plataforma móvil formada por dos micro-servos SG90:

Imagen

Lo que es la base con los micro-servos sale por poco menos de 15 $ (incluido gastos de envío).

Nota: como hace tiempo que la tenía el vendedor no es el mismo, pero era similar a esta:

http://www.ebay.com/itm/PT-Pan-Tilt-Camera-Platform-Gimbal-Anti-Vibration-Camera-Mount-w-2-Servos-/121336372432?pt=Radio_Control_Parts_Accessories&hash=item1c40361cd0

Todo lo referente a la instalación de la cámara y configuración en Raspbian está perfectamente explicado en la página oficial de RAspberry Pi:

http://www.raspberrypi.org/camera-board-available-for-sale/

El vídeo probando el soporte:



El control de los servos se hace a través de un microcontrolador PIC16F877A y cuatro pulsadores (dos para el movimiento vertical y los otros dos para el horizontal)
El firmware del PIC es muy sencillo y está realizado con CCS V5 utilizando la librería SERVOS.C. El código fuente es el siguiente:


Código: Seleccionar todo
//////////////////////////////////////////////////////
// Control servos para plataforma móvil de RASPICAM         
// autor: Biblioman                                                             
// web: www.aquihayapuntes.com                                     
//////////////////////////////////////////////////////


#include <16F877A.h>
#device ADC=8

#fuses HS, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP

#use delay(crystal=20000000)


#include "SERVOS.C"

void main()
{
 
 init_servos(); 
   
     
   while(TRUE)
   {
     if( input(PIN_D0)==0 ) {
         set_servo(LEFT,  FORWARD, 4);
        // set_servo(RIGHT,  FORWARD, 4);
         delay_ms(5);
         pause_servos();
    }
         
     
      if( input(PIN_D1)==0 ){
         set_servo(LEFT,  BACKWARD, 4);
        //set_servo(RIGHT,  BACKWARD, 4);
         delay_ms(5);
         pause_servos();
         
      }
   if( input(PIN_D2)==0 ) {
         //set_servo(LEFT,  FORWARD, 4);
         set_servo(RIGHT,  FORWARD, 4);
         delay_ms(5);
         pause_servos();
    }
         
     
      if( input(PIN_D3)==0 ){
        // set_servo(LEFT,  BACKWARD, 4);
         set_servo(RIGHT,  BACKWARD, 4);
          delay_ms(5);
         pause_servos();
         
      }
       
   }

}



La configuración de los parámetros PWM del servo utilizados son:

Código: Seleccionar todo
///////////////////////////////////////////////////////////////////////////
#define SHORT_TIME      0.0006      // Shortest pulse width high time
#define CENTER_TIME     0.0015      // The high time for center
#define LONG_TIME       0.0024      // Longest pulse width high time
#define PULSE_TIME      0.0200      // The total time for the pulse

///////////////////////////////////////////////////////////////////////////


Saludos
Avatar de Usuario
biblioman
Usuario Nivel 9
 
Mensajes: 1994
Registrado: Vie Mar 20, 2009 5:58 pm

Volver a Sistemas Embebidos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron