Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   programming newb (http://www.chiefdelphi.com/forums/showthread.php?t=17519)

JP_1163 06-02-2003 19:51

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:

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. 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/sh...threadid=16452
http://www.chiefdelphi.com/forums/sh...threadid=15891
http://www.chiefdelphi.com/forums/sh...threadid=16994


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

Code:

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.


All times are GMT -5. The time now is 04:30.

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