![]() |
Re: What are we supposed to do!?!?!?!??!?!
The team number isnt set in the code, its setting in binary using the dipswitches..
Also, just try to get a copy of someones code (i would upload mine but i dont have it with me) and just look through it and try to learn it. Before last year I didnt have a clue what a #define statement was, i just read over the code from previous years over and over again and read all the programming papers on ifirobotics.com... now i knew the controller inside and out... Good luck |
Re: What are we supposed to do!?!?!?!??!?!
Quote:
|
Re: What are we supposed to do!?!?!?!??!?!
What do you mean by setting our own PWM** values?
|
Re: What are we supposed to do!?!?!?!??!?!
Ok thanks alot for your help.
What do we have exactly in our code allready, and what should we use with it? |
Re: What are we supposed to do!?!?!?!??!?!
Quote:
The Default code is a real mess in my opinion. It is a mix-mash of a bunch of legacy stuff from the early years of FIRST and a bunch of patches and band -aids applied to add new features and functions. Here is the basic idea: Inputs from the Operator Interface (OI) come from 4 ports -- they themselves are legacy 15 pin game ports from the early days of the IBM PC. Each port has switches and analog inputs. The switches are defined this way: pN_sw_SWITCHNAME where N refers to the port number and SWITCHNAME refers to "top", "trig", "aux1" and "aux2" Depending on what brand joystick you use these switches will be available out of the box or not -- if not, and you need those switches, you will have to build a custom harness to get access to the switches. The default code has structures and aliases defined for you that allow you to treat these switches as either 1 or 0's The analog inputs are defined this way: pN_ANALOGNAME where N refers to the port number and ANALOGNAME Refer to "X" "Y" "WHEEL" and "AUX" Again depending on what brand joystick you use these analog inputs will be available out of the box or not -- if not, and you need those inputs, you will have to build a custom harness to get access to the analog inputs (wiring in your own potentiometer for example). The default code has structures and aliases defined for you that allow you to treat these analog inputs as either a number between 0 and 255 -- with 127 being the nominal center position of the joystick. You have similar naming conventions for inputs on the Robot Controller's analog and digital inputs. The outputs on the RC are basically the PWM values 0-254 and relays (which are of the form rc_dig_outNN). In order to control a motor, you just assign the PWM output to a value 0 = full rev, 127 = off, 254= full fwd. The default code simply maps joystick values from the OI to PWM outputs on the RC. It also has some example methods of mapping limit switches to particular PWM output so that the motor will turn off when an end of travel switch is made. If you know C and you know how to access the various inputs and outputs, you should be able to write code to let your robot do what ever you need it to do. Good luck. Joe J. |
Re: What are we supposed to do!?!?!?!??!?!
In preparing for some intro to programming sessions I held this year I spent some time looking for what you're after. I'm hoping to organize my thoughts into a white paper or something, but haven't had time to clean it up. Currently there are some of my notes on my website Marks programming page which might help with some references to some resources.
Here's a quick sketch of how our team tries to approach programming: First: Familiarization -Get the default code compiling, downloading, and the controllers talking to each other, try connecting a joystick and motor or two and see how things work. Second: Functional Requirements - Identify what functions need to by done by the controller. Every team's program will handle some operator input, use some robot sensors such as limit switches, and drive some outputs. The basic joystick as input and drive train as output is in the default code because it is the most common to all teams. Third: Design -Break these functions down into smaller pieces and identify those that can be easily handled, and those which you will need to do more research or find help for, such as camera, timers, or other sensors. Fourth: Implement - Make a working copy of the default code. Cut out parts of the example code that you won't need. Define macros for your names of inputs and outputs. Declare functions or at least insert comments for those things you need to add. Then start coding. Quote:
|
Re: What are we supposed to do!?!?!?!??!?!
Run the default code first. After loading the code into the robot controller, open the terminal, if the statement "printf(..." is not commented out, it will print the values for the joysticks. You can add other variables (like switches) to the printf. Move the sticks and see what values change. Look at Default_Routine() like the other poster said.
Look at ifi_aliases.h for the possible variables you can read and set. Autonomous mode is in user_routines_fast.c. Look at User_Autonomous_Code(). It runs in a loop so you have to have a state machine. After you get the robot going and a few things figured out, then search around for an example or post back here. Note: The operator interface will not talk to the robot controller until you set the team number on the IO and tether it first. Hope this helps, Brian |
Re: What are we supposed to do!?!?!?!??!?!
Thanks for the help guys.
I guess the only problem is right now is just trying to dycript those small macros, functions and other varibles and how they relate to the robot or OI. But our Programming group all agreed that we've reached the begining point and we can probablly see the next step ahead(with minor help from you guys and Delphi). Thanks again :D |
Re: What are we supposed to do!?!?!?!??!?!
BTW, I find the previous codes some people sent very usefull. It'll also help me and the team to get some more work to do(I'm head of the programming team{and look how desperate I was}).
Please send any previous codes you can(with comments of course, so we may understand :D). We will really appreciate it. |
Re: What are we supposed to do!?!?!?!??!?!
read kevins code, he has really well documented code, i am learning the programing this year as I am planning on helping with the programming from next year on wards, so i have been working with just decoding kevins FRC code.
|
Re: What are we supposed to do!?!?!?!??!?!
Quote:
|
| All times are GMT -5. The time now is 20:45. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi