Go to Post Courtesy is the key. - Tom Schindler [more]
Home
Go Back   Chief Delphi > Technical > Pneumatics
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
  #1   Spotlight this post!  
Unread 18-02-2007, 14:10
Reaper40's Avatar
Reaper40 Reaper40 is offline
Registered User
FRC #2061
Team Role: Webmaster
 
Join Date: Jan 2007
Rookie Year: 2006
Location: michuacan
Posts: 13
Reaper40 is an unknown quantity at this point
PROGRAMMING PNEUMATICS

WE HAVE 4 SPIKES THAT WILL CONTROL SPIKES. THE SPIKES CONTROL THE FOLLOWING:
SPIKE 1: DOUBLE SOLENOID
SPIKE 2: SINGLE SOLENOID
SPIKE 3: COMPRESSOR
SPIKE 4: DOUBLE SOLENOID
WE CANNOT GET THE PNEUMATICS TO WORK BECAUSE WE DONT KNOW HOE TO PROGRAM THE RELAYS.SOMEONE PLEASE HELP!!!!!!!!!!!!
  #2   Spotlight this post!  
Unread 18-02-2007, 14:20
Racer26 Racer26 is offline
Registered User
no team
Team Role: Alumni
 
Join Date: Apr 2003
Rookie Year: 2003
Location: Beaverton, ON
Posts: 2,229
Racer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond repute
Re: PROGRAMMING PNEUMATICS

well, the compressor is easy:

Code:
 relay3_fwd = !rc_dig_in18;
Wire the compressor's + and - leads to the +/- on the output of the 3rd spike, and wire the pressure switch in the pneumatic system into the 18th digital input.

single solenoids are similarly easy:

Code:
 relayN_fwd = 1; //to go
relayN_fwd = 0; //to stop
wire the solenoid to the +/- leads of the spike.

double solenoids are slightly trickier.

different people do them different ways, but 1075 in the past has coded them by wiring the +ve's of each side of the double solenoid to + and - on the spike, and wiring the -ve's of each side of the double solenoid to the ground reference on the robot. switching _fwd gives one direction, and _rev goes the other way.
  #3   Spotlight this post!  
Unread 23-02-2007, 08:59
dominic.danna dominic.danna is offline
Dominic
FRC #1184 (Cobra Robotics)
Team Role: Electrical
 
Join Date: Feb 2007
Rookie Year: 2004
Location: Bel Air
Posts: 2
dominic.danna is an unknown quantity at this point
Send a message via AIM to dominic.danna
Re: PROGRAMMING PNEUMATICS

But how would you program to turn the switch on and off with the click of the trigger

Would it be

if (p1_sw_trig == 1)
{
relay2_fwd = 1; //to go
}
else
{
relay3_fwd = 0; //to stop
}

would this work for having the switch be in relay2 for on and relay3 is for the switch off. Thanks
  #4   Spotlight this post!  
Unread 23-02-2007, 10:49
seanl's Avatar
seanl seanl is offline
"The Everything person"
FRC #0867 (Absolute Value)
Team Role: Leadership
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Arcadia, CA
Posts: 267
seanl will become famous soon enoughseanl will become famous soon enough
Re: PROGRAMMING PNEUMATICS

Quote:
Originally Posted by dominic.danna View Post
But how would you program to turn the switch on and off with the click of the trigger

Would it be

if (p1_sw_trig == 1)
{
relay2_fwd = 1; //to go
}
else
{
relay3_fwd = 0; //to stop
}

would this work for having the switch be in relay2 for on and relay3 is for the switch off. Thanks
if your going to do that you will have to hold the trigger while you want that action. your going to need a much more complicated code to have it switch on by pressing the trigger once.and have your device turn on.
  #5   Spotlight this post!  
Unread 24-02-2007, 23:53
dominic.danna dominic.danna is offline
Dominic
FRC #1184 (Cobra Robotics)
Team Role: Electrical
 
Join Date: Feb 2007
Rookie Year: 2004
Location: Bel Air
Posts: 2
dominic.danna is an unknown quantity at this point
Send a message via AIM to dominic.danna
Re: PROGRAMMING PNEUMATICS

Quote:
Originally Posted by seanl View Post
if your going to do that you will have to hold the trigger while you want that action. your going to need a much more complicated code to have it switch on by pressing the trigger once.and have your device turn on.
But if i wired a switch to the wires in the controller and bypass the trigger to replace with a switch, would that work?
  #6   Spotlight this post!  
Unread 25-02-2007, 00:12
whytheheckme's Avatar
whytheheckme whytheheckme is offline
Registered User
AKA: Jacob Komar
no team
 
Join Date: Feb 2006
Rookie Year: 2005
Location: Providence, RI
Posts: 1,320
whytheheckme has a reputation beyond reputewhytheheckme has a reputation beyond reputewhytheheckme has a reputation beyond reputewhytheheckme has a reputation beyond reputewhytheheckme has a reputation beyond reputewhytheheckme has a reputation beyond reputewhytheheckme has a reputation beyond reputewhytheheckme has a reputation beyond reputewhytheheckme has a reputation beyond reputewhytheheckme has a reputation beyond reputewhytheheckme has a reputation beyond repute
Send a message via ICQ to whytheheckme Send a message via AIM to whytheheckme Send a message via MSN to whytheheckme Send a message via Yahoo to whytheheckme
Re: PROGRAMMING PNEUMATICS

Yes, this would work.

We have a totally custom OI. Our box has 4 custom switches on it, along with an xbox port for our controller. We also have 4 different voltages on board the box for different devices.

But in short, yes. Give it a try and see what happens! Let us know your results so that we can give you a hand.

Jacob
  #7   Spotlight this post!  
Unread 25-02-2007, 01:04
dpick1055's Avatar
dpick1055 dpick1055 is offline
David Pick
FRC #1739 (Chicago Knights)
Team Role: Alumni
 
Join Date: May 2005
Rookie Year: 2004
Location: Chicago
Posts: 75
dpick1055 is on a distinguished road
Send a message via AIM to dpick1055
Re: PROGRAMMING PNEUMATICS

It's actually fairly simple to have the trigger control an action with the pneumatics. What have you to do is declare some variable like handstate.

Then when your trigger is pressed changed the value of handstate to 1 or 0. Then when the trigger is pressed you know whether your hand is opened or closed and you can do an action based on it.
Code:
int handstate;
handstate = 0; //default position for whatever your using

if (p1_sw_trig == 1 && handstate == 0)
{
relay2_fwd = 1;
handstate = 1;
}
if (p1_sw_trig == 1 && handstate == 1)
{
relay2_rev = 1;
handstate = 0;
}
__________________
Always remember to take your powered wheels off the ground when first testing code. Otherwise you'll end up with holes in the wall like us

Last edited by dpick1055 : 25-02-2007 at 01:09.
  #8   Spotlight this post!  
Unread 25-02-2007, 01:20
Stvn's Avatar
Stvn Stvn is offline
FIRST Competition Competer
AKA: Steven Rhodes
FRC #0100 (WHS/CHS - WildHats)
Team Role: Leadership
 
Join Date: Feb 2007
Rookie Year: 2004
Location: Woodside, CA
Posts: 90
Stvn is an unknown quantity at this point
Send a message via AIM to Stvn
Re: PROGRAMMING PNEUMATICS

Quote:
Originally Posted by dpick1055 View Post
It's actually fairly simple to have the trigger control an action with the pneumatics. What have you to do is declare some variable like handstate.

Then when your trigger is pressed changed the value of handstate to 1 or 0. Then when the trigger is pressed you know whether your hand is opened or closed and you can do an action based on it.
Code:
int handstate;
handstate = 0; //default position for whatever your using

if (p1_sw_trig == 1 && handstate == 0)
{
relay2_fwd = 1;
handstate = 1;
}
if (p1_sw_trig == 1 && handstate == 1)
{
relay2_rev = 1;
handstate = 0;
}
Wouldn't that code just rapidly switch between forward and reverse relays? The handstate would immediately change to 1 when the trigger is pressed, so the next if statement will be true and the relay will be set to reverse. You need to check when the trigger is depressed. Something like:
Code:
int handstate;
handstate = 0; //default position for whatever your using

if (p1_sw_trig == 1 && handstate == 0)
{
relay2_fwd = 1;
handstate = 1;
}
if (p1_sw_trig == 0 && handstate == 1)
{
handstate = 2;
}
if (p1_sw_trig == 1 && handstate == 2)
{
relay2_fwd = 1;
handstate = 3;
}
if (p1_sw_trig == 0 && handstate == 3)
{
handstate = 0;
}
I think. Please correct me if I am wrong.
__________________
  #9   Spotlight this post!  
Unread 25-02-2007, 01:58
dpick1055's Avatar
dpick1055 dpick1055 is offline
David Pick
FRC #1739 (Chicago Knights)
Team Role: Alumni
 
Join Date: May 2005
Rookie Year: 2004
Location: Chicago
Posts: 75
dpick1055 is on a distinguished road
Send a message via AIM to dpick1055
Re: PROGRAMMING PNEUMATICS

Oops. Sorry I think it should be
Code:
int handstate;
handstate = 0; //default position for whatever your using

if (p1_sw_trig == 1 && handstate == 0)
{
relay2_fwd = 1;
handstate = 1;
}
else if (p1_sw_trig == 1 && handstate == 1)
{
relay2_rev = 1;
handstate = 0;
}
Though I think your code would work too.
__________________
Always remember to take your powered wheels off the ground when first testing code. Otherwise you'll end up with holes in the wall like us
  #10   Spotlight this post!  
Unread 01-03-2007, 18:18
gauntletguy gauntletguy is offline
Registered User
AKA: Eric Nelson
FRC #2771
Team Role: Leadership
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Grandville, MI
Posts: 6
gauntletguy is an unknown quantity at this point
Send a message via AIM to gauntletguy
Re: PROGRAMMING PNEUMATICS

the code will work, but you would need a timer or something, because if this code is evaluated more that once while the button is held down, the state would alternate very rapidly
  #11   Spotlight this post!  
Unread 04-03-2007, 23:19
Neo3One3 Neo3One3 is offline
Registered User
AKA: Nick
FRC #0175 (Buzz)
Team Role: Driver
 
Join Date: Mar 2006
Rookie Year: 2004
Location: Enfield, CT
Posts: 21
Neo3One3 is a name known to allNeo3One3 is a name known to allNeo3One3 is a name known to allNeo3One3 is a name known to allNeo3One3 is a name known to allNeo3One3 is a name known to all
Re: PROGRAMMING PNEUMATICS

I had a similar issue when programming the pneumatics for our upper/lower claws, wrist, extension, and lateral drive. Let me show you how I solved the issue.

Code:
if (CLAW1IN == 1 && clawTimer < 3)
	{
		clawTimer++;
	}
	else if (CLAW1IN == 1 && clawTimer >= 3 && clawTest == 0)
	{
		CLAWFWD = !CLAWFWD;
		CLAWREV = !CLAWREV;
		clawTest = 1;
	}
	else if (CLAW1IN == 0 && clawTimer >= 3)
	{
		clawTimer = 0;
		clawTest = 0;
	}
In this case we use double action solenoids, so if you just use single ignore the CLAWREV. The clawTimer is used as a measure of necessary depression of the trigger to create a change (eliminating accidental presses) and clawTest is a signal to keep the values from changing again. However, you do need to make sure for doubles that you initialize them as 1, 0, or 0, 1 to begin with, or you'll get 0, 0, and 1, 1 values for the solenoid, I.E. nothing happening.

EDIT:
Oops, forgot to fill in for the definitions.

Code:
#define CLAW1IN p1_sw_aux1
#define CLAWFWD relay2_fwd
#define CLAWREV relay2_rev
__________________

Go Buzz!
  #12   Spotlight this post!  
Unread 05-03-2007, 00:01
oddjob oddjob is offline
Registered User
no team
Team Role: Mentor
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Earth
Posts: 118
oddjob is a splendid one to beholdoddjob is a splendid one to beholdoddjob is a splendid one to beholdoddjob is a splendid one to beholdoddjob is a splendid one to beholdoddjob is a splendid one to beholdoddjob is a splendid one to behold
Re: PROGRAMMING PNEUMATICS

If you need an edge trigger rather than level trigger, do something like this - assuming that variable 'buttons' holds the state of the joystick(s) buttons, and 'old_buttons' keeps track of the previous state of the buttons:

Code:
  if(buttons!=old_buttons)
  {
    if((buttons&0x1)==0)      /* example - bit 0 is the button to react to */
    {
      do_something_here();    /* execute once per button push */
    }
  }
  old_buttons=buttons;
  #13   Spotlight this post!  
Unread 01-02-2008, 09:54
Aarnat's Avatar
Aarnat Aarnat is offline
Senior Captain
AKA: Aaron
FRC #2199 (Robo-Lions)
Team Role: Mentor
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Eldersburg, MD
Posts: 24
Aarnat will become famous soon enoughAarnat will become famous soon enough
Re: PROGRAMMING PNEUMATICS

Hi,
I have seen teams with a board of switches that they have created themselves that controll things like pnunmatics. I would just like to know how we should wire the joystick port with the switches and then use them in the programming.

Thanks!
  #14   Spotlight this post!  
Unread 01-02-2008, 11:10
Mark McLeod's Avatar
Mark McLeod Mark McLeod is online now
Just Itinerant
AKA: Hey dad...Father...MARK
FRC #0358 (Robotic Eagles)
Team Role: Engineer
 
Join Date: Mar 2003
Rookie Year: 2002
Location: Hauppauge, Long Island, NY
Posts: 8,905
Mark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond reputeMark McLeod has a reputation beyond repute
Re: PROGRAMMING PNEUMATICS

Wiring/programming for the joystick ports is detailed in
http://www.ifirobotics.com/docs/oi-ref-guide-5-8-07.pdf
starting on page 7.
__________________
"Rationality is our distinguishing characteristic - it's what sets us apart from the beasts." - Aristotle
  #15   Spotlight this post!  
Unread 01-02-2008, 15:26
Aarnat's Avatar
Aarnat Aarnat is offline
Senior Captain
AKA: Aaron
FRC #2199 (Robo-Lions)
Team Role: Mentor
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Eldersburg, MD
Posts: 24
Aarnat will become famous soon enoughAarnat will become famous soon enough
Re: PROGRAMMING PNEUMATICS

Thanks!
So correct me if I'm wrong: a Single Pole Single Throw switch could have one end to pin 2, 7, 10, or 14 and its power to either 4 or 12. What if you wanted a Single Pole Double Throw switch to toggle up to exstend a piston and togle down to retract a piston?
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
programming the pneumatics Armando Programming 2 17-02-2007 21:47
Programming Pneumatics? itzrobz Programming 2 20-01-2007 00:30
Programming of Pneumatics Ben Piecuch Programming 3 18-02-2005 02:39
Pneumatics Programming KWalsh Programming 8 19-02-2004 09:17
Programming PBASIC for pneumatics archiver 2001 2 23-06-2002 23:58


All times are GMT -5. The time now is 22:37.

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