Plataforma Móvil económica para RASPICAM

Ejemplo de una plataforma móvil económica para RASPICAM

SISTEMAS EMBEBIDOS

Biblioman

6/15/20141 min read

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 AliExpress la siguiente plataforma móvil formada por dos micro-servos SG90:

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:

//////////////////////////////////////////////////////
// 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:

///////////////////////////////////////////////////////////////////////////
#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

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

Un vídeo probando el soporte: