Page 3 of 4

Re: IFC series PS2 + RS08 Programming

PostPosted: Mon Mar 01, 2010 11:50 am
by ober
RS-08 heat up after the RC servo is being activated is normal, and that's the reason why there is a heat sink on that card. Anyway, to verify the problem, you can always send an inquiry to support team and arrange to send back for testing.

Re: IFC series PS2 + RS08 Programming

PostPosted: Mon Mar 01, 2010 11:56 am
by hyng
It is normal for rs-08's heat sink to have slightly higher temperature. It is due to high current flow at the voltage regulator. There's nothing to be worry about!

Re: IFC series PS2 + RS08 Programming

PostPosted: Mon Mar 01, 2010 10:25 pm
by ken_alone
If the rs-08 will be heat up normally, then how high the temperature will be?? will it affect the current flow to motor and caused motor burned together?

Re: IFC series PS2 + RS08 Programming

PostPosted: Tue Mar 23, 2010 12:14 pm
by ken_alone
hi there, thx for last time's information... i would like to ask again bout the degrees of servo.... I had written 4500 steps to the programming but the servo rotates in a small range only... what kind of problem was that?

Re: IFC series PS2 + RS08 Programming

PostPosted: Tue Mar 23, 2010 1:37 pm
by hyng
The servo should rotated to the end if the 4500 steps was given. So where your servo stop rotated? is it nearly to the end? if it is... then it is normal.
Anyway, you can post your code to verify is there anything wrong with the code.
SO have you try with the sample code? Is it working?
I don't think it is RS08 problem if you have successfully work it out.

Re: IFC series PS2 + RS08 Programming

PostPosted: Tue Mar 30, 2010 7:58 pm
by ken_alone
I've tried out with the rs sample already... And i found it, when i burned IC with rs sample 1, the maximum rotation was about 90 degrees only... When i burned IC with rs sample 2, i can control the rotation to full 180 degrees... But i could not control the degrees for sample 1...
CODE: SELECT_ALL_CODE
                          if(ps_sw(ps_add,p_start)==0)
      {
         rs_en(add_rs,0,1);         
                           
      }
      else if(ps_sw(ps_add,p_square)==0)
      {
         
         while(ps_sw(ps_add,p_square)==0);
         while(1)
         {
            rs_pos_sp(add_rs,3,5000,50);
            rs_pos_sp(add_rs,3,0,50);
         }
      }
      else if(ps_sw(ps_add,p_circle)==0)
      {
         
         while(ps_sw(ps_add,p_circle)==0);
         while(1)
         {

            rs_pos_sp(add_rs,2,position_a,speed_b);
            pos=rs_read_pos(add_rs,2);

            while(pos!=position_a)
            {
               pos=rs_read_pos(add_rs,2);
            }
            
            pos=rs_read_pos(add_rs,2);

            while(pos!=1500)
            {
               pos=rs_read_pos(add_rs,2);
            }
         }
      }
else if(ps_sw(ps_add,p_cross)==0)               
      {
   
         while(ps_sw(ps_add,p_cross)==0);                     
         while(1)                           
         {                                 

            rs_pos_sp(add_rs,1,position_a,speed_b);
            pos=rs_read_pos(add_rs,1);            
   
            while(pos!=position_a)         
            {
               pos=rs_read_pos(add_rs,1);      
            }            
            pos=rs_read_pos(add_rs,1);       
   
            while(pos!=2500)            
            {
               pos=rs_read_pos(add_rs,1);      
            }
         }
      }                              
      else if(ps_sw(ps_add,p_select)==0)
      {
         while (ps_sw(ps_add,p_select)==0);
         while(1)
         {
            slave_reset=1;                           
         }
      }
   }   
   
}      

On the bottom part of the code,i set select button as reset for all card but it could function... Was there any problem with my code? Coz sample 1 showed that initail position for rs-08 was 2500.. What does that means?

Re: IFC series PS2 + RS08 Programming

PostPosted: Wed Mar 31, 2010 10:35 am
by hyng
Good to hear that you can work with the code.

For sample 1 code, it's involve position reporting where it will report the current position. Please refer to the code. It will get the position from 8th servo (the last servo). So when the 8th servo has reach 4500 or 800, all the servo will reverse to the other direction. That's why you will found that some servo rotation only about 90 degrees. You can try to plug in your servo at last servo connector on RS08. In order to control the degree of your own servo, you should rewrite the code.

I'm not sure what you mean by the initial position for rs-08 was 2500.. anyway, the sample code only for reference, as long as you understand with command, it will not stop you to further develop your project.

Sample 2 code does not involve position reporting command, all the servo rotate independently. This code is quite straight forward which I recommend you to refer to this sample (ignore sample 1).. ;)

Should be no problem to put slave_reset=1 in order to reset the IFC. However, i noticed that in your code, once you have pressed any button; button cross for example, it will go into a infinity loop (while(1)). If you press the select button after that, then the IFC will not be reset because the program always loop inside the command in the previous action. Oh ya.. you should release the reset in order to wait for next instruction which mean should put slave_reset=0 after =1 and i don't think it is appropriate to put in a infinite loop.

Re: IFC series PS2 + RS08 Programming

PostPosted: Wed Mar 31, 2010 12:34 pm
by ken_alone
But for sample 2... It turned foward and reversely till we reset rite? But i need to control it to move once only... So is it compulsory to make position reading for sample 1?

Re: IFC series PS2 + RS08 Programming

PostPosted: Wed Mar 31, 2010 3:41 pm
by hyng
What you mean by turning one time only? Is it just from A to B? or does it need to go back to A?

If just from A to B, then it is quite easy. Initial the servo by giving the command rs_pos_sp(add_rs,1,A,speed_b) once it is power up. Of course you need to activate the servo first. After that, you just give another command to the RS08 at the appropriate timing, for example rs_pos_sp(add_rs,1,B,speed_b). That's all!

If it is round way, then there are few ways to control.
1. Use the position reporting at the sample 1. Just modify all code to single servo. Lets say your servo is at S1, then you just have to read the servo position from S1 and not from S8 (as show in the Sample 1) anymore.
2. Use delay function to wait for your servo to turn to the desire position.
Starting, turn the servo to point A-->Delay-->Now at point A, then start turn the servo to point B-->Delay-->Now at Point B, then start turn the servo to point A-->Delay--> now the servo at Point A. I recommend you to use this method first as it is quite straight forward. However, you need to test an error in order to obtain the appropriate delay time.

Re: IFC series PS2 + RS08 Programming

PostPosted: Thu Apr 01, 2010 8:15 pm
by ken_alone
hyng..... If i buy another BH02 now.... Howshould i program the code? coz now i'm using modified rs sample 1 to write my program... can i modify it and copy the code into my recent programming? or i should rewrite the whole program again?