programming newb

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:

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/

There’s a good example in the whitepapers section that you can get here. 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

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.

[email protected]
871 head honcho programmer/student

DON’T LISTEN TO WILLUM! :]
The other replies are okay, too.