Log in

View Full Version : programming newb


JP_1163
06-02-2003, 19:51
We are at the end of our tether As a team. Our mechanical side is ok but we have no programmers on our team. As a rookie mentor I feel that this is our Achilles heel. Our bot is simple but without an autonomous program we'll sit and spin like a top for the first 15 seconds. Not a pretty sight for our partner and a definite downer for our team.
If our team simply uses the nominal program and doesn't get anything else done I can't see us as a viable alliance partner even if we can go like a bat after the first 15. So, to make a long story short is there a quick and dirty manner to program our machine to do some basic things like move and turn?
I understand the if...then...else concept but am unsure of the minutiae.
I'll be working on a code idea tonight and maybe I can post it here later if someone would assist with a quick correction I'd be willing to accept any assistance offered.

Thanks,

Team 1163:yikes:

Jeff_Rice
06-02-2003, 19:52
Check out the default code, and modify it as you please.

And remember, drive_R is on pwm 13 and 14, drive_L is on pwm 15 and 16

edit/
I'm sorry, I got confused.

I guess you want dead reckoning in the auton mode.

Get a timing code, and change drive_L and drive_R accordingly.

I apologize for misreading your post.
end edit/

rbayer
06-02-2003, 20:31
There's a good example in the whitepapers section that you can get here (http://www.chiefdelphi.com/forums/papers.php?s=&action=single&paperid=160). Other than that, there have been a few threads on this topic recently. Here's a few I've managed to dig up:

http://www.chiefdelphi.com/forums/showthread.php?s=&threadid=16452
http://www.chiefdelphi.com/forums/showthread.php?s=&threadid=15891
http://www.chiefdelphi.com/forums/showthread.php?s=&threadid=16994


If you just want to see some code quickly, here's a sample:


loopCnt VAR word
loopCnt=0
DO
SERIN...
IF auton_mode = 1 THEN
loopCnt=loopCnt+1
SELECT loopCnt
CASE <50
PWM1=254
PWM2=254
CASE 50 TO 149
PWM1=127
PWM2=254
CASE 150 TO 219
PWM1=1
PWM2=1
CASE 220 TO 249
PWM1=127
PWM2=254
CASE ELSE
PWM1=127
PWM2=127
PWM3=127
PWM4=127
ENDSELECT

ELSE
PWM1 = (((2000 + p1_y - p1_x + 127) Min 2000 Max 2254) - 2000)
PWM2 = (((2000 + p1_y + p1_x - 127) Min 2000 Max 2254) - 2000)
ENDIF

SEROUT ....
LOOP



This will cause the robot to go forward, turn, go backwards, turn the other way and then stop. After autonomous mode ends, you will have normal one-joystick drive control. Let me know if you have any questions via PM/email or here.

--Rob

Willum
08-02-2003, 23:18
DON'T LISTEN TO THE REST OF THE REPLIES

If you want to get a simple dead reckoning code off the ground look in the white pages here at chief delphi. IT'S SOOO SIMPLE.

Email me if you have any problems with that. Email me.

Wvxc400@optonline.net
871 head honcho programmer/student

n[ate]vw
08-02-2003, 23:33
DON'T LISTEN TO WILLUM! :]
The other replies are okay, too.