Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   CMUCam, Easy C, and Labview (http://www.chiefdelphi.com/forums/showthread.php?t=43937)

Kingofl337 17-01-2007 08:41

Re: CMUCam, Easy C, and Labview
 
easyC doesn't use the camera servo ports it uses PWM ports 10 & 11 in the 2007 kickoff code which are defines so you can easily change the port number. We are getting ready to release an update for PRO that fixes a few issues and we will probably remove the servo block from the camera stuff.
I'm also working to add searching to my drive code and dual light targeting. But, Team 40 took apart my kitbot :( so I'm currently without a test bed.
Hopefully we will have a new chassis ready to test on today. :D

Quote:

Originally Posted by MattD (Post 558346)
Right, as far as I can tell the easyC code depends on having the servos controlled via the camera board and not the RC. However, the 2007 kickoff demo could be a good starting point, as it does have tracking code that controls the servos via the RC.

Since my team has opted to use easyC, we ended up porting Kevin's streamlined tracking code rather than basing from the aforementioned demo code, however. It still needs to be tweaked a bit, but it seems to work fine.


MattD 17-01-2007 09:33

Re: CMUCam, Easy C, and Labview
 
Quote:

Originally Posted by Kingofl337 (Post 558753)
easyC doesn't use the camera servo ports it uses PWM ports 10 & 11 in the 2007 kickoff code which are defines so you can easily change the port number. We are getting ready to release an update for PRO that fixes a few issues and we will probably remove the servo block from the camera stuff.
I'm also working to add searching to my drive code and dual light targeting. But, Team 40 took apart my kitbot :( so I'm currently without a test bed.
Hopefully we will have a new chassis ready to test on today. :D

Yes, I know that the 2007 kickoff code uses PWM outputs 10 and 11 on the RC to control the servos by default, but I'm talking about the functions built into easyC, like SetServoTracking(). Does that one control the servos via the RC also? If so, how do you set which PWM outputs to use? It seems to me like that was intended for use with the servos connected to the camera.

Kingofl337 17-01-2007 10:25

Re: CMUCam, Easy C, and Labview
 
The SetServoTracking command is the same as SetPWM but for the camera servos. If you want to have the camera auto target like it would if the servos were plugged into the camera then do this.

Code:

void Initialize ( void )
{
    InitCamera ( 1 ) ;  //Initialize camera for target color
    SetServoTracking ( 1 , 1 ) ; // Sets camera servos to autotrack target
    StartCamera ( ) ; // You need to restart the camera if you change camera servo settings
}



void OperatorControl ( void )
{
      unsigned char ServoPan;
      unsigned char ServoTilt;

      SetServoTracking ( 1 , 1 ) ; // Sets camera servos to autotrack target
      StartCamera ( ) ; // You need to restart the camera if you change camera servo settings
     
      while ( 1 )
      {
            // Checks the where the camera wants the servos to be pointed.
            CaptureTrackingData ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &ServoPan , &ServoTilt ) ;
            SetPWM ( 1 , ServoPan ) ; // Moves the servo for Pan
            SetPWM ( 2 , ServoTilt ) ; // Moves the servo for Tilt
      }
}


sniggel 24-01-2007 14:55

Re: CMUCam, Easy C, and Labview
 
our easy c demo 2007 code does not work. are there steps we are missing? Kevin's code works fine. I saw a post about setting the robot to autonomous, but we are using a testbed, not a robot. We do have the servos connedted to pwm 10, 11 so this is not it. Any thing else we need to do?

Kingofl337 24-01-2007 15:56

Re: CMUCam, Easy C, and Labview
 
Do you have the OI in Autonomous mode?

sniggel 24-01-2007 16:10

Re: CMUCam, Easy C, and Labview
 
If i read correctly we set the team number to zeros and that would set the oi to autonomous, is there something else we missed. The team number was the only jumpers we changed

Kingofl337 24-01-2007 16:14

Re: CMUCam, Easy C, and Labview
 
Yes, your team should have a dongle. It plugs into the competiton port and selects between autonomous and operator control. It also allows you to disable the robot.

Here is the unit AndyMark Makes: http://www.andymark.biz/am-0016.html

Setting the team number to zero may work as well, but I've never tested that.

sniggel 24-01-2007 22:50

Re: CMUCam, Easy C, and Labview
 
is the dongle the only way to get the code working? It looks like it could take some time to get that in, and I saw the alternative is to make one, which I will have our electronics team look at. I thoght I saw somewhere a mention about manually changing jumpers on the Interface unit to get the autonomous to work. Can it be done without the dongle?
thank-you

Kingofl337 25-01-2007 10:11

Re: CMUCam, Easy C, and Labview
 
They are pretty easy to make the hardest thing to find is a DB15 connector because Radio Shack doesn't normally stock them anymore.

Well you could just copy the block from autonomous to operator control.

sniggel 25-01-2007 22:52

Re: CMUCam, Easy C, and Labview
 
thankyou were were able to get the autonomous connection up and running
The autonomous code is being called, but since we dont have our motors hooked up nothing is happening. The camera stays at red, which I figure means it finds the light but cant do anything till we get our motors hooked back up. I do have a question, I thought I saw something about needing a graphics emulator for the code to work, now I cant find where I saw that. Do we need to download and emulator somewhere to get the graphics display running correctly?

Kingofl337 25-01-2007 22:55

Re: CMUCam, Easy C, and Labview
 
No, if you downloaded the code from Http://www.intelitekdownloads.com/easyCPRO

You use the graphics display. Just open the terminal window and check off "Graphics Display"

Also in Sample Programs we have a neat camera test program. That shows you the box of what the camera sees.

K.Porter 07-02-2007 15:03

Re: CMUCam, Easy C, and Labview
 
When porting Kevin Watson's streamlined code... did you import every file, or only the ones pertaining to the camera?

hal 07-02-2007 15:55

Re: CMUCam, Easy C, and Labview
 
I've come back to this thread after about 3 weeks, and I think I see something here that I didn't realize before. Are you saying that SetServoTracking can control the camera servos connected to PWM1 and PWM2 and thereby cause the camera to track the green light, just like Kevin's MPLAB code does? If that is do, and I convert the values returned by CaptureTrackingData to degrees, I should be able to control the robot drive motors. Is that correct?

Quote:

Originally Posted by Kingofl337 (Post 558797)
The SetServoTracking command is the same as SetPWM but for the camera servos. If you want to have the camera auto target like it would if the servos were plugged into the camera then do this.

Code:

void Initialize ( void )
{
    InitCamera ( 1 ) ;  //Initialize camera for target color
    SetServoTracking ( 1 , 1 ) ; // Sets camera servos to autotrack target
    StartCamera ( ) ; // You need to restart the camera if you change camera servo settings
}



void OperatorControl ( void )
{
      unsigned char ServoPan;
      unsigned char ServoTilt;

      SetServoTracking ( 1 , 1 ) ; // Sets camera servos to autotrack target
      StartCamera ( ) ; // You need to restart the camera if you change camera servo settings
     
      while ( 1 )
      {
            // Checks the where the camera wants the servos to be pointed.
            CaptureTrackingData ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &ServoPan , &ServoTilt ) ;
            SetPWM ( 1 , ServoPan ) ; // Moves the servo for Pan
            SetPWM ( 2 , ServoTilt ) ; // Moves the servo for Tilt
      }
}



Kingofl337 07-02-2007 22:20

Re: CMUCam, Easy C, and Labview
 
The servos just center the camera on the object its tracking they don't drive the robot. So, you can use the servo's to figure out distance and turn angle they don't drive the robot directly.

And yes this will have the servo's autotrack for the camera. You can also look at the code used at kickoff at www.intelitekdownloads.com/easyCPRO


All times are GMT -5. The time now is 19:34.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi