Autor Tema: Mano robotica  (Leído 2559 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado rabacero

  • PIC10
  • *
  • Mensajes: 7
Mano robotica
« en: 27 de Noviembre de 2009, 17:12:01 »
Hola amigos del foro.
estoy haciendo mi proyecto final de robotica industrial
como proyecto hice una mano robotica, funciona bien, pero para complementar el trabajo me pidieron hacer una pantalla en visual basic y yo no entiendo nada lo que es visual basic.
El programa es el siguiente:

#include <16f887.h>
#device ADC=10
#use delay (clock=20000000)
#include <lcd.c>
#use fast_io(a)
#use fast_io(c)
 
#define pinServo0 PIN_C0
#define pinServo1 PIN_C1
#define pinServo2 PIN_C2
#define pinServo3 PIN_C3
#define pinServo4 PIN_C4
#define pinServo5 PIN_C5
#define pinServo6 PIN_C6
#define pinServo7 PIN_C7
 
int16 ticksTotalServo = 12500; //tickAltoMaximo = 11500 tickAltoMinimo = 3500
int16 ticksAltoServo[8];
int8 servoAMover=0;
int1 subir=1, enableServo[8]={1,1,1,1,1,0,0,0};
 
#int_timer1
void intTimer(void)
{
   if(subir==1)
   {
      if(servoAMover == 0 && enableServo[0] == 1) output_high(pinServo0);
      if(servoAMover == 1 && enableServo[1] == 1) output_high(pinServo1);
      if(servoAMover == 2 && enableServo[2] == 1) output_high(pinServo2);
      if(servoAMover == 3 && enableServo[3] == 1) output_high(pinServo3);
      if(servoAMover == 4 && enableServo[4] == 1) output_high(pinServo4);
      if(servoAMover == 5 && enableServo[5] == 1) output_high(pinServo5);
      if(servoAMover == 6 && enableServo[6] == 1) output_high(pinServo6);
      if(servoAMover == 7 && enableServo[7] == 1) output_high(pinServo7);
   set_timer1(65535 - ticksAltoServo[servoAMover]); 
   subir = 0;
   }
   else if(subir==0)
   {
      if(servoAMover == 0 && enableServo[0] == 1) output_low(pinServo0);
      if(servoAMover == 1 && enableServo[1] == 1) output_low(pinServo1);
      if(servoAMover == 2 && enableServo[2] == 1) output_low(pinServo2);
      if(servoAMover == 3 && enableServo[3] == 1) output_low(pinServo3);
      if(servoAMover == 4 && enableServo[4] == 1) output_low(pinServo4);
      if(servoAMover == 5 && enableServo[5] == 1) output_low(pinServo5);
      if(servoAMover == 6 && enableServo[6] == 1) output_low(pinServo6);
      if(servoAMover == 7 && enableServo[7] == 1) output_low(pinServo7);
   set_timer1(65535 - ticksTotalServo + ticksAltoServo[servoAMover]);   
   servoamover++;
   if (servoAMover > 7) servoAMover = 0 ;
   subir = 1;
   }
}
 
void main()
{
 
   int8 i;
 
   set_tris_c(0x00);
   set_tris_a(0xFF);
 
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_adc_ports(ALL_ANALOG);   
   
   disable_interrupts(global);
   setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
   setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);
   setup_timer_2(T2_DISABLED,0,1);
   port_b_pullups(FALSE);
 
   enable_interrupts(int_timer1);
   enable_interrupts(global);
   
   set_timer1(60000);
     
   while(1)
   {
   
      for(i=0;i<8;i++) //leyendo los valores de los LDR
      {
         if(enableServo==1)
         set_adc_channel(i);
         delay_ms(10);
         ticksAltoServo = 4750 + (read_adc()*5)  ;
         
      }
     
           
   }
 
}




Falta del programa el direccionamiento para cada servo comunicacion serial y la pantalla en visual basic
Cualquier aporte sirve
de ante mano
gracias


Saludos

Desconectado beto1234

  • PIC12
  • **
  • Mensajes: 52
    • Osm Gps Pwa
Re: Mano robotica
« Respuesta #1 en: 24 de Enero de 2010, 16:31:46 »
 Pues de la forma simple seria hacer una conexión serial y luego enviar las instrucciones desde vb.


 

anything