Go to Post I just think that if we are going to have rules intended to level the playing field, they shouldn't hurt teams that put the effort in to go the extra mile. - Dave Scheck [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #16   Spotlight this post!  
Unread 21-01-2008, 23:09
blaxbb blaxbb is offline
Ohio State Engineering Scholar
AKA: Brian Barrett
FRC #2331
Team Role: Mentor
 
Join Date: Feb 2007
Rookie Year: 2007
Location: Vernon, New Jersey
Posts: 131
blaxbb is just really niceblaxbb is just really niceblaxbb is just really niceblaxbb is just really niceblaxbb is just really nice
Relays and IR Board

Quote:
Originally Posted by Spartan151 View Post
Okay. Once I get the basics done, I will need help programming the IR board functions, and programming the pneumatics for our claw to the arm joystick. I'll let you know when we get to that stage, but please, feel free to explain ahead of time. It'll help our team get a better understanding so there's no head-scratching later.
This is where the electronics and programming team/person has to work together.

The pneumatic cylinders are piped by solenoids (electronic valves,) which are controlled by a spike (relay.)

Relays don't use the analog 0-254 scale. They are essentially digital outputs that can be either forward, off, or reverse.

You map the relays the same way that you map speed controllers.

Code:
relay1_fwd = p1_sw_trig;
That would set relay1 to be forward every time your joystick 1 trigger is held.

IFI has a list of the joystick inputs here. pdf warning



As far as the IR, you need to read the digital input (1 or 0) and pass it through a conditional (if, else, switch) to execute a command.

Code:
if (rc_dig_in01 == 1) {
     pwm01 = pwm02 = 200;
     }
else {
     pwm01 = pwm02 = 127;
}
change rc_dig_in01 to match up with the digital input that was wired to your bot

the reference docs to wire and train the IR board are here. pdf warning
__________________
"Whether you think you can or think you can’t, you’re right." - Henry Ford
www.vthsrobotics.org
  #17   Spotlight this post!  
Unread 22-01-2008, 19:30
Spartan151's Avatar
Spartan151 Spartan151 is offline
TCU Bound (Class of 2013)
AKA: Sean
FRC #2920
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2007
Location: Holly Springs, MS
Posts: 86
Spartan151 will become famous soon enough
Re: A New Programmer

Okay. Next question: Is it possible to program the joystick trigger to, when squeezed the first time, open the claw, and when pressed a second time, closes the claw?

Also, where do these code lines fit in at?

Last edited by Spartan151 : 22-01-2008 at 19:45.
  #18   Spotlight this post!  
Unread 22-01-2008, 23:21
blaxbb blaxbb is offline
Ohio State Engineering Scholar
AKA: Brian Barrett
FRC #2331
Team Role: Mentor
 
Join Date: Feb 2007
Rookie Year: 2007
Location: Vernon, New Jersey
Posts: 131
blaxbb is just really niceblaxbb is just really niceblaxbb is just really niceblaxbb is just really niceblaxbb is just really nice
Re: A New Programmer

Quote:
Originally Posted by Spartan151 View Post
Okay. Next question: Is it possible to program the joystick trigger to, when squeezed the first time, open the claw, and when pressed a second time, closes the claw?

Also, where do these code lines fit in at?
I've been trying to figure that out too, can anyone else fill in.

I'm pretty sure you would have to write a toggle function, but I'm not exactly sure how it should work.
__________________
"Whether you think you can or think you can’t, you’re right." - Henry Ford
www.vthsrobotics.org
  #19   Spotlight this post!  
Unread 22-01-2008, 23:41
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: A New Programmer

Examples of toggle functions are common on the Chief Delphi forums. Here's another:
Code:
  :
  :
  static char prev_trig = 0;
  static char toggle = 0;
  :
  if (p1_trig && !prev_trig)
  {
    toggle = !toggle;
  }
  prev_trig = p1_trig;
  :
This will switch toggle from 0 to 1, or vice versa, each time the port 1 joystick trigger is depressed. You can test its value to decide what to do next.
  #20   Spotlight this post!  
Unread 23-01-2008, 00:06
Jim E Jim E is offline
Registered User
FRC #1523 (M.A.R.S.)
Team Role: Mentor
 
Join Date: Jun 2006
Rookie Year: 2005
Location: Lantana, FL
Posts: 188
Jim E has a reputation beyond reputeJim E has a reputation beyond reputeJim E has a reputation beyond reputeJim E has a reputation beyond reputeJim E has a reputation beyond reputeJim E has a reputation beyond reputeJim E has a reputation beyond reputeJim E has a reputation beyond reputeJim E has a reputation beyond reputeJim E has a reputation beyond reputeJim E has a reputation beyond repute
Re: A New Programmer

Hi,

You can try this, but I don't make any guarantee.

Toggle_gripper(current state)
{
int temp_state;
If ((p3_sw_trig==TRUE)&&( current _state== CLOSED)
temp_state=current_state;

else if (p3_sw_trig==TRUE)
temp_state=OPEN;

else if ((p3_sw_trig==FALSE)&&(current_state==OPEN))
temp_state=current_state;

else if ((p3_sw_trig==FALSE)
temp_state=CLOSED;

} return (temp_state);

In you Default _Routine, simply call the function:


pwm_state=Toggle_Gripper(current_pwm);
if (current_pwm<>pwm_state)
pwm=pwm_state;

I'm writing this off the cuff, you will need to correct the syntax and apply your own values for the pwm assignments, but it looks plausable. Good luck.
__________________
Team MARS = 1.523 AU from the SUN!

Jim E.
  #21   Spotlight this post!  
Unread 23-01-2008, 09:12
Spartan151's Avatar
Spartan151 Spartan151 is offline
TCU Bound (Class of 2013)
AKA: Sean
FRC #2920
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2007
Location: Holly Springs, MS
Posts: 86
Spartan151 will become famous soon enough
Re: A New Programmer

Quote:
Originally Posted by Alan Anderson View Post
Examples of toggle functions are common on the Chief Delphi forums. Here's another:
Code:
  :
  :
  static char prev_trig = 0;
  static char toggle = 0;
  :
  if (p1_trig && !prev_trig)
  {
    toggle = !toggle;
  }
  prev_trig = p1_trig;
  :
This will switch toggle from 0 to 1, or vice versa, each time the port 1 joystick trigger is depressed. You can test its value to decide what to do next.
Okay. Taking this code, where do I write in the relay values, if they need to be written in? Or is that done with the previous code for the relay values?
  #22   Spotlight this post!  
Unread 23-01-2008, 17:50
Spartan151's Avatar
Spartan151 Spartan151 is offline
TCU Bound (Class of 2013)
AKA: Sean
FRC #2920
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2007
Location: Holly Springs, MS
Posts: 86
Spartan151 will become famous soon enough
Re: A New Programmer

Okay. Here's another problem. I have the code written, but I keep getting a syntax error every time I try to build. How exactly do I run MPLAB? Also, where do those codes involving the toggling and pneumatics fit in?
  #23   Spotlight this post!  
Unread 23-01-2008, 18:34
blaxbb blaxbb is offline
Ohio State Engineering Scholar
AKA: Brian Barrett
FRC #2331
Team Role: Mentor
 
Join Date: Feb 2007
Rookie Year: 2007
Location: Vernon, New Jersey
Posts: 131
blaxbb is just really niceblaxbb is just really niceblaxbb is just really niceblaxbb is just really niceblaxbb is just really nice
Re: A New Programmer

A syntax error means that typed something in your code wrong, forgot a semicolon, mistyped a variable, etc.

in MPLAB where it says syntax error
Code:
user_routines_fast.c:27:Error: syntax error
The number 27 after the file matches the line that the error is on.

Can you compile the default code?
__________________
"Whether you think you can or think you can’t, you’re right." - Henry Ford
www.vthsrobotics.org
  #24   Spotlight this post!  
Unread 23-01-2008, 19:00
brittanys's Avatar
brittanys brittanys is offline
Paradigm Shift
FRC #1259 (Paradigm Shift)
Team Role: Programmer
 
Join Date: Mar 2006
Rookie Year: 2006
Location: Pewaukee
Posts: 2
brittanys is an unknown quantity at this point
Re: A New Programmer

Another general comment on your original bit of code...besides defining variables to use in place of direct values. You will want to include some sort of "deadband" into almost all of your drive code to account for the dynamic trim of the joysticks, prevent twitching/jerking, et cetera.

As somebody posted previously (sorry, I don't remember the name!), true neutral usually ends up at a value higher or lower than 127 (132 is quite common). To compensate for this fluctuation, we include a deadband of 6 in either direction, so "neutral" is really a range around 127.

Good luck!
  #25   Spotlight this post!  
Unread 23-01-2008, 19:47
Spartan151's Avatar
Spartan151 Spartan151 is offline
TCU Bound (Class of 2013)
AKA: Sean
FRC #2920
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2007
Location: Holly Springs, MS
Posts: 86
Spartan151 will become famous soon enough
Re: A New Programmer

Haven't ied compliling the default code yet. I'll give it a shot. But as to the toggling.....I'm stumped as everyone on the team is. Yeah...we're gonna need a lot of help.
  #26   Spotlight this post!  
Unread 23-01-2008, 22:25
Spartan151's Avatar
Spartan151 Spartan151 is offline
TCU Bound (Class of 2013)
AKA: Sean
FRC #2920
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2007
Location: Holly Springs, MS
Posts: 86
Spartan151 will become famous soon enough
Re: A New Programmer

This programming issue is putting us behind schedule, sadly. I just can't figure out where certain lines go. However, there may be a solution to it tomorrow, if we can get hold of Team 462. Got a lot more work to do. I'll be getting about 3 hours of sleep tonight, but our team doesn't back down from a challenge.

Last edited by Spartan151 : 23-01-2008 at 22:29.
  #27   Spotlight this post!  
Unread 23-01-2008, 22:35
Laaba 80 Laaba 80 is offline
Registered User
AKA: Joey
FRC #1714 (MORE Robotics)
Team Role: Alumni
 
Join Date: Dec 2007
Rookie Year: 2001
Location: San Jose, CA
Posts: 495
Laaba 80 has a reputation beyond reputeLaaba 80 has a reputation beyond reputeLaaba 80 has a reputation beyond reputeLaaba 80 has a reputation beyond reputeLaaba 80 has a reputation beyond reputeLaaba 80 has a reputation beyond reputeLaaba 80 has a reputation beyond reputeLaaba 80 has a reputation beyond reputeLaaba 80 has a reputation beyond reputeLaaba 80 has a reputation beyond reputeLaaba 80 has a reputation beyond repute
Re: A New Programmer

Quote:
Originally Posted by brittanys View Post
Another general comment on your original bit of code...besides defining variables to use in place of direct values. You will want to include some sort of "deadband" into almost all of your drive code to account for the dynamic trim of the joysticks, prevent twitching/jerking, et cetera.

As somebody posted previously (sorry, I don't remember the name!), true neutral usually ends up at a value higher or lower than 127 (132 is quite common). To compensate for this fluctuation, we include a deadband of 6 in either direction, so "neutral" is really a range around 127.

Good luck!
Make sure you do this! We just got our motors moving today and I didnt make the buffer zone yet so the motors were real jerky.
Joey
__________________
Driving Record - 75-43-8
Coaching Record - 92-65
  #28   Spotlight this post!  
Unread 25-01-2008, 12:05
Spartan151's Avatar
Spartan151 Spartan151 is offline
TCU Bound (Class of 2013)
AKA: Sean
FRC #2920
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2007
Location: Holly Springs, MS
Posts: 86
Spartan151 will become famous soon enough
Re: A New Programmer

Okay. I had someone walk me through the autonomous programming, and now I need to know how to put the OI in disabled mode so I can test the autonomous code WITHOUT SHUTTING DOWN THE PWM OUTPUTS. How would I go about doing that?
  #29   Spotlight this post!  
Unread 25-01-2008, 13:08
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: A New Programmer

Quote:
Originally Posted by Spartan151 View Post
Okay. I had someone walk me through the autonomous programming, and now I need to know how to put the OI in disabled mode so I can test the autonomous code WITHOUT SHUTTING DOWN THE PWM OUTPUTS. How would I go about doing that?
What you're asking for is probably not what you want. Putting the system in disabled mode will certainly shut down the PWMs, along with the relay outputs. That's the whole purpose of disabled mode.

I think what you want to know is how to put it in autonomous mode and have it actually provide outputs. For that, you need to connect to the competition port and close a switch between the proper pins. See the Competition Port Pinout Guide (it's on the OI section of the IFI Robotics web site).
  #30   Spotlight this post!  
Unread 25-01-2008, 14:52
Spartan151's Avatar
Spartan151 Spartan151 is offline
TCU Bound (Class of 2013)
AKA: Sean
FRC #2920
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2007
Location: Holly Springs, MS
Posts: 86
Spartan151 will become famous soon enough
Re: A New Programmer

Quote:
Originally Posted by Alan Anderson View Post
What you're asking for is probably not what you want. Putting the system in disabled mode will certainly shut down the PWMs, along with the relay outputs. That's the whole purpose of disabled mode.

I think what you want to know is how to put it in autonomous mode and have it actually provide outputs. For that, you need to connect to the competition port and close a switch between the proper pins. See the Competition Port Pinout Guide (it's on the OI section of the IFI Robotics web site).
Okay. How would I go about closing the switch? What do I need?
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
NEW PROGRAMMER!!!!! NEED HELP!!!! delphi demon Programming 5 19-04-2007 13:22
pic: Team 1249's new programmer roborat Extra Discussion 4 23-06-2006 22:02
Senior Programmer: advice on training new recruits Jeff_Rice Programming 9 04-01-2005 16:59
Help for New Programmer Mike375 Programming 3 27-09-2001 09:04


All times are GMT -5. The time now is 13:10.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


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